KR102086873B1 - 복수의 트랜스코딩된 컨텐츠 스트림들을 제공하기 위한 방법 및 장치 - Google Patents
복수의 트랜스코딩된 컨텐츠 스트림들을 제공하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR102086873B1 KR102086873B1 KR1020147031060A KR20147031060A KR102086873B1 KR 102086873 B1 KR102086873 B1 KR 102086873B1 KR 1020147031060 A KR1020147031060 A KR 1020147031060A KR 20147031060 A KR20147031060 A KR 20147031060A KR 102086873 B1 KR102086873 B1 KR 102086873B1
- Authority
- KR
- South Korea
- Prior art keywords
- bitrates
- bitrate
- versions
- client
- neighboring
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000003044 adaptive effect Effects 0.000 abstract description 21
- 230000006978 adaptation Effects 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000007 visual effect Effects 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- 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
-
- 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/23439—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 for generating different versions
-
- 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/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
상이한 비트레이트들을 갖는 컨텐츠 스트림의 복수의 버전들을 제공하는 방법이 제공된다. 본 방법에 따르면, 상이한 비트레이트들을 갖는 컨텐츠 스트림의 버전들의 집합이 클라이언트에게 제공된다. 컨텐츠 스트림의 제공된 버전들의 집합을 기술하는 매니페스트 부분이 클라이언트에게 제공된다. 클라이언트는 특정 비트레이트를 갖는 컨텐츠 스트림의 하나의 버전을 요청한다. 이웃하는 버전들의 비트레이트들 사이의 차이가 동적으로 적응되도록, 클라이언트에게 제공된 버전들의 비트레이트는 동적으로 선택된다. 제공된 방법은 현재 전송되는 비트레이트 주위에 분산된 작은 비트레이트 값들의 집합에 기초하여 작은 매니페스트 부분을 이용하도록 적응적 트랜스 코딩을 개선한다. 거기에 추가하여, 본 방법을 구현하기 위해 시스템이 제공된다.
Description
본 발명은 상이한 비트레이트들을 갖는 컨텐츠 스트림의 복수의 버전들을 제공하는 방법에 관한 것이다. 본 방법에 따르면, 각각의 버전은 동일한 입력 컨텐츠 스트림으로부터 트랜스코딩되었다. 또한, 본 발명은 본 발명에 따른 방법을 구현하기 위해 적응된 시스템에 관한 것이다.
현재에는, 보다 많은 디지털 오디오 및 비디오가 서버 상에 저장되고, 온라인으로 전송될 수 있다. 물리적인 매체 상에서 컨텐츠를 분배하는 것은 계속적으로 감소하고 있다. 온라인 전송에 대한 제1 접근법에 따르면, 오디오 및 비디오 컨텐츠(A/V 컨텐츠)는 단일 파일, 예컨대 디지털 mp3 오디오 파일로 통째로 서버로부터 클라이언트 장치로 다운로드될 수 있다. 그러나, 이러한 접근법에서, 비디오 컨텐츠, 가령 영화 전체를 전송하는 것은 일반적으로 비디오 컨텐츠를 다운로드하는 데에 오랜 시간을 요구하며, 이는 사용자가 비디오 컨텐츠를 감상할 수 있는 시작 시간을 지연시킨다.
온라인 전송에 대한 제2 접근법에 따르면, 오디오/비디오 컨텐츠는 차례로 다운로드되는 작은 엘리먼트들의 시퀀스들로 분할된다. 각각의 엘리먼트는, 또한 "청크(chunk)"라고 지칭된다. 청크들은 전체 컨텐츠를 재생하기 위해 연결될 수 있는 대략 수 초(second)인 짧은 시간들을 나타낸다. 청크들의 시리즈로서 송신되는 청크들의 전체는, 또한 오디오/비디오 스트림이라고 지칭된다. 또한, 오디오 및 비디오 컨텐츠는 "스트리밍 컨텐츠"로서 지칭된다. 스트리밍 컨텐츠는 오디오 및/또는 비디오 스트림들로 구성된다.
오디오 및/또는 비디오 스트림들은 다양한 상이한 장치들을 사용하는 사용자에 의해 소비될 수 있다. 특히, 비디오 스트림은 재생 장치의 스크린 크기에 적응된 포맷 또는 표현을 필요로 할 수 있다. 유사하게, 오디오 스트림들에도 재생 장치에 의해 설정되는 제한들이 적용될 수 있다. 그러나, 이하에서, 본 발명은 비디오 스트림들에 초점을 맞추어 예시적으로 설명되지만, 본 발명이 비디오 스트림들로 제한되는 것은 아니다.
또한, 컨텐츠가 서버로부터 클라이언트 장치로 스트리밍되는 접속에서의 변화들로 인해 임의의 종류의 스트리밍 컨텐츠의 적응이 요구될 수 있다. 예를 들어, 무선 접속은 혼잡으로 인한 변화하는 스루풋 또는 수신 장치의 로밍(roaming)에 의해 유발되는 변화하는 수신 조건들만을 제공할 수 있다. 적응적인 스트리밍이 적절하게 작동하는 경우, 전송되는 스트림의 최적의 속도는 네트워크 또는 재생 조건들에서의 변화들에 계속적으로 동적으로 적응되므로, 컨텐츠의 소비자는 언제나 최적의 가능한 컨텐츠를 즐길 수 있다.
컨텐츠의 적응적 스트리밍의 다양한 구현들이 제안되었다.
하나의 예시는 "HTTP Live Streaming" 또는 "HLS"라고도 알려진 캘리포니아의 애플 주식회사의 구현이다. 이러한 구현은 2010년 11월자 R. Pantos의 "HTTP Live Streaming," IETF, Internet-Draft Version 5 (draft-pantos-http-live-streaming-05)에 기술되어 있다.
또 다른 구현은 MicrosoftTM에 의해 제시되고, "Silverlight Smooth streaming"이라고 알려져 있다. 이러한 구현은 "IIS smooth streaming technical overview"에 기술되어 있다. 상세들은 온라인 상의 http://www.microsoft.com/downloads /details.aspx?displaylang=en&FamilyID=03d22583-3ed6-44da-8464-blb4b5ca7520에서 입수가능하다.
또한, 또 다른 구현이 어도비 시스템즈 주식회사에 의해 제시되고, "Adobe Dynamic Streaming"이라는 이름으로 알려져 있다. 상세들은 온라인 상의 http://www.adobe.com/products/httpdynamicstreaming/pdfs/httpdynamicstreamingwpue.pdf에서 이용가능한 문서 "HTTP dynamic streaming on the Adobe Flash platform"에서 찾을 수 있다.
적응적 스트리밍에 대한 표준화 작업은 여전히 SA4 그룹 내의 3GPP에 의해 그리고 "DASH(Dynamic Adaptive Streaming over HTTP)" 그룹에 의한 MPEG 내에서 수행되고 있다. DASH 그룹이 2011년 12월에 첫 번째 명세 배포를 게재하였다. 이 작업 상의 상세들은 T. Stockhammer에 의해 "Dynamic adaptive streaming over HTTP -standards and design principles", in Proc. of the 2011 ACM Conference on Multimedia Systems (MMSysE 2011), February 2011, pages 157-168에 게재되었다.
상이한 기술들은, 비트레이트 적응을 허용하기 위해, 서버가 각각의 시구간에 청크들의 수 개의 버전들을 제공한다는 공통점을 갖는다. 서버, 인코더, 클라이언트, 및 이 세 개를 연결하는 네트워크에 의해 제공되는 시스템은 임의의 시구간에 대해 대응하는 청크 버전을 요청함으로써 클라이언트가 하나의 비트레이트에서 다른 비트레이트로 스위칭하는 것을 가능하게 하는 방식으로 구축된다. 청크 배열(청크들의 지속기간, 청크들의 비트레이트 및/또는 포맷)을 기술하는 매니페스트 부분(manifest part)이 개별적으로 제공되고, (스트리밍의 경우에는) 업데이트를 위해 정기적으로 리로딩(reload)될 필요가 있다.
이것이 어떻게 달성되는지에 대한 상세 및 매니페스트 부분들의 포맷들은 사용되는 특정 기술, 즉 애플의 HTTP Live Streaming, 마이크로소프트의 Smooth Streaming, 어도비의 HTTP Dynamic Streaming 등에 따라 변화한다. 그러나 기본적으로 모두 동일한 개념들에 따른다.
이러한 시스템의 일반적인 사용은 인터넷을 통해 데이터를 웹 서버로부터 임의의 클라이언트로 전송하기 위한 것이다. 그러한 서버들 (및 전송 경로 상의 http 캐시(http cache))들은 특정한 시간에 클라이언트가 요청할 수 있는 모든 청크 버전들을 저장한다.
기존에 출원된 유럽 특허 출원 EP 1130609.3에서, 발명자들은 AV 스트림들을 동적으로 트랜스코딩하고 이를 HTTP 적응적 스트리밍 프로토콜을 실행하는 클라이언트로 전송하도록 하는 HTTP 적응적 트랜스코더를 기술하였다. 매니페스트 파일들 내에서는 보다 많은 가능한 비트레이트들이 클라이언트에게 광고되지만, EP1130609.3에 기술된 적응적 트랜스코더는 컴퓨팅 자원들을 제한하였고, 그에 따라 오직 단일의 또는 매우 적은 수의 상이한 비트레이트로 트랜스코딩한다. 인코더의 타겟 비트레이트는 클라이언트 요청들에 따라 동적으로 적응되어, HTTP 적응적 전송의 이점, 즉 네트워크 및/또는 단말기 제한들까지 동적 적응이 유지된다. 적응적 트랜스코더는, 또한 트랜스코딩 플랫폼이라고 지칭된다.
HTTP 적응적 스트리밍에서는, 서버는 얼마나 많은 컨텐츠의 버전들을 제안할 것인지와 어떤 비트레이트에서 제안할 것인지를 결정하여야 한다. 한편, 선택할 비트레이트들의 수가 많을수록, 클라이언트는 최적의 가능한 오디오 및 비디오(A/V) 품질을 유지하면서도 현재 네트워크 스루풋 조건들에 보다 잘 적응할 수 있다. 다른 한편으로는, HTTP 서버는 일반적으로 청크들에 대한 버전들의 수에 의존하는 데이터의 양을 저장하여야 한다. 예를 들어, 단지 1Mbps, 2Mbps, 및 3Mbps에서의 3개의 레벨들을 제공하는 것은 스트림이 가장 높은 비트레이트만을 제공하는 데에 요구되는 것보다 두 배의 데이터 양을 사용한다는 것을 의미한다. 따라서, 상이한 비트레이트들을 갖는 이용가능한 버전들의 수를 증가시킬 경우, 서버 상에서의 데이터 로드(data load)는 빠르게 컨텐츠의 일반적인 양의 수 배가 될 수 있다.
온-더-플라이(on-the-fly)로 트랜스코딩하고, '요청되지 않은' 청크들을 생성하지 않는 EP1130609.3에 기술된 전술한 장치에서는, AV 스트림의 데이터 양은 제안된 비트레이트의 수에 의존하지 않는다. 따라서, 이것은 클라이언트를, 그 필요성에 대해 매우 정확하게 적응하기 위한 위치에 두기 위해 광고된 비트레이트의 수를 상당히 증가시킬 수 있다. 예를 들어, 컨텐츠의 상이한 버전들 사이에서 50kbps의 스텝 크기를 갖는 1Mbps 내지 3Mbps까지의 비트레이트의 범위에는, 광고될 41개의 가능한 비트레이트들이 존재한다. 광고된 비트레이트들은 클라이언트의 재생리스트를 구성한다.
그러나, 이용가능한 비트레이트들의 집합을 기술하는 매니페스트 부분은 제안된 비트레이트들의 수에 비례하는 크기를 갖는다. 라이브 스트림을 재생하는 경우, 클라이언트는 재생리스트를 상당히 자주 리프레시할 필요가 있고, 이것은 이용가능한 비트레이트들에 대한 매니페스트 부분을 리로딩(reload)하는 것을 포함한다. 따라서, 이용가능한 비트레이트들의 수가 커지면, 매니페스트 부분의 형태로 전송되는 서술적 데이터(descriptive data)의 양은, 컨텐츠 비트레이트와 비교하여 더 이상 작지 않다. 또한, 이것은 스트리밍 컨텐츠를 처리하기 위해 클라이언트 상에서 실행되는 어플리케이션에 대한 파싱 작업을 증가시킨다.
본 발명은 전술한 바와 같이 매니페스트 부분의 크기 문제를 다룬다.
제1 양태에 따르면, 본 발명은 상이한 비트레이트들을 갖는 컨텐츠 스트림의 버전들의 집합을 클라이언트(4)로 제공하는 방법에 의해 전술한 문제점을 해결하는 것을 제공하는데, 여기서 본 방법은 이하의 단계들을 포함한다:
a) 제공된 컨텐츠 스트림의 버전들의 집합을 기술하는 매니페스트 부분을 준비하는 단계;
b) 매니페스트 부분을 클라이언트(4)에게 제공하는 단계;
c) 특정 비트레이트를 갖는 컨텐츠 스트림의 하나의 버전에 대한 요청을 클라이언트(4)로부터 수신하는 단계;
d) 컨텐츠 스트림의 버전을 클라이언트(4)에 의해 요청된 비트레이트로 트랜스코딩하는 단계;
f) 이웃하는 버전들의 비트레이트들 사이의 차이가 동적으로 적응되도록 클라이언트(4)에게 제공된 버전들의 비트레이트를 동적으로 선택하는 단계; 및
g) a)단계 내지 f)단계를 반복하는 단계.
본 발명의 개념은 적응적인 트랜스코더를 개선하여, 그에 따라 현재 전송되는 비트레이트 주위에 분산된 작은 비트레이트 값들의 집합에 기초한 작은 매니페스트 부분을 이용하도록 하는 것이다.
유리한 일 구현에서, 본 방법은 단일 클라이언트에게 컨텐츠 스트림의 버전들의 집합을 제공하는 단계를 더 포함한다.
본 방법은, 이웃하는 비트레이트가 클라이언트에 의해 요청된 비트레이트들의 변화들에 의존하도록, 제공된 비트레이트들의 집합 내의 상이한 이웃하는 버전들 사이의 비트레이트들의 차이를 동적으로 적응시키는 단계를 더 포함하면 유용한 것으로 사료된다.
또한, 본 방법은, 비트레이트의 차이가 클라이언트가 얼마나 자주 상이한 비트레이트를 요청하는 지에 의존하도록, 제공된 비트레이트들의 집합 내의 상이한 이웃하는 버전들 사이의 비트레이트들의 차이를 동적으로 적응시키는 단계를 더 포함하면 유용한 것으로 사료된다.
유리한 일 실시예에서, 본 방법은, 비트레이트의 차이가 현재 수신된 버전의 비트레이트와 비교하여 클라이언트에 의해 요청된 비트레이트들의 변화가 얼마나 큰 것인지에 의존하도록, 제공된 비트레이트들의 집합 내의 상이한 이웃하는 버전들 사이의 비트레이트들의 차이를 동적으로 적응시키는 단계를 더 포함한다.
또 다른 실시예에서, 본 발명의 방법은 현재 요청된 비트레이트에 근접한 이웃하는 비트레이트에 대해 증가하는 차이를 갖는 비트레이트들을 포함하는 제공된 비트레이트들의 집합을 제공하는 단계를 더 포함한다.
유리하게는, 본 방법은 각각이 이웃하는 비트레이트들에 대해 동일한 거리를 갖는 제공된 비트레이트들의 집합을 제공하는 단계를 더 포함한다.
유리한 일 구현에서, 본 방법은, 현재 수신된 버전의 비트레이트와 비교하여 요청된 버전의 비트레이트의 차이가 임계값을 초과하는 경우에, 상이한 버전들의 이웃하는 비트레이트들의 스텝 크기를 동적으로 적응시키는 단계를 더 포함한다.
제2 양태에 따르면, 본 발명은 본 발명에 따른 방법을 구현하기 위해 적응된 시스템을 제공한다.
도면에서는 본 발명의 일 실시예가 도시된다.
도 1은 본 발명의 일 구현의 개략적인 블록도;
도 2a 내지 도 2c는 상이한 조건들 하에서 제공된 버전들의 비트레이트들을 나타내는 그래프들;
도 3은 특별한 상황에 대한 비트레이트들을 도시하는 또 다른 그래프; 및
도 4는 본 발명의 방법을 도시하는 흐름도.
도 1은 본 발명의 일 구현의 개략적인 블록도;
도 2a 내지 도 2c는 상이한 조건들 하에서 제공된 버전들의 비트레이트들을 나타내는 그래프들;
도 3은 특별한 상황에 대한 비트레이트들을 도시하는 또 다른 그래프; 및
도 4는 본 발명의 방법을 도시하는 흐름도.
도 1은 본 발명을 구현하는 시스템(1)의 개략적인 블록도를 도시한다. 시스템(1)은 소스(2), 적응 플랫폼(3), 및 재생 장치(4)를 포함한다.
소스(2)는 스트리밍 컨텐츠, 예컨대 비디오 컨텐츠의 근원이다. 즉, 소스(2)는 스트리밍 컨텐츠의 제공자이다. 이것은, 예컨대 임의의 종류의 가정용 비디오 또는 선불된 비디오를 전송하는 가정용 장치이거나, 또는 브로캐스트 또는 멀티캐스트 비디오(DVB-T, DVB-IPTV 등)를 전송하는 외부 컨텐츠 제공자, 또는 심지어 파일로서 제공되거나 또는 네트워크로부터 스트리밍될 수 있는 주문형 비디오 서비스(VoD-service)일 수 있다. 도 1에서, 소스(2)는, 예로서 DVB 및 IPTV 신호의 형태로 A/V 컨텐츠를 제공하는 것으로 도시되어 있다.
재생 장치(4)는 성능과 네트워크 조건들에 따라 상이한 품질들로 오디오 및/또는 비디오를 재생할 수 있는 상업적인 단말기 또는 클라이언트 장치이다. 본 특허 출원에서, 클라이언트 장치는, 사용자가 서버에 접속하고, 컨텐츠를 다운로드하고, 사용자를 위해 가청 및 가시적인 방식으로 컨텐츠를 재생하도록 하는 임의의 장치이다. 본 특허 출원에서는, "클라이언트 장치" 및 "클라이언트"라는 용어들은 동의어로 사용된다. HTTP 적응적 스트리밍의 문맥에서는, 재생 장치(4)는, 또한 클라이언트(4)로서 지칭된다. HTTP 적응적 스트리밍과 같은 프로토콜은 클라이언트(4)가 재생하기 전에 적합한 품질을 요청하도록 하므로 바람직하다.
적용가능한 경우, 적응 플랫폼(3)에는 입력되는 컨텐츠 스트림을 개별적인 오디오 구성요소 및 비디오 구성요소로 디멀티플렉싱하기 위한 디멀티플렉서(6)("디먹스")가 제공된다. 비디오 구성요소는 디코더(7)("디코드")에서 디코딩되고, 비디오 세그먼팅 유닛(8)("세그먼트")에서 분할된다. 그 후, 세그먼트들("소스 청크들")은 인코더(9)("인코드")에서 트랜스코딩되는데, 즉 원래 파라미터들과는 상이한 파라미터들을 이용하여 재인코딩된다. 인코더(9)는 H.264 인코더일 수 있지만, 다른 포맷들도 가능하다. 오디오 구성요소는 세그먼팅 유닛(11)("세그먼트")에서 세그먼트들("오디오 청크들")로 분할되고, 트랜스코딩(도시되지 않음)도 될 수 있다. 그 후, 오디오 세그먼트와 트랜스코딩된 비디오 세그먼트는 멀티플렉서(12)("TS 먹스")로 제공된다. 멀티플렉서(12)는 M3U8 매니페스트 포맷에 따라 매니페스트 부분을 준비한다. 멀티플렉서(12)("TS 먹스")는 트랜스코딩되고 멀티플렉싱된 세그먼트들과 매니페스트 부분을 대용량 저장소(13)("파일들") - 이러한 저장소로부터 서버(14)("웹 서버"), 예컨대 HTTP 서버가 클라이언트(4)로 세그먼트들을 전송함 - 에 저장한다.
전술한 바와 같이, 본 발명은 제한된 처리 성능을 갖는 적응 플랫폼(3) 또는 트랜스코더, 예컨대 인텔 CE4200 프로세서에 기반한 기본적인 매체 처리 성능을 갖는 인터넷 게이트웨이 내에서 구현되는 경우, 특히 유용하다.
당업자는 전술한 실시예에서 사용되는 H.264 코덱과 M3U8 매니페스트 포맷의 선택들이 오직 애플 클라이언트 장치들에 적용되는 경우의 본 발명의 설명에서만 필요하다는 것을 알 것이다. 스트림의 모든 필요한 대안적인 버전들을 동시에 생성하기에 인코딩 자원들이 너무 적을 경우에는, VC1, WebM, 및 다른 매니페스트 포맷들과 같은 다른 코덱들을 필요로 하는 다른 적응적 스트리밍 구현들도 기술된 본 발명으로부터 유사하게 이점을 가질 수 있을 것이다.
라이브 비디오를 스트리밍하는 경우, 매니페스트는 시간에 따라 변화하는 청크들의 집합들을 알린다. 알려진 변형들의 집합도 변화한다. 이것은 제안된 변형들의 집합 또는 제공된 버전들의 집합을 동적으로 변경함으로써 본 발명에서 사용된다. 매니페스트 내에서 제시되는 버전들은 접속의 스루풋의 과거 변화들에 따라 업데이트된다. 즉, 매니페스트 부분 내의 버전들은, 이하에서 더 설명될 바와 같이 클라이언트의 요청에 응답하여 업데이트된다고도 할 수 있다.
적응 플랫폼(3)은, 청크가 생성되는 실제 비트레이트와 클라이언트(4)에 의해 요청되는 비트레이트 사이에 약한 연결(loose connection)을 가지므로, 오히려 자유롭게 매니페스트를 생성하는 것이 가능하다. 본 발명에 따르면, 적응 플랫폼(3)은 클라이언트에게 제안될 후속하는 비트레이트들을 선택한다.
적응 플랫폼은 클라이언트에 대해 현재 타겟 비트레이트 즉, 클라이언트에 의해 요청되는 마지막 비트레이트를 제안한다. 이것은, 네트워크 조건들이 안정적인 경우, 클라이언트가 최적 값으로 수렴할 것이고 동일한 것을 계속 요청할 것이기 때문에 중요하다. 따라서, 이것이 제안될 필요가 있다.
적응 플랫폼(3)은, 또한 현재 타겟 비트레이트에 상당히 근접한 일부 비트레이트들을 제안한다. 클라이언트의 최적의 수렴(최대 이용가능한 대역폭 바로 밑에서 머무는 동안의 최적의 가능한 품질)을 위해서, 현재 수신되는 비트레이트로부터 분리된 작은 스텝 크기인 대안적인 비트레이트들이 제공된다. 이것은 클라이언트(4)가 순조로운 품질 변화와 함께 정확한 적응을 이루도록 한다. 이것은 최종 사용자의 인지되는 시각적 품질을 위해 중요하다.
이에 더하여, 적응 플랫폼(3)은 현재 타겟으로부터 상당히 먼 일부 다른 비트레이트들을 제안한다. 이것은 네트워크 조건들에 현저한 변화들이 존재하는 경우에 클라이언트(4)가 빠른 적응을 이루도록 한다.
특정한 일 예에서, 컨텐츠 스트림의 한 버전이 2Mbps의 비트레이트로 전송되는 것이 가정된다. 그 후, 매니페스트는 이하의 비트레이트들을 갖는 버전들의 집합을 제공한다: 1Mbps; 1.5Mbps; 1.8Mbps; 1.9Mbps; 1.95Mbps; 2Mbps; 2.05Mbps; 2.1Mbps; 2.2Mbps; 2.5Mbps; 및 3Mbps.
실제로 스텝들의 수 및 스텝들 사이에 간격을 두는 것은 시스템(1)의 다양한 파라미터들에 적응될 수 있다.
클라이언트(4)의 행위에 따라 스텝들이 배열되는 방식을 동적으로 변화시키는 것도 가능하다. 요청된 비트레이트가 상당히 안정된 경우, 본 발명은, 현재 전송되는 버전 중 하나에 인접한, 매우 작은 스텝들을 갖는, 많은 비트레이트들, 및 현재의 것으로부터 먼 적은 비트레이트들을 제안한다. 조건들이 불안정해 지는 경우, 본 발명은 비트레이트들 사이의 정규적인 스텝들을 이용하여 비트레이트들을 이격시켜, 클라이언트가 이용가능한 비트레이트 범위 내의 임의의 영역에서 자신의 위치를 변화시킬 수 있도록 하는 것을 제안한다.
기술된 상황들은 1Mbps 내지 3Mbps의 범위 내의 비트레이트들의 스케일(21)을 나타내는 도 2a 내지 도 2c에 도시되어 있다. 수직의 바들은 클라이언트(4)에게 제안 또는 제공된 비트레이트들을 나타낸다. 스케일(21)의 가운데 있는 긴 수직 바는 '현재' 비트레이트를 나타낸다. 도 2a 내지 도 2c는 클라이언트(4)에게 10 개의 대안적인 비트레이트들을 갖는 버전들을 제공하는 본 발명의 예시적인 일 실시예를 도시한다.
도 2a는 현재 전송되는 비트레이트 주변에 작은 스텝들을 갖는 안정된 상황에 대한 비트레이트들을 도시한다. 도 2a에 도시된 바와 같이, 1Mbps와 3Mbps에서의 가장 낮은 가능한 비트레이트와 가장 높은 가능한 비트레이트는 클라이언트(4)에게 제안되지 않는다. 본 실시예에서 안정된 대역폭의 가정 하에서는 클라이언트가 1Mbps 또는 3Mbps와 같은 극단적인 값으로 변화할 것이 요구되지 않을 것이므로, 제안된 비트레이트들은 오히려 보다 제한된 범위에 걸쳐있다.
도 2c는 전체 이용가능한 범위에 걸쳐있는 동등하게 이격된 비트레이트들의 집합을 도시한다. 비트레이트들의 이러한 종류의 선택은 상황이 안정적이지 않은 경우에 사용되고, 클라이언트(4)는 이용가능한 범위 내의 '임의의' 비트레이트로 가는 것이 가능할 것이다.
도 2b는 도 2a와 비교하여 제안된 비트레이트들이 현재 전송되는 비트레이트 주위에 적게 집중되어 있지만, 도 2c와 같이 등거리는 아닌 중간 상황을 도시한다.
도 2a 내지 도 2c는 본 발명의 기본적인 하나의 개념, 즉 이웃하는 버전들의 비트레이트들 사이의 차이가 동적으로 적응되도록, 클라이언트(4)에게 제공된 버전들의 비트레이트를 동적으로 선택하는 것을 도시한다. 이웃하는 버전들의 비트레이트들 사이의 차이는 도 2a 내지 도 2c 및 도 3에서의 수직 바들 사이의 거리에 대응한다.
실제로, 제공된 비트레이트들의 수는, 본 발명의 개념에 영향을 주지 않으면서, 상이할 수 있고, 시간에 따라 변화할 수 있다. 또한, 제안된 비트레이트들의 집합은 도 2a 내지 도 2c에 도시된 바와 같이 대칭적으로 분산될 필요가 없다. 예를 들어, 현재 요청된 비트레이트가 주어진 컨텐츠에 대해 가능한 범위와 비교하여 매우 낮거나 또는 매우 높은 경우, 현재 비트레이트에서 아래로 또는 위로 각각 짧은 거리를 갖는 작은 수의 값들이 존재할 수 있고, 위로 또는 아래로 각각 보다 더 이격된 많은 수가 존재할 수 있다.
도 3은 현재 전송되는 비트레이트가 이용가능한 비트레이트 범위의 상한에 존재하는 상황을 도시한다. 결과적으로, 모든 다른 제공된 비트레이트들은 현재 전송되는 비트레이트 아래에 존재한다.
본 발명의 일 특정 실시예에서, 이하의 절차가 사용된다:
광고되는 비트레이트들의 수는 11로 설정된다.
특정 컨텐츠에 대해서, 최소 비트레이트 값 및 최대 비트레이트 값이 결정된다. 최대는 최적의 가능한 품질, 즉 이상적으로 트랜스코딩이 없는 비디오의 비트레이트이다. 소스(2)의 비트레이트와 출력 코덱(9)의 비트레이트가 상이해야 하는 경우에는, 트랜스코딩이 반드시 요구되고, 최대 비트레이트는 소스 비트레이트와 상이할 수 있다. 최소 비트레이트는 최종 사용자를 위한 가장 낮은 수용가능한 비트레이트로서 결정된다. 이것은 상당히 주관적이고, 장치 타입 - HD TV 세트에 대해서는 모바일 전화기에 대한 것보다 나은 품질이 기대됨 - 및 사용자 기호에 의존한다. 최대 비트레이트(max)와 최소 비트레이트(min) 사이의 비는, 예컨대 10이다.
그 후, 시간의 임의의 지점에서, 현재의 비트레이트(B)는 마지막으로 요청된 것으로서 고려된다. 시작을 위해서는, 유럽 특허 출원 EP1130609.3에서도 설명된 바와 같이, 일부 초기값이 트랜스코더에 의해 선택된다. 이러한 비트레이트는 항상 광고된 비트레이트들의 리스트 내에 포함된다. 10개의 남은 비트레이트 값들에 대해서는, 우선 B의 밑에 또는 위에 존재할 비트레이트들의 수가 결정된다. 이러한 두 가지의 수들은 각각 (B - min)와 (max - B)에 비례되지만, 최하위 수를 최대값(ceiling value)으로 라운딩(rounding)한다. 이것은 B가 최소 비트레이트 또는 최대 비트레이트와 정확하게 일치하는 경우를 제외하고는 적은 쪽이 항상 적어도 하나의 값을 갖는다는 것을 의미한다. 예를 들어, B가 하단(low end)에서는 최소 비트레이트에 의해 제한되고, 상단(high end)에서는 최대 비트레이트에 의해 제한되는 비트레이트 간격의 75% 값에 대응하는 경우(즉, 이러한 간격은 [min, max]로서 표기됨), 7개의 광고된 값들은 B 밑에 놓이고, 3개는 B위에 놓인다. B가 간격([min, max])의 90%값에 대응하는 경우, B 밑에는 9개의 광고된 값들, 그리고 B 위에는 1개의 광고된 값이 존재한다. 특히, B가 간격([min, max])의 99% 값에 대응하는 경우, 여전히 9개의 광고된 값들이 B 밑에 있고, 1개의 광고된 값이 B위에 있다는 것을 알 수 있다.
그 후, 값들을 각각의 간격에 위치시키기 위해, 클라이언트(4)의 '안전성'이 측정된다. 이를 위해, 컨텐츠 청크들을 전송하는 웹 서버(14)는 클라이언트(4)로부터 요청된 비트레이트 값들을 수집한다. 이것으로부터, 클라이언트에 의해 요청된 마지막 20개의 비트레이트 값들의 집합에 대한 표준편차(σ)가 계산된다. 이미 설명된 바와 같이, N이 B위에서 생성될 비트레이트들의 수라고 하자. σ가 (max - B)/N보다 큰 경우에는, 요청들의 불안정성은 동등하게 이격된 비트레이트들이 제공되는 것을 요구한다. 그렇지 않은 경우에는, [1, N](1부터 N까지의 자연수들의 간격)내의 n에 대해 n^ρ(nρ라고도 쓰임)값들을 생성하기 위해 비율ρ=(max - B)/(N x σ)가 사용된다. 그러한 N 값들은 (max - B)/N^ρ와 곱함으로써 그리고 기준값 B를 더함으로써 최종적으로 올바른 범위로 감소된다.
동일한 알고리즘이, 공식에서 max - B 대신에 B - min을 사용함으로써, B 아래의 값들에 쉽게 적용된다.
다른 공식들도 원하는 효과를 생성할 수 있다는 것을 알 수 있다. 본 발명은 어떻게 네트워크의 안정성이 계산되는지에 국한되지 않는다.
본 발명의 주된 이점은 모든 가능한 비트레이트들을 커버하는 대안적인 버전들의 매우 긴 리스트를 광고할 필요가 없으면서도 A/V 컨텐츠의 적응적 전송이 매우 정확하게 임의의 최적의 값으로 수렴하도록 허용한다는 것이다.
또한, 작은 비트레이트 스텝들을 제공하는 것은, 제한된 수의 비트레이트(들)에서의 청크들의 사전트랜스코딩(pre-transcoding)에 의해 도입된 제공된 청크 사이의 차이를 줄일 수 있으므로, 도움이 된다. 예컨대, 클라이언트가 비트레이트(B)를 갖는 청크(N)을 요청한 경우, 적응적 트랜스코더는 동일한 비트레이트(B)를 갖는 청크(N+1)를 준비하고 또한 비트레이트(B)를 갖는 후속하는 청크(N+2)를 준비한다. 즉, 다른 비트레이트에 대한 요청이 적응적 트랜스코더로 송신되는 경우와 요청된 비트레이트를 이용하여 첫 번째 청크가 생성되는 경우 사이에 지연이 존재한다. 예를 들어, 클라이언트가 비트레이트(B)로부터 낮은 비트레이트(B')로 변경할 필요가 있고, 그에 따라 비트레이트(B')를 갖는 청크(N+1)를 요청하는 경우, 이것은 실제로는 여전히 비트레이트(B')가 아닌 비트레이트(B)를 갖는 청크(N+1)과 청크(N+2)를 수신할 것이다. 트랜스코더는 비트레이트(B')를 갖는 청크(N+3)만을 인코딩한다.
B와 B' 사이의 차이가 큰 경우, 다량의 데이터 송신에 대한 이러한 지연은 클라이언트 버퍼를 비어 있게 하여, 클라이언트(4)에서 비디오 정지를 초래할 수 있다. 그 이유는 수신될 청크가 이용가능한 대역폭에 비해 너무 커서, 도착하기에 긴 시간이 걸릴 것이기 때문이다. 이 시간 동안에, 클라이언트(4)는 모든 사전의 버퍼링된 데이터를 사용해 버릴 것이고, 재생을 멈추고 남은 데이터가 도착하기를 기다려야할 것이다.
작은 스텝들을 제공하는 것은 비트레이트들의 작은 차이들로 보다 자주 변경할 수 있는 기회를 클라이언트에게 주어, 클라이언트(4)에서의 비디오 정지의 위험을 감소시켜야 한다.
비트레이트들의 리스트를 구축하는 데에 필요한 계산들은 연산력의 관점에서 비용이 많이 들지 않는다. 이러한 작은 비용은 매니페스트 부분에서 클라이언트(4)에게 전송되는 양에서의 절약에 의해서 상쇄되며, 또한 대용량 저장소(13)에서 가령, 기호 링크(symbolic link)들을 통해서 의사 청크들(pseudo chunks)을 생성하는 비용을 제한하는 것에 의해서도 상쇄된다. 이것은 다음과 같이 설명될 수 있다: 적응적 트랜스코더에서, 비트레이트(B)로 청크를 생성하는 경우, 모든 비트레이트에 대한 하나의 파일이 매니페스트에서 생성되고, 시그널링된다. 웹 서버는 단지 요청된 파일들에 대해 서빙해야한다. 파일들의 파일명들은 청크 수와 비트레이트 값을 이용하여 구축된다. 많은 저장 공간을 사용하는 파일 복제보다는, 동일한 파일을 모두 포인팅하는 기호 링크들이 생성된다. 그러나, 링크들을 생성하는 것도 파일 시스템 호출이기 때문에 비용을 갖는다. 이것이 각각의 청크에 대해서 많이 발생되는 경우, 요구되는 연산력은 상당할 수 있다.
적응 플랫폼(3)에 의해 제공되는 버전들의 비트레이트들의 집합은 클라이언트(4)의 안정성이 미리정해진 임계값을 넘어서 변화하는 경우에만 적응된다. 일 실시예에서, 임계값은 미리정해진 기간 동안 현재 전송되는 비트레이트와는 상이한 비트레이트에 대한 요청들의 특정 수로서 정의된다. 또 다른 실시예에서, 임계값은 현재 전송되는 비트레이트와 비교하여 요청된 비트레이트의 차이로서 정의된다. 본 발명의 구현들에서, 하나 보다 많은 임계값이 존재할 수 있다. 하나 또는 수 개의 임계값들을 넘는 것은 제공된 버전들의 집합의 비트레이트들의 적응을 개시시킨다.
도 4는 흐름도에서 본 발명에 따른 방법의 원리를 도시한다. 단계 41에서, 적응 플랫폼(3)은 상이한 비트레이트들을 갖는 A/V 컨텐츠의 버전들을 클라이언트(4)에게 제공한다. 단계 42에서, 적응 플랫폼(3)은, 또한 제공된 버전들의 매니페스트 부분을 준비한다. 단계 43에서, 적응 플랫폼(3)은 클라이언트(4)에게 매니페스트 부분을 제공한다. 단계 44에서 클라이언트는 컨텐츠의 특정 버전을 요청한다. 클라이언트(4)의 요청에 응답하여, 적응 플랫폼(3)은 제공된 버전들의 비트레이트들을 선택한다. 전술한 바와 같이, 선택된 비트레이트는 클라이언트(4)의 요청의 함수로서 변할 수 있거나 변하지 않을 수 있다. 루프(46)에 의해 기호화된 것과 같이, 본 방법은 적응 플랫폼(3)이 컨텐츠의 버전들의 집합을 클라이언트(4)에게 제공하는 단계 41로 돌아온다.
본 발명에 따른 시스템은 안정된 네트워크 조건들을 대면한 경우 최적의 비트레이트에 근접한 수렴, 즉 클라이언트의 안정된 행위을 허용함으로써 적응적 트랜스코더를 이용하여 얻어진 사용자 경험을 개선한다. 요구되는 것 위와 아래의 두 개의 값들 사이에서 변동은 존재하지 않는다.
참조번호들의 리스트
1 시스템
2 소스
3 적응 플랫폼
4 재생 장치
6 디멀티플렉서
7 디코더
8 비디오 세그멘팅 유닛
9 인코더
11 오디오 세그멘팅 유닛
12 멀티플렉서
13 대용량 저장소
14 서버
21 비트레이트들의 스케일
41 버전을 제공하는 단계
42 매니페스트 부분을 준비하는 단계
43 매니페스트 부분을 제공하는 단계
44 특정 버전을 요청하는 단계
45 비트레이트들을 선택하는 단계
46 루프
Claims (9)
- 상이한 비트레이트들을 갖는 컨텐츠 스트림의 버전들의 집합을 클라이언트(4)에게 제공하는 방법으로서,
a) 상기 컨텐츠 스트림의 제공된 버전들의 집합을 기술하는 매니페스트 부분(manifest part)을 상기 클라이언트(4)에게 제공하는 단계;
b) 특정 비트레이트를 갖는 상기 컨텐츠 스트림의 하나의 버전에 대한 요청을 상기 클라이언트(4)로부터 수신하는 단계;
c) 상기 컨텐츠 스트림의 하나의 버전을 상기 클라이언트(4)에 의해 요청된 특정 비트레이트로 트랜스코딩하는 단계;
d) 새로운 매니페스트 부분에서 상기 클라이언트(4)에게 제공될 버전들을 동적으로 선택하는 단계 - 상기 요청된 비트레이트와 연관된 버전에 이웃하는 제공된 버전들의 비트레이트들 사이의 차이들은 상기 클라이언트의 행위에 따라 동적으로 적응되고, 상기 새로운 매니페스트 부분은
현재 타겟 비트레이트에 근접한 비트레이트들의 제공된 버전들,
상기 현재 타겟 비트레이트로부터 먼 비트레이트들의 제공된 버전들
을 포함함 - ; 및
e) 상기 a) 내지 d) 단계들을 반복하는 단계
를 포함하는 방법. - 제1항에 있어서,
단일 클라이언트(4)에게 상기 컨텐츠 스트림의 버전들의 집합을 제공하는 단계를 더 포함하는 방법. - 제1항에 있어서,
상기 이웃하는 비트레이트가 상기 클라이언트(4)에 의해 요청된 비트레이트들의 변화들에 기초하여 결정되도록, 제공된 버전들의 집합 내의 상이한 이웃하는 버전들 사이의 비트레이트들의 차이를 동적으로 적응시키는 단계를 더 포함하는 방법. - 제3항에 있어서,
상기 비트레이트의 차이가 상기 클라이언트가 얼마나 자주 상이한 비트레이트를 요청하는 지에 기초하여 결정되도록, 비트레이트들과 연관된 제공된 버전들의 집합 내의 상이한 이웃하는 버전들 사이의 비트레이트들의 차이를 동적으로 적응시키는 단계를 더 포함하는 방법. - 제3항에 있어서,
상기 비트레이트의 차이가 현재 수신된 버전의 비트레이트와 비교하여 상기 클라이언트에 의해 요청된 상기 비트레이트들의 변화가 얼마나 큰 것인지에 기초하여 결정되도록, 비트레이트들과 연관된 제공된 버전들의 집합 내의 상이한 이웃하는 버전들 사이의 비트레이트들의 차이를 동적으로 적응시키는 단계를 더 포함하는 방법. - 제3항에 있어서,
현재 요청된 비트레이트에 근접한 이웃하는 비트레이트에 대해 증가하는 차이를 갖는 비트레이트들을 포함하는 비트레이트들과 연관된 제공된 버전들의 집합을 제공하는 단계를 더 포함하는 방법. - 제3항에 있어서,
각각이 상기 이웃하는 비트레이트들에 대해 동일한 거리를 갖는 비트레이트들과 연관된 제공된 버전들의 집합을 제공하는 단계를 더 포함하는 방법. - 제5항에 있어서,
상기 현재 수신된 버전의 비트레이트와 비교된 요청된 버전의 상기 비트레이트의 차이가 임계값을 초과하는 경우에, 상이한 버전들의 이웃하는 비트레이트들의 스텝 폭을 동적으로 적응시키는 단계를 더 포함하는 방법. - 시스템으로서,
제1항 내지 제8항 중 어느 한 항에 있어서의 방법을 구현하기 위해 적응된 시스템(1).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20120305501 EP2661045A1 (en) | 2012-05-04 | 2012-05-04 | Method and apparatus for providing a plurality of transcoded content streams |
EP12305501.4 | 2012-05-04 | ||
PCT/EP2013/058532 WO2013164233A1 (en) | 2012-05-04 | 2013-04-24 | Method and apparatus for providing a plurality of transcoded content streams |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150008087A KR20150008087A (ko) | 2015-01-21 |
KR102086873B1 true KR102086873B1 (ko) | 2020-03-09 |
Family
ID=48227241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147031060A KR102086873B1 (ko) | 2012-05-04 | 2013-04-24 | 복수의 트랜스코딩된 컨텐츠 스트림들을 제공하기 위한 방법 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20150127848A1 (ko) |
EP (2) | EP2661045A1 (ko) |
JP (1) | JP6133974B2 (ko) |
KR (1) | KR102086873B1 (ko) |
CN (1) | CN104247368B (ko) |
TW (1) | TWI593282B (ko) |
WO (1) | WO2013164233A1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10212049B2 (en) | 2013-03-14 | 2019-02-19 | Time Warner Cable Enterprises Llc | Apparatus and methods for managing service delivery telemetry |
US11100051B1 (en) * | 2013-03-15 | 2021-08-24 | Comcast Cable Communications, Llc | Management of content |
US9973559B2 (en) * | 2013-05-29 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for presenting content streams to a client device |
US9661045B2 (en) | 2014-01-13 | 2017-05-23 | Cisco Technology, Inc. | System and methods for dynamic transcoder rate adaption for adaptive bit rate streaming |
US9380086B2 (en) | 2014-02-18 | 2016-06-28 | Dropbox, Inc. | Pre-transcoding content items |
US10171607B2 (en) * | 2014-03-28 | 2019-01-01 | Time Warner Cable Enterprises Llc | Apparatus and methods for managing quality of experience during the delivery of content |
US9813470B2 (en) * | 2014-04-07 | 2017-11-07 | Ericsson Ab | Unicast ABR streaming |
JP2016019140A (ja) * | 2014-07-08 | 2016-02-01 | 富士通株式会社 | コンテンツ転送方法、コンテンツ転送装置、コンテンツ受信装置およびコンテンツ転送プログラム |
KR102269927B1 (ko) * | 2015-01-13 | 2021-06-28 | 주식회사 알티캐스트 | 녹화 컨텐츠의 분산 트랜스코딩 제어 방법 및 장치 |
US10498780B2 (en) * | 2015-04-30 | 2019-12-03 | Facebook, Inc. | Systems and methods for streaming content |
US10531135B2 (en) * | 2016-01-04 | 2020-01-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Network recording apparatus |
KR101879439B1 (ko) * | 2017-03-27 | 2018-07-18 | (주)판도라티비 | 적응적 비트레이트 영상 서비스 방법 |
US10334287B2 (en) * | 2017-04-17 | 2019-06-25 | Plex, Inc. | Digital data streaming using server driven adaptive bitrate |
FR3073112B1 (fr) * | 2017-11-02 | 2021-04-02 | Ateme | Procede et systeme de traitement d'un contenu multimedia dans un reseau de zone metropolitaine |
US11206297B2 (en) * | 2018-03-19 | 2021-12-21 | Livescale Technologies Inc. | Video streaming |
EP3742739B1 (en) * | 2019-05-22 | 2021-04-14 | Axis AB | Method and devices for encoding and streaming a video sequence over a plurality of network connections |
KR102232728B1 (ko) * | 2019-09-04 | 2021-03-29 | 네이버 주식회사 | 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템 |
WO2021124387A1 (ja) * | 2019-12-16 | 2021-06-24 | 日本電信電話株式会社 | 符号化データ生成方法、符号化データ生成装置、及びプログラム |
US11889345B2 (en) * | 2020-05-15 | 2024-01-30 | EXFO Solutions SAS | Event-based load balancing in 4G-5G multi-radio dual connectivity |
KR102312778B1 (ko) * | 2020-12-21 | 2021-10-14 | 이영숙 | 공연을 실시간 또는 촬영 영상으로 제공하는 공연 서비스 시스템 및 방법 |
KR102249185B1 (ko) * | 2021-03-22 | 2021-05-07 | 네이버 주식회사 | 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011087449A1 (en) | 2010-01-18 | 2011-07-21 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and arrangements for http media stream distribution |
US20110255535A1 (en) * | 2006-09-14 | 2011-10-20 | Opentv, Inc. | Method and systems for data transmission |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE20003679U1 (de) | 2000-02-29 | 2000-08-17 | TRW Automotive Electronics & Components GmbH & Co. KG, 78315 Radolfzell | Bauteil |
US7356562B2 (en) * | 2003-04-30 | 2008-04-08 | International Business Machines Corporation | Dynamic generator for fast-client static proxy from service interface definition document |
EP1638333A1 (en) * | 2004-09-17 | 2006-03-22 | Mitsubishi Electric Information Technology Centre Europe B.V. | Rate adaptive video coding |
EP1978743B1 (en) * | 2007-04-02 | 2020-07-01 | Vestel Elektronik Sanayi ve Ticaret A.S. | A method and apparatus for transcoding a video signal |
US8621044B2 (en) * | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
JP2011087103A (ja) * | 2009-10-15 | 2011-04-28 | Sony Corp | コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供 |
US9137278B2 (en) * | 2010-04-08 | 2015-09-15 | Vasona Networks Inc. | Managing streaming bandwidth for multiple clients |
CN101867580B (zh) * | 2010-06-03 | 2012-11-28 | 北京蓝汛通信技术有限责任公司 | 一种分配网络流量的方法及装置 |
US8190677B2 (en) * | 2010-07-23 | 2012-05-29 | Seawell Networks Inc. | Methods and systems for scalable video delivery |
US20120030723A1 (en) * | 2010-07-27 | 2012-02-02 | Motorola, Inc. | Method and apparatus for streaming video |
WO2012142510A1 (en) * | 2011-04-15 | 2012-10-18 | Skyfire Labs, Inc. | Real-time video detector |
EP2730072B1 (en) * | 2011-07-07 | 2016-09-07 | Telefonaktiebolaget LM Ericsson (publ) | Network-capacity optimized adaptive streaming |
US9026670B2 (en) * | 2011-08-22 | 2015-05-05 | Allot Communications Ltd. | System and method for efficient caching and delivery of adaptive bitrate streaming |
US8751679B2 (en) * | 2011-10-07 | 2014-06-10 | Ericsson Television Inc. | HTTP adaptive streaming server with automatic rate shaping |
-
2012
- 2012-05-04 EP EP20120305501 patent/EP2661045A1/en not_active Withdrawn
-
2013
- 2013-04-18 TW TW102113696A patent/TWI593282B/zh active
- 2013-04-24 WO PCT/EP2013/058532 patent/WO2013164233A1/en active Application Filing
- 2013-04-24 CN CN201380020259.6A patent/CN104247368B/zh active Active
- 2013-04-24 US US14/398,571 patent/US20150127848A1/en not_active Abandoned
- 2013-04-24 EP EP13719493.2A patent/EP2845360A1/en not_active Ceased
- 2013-04-24 KR KR1020147031060A patent/KR102086873B1/ko active IP Right Grant
- 2013-04-24 JP JP2015509374A patent/JP6133974B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110255535A1 (en) * | 2006-09-14 | 2011-10-20 | Opentv, Inc. | Method and systems for data transmission |
WO2011087449A1 (en) | 2010-01-18 | 2011-07-21 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and arrangements for http media stream distribution |
Also Published As
Publication number | Publication date |
---|---|
WO2013164233A1 (en) | 2013-11-07 |
TWI593282B (zh) | 2017-07-21 |
TW201351965A (zh) | 2013-12-16 |
US20150127848A1 (en) | 2015-05-07 |
EP2845360A1 (en) | 2015-03-11 |
JP2015520966A (ja) | 2015-07-23 |
KR20150008087A (ko) | 2015-01-21 |
CN104247368B (zh) | 2018-02-09 |
JP6133974B2 (ja) | 2017-05-24 |
CN104247368A (zh) | 2014-12-24 |
EP2661045A1 (en) | 2013-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102086873B1 (ko) | 복수의 트랜스코딩된 컨텐츠 스트림들을 제공하기 위한 방법 및 장치 | |
JP6170920B2 (ja) | マルチメディア・ストリームの適応トランスコーディングの方法及び装置 | |
US10320868B2 (en) | Processing of multimedia data | |
Juluri et al. | SARA: Segment aware rate adaptation algorithm for dynamic adaptive streaming over HTTP | |
JP6308718B2 (ja) | マルチパス環境におけるアダプティブストリーミングのためのシステムと方法 | |
US20170238040A1 (en) | Method, computer program product and server for streaming media content from a server to a client | |
KR20180018747A (ko) | 미디어 세그먼트들을 저장하기 위한 디렉토리 제한 기반 시스템 및 방법 | |
WO2014011848A2 (en) | Signaling and processing content with variable bitrates for adaptive streaming | |
US11877022B2 (en) | Packager for segmenter fluidity | |
EP2566171A1 (en) | Method for adapting the segment size in transcoded multimedia streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |