KR101927016B1 - 멀티미디어 파일 라이브 방송 방법, 시스템 및 서버 - Google Patents

멀티미디어 파일 라이브 방송 방법, 시스템 및 서버 Download PDF

Info

Publication number
KR101927016B1
KR101927016B1 KR1020177024380A KR20177024380A KR101927016B1 KR 101927016 B1 KR101927016 B1 KR 101927016B1 KR 1020177024380 A KR1020177024380 A KR 1020177024380A KR 20177024380 A KR20177024380 A KR 20177024380A KR 101927016 B1 KR101927016 B1 KR 101927016B1
Authority
KR
South Korea
Prior art keywords
video
audio
frames
code rates
different code
Prior art date
Application number
KR1020177024380A
Other languages
English (en)
Other versions
KR20170109036A (ko
Inventor
펑하이 양
위안둥 투
찬청 중
신하이 쩡
Original Assignee
텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 filed Critical 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20170109036A publication Critical patent/KR20170109036A/ko
Application granted granted Critical
Publication of KR101927016B1 publication Critical patent/KR101927016B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2368Multiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • H04N21/4725End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content using interactive regions of the image, e.g. hot spots
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

멀티미디어 파일 라이브 방송 방법은 다음의 단계들: 원본 멀티미디어 파일을 획득하는 단계; 원본 멀티미디어 파일로부터, 오디오 프레임 및 비디오 프레임을 판독하는 단계; 상이한 코드 레이트들을 갖는 비디오 프레임들을 획득하기 위해 비디오 프레임을 트랜스코딩하는 단계; 상이한 코드 레이트들을 갖는 멀티미디어 파일들을 획득하기 위해 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임을 별도로 합성하는 단계; 각각의 비디오 스트림들을 형성하기 위해, 상이한 코드 레이트들을 갖는 멀티미디어 파일들로부터, 오디오 프레임들 및 비디오 프레임들을 별도로 획득하는 단계; 및 상이한 비디오 스트림들을 푸시하는 단계를 포함한다.

Description

멀티미디어 파일 라이브 방송 방법, 시스템 및 서버
관련 출원들에 대한 상호 참조
본 출원은 2015년 3월 3일자로 출원되고 발명의 명칭이 "Method, device and system for live streaming audio-video file"인 중국 특허 출원 번호 201510094319.x에 대한 우선권을 주장하며, 그 전체 내용이 본 명세서에 참조로 포함된다.
본 개시내용은 비디오 재생 분야에 관한 것이고, 보다 구체적으로, 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법, 시스템 및 서버에 관한 것이다.
네트워크 기술의 발달과 함께, 점점 더 많은 사람들이 그들의 원하는 정보를 네트워크를 통해 얻는다. 예를 들어, 사용자들은 뉴스 정보를 네트워크를 통해 얻을 수 있거나, 또는 오디오-비디오 파일들의 정보를 네트워크를 통해 얻을 수 있는 등이다. 네트워크 상에는 다양한 주제에 대한 비디오들이 있다. 주문형 비디오(Video-on-Demand)는 비디오를 시청하길 원하는 사용자들을 위해 널리 사용되는 유형의 서비스이다. 예를 들어, 사용자가 특정 영화를 시청하길 원할 때, 사용자는 비디오 웹사이트에서 대응하는 영화를 검색할 수 있으며, 웹사이트는, 사용자로부터 클릭 투 플레이(click-to-play) 명령어를 수신한 후, 영화를 재생하기 위해 서버로부터 데이터를 꺼내올 수 있다. 주문형 비디오 서비스는 사용자가 재생할 파일을 선택하도록 요구하기 때문에, 상호작용에 높은 비용을 야기한다.
오디오-비디오 파일을 라이브 스트리밍하기 위한 방법은 다음의 단계들을 포함한다: 원본 오디오-비디오 파일을 획득하는 단계; 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하는 단계; 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하는 단계; 각각 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하는 단계; 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계; 및 상이한 비디오 프레임들을 푸시하는 단계.
서버는 저장 매체 및 프로세서를 포함하며, 저장 매체는 그 안에 저장된 명령어들을 갖는다. 여기서 명령어들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 다음의 단계를 수행하게 한다: 원본 오디오-비디오 파일을 획득하는 단계; 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하는 단계; 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하는 단계; 각각 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하는 단계; 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계; 및 상이한 비디오 프레임들을 푸시하는 단계.
오디오-비디오 파일을 라이브 스트리밍하기 위한 시스템은 다음을 포함한다: 원본 오디오-비디오 파일을 획득하고, 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하고, 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하고, 각각 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하도록 구성되는 오디오-비디오 파일 합성 서버; 및 오디오-비디오 파일 합성 서버로부터 상이한 코드 레이트들을 갖는 오디오-비디오 파일들을 획득하고, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하고, 상이한 단말기들로 상이한 비디오 스트림들을 푸시하는 CDN(Content Delivery Network) 서버로 상이한 비디오 스트림들을 푸시하도록 구성되는 스트림 병합 서버.
본 개시내용의 실시예들 또는 관련 기술 분야에서의 기술적인 해결책들을 보다 명확하게 예시하기 위해, 실시예들 또는 관련 기술 분야의 설명에 필요한 첨부 도면들은 아래 간단하게 소개된다. 명백히, 다음의 설명에서의 첨부 도면들은 본 개시내용의 일부 실시예들일 뿐이며, 본 기술 분야의 통상의 기술자들의 경우, 창조적인 노력을 기울이지 않는다는 전제 하에 이들에 따라 일부 다른 첨부 도면들을 획득할 수 있다.
도 1은 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법의 애플리케이션 환경을 예시하는 개략도이다.
도 2는 실시예에서 상이한 코드 레이트들을 갖는 다수의 오디오-비디오 파일을 합성하는 프로세스를 예시하는 개략도이다.
도 3은 실시예에서 오디오-비디오 파일을 푸시 및 라이브 스트리밍하는 프로세스를 예시하는 개략도이다.
도 4는 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법을 도시하는 흐름도이다.
도 5는 또 다른 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법을 도시하는 흐름도이다.
도 6은 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 디바이스의 블록도이다.
도 7은 또 다른 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 디바이스의 블록도이다.
도 8은 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 시스템의 블록도이다.
도 9a는 실시예에서 단말기의 내부 구조를 예시하는 개략도이다.
도 9b는 실시예에서 서버의 내부 구조를 예시하는 개략도이다.
본 개시내용의 목적, 기술적 해결책들 및 장점들을 보다 명확하게 하기 위해, 본 개시내용은 첨부된 도면들 및 실시예들과 결합하여 아래에서 상세히 설명된다. 본 명세서에 설명된 구체적인 실시예들은 단지 개시내용을 예시하기 위해 사용되며 본 개시내용을 제한하려는 의도는 아니라는 것이 이해되어야 한다.
도 1은 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법의 애플리케이션 환경을 예시하는 개략도이다. 도 1에 도시된 바와 같이, 애플리케이션 환경은 오디오-비디오 파일 합성 서버(110), 스트림 병합 서버(120), CDN(Content Delivery Network) 서버(130), 및 단말기(140)를 포함한다.
오디오-비디오 파일 합성 서버(110)는 원본 오디오-비디오 파일을 획득하고, 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하고, 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하고, 각각 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하도록 구성된다.
도 9a에 도시된 바와 같이, 단말기는 시스템 버스로 연결되는 프로세서, 비휘발성 저장 매체, 메모리 및 네트워크 인터페이스, 사운드 수집 디바이스, 디스플레이 스크린, 확성기, 및 입력 디바이스를 포함한다. 단말기의 비휘발성 저장 매체는 운영 체제를 저장한다. 단말기의 프로세서는 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법을 구현하도록 구성된다. 단말기의 디스플레이 스크린은 액정 디스플레이 스크린(liquid crystal display screen) 또는 E-잉크 디스플레이 스크린(E-Ink display screen)일 수 있다. 입력 디바이스는 디스플레이 스크린을 덮는 터치 레이어 혹은 버튼, 단말기의 인클로저 상에 배치되는 트랙볼 혹은 트랙패드, 또는 외부 키보드, 트랙 패드 혹은 마우스 중 어느 것일 수 있다. 단말기는 모바일 폰, 태블릿 컴퓨터 또는 개인 휴대 정보 단말기(personal digital assistant)일 수 있다. 본 기술 분야의 통상의 기술자들은 도 9a에서 도시된 구조는 단지 본 출원과 관련된 구조의 부분의 블록도일 뿐이며 본 개시내용의 요지가 적용되는 단말기에 대한 제한을 형성하지 않는다는 것을 이해할 수 있을 것이고, 구체적인 단말기는 도면에 도시된 것보다 많거나 적은 구성요소들을 포함할 수 있거나 또는 일부 구성요소들을 결합할 수 있거나, 또는 구성요소들의 상이한 레이아웃을 가질 수 있다.
도 9b에 도시된 바와 같이, 서버는 시스템 버스로 연결되는 프로세서, 비휘발성 저장 매체, 및 메모리 및 네트워크 인터페이스를 포함한다. 서버의 비휘발성 저장 매체는 운영 체제 및 오디오-비디오 파일 데이터들이 저장된 데이터베이스 등을 저장한다. 서버의 프로세서는 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법을 수행하도록 구성된다. 서버의 네트워크 인터페이스는 네트워크 연결을 통해 외부 단말기와 통신하도록 구성된다. 서버는 독립 서버 또는 다수의 서버로 이루어진 서버 클러스터에 의해 구현될 수 있다. 본 기술 분야의 통상의 기술자들은 도 9b에서 도시된 구조는 단지 본 출원과 관련된 구조의 부분의 블록도일 뿐이고 본 개시내용의 요지가 적용되는 서버에 대한 제한을 형성하지 않는다는 것을 이해할 수 있을 것이다. 구체적인 서버는 도면에 도시된 것보다 많거나 적은 구성요소들을 포함할 수 있거나, 또는 일부 구성요소들을 결합하거나, 또는 구성요소들의 상이한 레이아웃을 가질 수 있다.
도 2는 실시예에서 상이한 코드 레이트들을 갖는 다수의 오디오-비디오 파일을 합성하는 프로세스를 예시하는 개략도이다. 도 2에 도시된 바와 같이, 오디오 프레임들은 오디오 파일(220)을 획득하기 위해 원본 오디오-비디오 파일(210)로부터 추출되고, 비디오 프레임들은 비디오 파일(230)을 획득하기 위해 추출되고, 비디오 파일(230)은 트랜스코딩된 비디오 파일(240)로 트랜스코딩(코드 레이트는 감소됨)되고, 그 다음에 트랜스코딩된 비디오 파일(240)과 오디오 파일(220)은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들(250)로 합성된다.
스트림 병합 서버(120)는 FLV(Flash Video) 스트림 병합 서버(122), TS(Transport Stream) 스트림 병합 서버(124) 등을 포함할 수 있다. 스트림 병합은 오디오 스트림과 비디오 스트림을 FLV, TS 또는 다른 포맷들의 스트림으로 합성하고, 합성된 스트림을 출력하는 것을 지칭한다. 스트리밍 미디어 포맷 FLV는 Flash MX의 출시로 개발된 새로운 비디오 포맷이고; 이러한 새로운 비디오 포맷은 주로 웹 페이지 재생에 적용되며 개인용 컴퓨터, 안드로이드 모바일 폰 등에 의해 지원될 수 있다. TS의 전체 이름은 MPEG2-TS이며 이는 안드로이드 시스템 4.0+ 및 IOS 시스템에 의해 지원될 수 있다.
스트림 병합 서버(120)는 오디오-비디오 파일 합성 서버로부터 상이한 코드 레이트들을 갖는 오디오-비디오 파일들을 획득하고, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여 각각의 비디오 스트림들을 형성하고, CDN 서버(130)로 상이한 비디오 스트림들을 푸시하도록 구성된다.
FLV 스트림 병합 서버(122)는 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여 각각의 비디오 스트림들을 스트리밍 미디어 포맷으로 형성하도록 구성된다.
TS 스트림 병합 서버(124)는 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여 각각의 TS 비디오 스트림들을 형성하도록 구성된다.
CDN 서버(130)들은 다양한 위치들에 걸쳐 분산되고 사용자에게 FLV 비디오 스트림들 및 TS 비디오 스트림들을 제공하도록 구성된다.
단말기(140)는 FLV 비디오 스트림들 및 TS 비디오 스트림들을 CDN 서버(130)로부터 꺼내올 수 있다.
단말기(140)는 개인용 컴퓨터, 스마트폰, 태블릿 컴퓨터, 개인 휴대 정보 단말기 등일 수 있다.
도 3은 실시예에서 오디오-비디오 파일을 푸시 및 라이브 스트리밍하는 프로세스를 예시하는 개략도이다. 도 3에 도시된 바와 같이, 오디오-비디오 파일 합성 서버는 트랜스코딩되고-이후-합성된(transcoded-and-then-synthesized) 오디오-비디오 파일 내의 오디오 프레임들 및 비디오 프레임들을 FLV 스트림 병합 서버 및 TS 스트림 병합 서버로 푸시하고; FLV 스트림 병합 서버는 트랜스코딩된 오디오 프레임들 및 비디오 프레임들을 FLV 비디오 스트림으로 합성하고, FLV 비디오 스트림을 CDN 서버에게 전송하고; TS 스트림 병합 서버는 트랜스코딩된 오디오 프레임들 및 비디오 프레임들을 TS 비디오 스트림으로 합성하고, TS 비디오 스트림을 CDN 서버에게 전송하고; CDN 서버는 FLV 비디오 스트림을 개인용 컴퓨터 및 안드로이드 모바일 폰의 웹으로 푸시하고, TS 비디오 스트림을 안드로이드 4.0+ 단말기 디바이스 및 IOS 단말기 디바이스로 푸시한다. 도 3에서의 개인용 컴퓨터는 태블릿 컴퓨터, 개인 휴대 정보 단말기 등으로 대체될 수 있고, 모바일 폰은 다른 모바일 단말기들로 대체될 수 있다.
원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독한 후에, 오디오-비디오 파일 합성 서버(110)는 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하고, 각각 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하고; 그 다음에, 스트림 병합 서버는 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 오디오 프레임들 및 비디오 프레임들을 병합하여 상이한 코드 레이트들을 갖는 FLV 비디오 스트림들 및 TS 비디오 스트림들을 형성하고, FLV 비디오 스트림들 및 TS 비디오 스트림들을 사용자에게 제공하는데, 이는 그의/그녀의 바람들대로 시청하기 위해 사용자가 상이한 비디오 스트림들을 선택하기 편리하며; 이러한 방식으로, 오디오-비디오 파일을 푸시 및 라이브 스트리밍하기 위한 인적 운영 비용이 절감되고; 게다가, 다수의 단말기의 적응이 보장되고, 디바이스 및 대역폭 환경에서의 시청 요구가 충족된다. 여기서, 비디오 파일을 라이브 스트리밍하는 것은 사용자에게 비디오 스트림을 직접적으로 푸시하는 것을 의미한다.
도 4는 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법을 도시하는 흐름도이다. 도 4에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법은 도 1에서의 애플리케이션 환경에 적용된다. 도 4에 도시된 바와 같이, 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법은 다음과 같은 단계들을 포함한다.
단계 402: 원본 오디오-비디오 파일이 획득된다.
특히, 원본 오디오-비디오 파일은 라이브 스트리밍 또는 다른 라이브 방식들로 비디오 레코더에 의해 레코딩되는 고화질(high-definition) 비디오 파일일 수 있다. 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps(초당 메가 비트), 2Mbps, 3Mbps 등일 수 있다.
실시예에서, 원본 오디오-비디오 파일을 획득하는 단계는 다음을 포함한다: 반복적으로 재생되는 오디오-비디오 파일은 순환적으로 판독되고 원본 오디오-비디오 파일로 간주된다.
예를 들어, 라이브 스트리밍 서비스들의 갭, 즉, 임무수행 중인 스트리머가 없는 시간의 기간에 대해, 재생될 비디오의 콘텐츠에 대한 요구사항이 없고, 오디오-비디오 파일은 반복적으로 재생될 수 있다. 스트리머가 오프라인일 때, 비디오는 웹 운영 페이지로부터 수신된 전환 명령어에 따라 리플레이 모드로 전환될 수 있고, 비디오 파일은 리플레이 모드에서 반복적으로 재생된다.
다른 실시예들에서, 원본 오디오-비디오 파일을 획득하는 단계는 다음을 포함한다: 프로그램 가이드가 획득되고; 주어진 시점에 도달할 때, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일이 판독되고, 오디오-비디오 파일은 원본 오디오-비디오 파일로 간주된다.
예를 들어, 프로그램 가이드에 따라 고정 시간에 대응하는 비디오 파일을 재생하기 원할 경우, 먼저 오디오-비디오 파일 합성 서버를 통해 프로그램 가이드가 획득될 수 있고, 그 다음에 주어진 시점은 타이머를 사용하여 트리거되고, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일이 판독되고, 오디오-비디오 파일은 원본 오디오-비디오 파일로 간주된다.
원본 오디오-비디오 파일은 오디오-비디오 파일 합성 서버에 저장된다. 오디오-비디오 파일 합성 서버의 운영 체제는 Linux, Windows 등일 수 있다.
단계 404: 오디오 프레임들 및 비디오 프레임들이 원본 오디오-비디오 파일로부터 판독된다.
특히, 오디오 프레임들 및 비디오 프레임들이 원본 오디오-비디오 파일로부터 판독된 후에, 오디오 프레임들 및 비디오 프레임들은 서로 구별될 수 있도록 마킹되는데, 즉, 오디오 프레임들을 식별하기 위해 제1 식별자가 사용되고, 비디오 프레임들을 식별하기 위해 제2 식별자가 사용되고; 예를 들어, 제1 식별자는 1이고, 제2 식별자는 0이지만, 이에 한정되는 것은 아니다.
단계 406: 비디오 프레임들이 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩된다.
특히, 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps(초당 메가 비트), 2Mbps, 3Mbps 등일 수 있고; 트랜스코딩된 비디오 파일의 코드 레이트는 1024kbps(초당 킬로 비트), 800kbps, 480kbps, 360kbps 등일 수 있지만, 이에 한정되는 것은 아니다.
비디오 코드 레이트는 단위 시간에 전송되는 데이터 비트들의 수를 지칭하며, 이것의 단위는 kbps(초당 킬로 비트)이다. 비디오 트랜스코딩은 상이한 하드웨어 및 소프트웨어 재생 환경들에 그것을 적응시키기 위해 비디오의 코드 레이트 및 해상도를 줄이는 것을 지칭한다. 해상도는 이미지에서 데이터 볼륨을 측정하기 위한 파라미터이며 일반적으로 인치당 픽셀(들)(ppi(s)), 즉, 수평 및 수직 방향에서 유효한 픽셀(들)로 표현되고; 윈도우가 작을 때, ppi 값은 높고, 이미지는 선명하고; 윈도우가 클 때, 윈도우를 채우기 위한 그렇게 많은 유효한 픽셀이 없기 때문에, ppi 값은 감소되고, 이미지는 블러링된다.
X264 기반의 자체-최적화된 인코더는 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하기 위해 사용된다. X264 기반 인코더는 비디오 서비스 시나리오에 대하여 이미지 품질을 최적화하고, 알고리즘 CPU 및 메모리 소모를 최적화하여, 따라서 동일한 코드 레이트에서 비교적 높은 트랜스코딩 효율, 더 높은 속도, 더 높은 화질을 야기한다.
단계 408: 상이한 코드 레이트들을 갖는 비디오 프레임들은 오디오 프레임과 함께 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 각각 합성된다.
특히, 각각의 프레임이 판독될 때, 각각의 프레임에 대응하는 정보는 트랜스코딩된 오디오-비디오 파일에 기입된다. 대응하는 정보는 오디오-비디오 유형 식별자, 디코딩 타임스탬프, 디스플레이 타임스탬프, 그것이 키 프레임인지 여부, 코드 레이트 등을 포함한다. 오디오-비디오 유형 식별자는 오디오 프레임들 또는 비디오 프레임들을 식별하기 위한 식별자이고; 예를 들어, 제1 식별자는 오디오 프레임들을 식별하고, 제2 식별자는 비디오 프레임들을 식별한다.
단계 410: 오디오 프레임들 및 비디오 프레임들은 각각 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 추출되어 각각의 비디오 스트림들을 형성한다.
본 실시예에서, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 오디오 프레임들 및 비디오 프레임들을 별도로 추출하는 단계는 다음을 포함한다: 상이한 코드 레이트를 갖는 오디오-비디오 파일들로부터 오디오 프레임들 및 비디오 프레임들은 별도로 추출되어 각각의 비디오 스트림들을 스트리밍 미디어 포맷 및 고화질 비디오 패키지 포맷으로 형성한다.
특히, 스트리밍 미디어 포맷의 비디오 스트림은 FLV 비디오 스트림일 수 있고, 고화질 비디오 패키지 포맷의 비디오 스트림은 TS 비디오 스트림일 수 있다. 오디오 프레임들 및 비디오 프레임들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 별도로 추출되고 FLV 스트림 병합 서버에 의해 상이한 코드 레이트들을 갖는 FLV 비디오 스트림들로 합성되며; 오디오 프레임들 및 비디오 프레임들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 별도로 추출되고 TS 스트림 병합 서버에 의해 상이한 코드 레이트들을 갖는 TS 비디오 스트림들로 합성된다.
예를 들어, 트랜스코딩 이후의 코드 레이트들이 각각 800kbps 및 480kbps일 경우, 스트림 병합 이후의 비디오 스트림은 800kbps의 FLV 비디오 스트림, 480kbps의 FLV 비디오 스트림, 800kbps의 TS 비디오 스트림, 및 480kbps의 TS 비디오 스트림일 수 있다.
단계 412: 상이한 비디오 스트림들이 푸시된다.
특히, 상이한 비디오 스트림들은 CDN 서버로 푸시되고, 그 다음, CDN 서버에 의해 다양한 상이한 단말기들로 푸시되어, 사용자가 그의/그녀의 바람들대로 상이한 코드 레이트들을 갖는 비디오 스트림들 중 하나를 선택하게 한다. 각각의 비디오 스트림은 URL(Uniform Resource Locator)에 대응한다. 비디오 스트림의 URL은 선택을 위해 사용자에게 푸시된다.
게다가, 각각의 비디오 스트림에 대해, 고유 비디오 스트림 식별자를 비디오 스트림에 할당하는 것이 가능하고, 그 다음에 비디오 스트림 식별자들과 URL들 사이에 대응하는 관계가 정립되고, URL들이 사용자에게 푸시된다.
위에서 설명된 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법에서, 원본 오디오-비디오 파일은 트랜스코딩되고, 트랜스코딩된 오디오 및 비디오 파일들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성되고, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들은 상이한 코드 레이트들을 갖는 비디오 스트림들로 스트림-합성(stream-synthesized)되고, 상이한 코드 레이트들을 갖는 비디오 스트림들은 다양한 상이한 단말기들로 푸시되어, 따라서 파일들의 라이브 스트리밍에서의 개입에 대한 인건비를 절약하고, 상호작용에 대한 비용을 절감하고, 상이한 디바이스들 및 대역폭들의 요구사항들을 충족하고, 비디오 파일의 라이브 스트리밍의 유창성(fluency)을 향상시킨다.
도 5는 또 다른 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법을 도시하는 흐름도이다. 도 5에서 도시된 바와 같이, 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법은 다음과 같은 단계들을 포함한다.
단계 502: 원본 오디오-비디오 파일이 획득된다.
특히, 원본 오디오-비디오 파일은 라이브 스트리밍 또는 다른 라이브 방식들로 비디오 레코더에 의해 레코딩되는 고화질 비디오 파일일 수 있다. 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps(초당 메가 비트), 2Mbps, 3Mbps 등일 수 있다.
실시예에서, 원본 오디오-비디오 파일을 획득하는 단계는 다음을 포함한다: 반복적으로 재생되는 오디오-비디오 파일이 순환적으로 판독되고 원본 오디오-비디오 파일로 간주된다.
예를 들어, 라이브 스트리밍 서비스의 갭, 즉, 임무수행 중인 스트리머가 없는 시간의 기간에 대해, 재생될 비디오의 콘텐츠에 대한 요구사항이 없고, 오디오-비디오 파일은 반복적으로 재생될 수 있다. 스트리머가 오프라인일 때, 비디오는 웹 운영 페이지로부터 수신된 전환 명령어에 따라 리플레이 모드로 전환될 수 있고, 비디오 파일은 리플레이 모드에서 반복적으로 재생된다.
다른 실시예들에서, 원본 오디오-비디오 파일을 획득하는 단계는 다음을 포함한다: 프로그램 가이드가 획득되고; 주어진 시점에 도달할 때, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일이 판독되고, 오디오-비디오 파일은 원본 오디오-비디오 파일로 간주된다.
예를 들어, 프로그램 가이드에 따라 고정 시간에 대응하는 비디오 파일을 재생하기 원할 경우, 먼저 오디오-비디오 파일 합성 서버를 통해 프로그램 가이드가 획득될 수 있고, 그 다음에 주어진 시점은 타이머를 사용하여 트리거되고, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일이 판독되고, 오디오-비디오 파일은 원본 오디오-비디오 파일로 간주된다.
단계 504: 오디오 프레임들 및 비디오 프레임들이 원본 오디오-비디오 파일로부터 판독된다.
특히, 오디오 프레임들 및 비디오 프레임들이 원본 오디오-비디오 파일로부터 판독된 후에, 오디오 프레임들 및 비디오 프레임들은 서로 구별될 수 있도록 마킹되는데, 즉, 오디오 프레임들을 식별하기 위해 제1 식별자가 사용되고, 비디오 프레임들을 식별하기 위해 제2 식별자가 사용되고; 예를 들어, 제1 식별자는 1이고, 제2 식별자는 0이지만, 이에 한정되는 것은 아니다.
단계 506: 비디오 프레임들이 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩된다.
특히, 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps(초당 메가 비트), 2Mbps, 3Mbps 등일 수 있고; 트랜스코딩된 비디오 파일의 코드 레이트는 1024kbps(초당 킬로 비트), 800kbps, 480kbps, 360kbps 등일 수 있지만, 이에 한정되는 것은 아니다.
단계 508: 상이한 코드 레이트들을 갖는 비디오 프레임들이 오디오 프레임과 함께 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 각각 합성된다.
단계 510: 상이한 코드 레이트들을 갖는 오디오-비디오 파일들이 미리 설정된 파일 명명 규칙에 따라 명명된다.
특히, 미리 설정된 파일 명명 규칙은 파일 이름, 트랜스코딩 이후의 코드 레이트, 접미사(suffix) 등을 포함할 수 있는데, 이는 동일한 비디오 파일에 대해 상이한 코드 레이트들을 갖는 비디오 파일들을 구별하기 위해 사용된다.
단계 512: 오디오-비디오 파일이 파일 명명 규칙에 따라 순환적으로 판독되고; 각각의 오디오-비디오 파일의 오디오 프레임들 및 비디오 프레임들이 추출되고 각각의 오디오-비디오 파일의 오디오 프레임들 및 비디오 프레임들이 각각의 비디오 스트림들로 합성되며, 각각의 비디오 스트림은 URL에 대응한다.
단계 514: 상이한 비디오 스트림들이 푸시된다.
특히, 상이한 비디오 스트림들이 CDN 서버로 푸시되고, 그 다음에, CDN 서버에 의해 다양한 상이한 단말기들로 푸시되어, 사용자가 그의/그녀의 바람들대로 상이한 코드 레이트들을 갖는 비디오 스트림들 중 하나를 선택하게 한다. 각각의 비디오 스트림은 URL에 대응한다. 비디오 스트림들의 URL들은 선택을 위해 사용자에게 푸시된다.
게다가, 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법이 스트리머의 룸에 적용될 때, 스트리머의 룸 넘버와 오디오-비디오 파일 사이에 대응하는 관계를 정립하고, 트랜스코딩된 오디오-비디오 파일을 스트리머의 대응하는 룸 넘버에 푸시하는 것이 또한 가능하다.
위에서 설명된 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법에서, 원본 오디오-비디오 파일은 트랜스코딩되고, 트랜스코딩된 오디오 및 비디오 파일들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성되고, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들은 상이한 코드 레이트들을 갖는 비디오 스트림들로 스트림-합성되고, 상이한 코드 레이트들을 갖는 비디오 스트림들은 다양한 상이한 단말기들로 푸시되어, 따라서 파일들의 라이브 스트리밍에서의 개입에 대한 인건비를 절약하고, 상호작용에 대한 비용을 절감하고, 상이한 디바이스들 및 대역폭들의 요구사항들을 충족하고, 비디오 파일의 라이브 스트리밍의 유창성을 향상시킨다. 상이한 코드 레이트들을 갖는 오디오-비디오 파일들은 파일 명명 규칙에 따라 구별되고, 따라서 간단하고 편리하게 식별될 수 있다.
도 6은 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 디바이스의 블록도이다. 도 6에 도시된 바와 같이, 오디오-비디오 파일을 라이브 스트리밍하기 위한 디바이스는 획득 모듈(610), 판독 모듈(620), 트랜스코딩 모듈(630), 합성 모듈(640), 스트림 병합 모듈(650), 및 푸싱 모듈(660)을 포함한다.
획득 모듈(610)은 원본 오디오-비디오 파일을 획득하도록 구성된다.
특히, 원본 오디오-비디오 파일은 라이브 스트리밍 또는 다른 라이브 방식으로 비디오 레코더에 의해 레코딩되는 고화질 비디오 파일일 수 있다. 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps, 2Mbps, 3Mbps 등일 수 있다.
실시예에서, 획득 모듈(610)은 반복적으로 재생되는 오디오-비디오 파일을 순환적으로 판독하고 반복적으로 재생된 오디오-비디오 파일을 원본 오디오-비디오 파일로 간주하도록 추가로 구성된다. 예를 들어, 라이브 스트리밍 서비스들의 갭, 즉, 임무수행 중인 스트리머가 없는 시간의 기간에 대해, 재생될 비디오의 콘텐츠에 대한 요구사항이 없고, 오디오-비디오 파일은 반복적으로 재생될 수 있다. 스트리머가 오프라인일 때, 비디오는 웹 운영 페이지로부터 수신된 전환 명령어에 따라 리플레이 모드로 전환될 수 있고, 비디오 파일은 리플레이 모드에서 반복적으로 재생된다.
획득 모듈(620)은 프로그램 가이드를 획득하고, 주어진 시점에 도달할 때, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일을 판독하고, 오디오-비디오 파일을 원본 오디오-비디오 파일로 간주하도록 추가로 구성될 수 있다.
예를 들어, 프로그램 가이드에 따라 고정 시간에 대응하는 비디오 파일을 재생하기 원할 경우, 먼저 오디오-비디오 파일 합성 서버를 통해 프로그램 가이드가 획득될 수 있고, 그 다음에 주어진 시점이 타이머를 사용하여 트리거되고, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일이 판독되고, 오디오-비디오 파일은 원본 오디오-비디오 파일로 간주된다.
원본 오디오-비디오 파일은 오디오-비디오 파일 합성 서버에 저장된다. 오디오-비디오 파일 합성 서버의 운영 체제는 Linux, Windows 등일 수 있다.
판독 모듈(620)은 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하도록 구성된다. 특히, 오디오 프레임들 및 비디오 프레임들이 원본 오디오-비디오 파일로부터 판독된 후에, 오디오 프레임들 및 비디오 프레임들은 서로 구별될 수 있도록 마킹되는데, 즉, 오디오 프레임들을 식별하기 위해 제1 식별자가 사용되고, 비디오 프레임들을 식별하기 위해 제2 식별자가 사용되고; 예를 들어, 제1 식별자는 1이고, 제2 식별자는 0이지만, 이에 한정되는 것은 아니다.
트랜스코딩 모듈(630)은 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하도록 구성된다. 특히, 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps, 2Mbps, 3Mbps 등일 수 있고; 트랜스코딩된 비디오 파일의 코드 레이트는 1024kbps, 800kbps, 480kbps, 360kbps 등일 수 있지만, 이에 한정되는 것은 아니다.
합성 모듈(640)은 각각 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하도록 구성된다.
특히, 각각의 프레임이 판독될 때, 각각의 프레임의 대응하는 정보는 트랜스코딩된 오디오-비디오 파일에 기입된다. 대응하는 정보는 오디오-비디오 유형 식별자, 디코딩 타임스탬프, 디스플레이 타임스탬프, 그것이 키 프레임인지 여부, 코드 레이트 등을 포함한다. 오디오-비디오 유형 식별자는 오디오 프레임들 및 비디오 프레임들을 식별하기 위한 식별자이고; 예를 들어, 제1 식별자는 오디오 프레임들을 식별하고, 제2 식별자는 비디오 프레임들을 식별한다.
스트림 병합 모듈(650)은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 오디오 프레임들 및 비디오 프레임들을 별도로 추출하여 각각의 비디오 스트림들을 형성하도록 구성된다.
본 실시예에서, 스트림 병합 모듈(650)은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 오디오 프레임들 및 비디오 프레임들을 별도로 추출하여 각각의 비디오 스트림들을 스트리밍 미디어 포맷 및 고화질 비디오 패키지 포맷으로 형성하도록 구성된다.
특히, 스트리밍 미디어 포맷의 비디오 스트림은 FLV 비디오 스트림일 수 있고, 고화질 비디오 패키지 포맷의 비디오 스트림은 TS 비디오 스트림일 수 있다. 오디오 프레임들 및 비디오 프레임들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 별도로 추출되고 FLV 스트림 병합 서버에 의해 상이한 코드 레이트들을 갖는 FLV 비디오 스트림들로 합성되고; 오디오 프레임들 및 비디오 프레임들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 별도로 추출되고 TS 스트림 병합 서버에 의해 상이한 코드 레이트들을 갖는 TS 비디오 스트림들로 합성된다.
예를 들어, 트랜스코딩 이후의 코드 레이트들이 각각 800kbps 및 480kbps일 경우, 스트림 병합 이후의 비디오 스트림은 800kbps의 FLV 비디오 스트림, 480kbps의 FLV 비디오 스트림, 800kbps의 TS 비디오 스트림, 및 480kbps의 TS 비디오 스트림일 수 있다.
푸싱 모듈(660)은 상이한 비디오 스트림들을 푸시하도록 구성된다.
특히, 상이한 비디오 스트림들이 CDN 서버로 푸시되고, 그 다음에, CDN 서버에 의해 다양한 상이한 단말기들로 푸시되어, 사용자가 그의/그녀의 바람들대로 상이한 코드 레이트들을 갖는 비디오 스트림들을 선택하게 한다. 각각의 비디오 스트림은 URL에 대응한다. 비디오 스트림들의 URL들은 선택을 위해 사용자에게 푸시된다.
게다가, 각각의 비디오 스트림에 대해, 고유 비디오 스트림 식별자를 비디오 스트림에 할당하는 것이 가능하고, 그 다음에 비디오 스트림 식별자들과 URL들 사이에 대응하는 관계가 정립되고, URL들이 사용자에게 푸시된다.
위에서 설명된 오디오-비디오 파일을 라이브 스트리밍하기 위한 디바이스에서, 원본 오디오-비디오 파일이 트랜스코딩되고, 트랜스코딩된 오디오 및 비디오 파일들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성되고, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들은 상이한 코드 레이트들을 갖는 비디오 스트림들로 스트림-합성되고, 상이한 코드 레이트들을 갖는 비디오 스트림들은 다양한 상이한 단말기들로 푸시되어, 따라서 파일들의 라이브 스트리밍에서의 개입에 대한 인건비를 절약하고, 상호작용에 대한 비용을 절감하고, 상이한 디바이스들 및 대역폭들의 요구사항들을 충족하고, 비디오 파일의 라이브 스트리밍의 유창성(fluency)을 향상시킨다.
도 7은 또 다른 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 디바이스의 블록도이다. 도 7에 도시된 바와 같이, 오디오-비디오 파일을 라이브 스트리밍하기 위한 디바이스는 획득 모듈(610), 판독 모듈(620), 트랜스코딩 모듈(630), 합성 모듈(640), 스트림 병합 모듈(650), 및 푸싱 모듈(660) 뿐만 아니라, 명명 모듈(670)을 추가로 포함한다.
명명 모듈(670)은 상이한 코드 레이트들을 갖는 비디오 프레임들이 오디오 프레임들과 함께 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 별도로 합성된 후에, 미리 설정된 파일 명명 규칙에 따라 상이한 코드 레이트를 갖는 오디오-비디오 파일들을 명명하도록 구성된다.
특히, 미리 설정된 파일 명명 규칙은 동일한 비디오 파일에 대해 상이한 코드 레이트들을 갖는 비디오 파일들을 구별하기 위해 사용되는 파일 이름, 트랜스코딩 이후의 코드 레이트, 접미사(suffix) 등을 포함할 수 있다.
스트림 병합 모듈(650)은 파일 명명 규칙에 따라 오디오-비디오 파일을 순환적으로 판독하고, 각각의 오디오-비디오 파일의 오디오 프레임들 및 비디오 프레임들을 추출하고 추출된 오디오 프레임들 및 비디오 프레임들을 각각의 비디오 스트림들로 합성하도록 추가로 구성되며, 각각의 비디오 스트림은 URL에 대응한다.
상이한 코드 레이트들을 갖는 오디오-비디오 파일들은 파일 명명 규칙에 따라 구별되고, 따라서 간단하고 편리하게 식별될 수 있다.
도 8은 실시예에서 오디오-비디오 파일을 라이브 스트리밍하기 위한 시스템의 블록도이다. 도 8에 도시된 바와 같이, 오디오-비디오 파일을 라이브 스트리밍하기 위한 시스템은 오디오-비디오 파일 합성 서버(810), 스트림 병합 서버(820), 및 CDN 서버(830)를 포함한다. 이 실시예의 상세한 설명에 대해서는 도 1에 대한설명을 참조한다.
오디오-비디오 파일 합성 서버(810)는 원본 오디오-비디오 파일을 획득하고, 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하고, 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하고, 상이한 코드 레이트들을 갖는 비디오 프레임들과 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하도록 구성된다.
특히, 원본 오디오-비디오 파일은 라이브 스트리밍 또는 다른 라이브 방식들로 비디오 레코더에 의해 레코딩되는 고화질 비디오 파일일 수 있다. 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps, 2Mbps, 3Mbps 등일 수 있다.
실시예에서, 오디오-비디오 파일 합성 서버(810)는 반복적으로 재생되는 오디오-비디오 파일을 순환적으로 판독하고 반복적으로 재생되는 오디오-비디오 파일을 원본 오디오-비디오 파일로 간주하도록 추가로 구성된다. 예를 들어, 라이브 스트리밍 서비스의 갭, 즉, 임무수행 중인 스트리머가 없는 시간의 기간에 대해, 재생될 비디오의 콘텐츠에 대한 요구사항이 없고, 오디오-비디오 파일은 반복적으로 재생될 수 있다. 스트리머가 오프라인일 때, 비디오는 웹 운영 페이지로부터 수신된 전환 명령어에 따라 리플레이 모드로 전환될 수 있고, 비디오 파일은 리플레이 모드에서 반복적으로 재생된다.
다른 실시예들에서, 오디오-비디오 파일 합성 서버(810)는 프로그램 가이드를 획득하고, 주어진 시점에 도달하면, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일을 판독하고, 오디오-비디오 파일을 원본 오디오-비디오 파일로 간주하도록 추가로 구성된다. 예를 들어, 프로그램 가이드에 따라 고정 시간에 대응하는 비디오 파일을 재생하기 원할 경우, 먼저 오디오-비디오 파일 합성 서버를 통해 프로그램 가이드가 획득될 수 있고, 그 다음에 주어진 시점이 타이머를 사용하여 트리거되고, 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일이 판독되고, 오디오-비디오 파일은 원본 오디오-비디오 파일로 간주된다. 원본 오디오-비디오 파일은 오디오-비디오 파일 합성 서버에 저장된다. 오디오-비디오 파일 합성 서버의 운영 체제는 Linux, Windows 등일 수 있다.
오디오 프레임들 및 비디오 프레임들이 원본 오디오-비디오 파일로부터 판독된 후에, 오디오 프레임들 및 비디오 프레임들은 별도로 마킹되는데; 오디오 프레임들을 식별하기 위해 제1 식별자가 사용되고, 비디오 프레임들을 식별하기 위해 제2 식별자가 사용되고; 예를 들어, 제1 식별자는 1이고, 제2 식별자는 0이지만, 이에 한정되는 것은 아니다. 원본 오디오-비디오 파일 내의 비디오 파일의 코드 레이트는 1Mbps, 2Mbps, 3Mbps 등일 수 있고; 트랜스코딩된 비디오 파일의 코드 레이트는 1024kbps, 800kbps, 480kbps, 360kbps 등일 수 있지만, 이에 한정되는 것은 아니다.
비디오 코드 레이트는 단위 시간에 전송되는 데이터 비트들의 수를 지칭하며, 이것의 단위는 kbps(초당 킬로 비트)이다. 비디오 트랜스코딩은 상이한 하드웨어 및 소프트웨어 재생 환경들에 그것을 적응시키기 위해 비디오의 코드 레이트 및 해상도를 줄이는 것을 지칭한다. 해상도는 이미지에서 데이터 볼륨을 측정하기 위한 파라미터이며 일반적으로 인치당 픽셀(들)(ppi(s)), 즉, 수평 및 수직 방향에서 유효한 픽셀(들)로 표현되고; 윈도우가 작을 때, ppi 값은 높고, 이미지는 선명하고; 윈도우가 클 때, 윈도우를 채우기 위한 그렇게 많은 유효한 픽셀이 없기 때문에, ppi 값은 감소되고, 이미지는 블러링된다.
X264 기반의 자체-최적화된 인코더는 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하기 위해 사용된다. X264 기반 인코더는 비디오 서비스 시나리오에 대하여 이미지 품질을 최적화하고, 알고리즘 CPU 및 메모리 소모를 최적화하여, 따라서 동일한 코드 레이트에서 비교적 높은 트랜스코딩 효율, 더 높은 속도, 더 높은 화질을 야기한다.
각각의 프레임을 판독할 때, 오디오-비디오 파일 합성 서버(810)는 각각의 프레임의 대응하는 정보를 트랜스코딩된 오디오-비디오 파일에 기입한다. 대응하는 정보는 오디오-비디오 유형 식별자, 디코딩 타임스탬프, 디스플레이 타임스탬프, 그것이 키 프레임인지 여부, 코드 레이트 등을 포함한다. 오디오-비디오 유형 식별자는 오디오 프레임들 또는 비디오 프레임들을 식별하기 위한 식별자이고; 예를 들어, 제1 식별자는 오디오 프레임들을 식별하고, 제2 식별자는 비디오 프레임들을 식별한다.
스트림 병합 서버(820)는 상이한 코드 레이트들을 갖는 오디오-비디오 파일들을 오디오-비디오 파일 합성 서버로부터 획득하고, 상이한 코드 레이트를 갖는 오디오-비디오 파일들로부터 오디오 프레임들 및 비디오 프레임들을 별도로 추출하여 각각의 비디오 스트림들을 형성하고, 상이한 비디오 스트림들을 CDN 서버(830)로 푸시하도록 구성된다.
본 실시예에서, 스트림 병합 서버(810)는 스트리밍-미디어-포맷(streaming-media-format) 스트림 병합 서버 및 고화질-비디오-패키지-포맷(high-definition-video-package-format) 스트림 병합 서버를 포함한다.
스트리밍-미디어-포맷 스트림 병합 서버는 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 오디오 프레임들 및 비디오 프레임들을 별도로 추출하여 각각의 비디오 스트림들을 스트리밍 미디어 포맷으로 형성하도록 구성된다.
고화질-비디오-패키지-포맷 스트림 병합 서버는 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 오디오 프레임들 및 비디오 프레임들을 별도로 추출하여 각각의 비디오 스트림들을 고화질 비디오 패키지 포맷으로 형성하도록 구성된다. 스트림 병합 서버(820)는, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 스트리밍 미디어 포맷 및 고화질 비디오 패키지 포맷으로 형성하도록 구성된다.
특히, 스트리밍 미디어 포맷의 비디오 스트림은 FLV 비디오 스트림일 수 있고, 고화질 비디오 패키지 포맷의 비디오 스트림은 TS 비디오 스트림일 수 있다. 오디오 프레임들 및 비디오 프레임들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 별도로 추출되고 FLV 스트림 병합 서버로 인해 상이한 코드 레이트들을 갖는 FLV 비디오 스트림들로 합성되고; 오디오 프레임들 및 비디오 프레임들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로부터 별도로 추출되고 TS 스트림 병합 서버에 의해 상이한 코드 레이트들에서 TS 비디오 스트림들로 합성된다.
예를 들어, 트랜스코딩 이후의 코드 레이트들이 각각 800kbps 및 480kbps일 경우, 스트림 병합 이후의 비디오 스트림은 800kbps의 FLV 비디오 스트림, 480kbps의 FLV 비디오 스트림, 800kbps의 TS 비디오 스트림, 및 480kbps의 TS 비디오 스트림일 수 있다.
CDN 서버(830)는 상이한 비디오 스트림들을 상이한 단말기들로 푸시하도록 구성된다. 단말기는 개인용 컴퓨터, 스마트폰, 태블릿 컴퓨터, 개인 휴대 정보 단말기 등일 수 있다. CDN 서버(830)는 FLV 비디오 스트림을 개인용 컴퓨터 및 안드로이드 시스템을 갖는 단말기의 웹으로 푸시하고, TS 비디오 스트림을 IOS 시스템을 갖는 단말기 또는 안드로이드 4.0+ 시스템을 갖는 단말기로 푸시한다. 오디오-비디오 파일 합성 서버(810)는 상이한 코드 레이트들을 갖는 비디오 프레임들이 오디오 프레임들과 함께 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 각각 합성된 후에, 미리 설정된 명명 규칙에 따라 상이한 코드 레이트들을 갖는 오디오-비디오 파일들을 명명하고, 파일 명명 규칙에 따라 오디오-비디오 파일을 순환적으로 판독하고, 각각의 오디오-비디오 파일의 오디오 프레임들 및 비디오 프레임들을 추출하고 각각의 오디오-비디오 파일의 오디오 프레임들 및 비디오 프레임들을 각각의 비디오 스트림들로 합성하도록 추가로 구성되며, 각각의 비디오 스트림은 URL에 대응한다.
실시예에서, CDN 서버(830)는 각각의 비디오 스트림에 대응하는 URL을 사용자에게 푸시하도록 추가로 구성된다.
실시예에서, CDN 서버(830)는 스트리머의 룸 넘버와 오디오-비디오 파일 사이에 대응하는 관계를 정립하고, 트랜스코딩된 오디오-비디오 파일을 스트리머의 대응하는 룸 넘버에 푸시하도록 추가로 구성된다.
위에서 설명된 오디오-비디오 파일을 라이브 스트리밍하기 위한 시스템에서, 원본 오디오-비디오 파일이 트랜스코딩되고, 트랜스코딩된 오디오 및 비디오 파일들은 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성되고, 상이한 코드 레이트들을 갖는 오디오-비디오 파일들은 상이한 코드 레이트들을 갖는 비디오 스트림들로 스트림-합성되고, 상이한 코드 레이트들을 갖는 비디오 스트림들은 다양한 상이한 단말기들로 푸시되어, 따라서 파일들의 라이브 스트리밍에서의 개입에 대한 인건비를 절약하고, 상호작용에 대한 비용을 절감하고, 상이한 디바이스들 및 대역폭들의 요구사항들을 충족하고, 비디오 파일의 라이브 스트리밍의 유창성을 향상시킨다.
본 기술 분야의 통상의 기술자들은 방법의 실시예들에서의 흐름의 전부 또는 일부가 컴퓨터 프로그램을 통해 관련 하드웨어에게 명령함으로써 완료될 수 있다는 것을 이해할 수 있다. 이 프로그램은 비휘발성 컴퓨터-판독가능 저장 매체에 저장될 수 있고; 프로그램이 실행될 때, 방법의 실시예들의 흐름이 포함될 수 있다. 여기서, 저장 매체는 자기 디스크, 콤팩트 디스크, ROM(Read-Only Memory) 등일 수 있다.
위의 실시예들은 본 개시내용의 몇몇의 실시예들을 표현할 뿐이며, 그 설명은 비교적 구체적이고 상세하지만; 위의 실시예들은 본 개시내용의 범위를 한정하는 것으로 이해될 수 없다. 본 개시내용의 개념에서 벗어나지 않는 것을 전제로, 본 기술 분야의 통상의 기술자들은 또한 본 개시내용의 범위에 있는 다수의 수정 및 개선을 실시할 수 있음을 나타내야 한다. 그래서, 본 개시 내용의 범위는 첨부된 청구범위에 의해서만 한정된다.

Claims (21)

  1. 오디오-비디오 파일을 라이브 스트리밍하기 위한 방법으로서,
    원본 오디오-비디오 파일을 획득하는 단계;
    상기 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하는 단계;
    상기 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하는 단계;
    각각 상이한 코드 레이트를 갖는 상기 비디오 프레임들과 상기 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하는 단계;
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계; 및
    상이한 비디오 스트림들을 푸시하는 단계
    를 포함하며,
    각각 상이한 코드 레이트들을 갖는 상기 비디오 프레임들과 상기 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성한 후에, 상기 방법은,
    미리 설정된 파일 명명 규칙에 따라 상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들을 명명하는 단계; 및
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계 - 이 단계는, 상기 파일 명명 규칙에 따라 상기 오디오-비디오 파일들을 순환적으로 판독하는 단계, 및 상기 오디오 프레임들 및 비디오 프레임들을 추출하고 상기 오디오 프레임들 및 비디오 프레임들을 상기 각각의 비디오 스트림들로 합성하는 단계를 포함하며, 상기 비디오 스트림들 각각은 URL(Uniform Resource Locator)에 대응함 -
    를 추가로 포함하는 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 원본 오디오-비디오 파일을 획득하는 단계는,
    반복적으로 재생되는 오디오-비디오 파일을 순환적으로 판독하는 단계, 및 반복적으로 재생되는 상기 오디오-비디오 파일을 상기 원본 오디오-비디오 파일로 간주하는 단계
    를 포함하는 방법.
  4. 제1항에 있어서, 상기 원본 오디오-비디오 파일을 획득하는 단계는,
    프로그램 가이드를 획득하는 단계; 및
    주어진 시점에 도달할 때, 상기 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일을 판독하고, 상기 오디오-비디오 파일을 상기 원본 오디오-비디오 파일로 간주하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서, 상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계는,
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 스트리밍 미디어 포맷 및 고화질 비디오 패키지 포맷으로 형성하는 단계
    를 포함하는 방법.
  6. 제1항에 있어서,
    상기 비디오 스트림들 중 각각의 하나에 각각 대응하는 상기 URL들을 사용자에게 푸시하는 단계
    를 추가로 포함하는 방법.
  7. 제1항에 있어서,
    스트리머의 룸 넘버와 상기 오디오-비디오 파일 사이에 대응하는 관계를 정립하는 단계; 및
    트랜스코딩된 오디오-비디오 파일들을 상기 스트리머의 대응하는 룸 넘버에 푸시하는 단계
    를 추가로 포함하는 방법.
  8. 서버로서, 저장 매체 및 프로세서를 포함하고, 상기 저장 매체는 그 안에 저장된 명령어들을 갖고, 상기 명령어들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    원본 오디오-비디오 파일을 획득하는 단계;
    상기 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하는 단계;
    상기 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하는 단계;
    각각 상이한 코드 레이트들을 갖는 상기 비디오 프레임들과 상기 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하는 단계;
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계; 및
    상이한 비디오 스트림들을 푸시하는 단계
    를 수행하게 하며,
    각각 상이한 코드 레이트들을 갖는 상기 비디오 프레임들과 상기 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성한 후에, 상기 프로세서는,
    미리 설정된 파일 명명 규칙에 따라 상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들을 명명하는 단계; 및
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계 - 이 단계는, 상기 파일 명명 규칙에 따라 상기 오디오-비디오 파일을 순환적으로 판독하는 단계, 및 상기 오디오 프레임들 및 비디오 프레임들을 추출하고 상기 오디오 프레임들 및 비디오 프레임들을 상기 각각의 비디오 스트림들로 합성하는 단계를 포함하며, 상기 비디오 스트림들 각각은 URL(Uniform Resource Locator)에 대응함 -
    를 수행하도록 추가로 구성되는 서버.
  9. 삭제
  10. 제8항에 있어서, 상기 원본 오디오-비디오 파일을 획득하는 단계는,
    반복적으로 재생되는 상기 오디오-비디오 파일을 순환적으로 판독하는 단계, 및 반복적으로 재생되는 상기 오디오-비디오 파일을 상기 원본 오디오-비디오 파일로 간주하는 단계
    를 포함하는 서버.
  11. 제8항에 있어서, 상기 원본 오디오-비디오 파일을 획득하는 단계는,
    프로그램 가이드를 획득하는 단계; 및
    주어진 시점에 도달할 때, 상기 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일을 판독하고, 상기 오디오-비디오 파일을 상기 원본 오디오-비디오 파일로 간주하는 단계
    를 포함하는 서버.
  12. 제8항에 있어서, 상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하는 단계는,
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 스트리밍 미디어 포맷 및 고화질 비디오 패키지 포맷으로 형성하는 단계
    를 포함하는 서버.
  13. 제8항에 있어서, 상기 프로세서는,
    상기 비디오 스트림들 중 각각의 하나에 각각 대응하는 상기 URL들을 사용자에게 푸시하는 단계
    를 수행하도록 추가로 구성되는 서버.
  14. 제8항에 있어서, 상기 프로세서는,
    스트리머의 룸 넘버와 상기 오디오-비디오 파일 사이에 대응하는 관계를 정립하는 단계; 및
    트랜스코딩된 오디오-비디오 파일들을 상기 스트리머의 대응하는 룸 넘버에 푸시하는 단계
    를 수행하도록 추가로 구성되는 서버.
  15. 오디오-비디오 파일을 라이브 스트리밍하기 위한 시스템으로서,
    원본 오디오-비디오 파일을 획득하고, 상기 원본 오디오-비디오 파일로부터 오디오 프레임들 및 비디오 프레임들을 판독하고, 상기 비디오 프레임들을 상이한 코드 레이트들을 갖는 비디오 프레임들로 트랜스코딩하고, 각각 상이한 코드 레이트들을 갖는 상기 비디오 프레임들과 상기 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성하도록 구성되는 오디오-비디오 파일 합성 서버; 및
    상기 오디오-비디오 파일 합성 서버로부터 상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들을 획득하고, 상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 형성하고, 상이한 비디오 스트림들을 상이한 단말기들로 푸시하는 CDN(Content Delivery Network) 서버로 상이한 비디오 스트림들을 푸시하도록 구성되는 스트림 병합 서버
    를 포함하며,
    상기 오디오-비디오 파일 합성 서버는, 각각 상이한 코드 레이트들을 갖는 상기 비디오 프레임들과 상기 오디오 프레임들을 상이한 코드 레이트들을 갖는 오디오-비디오 파일들로 합성한 후에, 미리 설정된 파일 명명 규칙에 따라 상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들을 명명하고, 상기 파일 명명 규칙에 따라 상기 오디오-비디오 파일들을 순환적으로 판독하고, 상기 오디오 프레임들 및 비디오 프레임들을 추출하고 상기 오디오 프레임들 및 비디오 프레임들을 각각의 비디오 스트림들로 합성하도록 추가로 구성되며, 상기 비디오 스트림들 각각은 URL(Uniform Resource Locator)에 대응하는 시스템.
  16. 삭제
  17. 제15항에 있어서, 상기 오디오-비디오 파일 합성 서버는, 반복적으로 재생되는 오디오-비디오 파일을 순환적으로 판독하고, 반복적으로 재생되는 상기 오디오-비디오 파일을 상기 원본 오디오-비디오 파일로 간주하도록 추가로 구성되는 시스템.
  18. 제15항에 있어서, 상기 오디오-비디오 파일 합성 서버는, 프로그램 가이드를 획득하고, 주어진 시점에 도달할 때, 상기 프로그램 가이드 내의 프로그램에 대응하는 오디오-비디오 파일을 판독하고, 상기 오디오-비디오 파일을 상기 원본 오디오-비디오 파일로 간주하도록 추가로 구성되는 시스템.
  19. 제15항에 있어서, 상기 스트림 병합 서버는,
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 스트리밍 미디어 포맷으로 형성하도록 구성되는 스트리밍-미디어-포맷(streaming-media-format) 스트림 병합 서버; 및
    상이한 코드 레이트들을 갖는 상기 오디오-비디오 파일들로부터, 각각의 오디오 프레임들 및 비디오 프레임들을 추출하여, 각각의 비디오 스트림들을 고화질 비디오 패키지 포맷으로 형성하도록 구성되는 고화질-비디오-패키지-포맷(high-definition-video-package-format) 스트림 병합 서버
    를 포함하는 시스템.
  20. 제15항에 있어서, 상기 CDN 서버는, 상기 비디오 스트림들 중 각각의 하나에 각각 대응하는 상기 URL들을 사용자에게 푸시하도록 추가로 구성되는 시스템.
  21. 제15항에 있어서, 상기 CDN 서버는, 스트리머의 룸 넘버와 상기 오디오-비디오 파일 사이에 대응하는 관계를 정립하고, 트랜스코딩된 오디오-비디오 파일들을 상기 스트리머의 대응하는 룸 넘버로 푸시하도록 추가로 구성되는 시스템.
KR1020177024380A 2015-03-03 2016-02-29 멀티미디어 파일 라이브 방송 방법, 시스템 및 서버 KR101927016B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510094319.X 2015-03-03
CN201510094319.XA CN104754366A (zh) 2015-03-03 2015-03-03 音视频文件直播方法、装置和系统
PCT/CN2016/074847 WO2016138844A1 (zh) 2015-03-03 2016-02-29 音视频文件直播方法和系统、服务器

Publications (2)

Publication Number Publication Date
KR20170109036A KR20170109036A (ko) 2017-09-27
KR101927016B1 true KR101927016B1 (ko) 2018-12-07

Family

ID=53593372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177024380A KR101927016B1 (ko) 2015-03-03 2016-02-29 멀티미디어 파일 라이브 방송 방법, 시스템 및 서버

Country Status (5)

Country Link
US (1) US10187668B2 (ko)
JP (1) JP6570646B2 (ko)
KR (1) KR101927016B1 (ko)
CN (1) CN104754366A (ko)
WO (1) WO2016138844A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104754366A (zh) * 2015-03-03 2015-07-01 腾讯科技(深圳)有限公司 音视频文件直播方法、装置和系统
CN106331847B (zh) * 2015-07-06 2019-12-03 成都鼎桥通信技术有限公司 音视频播放方法及设备
CN105392029A (zh) * 2015-11-09 2016-03-09 Tcl集团股份有限公司 一种hls点播和直播的实现方法及系统
CN105744347A (zh) * 2016-02-17 2016-07-06 四川长虹电器股份有限公司 网络媒体终端提高用户视听体验的方法
US10412390B2 (en) * 2016-07-12 2019-09-10 Mediatek Inc. Video processing system using low-cost video encoding/decoding architecture
CN106210884B (zh) * 2016-07-13 2019-02-26 腾讯科技(深圳)有限公司 视频文件的转码方法和装置
CN106169998B (zh) * 2016-07-13 2019-01-08 腾讯科技(深圳)有限公司 媒体文件的处理方法和装置
CN106385627B (zh) * 2016-09-14 2019-12-13 腾讯科技(深圳)有限公司 视频编码方法和装置
CN107426611B (zh) * 2017-05-25 2019-12-10 山大鲁能信息科技有限公司 基于视频转码的多路输出方法及系统
CN107493505B (zh) * 2017-10-18 2023-12-26 北京流金岁月科技有限公司 一种支持双音频输出的视音频转码的装置和方法
CN107948735B (zh) * 2017-12-06 2020-09-25 北京乐我无限科技有限责任公司 一种视频播放方法、装置及电子设备
CN108495141B (zh) * 2018-03-05 2021-03-19 网宿科技股份有限公司 一种音视频的合成方法及系统
CN110475125A (zh) * 2018-05-10 2019-11-19 视联动力信息技术股份有限公司 视频转码方法和装置
CN110753240B (zh) * 2018-07-24 2022-04-05 视联动力信息技术股份有限公司 一种基于视联网的转码控制方法及装置
CN108966008B (zh) * 2018-08-02 2020-08-11 腾讯科技(深圳)有限公司 直播视频回放方法及装置
CN109168063B (zh) * 2018-09-10 2021-01-26 苏宁智能终端有限公司 一种视频广告播放方法及终端
CN110149305B (zh) * 2019-04-01 2021-10-19 视联动力信息技术股份有限公司 一种基于视联网的多方播放音视频的方法和中转服务器
CN110324670B (zh) * 2019-07-30 2021-08-06 北京奇艺世纪科技有限公司 一种视频的传输方法、装置及服务器
CN110868610B (zh) * 2019-10-25 2021-11-12 富盛科技股份有限公司 流媒体传输方法、装置、服务器及存储介质
CN111510720A (zh) * 2020-04-24 2020-08-07 深圳市即构科技有限公司 实时流媒体数据的传输方法、电子装置及服务器
CN112672170A (zh) * 2020-06-18 2021-04-16 体奥动力(北京)体育传播有限公司 一种赛事视频中心化方法及系统
CN111757118B (zh) * 2020-06-29 2023-04-21 北京百度网讯科技有限公司 视频转码处理方法、装置、设备和介质
CN113747181A (zh) * 2020-08-06 2021-12-03 上海达龙信息科技有限公司 基于远程桌面的网络直播方法、直播系统及电子设备
CN112468827B (zh) * 2020-11-12 2023-02-21 鹏城实验室 视频获取方法、装置、设备及计算机可读存储介质
CN114554277B (zh) * 2020-11-24 2024-02-09 腾讯科技(深圳)有限公司 多媒体的处理方法、装置、服务器及计算机可读存储介质
CN114157886B (zh) * 2021-11-29 2023-08-08 北京航天云路有限公司 一种通过识别视频文件自动编制录播转直播epg的方法
CN114390314B (zh) * 2021-12-30 2024-06-18 咪咕文化科技有限公司 可变帧率音视频处理方法、设备及存储介质
CN115002544A (zh) * 2022-06-17 2022-09-02 中国电信股份有限公司 视频播放方法、装置、非易失性存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036759A1 (en) * 2004-08-12 2006-02-16 Microsoft Corporation Mechanism for transmitting elementary streams in a broadcast environment
US20130156105A1 (en) * 2011-12-16 2013-06-20 Apple Inc. High quality seamless playback for video decoder clients

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002262286A (ja) * 2001-03-02 2002-09-13 Canon Inc データ伝送方法、データ伝送装置、再生方法及び再生装置
JP4314574B2 (ja) * 2004-05-13 2009-08-19 日本ビクター株式会社 クライアント端末、ストリーミングサーバ、ストリーミング切り替えシステム及びストリーミング切り替え方法
JP2006197401A (ja) * 2005-01-14 2006-07-27 Sony Corp 情報処理装置および方法、並びにプログラム
JP4445906B2 (ja) * 2005-08-30 2010-04-07 Necパーソナルプロダクツ株式会社 番組配信システム
WO2007064987A2 (en) * 2005-12-04 2007-06-07 Turner Broadcasting System, Inc. (Tbs, Inc.) System and method for delivering video and audio content over a network
JP2009533961A (ja) 2006-04-10 2009-09-17 ヤフー! インコーポレイテッド クライアント及びサーバから発信されたメディア資産の編集を最適化するためのクライアント側編集アプリケーション
JPWO2008029640A1 (ja) * 2006-09-05 2010-01-21 パナソニック株式会社 低ビットレートフォーマットのビデオデータ再生に適したプレヤーにより高ビットレートフォーマットのビデオデータを再生する方法及び装置
JP5234719B2 (ja) * 2007-03-30 2013-07-10 三菱電機株式会社 映像サーバ装置
US8233527B2 (en) 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
JP5549903B2 (ja) 2008-09-14 2014-07-16 雅英 田中 コンテンツの受信装置および配信装置
CN102036102A (zh) * 2009-09-25 2011-04-27 腾讯科技(深圳)有限公司 多媒体转码系统、方法及播放多媒体的系统、方法
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
CN102957902B (zh) * 2011-08-22 2017-03-15 腾讯科技(深圳)有限公司 音视频转码参数的适配方法及装置
EP2566172A1 (en) 2011-09-02 2013-03-06 Thomson Licensing Method and apparatus for adaptive transcoding of multimedia stream
US10079710B2 (en) * 2012-02-16 2018-09-18 Brightcove, Inc. System and method for dynamic file availability during encoding
US20130243079A1 (en) * 2012-03-19 2013-09-19 Nokia Siemens Networks Oy Storage and processing savings when adapting video bit rate to link speed
CN103327401B (zh) * 2012-03-19 2016-08-03 深圳市快播科技有限公司 多媒体转码器及转码方法、多媒体播放终端
CN102724551A (zh) * 2012-06-13 2012-10-10 天脉聚源(北京)传媒科技有限公司 一种视频编码系统和方法
US8863208B2 (en) * 2012-06-18 2014-10-14 Micropower Technologies, Inc. Synchronizing the storing of streaming video
CN103873888A (zh) * 2012-12-12 2014-06-18 深圳市快播科技有限公司 一种媒体文件直播方法及直播源服务器
US9549178B2 (en) 2012-12-26 2017-01-17 Verizon Patent And Licensing Inc. Segmenting and transcoding of video and/or audio data
US9100461B2 (en) * 2013-03-15 2015-08-04 Wowza Media Systems, LLC Automatically publishing streams to multiple destinations
CN103200425B (zh) * 2013-03-29 2016-04-06 天脉聚源(北京)传媒科技有限公司 一种多媒体处理装置及方法
CN103905841B (zh) * 2014-03-18 2018-01-12 深圳市云宙多媒体技术有限公司 自适应网络带宽的多协议多播放器视频播放方法和系统
US9729611B2 (en) * 2014-10-26 2017-08-08 Cisco Technology, Inc. Method and system for ABR recording
CN104349178B (zh) * 2014-11-21 2018-02-09 赛特斯信息科技股份有限公司 实现按需实时转码和自适应码率流媒体播放的系统及方法
CN104754366A (zh) 2015-03-03 2015-07-01 腾讯科技(深圳)有限公司 音视频文件直播方法、装置和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036759A1 (en) * 2004-08-12 2006-02-16 Microsoft Corporation Mechanism for transmitting elementary streams in a broadcast environment
US20130156105A1 (en) * 2011-12-16 2013-06-20 Apple Inc. High quality seamless playback for video decoder clients

Also Published As

Publication number Publication date
KR20170109036A (ko) 2017-09-27
JP6570646B2 (ja) 2019-09-04
CN104754366A (zh) 2015-07-01
JP2018513583A (ja) 2018-05-24
US10187668B2 (en) 2019-01-22
US20170311006A1 (en) 2017-10-26
WO2016138844A1 (zh) 2016-09-09

Similar Documents

Publication Publication Date Title
KR101927016B1 (ko) 멀티미디어 파일 라이브 방송 방법, 시스템 및 서버
US9514783B2 (en) Video editing with connected high-resolution video camera and video cloud server
RU2652099C2 (ru) Устройство передачи, способ передачи, устройство приема и способ приема
CN109963162B (zh) 一种云导播系统及直播处理方法、装置
US20180165358A1 (en) Information processing apparatus and information processing method
CN112752115B (zh) 直播数据传输方法、装置、设备及介质
US10187648B2 (en) Information processing device and method
KR101296059B1 (ko) 다중­소스 멀티미디어 프레젠테이션들을 저장하기 위한 방법 및 시스템
CN103329521A (zh) 用于暂停视频流传送内容的方法、设备和计算机程序产品
JP6481206B2 (ja) 情報処理装置、コンテンツ要求方法およびコンピュータプログラム
JP2019110542A (ja) サーバ装置、クライアント装置、コンテンツ配信方法およびコンピュータプログラム
US20140281011A1 (en) System and method for replicating a media stream
CN109062930A (zh) 一种基于二维码标识视频的方法、装置及系统
WO2015007137A1 (zh) 一种会议电视终端、辅流数据接入方法及计算机存储介质
WO2018142946A1 (ja) 情報処理装置および方法
KR102090070B1 (ko) 스트리밍 서버, 클라이언트 단말 및 이를 이용한 av 라이브 스트리밍 시스템
JP6501127B2 (ja) 情報処理装置および方法
CN109600651B (zh) 文档类直播交互数据和音视频数据同步方法和系统
JP7290260B1 (ja) サーバ、端末及びコンピュータプログラム
KR20140117889A (ko) 클라이언트 장치, 서버 장치, 멀티미디어 리디렉션 시스템 및 그 방법
JPWO2014171385A1 (ja) サーバ装置、コンテンツ提供方法及びコンピュータプログラム
US10547878B2 (en) Hybrid transmission protocol
KR101603976B1 (ko) 동영상 파일 결합 방법 및 그 장치
US20240086451A1 (en) Information processing apparatus, reception apparatus, information processing method, and storage medium
CN114339309A (zh) 一种基于视频的内容添加方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant