KR20140086801A - 실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법 - Google Patents
실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법 Download PDFInfo
- Publication number
- KR20140086801A KR20140086801A KR1020130080455A KR20130080455A KR20140086801A KR 20140086801 A KR20140086801 A KR 20140086801A KR 1020130080455 A KR1020130080455 A KR 1020130080455A KR 20130080455 A KR20130080455 A KR 20130080455A KR 20140086801 A KR20140086801 A KR 20140086801A
- Authority
- KR
- South Korea
- Prior art keywords
- content
- transcoding
- user terminal
- server
- time
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000006835 compression Effects 0.000 claims description 12
- 238000007906 compression Methods 0.000 claims description 12
- 230000003139 buffering effect Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000008054 signal transmission Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234309—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/262—Content 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/26258—Content 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 for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법을 개시하고 있다. 실시간 콘텐츠 트랜스코딩 방법은 사용자 단말이 요청하는 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하는 단계, 상기 후보 콘텐츠 리스트를 상기 사용자 단말로 전송하는 단계 및 상기 사용자 단말이 선택한 정보와 대응되는 방식으로 상기 콘텐츠를 실시간으로 트랜스코딩하여 상기 사용자 단말에게 전송하는 단계를 포함한다.
Description
본 발명은 라이브 스트리밍에 관한 것으로, 보다 상세하게는 실시간 트랜스코딩을 기반으로 하는 라이브 스트리밍에 관한 것이다.
최근 들어, 통신 기술의 발달과 더불어, 이동통신 단말기, PDA, PMP, 스마트 폰 등과 같이 다양한 사용자 단말기가 개발되어 상용화되었으며, 사용자 단말기를 이용하여 사용자는 다양한 형태의 서비스를 제공받을 수 있게 되었다.
사용자 단말기를 통해 제공받는 서비스 중 멀티미디어 콘텐츠 서비스는 서버에 접속하여 동영상, 뮤직 비디오, 영화, 방송 프로그램 등을 다운로드 또는 스트리밍 받아 재생하는 것이다. 그런데, 서비스되는 멀티미디어 콘텐츠는 MP4, AVI 등 매우 다양한 포맷의 형태 및 비트 레이트(bit rate) 등의 특성을 가지고 있고, 이러한 멀티미디어 콘텐츠의 특성에 맞게 수신기에서 재생하기 위해서는 이에 맞는 코덱 등의 장치가 구비되어야 한다.
그러나, 휴대 단말기 등과 같이 CPU나 메모리 사양이 제한되는 사용자 단말기 또는 CPU나 대용량 HDD(Hard Dist Driver)와 같은 장비가 없이 동작하는 VOD 서버는 콘텐츠 서비스 제공에 여러가지 제약이 있다.
또한, 많은 양의 데이터의 실시간 처리가 곤란하고, 고화질의 멀티미디어 콘텐츠를 정상적으로 재생할 수 없는 문제도 있다.
예컨대, 멀티미디어 콘텐츠 서비스를 위한 종래의 스트리밍 방식으로 HLS(HTTP Live Streaming) 방식이 개시되어 있다. HLS 방식은 사용자가 요청하는 콘텐츠에 대해 다양한 비트 레이트의 파일들을 미리 준비해 두고, 그 중에서 현재 네트워크 상황에 맞는 파일을 전송하는 방식이다.
다만, 이러한 HLS 방식의 경우, 여러 비트 레이트의 파일들을 미리 생성해 놓아야 하므로, 대용량 데이터베이스가 없는 환경에선 적합하지 못하며, 실시간 처리를 요하는 라이브 스트리밍에서는 특히 효용성이 떨어지는 문제점이 있다.
상술한 문제점을 해결하기 위한 본 발명의 목적은 대용량 HDD가 없는 서버를 기반으로 멀티미디어 콘텐츠를 실시간으로 제공하기 위한 실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법을 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명의 실시간 콘텐츠 트랜스코딩 방법은 실시간 콘텐츠 트랜스코딩 방법은 사용자 단말이 요청하는 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하는 단계, 상기 후보 콘텐츠 리스트를 상기 사용자 단말로 전송하는 단계 및 상기 사용자 단말이 선택한 정보와 대응되는 방식으로 상기 콘텐츠를 실시간으로 트랜스코딩하여 상기 사용자 단말에게 전송하는 단계를 포함할 수 있다.
상기 트랜스코더는 서버 내에 포함되거나 또는 외부에 배치될 수 있다.
상기 트랜스코딩 단계는 상기 사용자 단말이 선택한 콘텐츠 정보와 대응되는 방식으로 실시간 트랜스코딩을 수행하도록 외부 트랜스코더에 요청하는 단계를 포함할 수 있다.
상기 후보 콘텐츠 리스트는 상기 트랜스코더가 지원할 수 있는 압축 포맷, 비트 레이트(bit rate), 출력 파일 및 파일 포맷 중 적어도 어느 하나의 정보를 포함할 수 있다.
상기 후보 콘텐츠 리스트는 상기 콘텐츠의 제공 URL(Uniform Resource Locator)을 제공하고, 상기 트랜스코딩 단계는 상기 선택된 URL에 상응하는 비트 레이트로 상기 콘텐츠를 트랜스코딩하여 전송할 수 있다.
상기 트랜스코딩 단계는 네트워크 상태를 기반으로 적응적으로 비트 레이트를 조절하면서 상기 콘텐츠를 트랜스코딩하여 전송하는 단계를 포함할 수 있다.
상기 트랜스코딩 단계는 상기 사용자 단말로부터 네트워크 상태 관련 정보를 실시간으로 수신하는 단계 및 상기 수신된 네트워크 상태 관련 정보를 현재 서비스되는 비트 레이트와 비교하여 비트 레이트를 변경하는 단계를 포함할 수 있다.
상기 트랜스코딩 단계는 상기 수신된 네트워크 상태 관련 정보를 통해 네트워크 환경 변화를 예측하는 단계, 상기 네트워크 환경 변화가 예측되는 경우, 비트 레이트의 변경을 대비하여 일정 시간 동안 재생될 콘텐츠를 미리 트랜스코딩하여 저장하는 단계 및 상기 비트 레이트가 변경되는 시점에 상기 저장된 콘텐츠를 이용하여 버퍼링 없이 상기 사용자 단말로 상기 콘텐츠를 전송하는 단계를 포함할 수 있다.
상기 실시간 콘텐트 트랜스코딩 방법은 상기 서버가 상기 외부 트랜스코더로부터 상기 트랜스코딩 관련 정보를 수신하는 단계를 더 포함할 수 있다.
상기 트랜스코딩 단계는 상기 트랜스코딩된 콘텐츠를 상기 외부 트랜스코더가 직접 상기 사용자 단말로 전송하거나 또는 상기 서버가 상기 트랜스코딩된 콘텐츠를 수신하여 상기 사용자 단말로 전송하는 단계를 포함할 수 있다.
상기 서버가 HLS(HTTP Live Streaming) 방식을 통해 상기 콘텐츠를 전송하되, 상기 콘텐츠를 시간 단위로 분할한 후 트랜스코딩하여 상기 사용자 단말로 전송할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 실시간 콘텐츠 트랜스코딩 장치는 사용자 단말이 요청하는 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하는 후보 콘텐츠 리스트 생성부, 상기 후보 콘텐츠 리스트를 상기 사용자 단말로 전송하는 후보 콘텐츠 리스트 전송부 및 상기 사용자 단말이 선택한 콘텐츠 정보와 대응되는 방식으로 실시간 트랜스코딩하여 사용자 단말에 전송하는 트랜스코딩부를 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 실시간 콘텐츠 수신 방법은 요청한 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 생성된 후보 콘텐츠 리스트를 수신하는 단계, 상기 후보 콘텐츠 리스트 중 하나에 대한 선택과 관련된 신호를 상기 서버로 전송하는 단계 및 상기 선택 관련 신호가 가리키는 정보와 대응되는 방식으로 트랜스코딩된 콘텐츠를 실시간으로 수신하는 단계를 포함할 수 있다.
상기 콘텐츠 수신 단계는 상기 트랜스코딩된 콘텐츠를 서버로부터 수신하거나 또는 외부 트랜스코더로부터 직접 수신하는 단계를 포함할 수 있다.
상기 전송 단계는 상기 사용자 단말에서 수신 및 재생할 수 있는 방식과 대응되는 트랜스코딩 관련 정보를 기반으로 상기 선택 관련 신호를 생성하거나 또는 사용자 인터페이스를 통해 입력된 정보를 기반으로 상기 선택 관련 신호를 생성하여 상기 서버로 전송하는 단계를 포함할 수 있다.
상기 후보 콘텐츠 리스트는 상기 트랜스코더가 지원할 수 있는 압축 포맷, 비트 레이트(bit rate), 출력 파일 및 파일 포맷 중 적어도 어느 하나의 정보를 포함할 수 있다.
상기 콘텐츠 수신 단계는 네트워크 상태를 기반으로 적응적으로 비트 레이트를 조절하면서 상기 콘텐츠를 수신하는 단계를 포함할 수 있다.
상기 콘텐츠 수신 단계는 상기 네트워크 상태를 모니터링하는 단계 및 상기 네트워크 상태와 관련된 정보를 실시간으로 상기 서버로 전송하는 단계를 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 실시간 콘텐츠 수신 장치는 요청한 콘텐츠에 대해 상기 콘텐츠를 트랜스코딩하는 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 생성된 후보 콘텐츠 리스트를 수신하는 리스트 수신부, 상기 후보 콘텐츠 리스트 중 하나에 대한 선택과 관련된 신호를 상기 서버로 전송하는 선택 관련 신호 전송부 및 상기 선택 관련 신호가 가리키는 콘텐츠 정보와 대응되는 방식으로 트랜스코딩된 콘텐츠를 실시간으로 수신하는 콘텐츠 수신부를 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 실시간 콘텐츠 트랜스코딩 시스템은 사용자 단말이 요청하는 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하여 상기 사용자 단말로 전송하고, 상기 사용자 단말이 선택한 콘텐츠 정보와 대응되는 방식으로 상기 콘텐츠를 실시간으로 트랜스코딩하여 상기 사용자 단말에게 전송하는 서버 및 상기 후보 콘텐츠 리스트를 수신하여 상기 후보 콘텐츠 리스트 중 하나에 대한 선택과 관련된 신호를 상기 서버로 전송하고, 상기 선택 관련 신호가 가리키는 정보와 대응되는 방식으로 트랜스코딩된 콘텐츠를 실시간으로 수신하는 사용자 단말을 포함할 수 있다.
본 발명의 실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법에 따르면, 대용량 HDD가 없는 환경에서도 사용자가 원하는 방식으로 멀티미디어 콘텐츠를 제공할 수 있게 하므로, 콘텐츠를 제공자 및 콘텐츠 이용자 모두 효율적으로 멀티미디어 서비스를 활용할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 구성을 개략적으로 나타낸 블록도,
도 2는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버와 사용자 단말 사이의 동작을 나타낸 흐름도,
도 3은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버가 제공하는 후보 콘텐츠 리스트의 일 예를 나타낸 도면,
도 4는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 후보 콘텐츠 리스트와 URL(Uniform Resourse Locator)의 연결을 설명하기 위한 도면,
도 5는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버가 네트워크 환경에 따라 비트 레이트를 조절하는 과정을 나타낸 흐름도,
도 6은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 사용자 단말의 동작을 나타낸 흐름도,
도 7은 본 발명의 일 실시예에 따른 실시간 콘텐트 트랜스코딩 방법에 적용될 수 있는 스트리밍 프로토콜을 나타낸 도면,
도 8은 본 발명의 일 실시예에 있어서, HLS 스트리밍에서의 네트워크 환경 변화에 따른 콘텐츠의 비트레이트를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버와 사용자 단말 사이의 동작을 나타낸 흐름도,
도 3은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버가 제공하는 후보 콘텐츠 리스트의 일 예를 나타낸 도면,
도 4는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 후보 콘텐츠 리스트와 URL(Uniform Resourse Locator)의 연결을 설명하기 위한 도면,
도 5는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버가 네트워크 환경에 따라 비트 레이트를 조절하는 과정을 나타낸 흐름도,
도 6은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 사용자 단말의 동작을 나타낸 흐름도,
도 7은 본 발명의 일 실시예에 따른 실시간 콘텐트 트랜스코딩 방법에 적용될 수 있는 스트리밍 프로토콜을 나타낸 도면,
도 8은 본 발명의 일 실시예에 있어서, HLS 스트리밍에서의 네트워크 환경 변화에 따른 콘텐츠의 비트레이트를 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 구성을 개략적으로 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템은 사용자 단말(10-1, 10-2, 10-3), 네트워크(20) 및 서버(30)를 포함할 수 있다. 또한, 경우에 따라 외부 트랜스코더(40)를 더 포함할 수 있다. 사용자 단말(10-1, 10-2, 10-3)은 반드시 3 개여야 하는 것은 아니고, 3개보다 적을 수도 있고, 많을 수도 있다.
도 1을 참조하면, 사용자 단말(10-1, 10-2, 10-3)은 멀티미디어 콘텐츠를 재생하는 장치로, 콘텐츠를 실시간으로 다운로드 또는 스트리밍할 수 있다. 예컨대, 다운로드를 통해 다운로드된 콘텐츠를 원하는 시간에 이용할 수도 있고, 스트리밍을 통해 실시간으로 다운로드를 수행하면서 재생을 수행할 수도 있다. 사용자 단말(10-1, 10-2, 10-3)은 PC, 휴대용 단말, 노트북, PMP, PDA, 스마트 폰 등일 수 있고, 반드시 상기한 예에 국한되는 것은 아니다.
네트워크(20)는 사용자 단말(10-1, 10-2, 10-3)과 서버(30)가 서로 데이터를 송수신하게 연결해주는 것으로, 유선 또는 무선 네트워크일 수 있다.
서버(30)는 사용자 단말로 멀티미디어 콘텐츠를 실시간으로 제공하는 장치이다. 서버(30)는 상기 콘텐츠를 저장하고 있을 공간으로 저장을 위한 구성요소를 포함할 수 있다. 다만, 이 저장소가 반드시 대용량은 아닐 수 있다. 서버(30)는 내부에 트랜스코더를 포함할 수도 있고, 또는 외부 트랜스코더(40)를 활용할 수도 있다. 즉, 트랜스코딩과 관련된 소프트웨어를 탑재하여 서버 자체적으로 트랜스코딩을 수행할 수도 있고, 또는 외부 트랜스코더(40)와의 통신을 통해 외부 트랜스코더(40)에 트랜스코딩을 요청하고 이를 기반으로 사용자 단말(10-1, 10-2, 10-3)에게 멀티미디어 콘텐츠 서비스를 제공할 수 있다.
서버(30)는 사용자 단말(10-1, 10-2, 10-3)이 요청하는 콘텐츠에 대해 상기 콘텐츠를 트랜스코딩하는 트랜스코더(40)가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하고, 이를 사용자 단말(10-1, 10-2, 10-3)로 전송한다. 이는 페이크 리스트(fake list)라고 불릴 수 있다. 즉, 사용자 단말(10-1, 10-2, 10-3)은 후보 콘텐츠 리스트에 기재된 콘텐츠는 서버(30)가 보유하고 있다고 판단할 수 있으나, 사실 후보 콘텐츠 리스트에 개재된 콘텐츠는 트랜스코딩을 통해 지원할 수 있는 목록을 개시하고 있지, 서버(30)가 현재 보유하고 있는 콘텐츠를 개시하는 것은 아닐 수 있다.
서버(30)는 후보 콘텐츠 리스트 중 하나에 대한 선택과 관련된 신호를 상기 사용자 단말(10-1, 10-2, 10-3)로부터 수신한다. 그리고, 사용자 단말(10-1, 10-2, 10-3)로부터 수신한 선택 관련 신호가 가리키는 정보와 대응되는 방식으로 상기 콘텐츠를 실시간으로 트랜스코딩하여 상기 사용자 단말(10-1, 10-2, 10-3)에게 제공할 수 있다.
또는, 서버(30)가 외부 트랜스코더(40)를 이용하는 경우, 서버(30)는 외부 트랜스코더에 사용자 단말(10-1, 10-2, 10-3)이 원하는 방식으로 콘텐츠를 트랜스코딩하여 제공하도록 요청할 수 있다.
외부 트랜스코더(40)를 포함하는 경우, 외부 트랜스코더(40)는 하드웨어 트랜스코더일 수 있다. 다만, 반드시 하드웨어 트랜스코더로 한정되는 것은 아니고, 다른 형태의 트랜스코더일 수 있다. 외부 트랜스코더(40)는 유선 또는 무선으로 서버(30)와 연결될 수 있고, 서버(30)와 신호를 송수신할 수 있다. 외부 트랜스코더(40) 또는 서버(30)에 포함된 트랜스코더는 모두 자신들이 지원할 수 있는 포맷, 비트 레이트 등을 포함하는 트랜스코딩 관련 정보를 가지고 있다. 예컨대, 트랜스코더 1은 출력 파일 형태로 AVI 포맷만을 지원할 수 있으나, 트랜스코더 2는 AVI 뿐만 아니라 MP4 파일도 지원할 수 있다. 이렇게 트랜스코더별로 서로 다른 트랜스코딩 능력을 가지고 있을 수 있으므로, 사용자 단말(10-1, 10-2, 10-3) 측에서 재생의 용이성을 제공하기 위해, 서버(30)는 트랜스코딩 팩터 정보를 사용자 단말(10-1, 10-2, 10-3)에 제공한다.
도 2는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버와 사용자 단말 사이의 동작을 나타낸 흐름도이다.
도 2를 참조하면, 서버(30)는 사용자 단말(10)로부터 스트리밍하기 원하는 콘텐츠를 선택받는다(S210). 이 과정은 콘텐츠 선택 관련 신호를 수신하여 수행될 수 있다. 서버(30)는 사용자 단말(10)이 원하는 콘텐츠를 토대로 여러가지 압축 포맷, 비트 레이트, 출력 파일 형태 등을 나타내는 후보 콘텐츠 리스트를 생성한다(S220). 만약, 트랜스코더가 외부에 배치되는 경우, 서버(30)는 외부 트랜스코더로부터 트랜스코딩 관련 정보를 수신한다. 그리고는 수신된 정보를 기반으로 후보 콘텐츠 리스트를 생성한다.
본 발명의 실시예에 따르면, 서버(30)는 내부 또는 외부 트랜스코더가 트랜스코딩을 통해 지원할 수 있는 트랜스코딩 관련 지표들을 기반으로 후보 콘텐츠 리스트를 생성한다. 즉, 외부 트랜스코더가 압축 포맷은 H.264, MPEG 4를 지원한다면, 후보 콘텐츠 리스트에는, 동일한 콘텐츠에 대해 압축 포맷은 H.264와 MPEG 4로 달리하여 후보 콘텐츠 2개를 생성할 수 있다.
본 발명의 다른 실시예에 따르면, 서버(30)는 복수의 트랜스코더를 활용할 수 있고, 복수의 트랜스코더의 트랜스코딩 관련 지표들을 통합하여 후보 콘텐츠 리스트를 생성할 수 있다. 즉, 트랜스코더들간의 중복되는 형태의 후보 콘텐츠는 단일화하여 하나의 후보 콘텐츠로 만들 수 있다.
도 3은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버가 제공하는 후보 콘텐츠 리스트의 일 예를 나타낸 도면이다.
도 3을 참조하면, 후보 콘텐츠 리스트(300)는 각각의 후보 콘텐츠 목록이 기재되어 있고, 각각의 후보는 압축 포맷, 비트 레이트, 출력 파일 및 파일 포맷 관련 정보 중 적어도 어느 하나의 정보를 가지고 있다. 먼저, 후보 1은 특정 콘텐츠를 압축 포맷은 H.264 표준 기술을 따르고, 비트 레이트는 128kbps에, 출력 파일은 AVI 포맷이며, 파일의 크기는 960 x 640 사이즈를 갖도록 트랜스코딩한 것이다. 또한, 후보 2는 후보 1과 대부분 동일하나, 비트 레이트가 256kbps이고, 파일 포맷도 480 x 320으로 다르게 트랜스코딩한 콘텐츠이다. 후보 3은 압축 포맷, 비트레이트, 출력 파일, 파일 포맷 정보가 후보 1과 모두 다르게 트랜스코딩하는 콘텐츠이다. 상기한, 정보에 반드시 국한되는 것은 아니고, 상기 정보 이외에도 다른 정보가 후보 콘텐츠 리스트(300)를 통해 제공될 수 있다. 예컨대, 상기 후보 콘텐츠가 다운로드 또는 스트리밍되는 URL 주소를 제공할 수 있다.
이렇게, 사용자 단말(10)이 선택한 콘텐츠에 대해 트랜스코더(내부 또는 외부에 배치될 수 있음)가 지원할 수 있는 트랜스코딩 지표를 가지고 후보 콘텐츠 리스트(300)를 생성할 수 있다.
다시 도 2로 돌아가서, 후보 콘텐츠 리스트 생성(S220)을 완료하고 나면, 서버(30)는 생성된 후보 콘텐츠 리스트를 사용자 단말(30)로 전송한다(S230). 사용자 단말(10)은 후보 콘텐츠 리스트를 수신하면, 후보 콘텐츠 리스트에 기재된 후보 콘텐츠는 모두 트랜스코딩되어 서버(30)가 가지고 있다고 판단할 수 있다. 그리고는, 자신의 코덱, 재생기 등 재생 환경에 맞는 후보 콘텐츠를 선택하여 선택 메시지를 서버(30)로 전송한다(S240). 사용자 단말(10)은 단말에서 수신 및 재생할 수 있는 방식과 대응되는 트랜스코딩 관련 정보를 기반으로 직접 선택 메시지를 생성하여 서버(30)로 전송할 수 있고, 또는 사용자 인터페이스를 통해 수신된 후보 콘텐츠 리스트 중 어느 하나의 선택을 사용자로부터 입력 받아 선택 메시지를 생성하여 서버(30)로 전송할 수도 있다. 이때, 사용자 단말(10)은 후보 리스트에 개시된 URL 주소를 선택하는 메시지를 전송함으로써, 서버(30)로 하여금 선택된 URL 주소와 대응되는 후보 콘텐츠를 사용자 단말(10)로 제공할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 후보 콘텐츠 리스트와 URL(Uniform Resourse Location)의 연결을 설명하기 위한 도면이다.
도 4를 참조하면, 후보 콘텐츠 리스트에 기재된 각각의 후보 콘텐츠(410-1, 410-2, ..., 410-N)는 대응하는 URL(420-1, 420-2, ..., 420-N) 주소를 함께 제공할 수 있다. 사용자 단말(10)은 후보 콘텐츠(410-1, 410-2, ..., 410-N)의 제공 URL(420-1, 420-2, ..., 420-N) 중 어느 하나를 선택할 수 있다. 만약, 사용자 단말(10)이 URL 2(420-2)의 선택을 나타내는 선택 메시지를 서버(30)로 전송하면, 서버(30)는 상기 선택된 URL 2(420-2)에 상응하는 비트 레이트(다른 트랜스코딩 정보와 대체될 수 있음)로 콘텐츠를 트랜스코딩하여 제공할 수 있다. 만약, 서버(30) 외부의 트랜스코더를 이용하는 경우, URL 2(420-2)에 상응하는 비트 레이트로 콘텐츠를 트랜스코딩하여 제공하도록 상기 외부 트랜스코더에 요청할 수 있다.
다시 도 2로 돌아가서, 사용자 단말(10)의 선택 메시지 전송(S240)까지 완료되고 나면, 서버(30)는 선택된 후보 콘텐츠의 트랜스코딩 관련 정보에 대응되는 방식으로 트랜스코딩을 수행한다(S250). 이때, 외부 트랜스코더를 활용하는 경우, 외부 트랜스코더에 선택된 후보 콘텐츠의 트랜스코딩 관련 정보를 전송한다. 그리고는, 콘텐츠 데이터를 전송하여 사용자 단말(10)의 선택에 적합한 형태로 트랜스코딩이 수행되도록 트랜스코딩 수행을 요청한다. 외부 트랜스코더는 서버(30)로부터 콘텐츠 데이터와 선택된 트랜스코딩 관련 정보를 수신하여 선택된 방식에 맞춰 트랜스코딩을 수행한다.
그리고는, 서버(30)는 트랜스코딩된 콘텐츠를 사용자 단말(30)로 다운로드 또는 스트리밍한다(S260). 이때, 외부 트랜스코더를 통해 트랜스코딩된 콘텐츠는 서버(30)로 전송되어 사용자 단말(10)에 제공될 수도 있고, 또는 외부 트랜스코더를 통해 직접 사용자 단말(10)로 제공될 수도 있다.
본 발명의 일 실시예에 따르면, 콘텐츠를 제공함에 있어서, 서버(30)는 네트워크 환경에 맞춰 콘텐츠의 비트 레이트를 조절하면서 콘텐츠를 사용자 단말(10)로 제공할 수 있다.
도 5는 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 서버(30)가 네트워크 환경에 따라 비트 레이트를 조절하는 과정을 나타낸 흐름도이다.
도 5를 참조하면, 외부 트랜스코더를 이용하는 경우, 서버(30)는 전술한 바와 같이, 선택된 방식으로 트랜스코딩을 수행하도록 요청한다(서버(30) 내부에 트랜스코더가 포함된 경우, 이 과정은 무시할 수 있다)(S510). 요청과 함께 콘텐츠는 실시간으로 트랜스코딩이 수행되면서 사용자 단말(10)로 제공된다. 따라서, 네트워크의 환경에 무관한 비트 레이트, 즉 고정된 비트 레이트로만 사용자 단말(10)에 전송된다. 이때, 네트워크 환경의 변화가 생길 경우, 환경 변화를 반영하지 못해 트랜스코딩된 데이터의 전송에 지연이 생길 수 있고, 이로 인해 실시간 재생시 화질에 열화 또는 버퍼링 지연의 심화를 일으킬 수 있다.
따라서, 서버(30)는 단말로부터 네트워크 관련 정보를 실시간으로 수신하고(S520), 수신된 네트워크 정보를 기반으로 적응적으로 비트 레이트를 조절한다(S530). 그리고는, 서버(30)는 상기 조정된 비트 레이트를 기반으로 트랜스코딩을 수행하고, 트랜스코딩된 데이터를 사용자 단말로 스트리밍한다(S540).
이때, 외부 트랜스코더를 활용하는 경우, 네트워크 정보 수신까지는 동일하게 이루어지나, 서버(30)에서의 비트 레이트의 조절을 통해 조절된 비트레이트 정보를 외부 트랜스코더로 전송하는 과정이 요구된다. 외부 트랜스코더는 조정된 비트 레이트 정보를 서버(30)로부터 수신하여 수신된 정보를 기반으로 트랜스코딩을 수행하고, 트랜스코딩된 콘텐츠를 사용자 단말(10)로 제공한다.
다시 도 2로 돌아가서, 스트리밍 단계(S260) 후에, 사용자 단말(30)은 실시간으로 스트리밍된 콘텐츠를 재생한다(S270).
도 6은 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 시스템의 사용자 단말(10)의 동작을 나타낸 흐름도이다.
도 6을 참조하면, 사용자 단말(10)은 원하는 콘텐츠를 선택한다(S610). 그리고는, 선택된 콘텐츠를 기반으로 서버(30)가 생성한 후보 콘텐츠 리스트를 수신한다(S620). 후보 콘텐츠 리스트에는 복수의 후보 콘텐츠가 표시되어 있고, 각각의 후보 콘텐츠는 서로 다른 압축 포맷, 비트 레이트, 출력 파일, 파일 포맷을 가지고 있으므로, 사용자 단말(10)은 재생하기 적합한 후보 콘텐츠를 선택하여 선택 메시지를 전송한다(S630). 이때, 사용자 단말(10)은 단말에서 수신 및 재생할 수 있는 방식과 대응되는 트랜스코딩 관련 정보를 기반으로 선택 메시지를 생성하거나 또는 사용자 인터페이스를 통해 사용자가 입력하는 정보를 기반으로 선택 메시지를 생성하여 서버(30)로 전송할 수 있다.
그리고는, 사용자 단말(10)은 네트워크 상태를 모니터링하면서 스트리밍을 수행한다(S640). 즉, 서버가 네트워크 상태에 맞춰 비트 레이트를 조절하면서 콘텐츠를 제공할 수 있도록, 사용자 단말(10)은 네트워크 상태와 관련된 정보를 실시간으로 모니터링하여 서버에 제공할 수 있다. 이때, 네트워크 상태의 변화가 없으면, 네트워크 상태 정보를 전송하지 않을 수도 있지만, 네트워크 상태의 변화가 있는 경우는 네트워크 상태 정보를 전송하는 것이 요구된다.
마지막으로, 사용자 단말(10)은 스트리밍된 콘텐츠를 재생한다(S650).
도 7은 본 발명의 일 실시예에 따른 실시간 콘텐트 트랜스코딩 방법에 적용될 수 있는 HLS 스트리밍 프로토콜을 나타낸 도면이다. 도 7에 도시된 바와 같이, 본 발명의 일 실시예에 따른 실시간 콘텐츠 트랜스코딩 방법이 적용될 수 있는 서버(700)는 인코더(710), 스트림 세그멘터(720), 트랜스코더(730) 및 전송부(740)를 포함할 수 있다.
라이브 스트리밍은 촬영된 오디오/비디오 정보를 실시간으로 사용자의 동영상 플레이어로 보내 재생하도록 하는 방식을 의미한다. 라이브 스트리밍을 위한 전통적인 프로토콜로는 RTSP(Real-Time Streaming Protocol)/RTP(Real-time Transport Protocol), RTMP(Real-Time Messaging Protocol) 등이 있을 수 있다. 이 프로토콜을 사용하는 스트리밍 서버는 영상 데이터의 전송뿐만 아니라, 동영상에 대한 정보 분석이나 전송 규격에 맞도록 동영상 파일을 읽어서 트랜스코딩하는 기능도 갖춰야 한다. 따라서 비용이 상대적으로 높을 수 있다. 또한 RTSP/RTP의 경우, 서로 다른 네트워크 연결을 통해 데이터를 교환하기 때문에, 방화벽이나, NAT(Network Address Translator)를 많이 쓰고 있는 환경에서는 서비스가 원활하지 않을 수 있다.
그래서 대안으로 나온 것이 HTTP(750)를 전송 채널로 사용하는 HLS 시스템이다. HTTP는 양방(full-duplex) 방식이 아니기 때문에 라이브 스트리밍을 위해서는 단점을 극복할 별도의 방식이 필요하지만, 방화벽에서 HTTP 서버(700)로의 요청만 통과시키면 되기 때문에 방화벽의 설정이 단순해진다. 요청과 응답이 1:1로 대응되므로 NAT 환경에서도 서버(700)와 통신하는 것이 쉽다. 비단 방화벽 문제 때문이 아니라, 웹 서비스를 위한 캐시 구조를 그대로 사용할 수 있고, 기존에 구축되어 있는 CDN(Content Delivery Network)도 특별히 변경하지 않고 그대로 이용할 수 있다는 것이 장점이다.
HLS 프로토콜은 스트리밍 데이터를 MPEG-2 TS에 담아 시간 단위로 잘게 쪼개서 전송한다. 이때, 어떤 파일을 재생해야 하는지에 대한 정보는 m3u8 파일을 통해 전달될 수 있다.
도 7을 참조하면, 인코더(710)는 오디오/비디오 입력을 수신하여 최초 인코딩을 수행한다.
스트림 세그멘터(720)는 일정한 시간 간격으로 입력받은 미디어 데이터를 분할하여 파일을 생성할 수 있다. 그리고는 생성된 파일에 접근할 수 있는 메타데이터(m3u8)를 생성할 수 있다. HTTP는 양방향 방식이 아니기 때문에, 사용자 단말(760)에서 서버(700)로 요청을 해야 그에 맞는 응답을 받을 수 있다. 즉, 서버(700)는 분할된 동영상과 다음에 재생할 동영상 정보를 함께 사용자 단말(760)로 전송한다.
트랜스코더(730)는 분할된 시간 간격으로 생성된 파일을 사용자 단말(760)이 요청한 방식(예컨대, 파일 포맷, 비트 레이트, 압축 포맷 등)으로 트랜스코딩한다. 전술한 바와 같이, 트랜스코더(730)는 서버(700) 내부 또는 외부에 배치될 수 있다.
전송부(740)는 시간 단위 별로 분할되어 트랜스코딩된 콘텐츠를 HTTP 채널(750)을 이용하여 사용자 단말(760)로 전송한다. 전송부(740)는 반드시 인코더(710), 스트림 세그멘터(720) 및 트랜스코더(730)와 하나로 묶인 서버(700)가 아닌 외부 웹 서버일 수 있다. 외부 웹 서버는 트랜스코딩된 파일을 읽어서 HTTP 응답에 데이터를 실어서 보낼 수 있는 웹 서버면 어떠한 웹 서버든 상관없이 사용될 수 있다.
HLS 프로토콜과 다른 프로토콜과의 차이는 크게 두 가지이다. 하나는 콘텐츠 정보를 전달하는 방식이 HTTP로 다르다는 것이고, 다른 하나는 스트림 세그멘터(720)를 통해 콘텐츠 데이터를 시간 단위로 분할하여 전송한다는 점이다.
도 8은 본 발명의 일 실시예에 있어서, HLS 스트리밍에서의 네트워크 환경 변화에 따른 콘텐츠의 비트레이트를 나타낸 도면이다.
도 8을 참조하면, 서버(30)는 사용자 단말(10)의 네트워크 속도에 따라 적합한 비트레이트로 트랜스코딩하여 스트리밍할 수 있다. 이를 통해, 사용자의 네트워크 환경이 변화해도 끊기지 않고 동영상을 볼 수 있다.
예컨대, 사용자가 와이-파이(wi-fi) 환경에서 스트리밍 서비스를 사용하던 중에 3G와 같은 셀룰라 망 환경으로 이동하면, 사용 가능한 네트워크 대역폭이 감소하게 된다. 이때, 스트리밍 서비스는 와이 파이 환경에서 적합한 비트 레이트로 실시간 서비스를 제공하고 있다가 사용자 단말(10)에서 데이터를 수신하지 못하여 버퍼링이 발생하거나 부족한 데이터로 인해 화면이 제대로 표시되지 않을 수 있다. 이러한 버퍼링 발생 및 화면 일그러짐 문제를 해결하기 위해 다음과 같은 방법을 적용할 수 있다.
본 발명의 일 실시예에 따르면, 서버(30)는 사용자 단말로부터 네트워크 환경 관련 정보를 수신한다. 그리고는, 수신된 네트워크 환경 정보를 현재 서비스되는 비트 레이트와 비교하여 임계값 이상 차이가 나는 경우, 비트 레이트를 변경하도록 제어한다. 도 8에서, 서버(30)는 제 1 구간(810)에서의 네트워크 상태 값(예컨대, 대역폭)과 현재 서비스되는 비트 레이트인 700kbps와 차이가 일정 임계값 이상 벌어지게 되어 300kbps로 비트 레이트의 변경을 수행한다. 이후, 제 2 구간(820)에서의 네트워크 상태 값이 높아짐에 따라 서비스되는 비트 레이트, 300kbps와의 차이가 벌어지게 되고, 이 차이가 임계값을 넘어서게 되면, 제 3 구간(830)에서와 같이 700kbps로 비트 레이트의 변경을 수행할 수 있다. 서버(30)는 내부 또는 외부 트랜스코더에 비트 레이트의 변경을 요청하여 실시간 트랜스코딩되는 콘텐츠의 비트 레이트를 변경할 수 있다.
본 발명의 다른 실시예에 따르면, 서버(30)는 네트워크 상태 변화를 기반으로 네트워크 환경 변화를 예측하여 비트 레이트를 조절할 수 있다. 서버(30)는 네트워크 상태 값의 변화를 통해 네트워크 환경 변화를 예측할 수 있다. 예컨대, 대역폭이 일정 기울기로 계속하여 감소하는 경우, 임계값과의 비교를 통해 네트워크 환경 변화를 미리 예측할 수 있다. 이렇게 환경 변화를 미리 예측하는 경우, 서버(30)는 버퍼링 문제를 해결하기 위해 일정 시간 구간의 콘텐츠를 미리 트랜스코딩하여 저장하고 있을 수 있다. 즉, 네트워크 환경 변화 순간 직후로 비트레이트의 변화에 따라 누락되는 데이터가 있을 수 있는데, 미리 트랜스코딩된 콘텐츠를 이용하여 버퍼링 없이 비트 레이트의 변경을 수행할 수 있다.
이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 사용자 단말 10-1: 사용자 단말 1
10-2: 사용자 단말 2 10-3: 사용자 단말 3
20: 네트워크 30: 서버
40: 외부 트랜스코더 300: 후보 콘텐츠 리스트
410-1: 후보 1 410-2: 후보 2
410-N: 후보 N 420-1: URL 1
420-2: URL 2 420-N: URL N
700: 서버 710: 인코더
720: 스트림 세그멘터 730: 트랜스코더
740: 전송부 750: HTTP 전송 채널
760: 사용자 단말
10-2: 사용자 단말 2 10-3: 사용자 단말 3
20: 네트워크 30: 서버
40: 외부 트랜스코더 300: 후보 콘텐츠 리스트
410-1: 후보 1 410-2: 후보 2
410-N: 후보 N 420-1: URL 1
420-2: URL 2 420-N: URL N
700: 서버 710: 인코더
720: 스트림 세그멘터 730: 트랜스코더
740: 전송부 750: HTTP 전송 채널
760: 사용자 단말
Claims (20)
- 서버가 사용자 단말로 콘텐츠를 실시간으로 제공하는 방법에 있어서,
상기 사용자 단말이 요청하는 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하는 단계;
상기 후보 콘텐츠 리스트를 상기 사용자 단말로 전송하는 단계; 및
상기 사용자 단말이 선택한 콘텐츠 정보와 대응되는 방식으로 실시간 트랜스코딩하여 사용자 단말에 전송하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 1 항에 있어서,
상기 트랜스코더는 서버 내에 포함되거나 또는 외부에 배치되는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 2 항에 있어서,
상기 트랜스코딩 단계는 상기 사용자 단말이 선택한 콘텐츠 정보와 대응되는 방식으로 실시간 트랜스코딩을 수행하도록 외부 트랜스코더에 요청하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 1 항에 있어서,
상기 후보 콘텐츠 리스트는 상기 트랜스코더가 지원할 수 있는 압축 포맷, 비트 레이트(bit rate), 출력 파일 및 파일 포맷 중 적어도 어느 하나의 정보를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 1 항에 있어서,
상기 후보 콘텐츠 리스트는 상기 콘텐츠의 제공 URL(Uniform Resource Locator)을 제공하고,
상기 트랜스코딩 단계는 상기 선택된 URL에 상응하는 비트 레이트로 상기 콘텐츠를 트랜스코딩하여 전송하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 1 항에 있어서, 상기 트랜스코딩 단계는
네트워크 상태를 기반으로 적응적으로 비트 레이트를 조절하면서 상기 콘텐츠를 트랜스코딩하여 전송하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 6 항에 있어서, 상기 트랜스코딩 단계는
상기 사용자 단말로부터 네트워크 상태 관련 정보를 실시간으로 수신하는 단계; 및
상기 수신된 네트워크 상태 관련 정보를 현재 서비스되는 비트 레이트와 비교하여 비트 레이트를 변경하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 7 항에 있어서, 상기 트랜스코딩 단계는
상기 수신된 네트워크 상태 관련 정보를 통해 네트워크 환경 변화를 예측하는 단계;
상기 네트워크 환경 변화가 예측되는 경우, 비트 레이트의 변경을 대비하여 일정 시간 동안 재생될 콘텐츠를 미리 트랜스코딩하여 저장하는 단계; 및
상기 비트 레이트가 변경되는 시점에 상기 저장된 콘텐츠를 이용하여 버퍼링 없이 상기 콘텐츠를 전송하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 3 항에 있어서,
상기 서버가 상기 외부 트랜스코더로부터 상기 트랜스코딩 관련 정보를 수신하는 단계를 더 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 3 항에 있어서, 상기 트랜스코딩 단계는
상기 트랜스코딩된 콘텐츠를 상기 외부 트랜스코더가 직접 상기 사용자 단말로 전송하거나 또는 상기 서버가 상기 트랜스코딩된 콘텐츠를 수신하여 상기 사용자 단말로 전송하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 제 1 항에 있어서,
상기 서버가 HLS(HTTP Live Streaming) 방식을 통해 상기 콘텐츠를 전송하되,
상기 콘텐츠를 시간 단위로 분할한 후 트랜스코딩하여 상기 사용자 단말로 전송하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 방법.
- 사용자 단말이 요청하는 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하는 후보 콘텐츠 리스트 생성부;
상기 후보 콘텐츠 리스트를 상기 사용자 단말로 전송하는 후보 콘텐츠 리스트 전송부; 및
상기 사용자 단말이 선택한 콘텐츠 정보와 대응되는 방식으로 실시간 트랜스코딩하여 사용자 단말에 전송하는 트랜스코딩부를 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 장치.
- 사용자 단말이 서버로부터 콘텐츠를 실시간으로 수신하는 방법에 있어서,
요청한 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 생성된 후보 콘텐츠 리스트를 수신하는 단계;
상기 후보 콘텐츠 리스트 중 하나에 대한 선택과 관련된 신호를 상기 서버로 전송하는 단계; 및
상기 선택 관련 신호가 가리키는 정보와 대응되는 방식으로 트랜스코딩된 콘텐츠를 실시간으로 수신하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 수신 방법.
- 제 13 항에 있어서, 상기 콘텐츠 수신 단계는
상기 트랜스코딩된 콘텐츠를 서버로부터 수신하거나 또는 외부 트랜스코더로부터 직접 수신하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 수신 방법.
- 제 13 항에 있어서, 상기 전송 단계는
상기 사용자 단말에서 수신 및 재생 가능한 방식과 대응되는 트랜스코딩 관련 정보를 기반으로 상기 선택 관련 신호를 생성하거나 또는 사용자 인터페이스를 통해 입력된 정보를 기반으로 상기 선택 관련 신호를 생성하여 상기 서버로 전송하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 수신 방법.
- 제 13 항에 있어서,
상기 후보 콘텐츠 리스트는 상기 트랜스코더가 지원할 수 있는 압축 포맷, 비트 레이트(bit rate), 출력 파일 및 파일 포맷 중 적어도 어느 하나의 정보를 포함하는 것을 특징으로 하는 실시간 콘텐츠 수신 방법.
- 제 13 항에 있어서, 상기 콘텐츠 수신 단계는
네트워크 상태를 기반으로 적응적으로 비트 레이트를 조절하면서 상기 콘텐츠를 수신하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 수신 방법.
- 제 17 항에 있어서, 상기 콘텐츠 수신 단계는
상기 네트워크 상태를 모니터링하는 단계; 및
상기 네트워크 상태와 관련된 정보를 실시간으로 상기 서버로 전송하는 단계를 포함하는 것을 특징으로 하는 실시간 콘텐츠 수신 방법.
- 서버로부터 콘텐츠를 실시간으로 수신하는 장치에 있어서,
요청한 콘텐츠에 대해 상기 콘텐츠를 트랜스코딩하는 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 생성된 후보 콘텐츠 리스트를 수신하는 리스트 수신부;
상기 후보 콘텐츠 리스트 중 하나에 대한 선택과 관련된 신호를 상기 서버로 전송하는 선택 관련 신호 전송부; 및
상기 선택 관련 신호가 가리키는 정보와 대응되는 방식으로 트랜스코딩된 콘텐츠를 실시간으로 수신하는 콘텐츠 수신부를 포함하는 것을 특징으로 하는 실시간 콘텐츠 수신 장치.
- 사용자 단말이 요청하는 콘텐츠에 대해 트랜스코더가 지원할 수 있는 트랜스코딩 관련 정보를 기반으로 후보 콘텐츠 리스트를 생성하여 상기 사용자 단말로 전송하고, 상기 사용자 단말이 선택한 콘텐츠 정보와 대응되는 방식으로 상기 콘텐츠를 실시간으로 트랜스코딩하여 상기 사용자 단말에게 전송하는 서버; 및
상기 후보 콘텐츠 리스트를 수신하여 상기 후보 콘텐츠 리스트 중 하나에 대한 선택과 관련된 신호를 상기 서버로 전송하고, 상기 선택 관련 신호가 가리키는 정보와 대응되는 방식으로 트랜스코딩된 콘텐츠를 실시간으로 수신하는 사용자 단말을 포함하는 것을 특징으로 하는 실시간 콘텐츠 트랜스코딩 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/953,367 US20140189141A1 (en) | 2012-12-28 | 2013-07-29 | Real-time content transcoding method, apparatus and system, and real-time content receiving method and apparatus |
EP13178688.1A EP2750394A3 (en) | 2012-12-28 | 2013-07-31 | Real-time content transcoding |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120156117 | 2012-12-28 | ||
KR20120156117 | 2012-12-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140086801A true KR20140086801A (ko) | 2014-07-08 |
Family
ID=51735968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130080455A KR20140086801A (ko) | 2012-12-28 | 2013-07-09 | 실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20140086801A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160140093A (ko) | 2015-05-29 | 2016-12-07 | 주식회사 두두씨에스 | 방송 컨텐츠 파일생성방법 및 시스템 |
WO2019190023A1 (ko) * | 2018-03-29 | 2019-10-03 | 삼성전자 주식회사 | 비디오 데이터를 스트리밍하는 시스템 및 방법 |
-
2013
- 2013-07-09 KR KR1020130080455A patent/KR20140086801A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160140093A (ko) | 2015-05-29 | 2016-12-07 | 주식회사 두두씨에스 | 방송 컨텐츠 파일생성방법 및 시스템 |
WO2019190023A1 (ko) * | 2018-03-29 | 2019-10-03 | 삼성전자 주식회사 | 비디오 데이터를 스트리밍하는 시스템 및 방법 |
KR20190114142A (ko) * | 2018-03-29 | 2019-10-10 | 삼성전자주식회사 | 비디오 데이터를 스트리밍하는 시스템 및 방법 |
US11606604B2 (en) | 2018-03-29 | 2023-03-14 | Samsung Electronics Co., Ltd. | System and method for streaming video data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8838824B2 (en) | Method and apparatus for delivery of adapted media | |
JP6337350B2 (ja) | ビデオ品質向上 | |
US8874778B2 (en) | Live streaming media delivery for mobile audiences | |
EP2553896B1 (en) | A method for recovering content streamed into chunk | |
CA2844648C (en) | Method and apparatus for adaptive transcoding of multimedia stream | |
US8903895B2 (en) | Method of streaming media to heterogeneous client devices | |
Sanchez et al. | Efficient HTTP-based streaming using scalable video coding | |
US9042449B2 (en) | Systems and methods for dynamic transcoding of indexed media file formats | |
EP2360923A1 (en) | Method for selectively requesting adaptive streaming content and a device implementing the method | |
US20110029606A1 (en) | Server apparatus, content distribution method, and program | |
EP2750394A2 (en) | Real-time content transcoding | |
CN102065339A (zh) | 音视频媒体流的播放方法与系统 | |
KR20120114016A (ko) | 사용자 컨텐츠를 외부 단말기에서 네트워크 적응적으로 스트리밍하는 방법 및 장치 | |
KR20130005873A (ko) | 방송 시스템에서 컨텐츠 수신 방법 및 장치 | |
EP2627082A2 (en) | Method for transmitting a scalable http stream for natural reproduction upon the occurrence of expression-switching during http streaming | |
KR101718127B1 (ko) | 상황 인지 스트리밍 서비스를 위한 콘텐츠 패키징 시스템 및 스트리밍 방법 | |
KR20180105026A (ko) | 전자장치 및 그 제어방법 | |
US10178203B1 (en) | Methods and systems for adaptively directing client requests to device specific resource locators | |
KR20140041256A (ko) | Http에 기초한 동적 적응적 스트리밍 시스템 | |
KR20140086801A (ko) | 실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법 | |
CN107534792B (zh) | 接收设备、发送设备以及数据处理方法 | |
KR101251312B1 (ko) | 동영상 변환 서버에서의 동영상 탐색요청 처리방법 | |
KR101428980B1 (ko) | 컨텐츠 제공 방법 및 서버 | |
KR101933031B1 (ko) | 콘텐츠 재생 제어 장치 | |
KR20200018890A (ko) | 무선 스트리밍 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
WITB | Written withdrawal of application |