KR20170118759A - 라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법 - Google Patents

라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20170118759A
KR20170118759A KR1020177023590A KR20177023590A KR20170118759A KR 20170118759 A KR20170118759 A KR 20170118759A KR 1020177023590 A KR1020177023590 A KR 1020177023590A KR 20177023590 A KR20177023590 A KR 20177023590A KR 20170118759 A KR20170118759 A KR 20170118759A
Authority
KR
South Korea
Prior art keywords
live
encoding
input stream
frame
segment
Prior art date
Application number
KR1020177023590A
Other languages
English (en)
Other versions
KR101897959B1 (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 KR20170118759A publication Critical patent/KR20170118759A/ko
Application granted granted Critical
Publication of KR101897959B1 publication Critical patent/KR101897959B1/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
    • 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/234381Processing 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 the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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
    • H04L65/601
    • H04L65/607
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명의 실시예는 현재 인코딩된 프레임을 재-인코딩하는 대신에 상기 현재 인코딩된 프레임을 복제하고, 그 다음, 상기 복제된 프레임을 여러 상이한 적응형 비트레이트 스트림들에 대해 필요에 따라 상이한 비트레이트, 해상도 및/또는 컨텍스트로 조정한다. 또한, 본 발명의 다양한 실시예들은 리패키징 및/또는 재-인코딩되는 현재 프레임의 지속시간을 확장할 수 있다. 이들 및 다른 기술들을 활용하여, 본 발명의 실시예들에 따른 라이브 인코딩 시스템은 수신된 데이터의 갭들과, 느린 데이터의 공급 및/또는 서버 하드웨어 상의 과부하를 보다 효율적으로 처리할 수 있다.

Description

라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법
본 발명은 일반적으로 라이브 입력 스트림(live input stream)으로부터 적응형 비트레이트 스트림의 라이브 인코딩 분야에 관한 것이다. 특히, 본 발명은 라이브 입력 스트림으로부터 적응형 비트레이트 스트림의 라이브 인코딩을 최적화하고 개선하기 위한 여러 기술에 관한 것이다.
스트리밍 기술은 탑 스트리밍(top streaming)에 대한 라이브(live)를 지원하는 지점으로 나아갔다. 이제 라이브 이벤트들은 라이브 인코딩 서버에 의해 생성된 적응형 비트레이트 스트림에 의해 볼 수 있게 됐다. 종종 라이브 인코딩 서버는 MPEG-DASH 포맷(즉, HTTP를 통한 동적 적응형 스트리밍)을 사용한다. MPEG-DASH(ISO/IEC 23009-1)는 인터넷을 통해 멀티미디어 컨텐트를 스트리밍하는 표준이다. MPEG-DASH는 MPEG(Moving Picture Expert Group)에 의해 개발되었다. MPEG는 MPEG-2, MPEG-4, MPEG-7, MPEG-21 등을 포함하는 이전의 멀티미디어 표준들을 개발하는 역할을 맡아왔다. MPEG-DASH는 적응형 비트레이트 스트리밍 기술이며 기존의 HTTP 웹 서버에서 제공되는 인터넷을 통해 미디어 컨텐트를 고품질로 스트리밍할 수 있다. 일반적으로, MPEG-DASH는 HTTP(Hypertext Transfer Protocol)를 통해 검색되는 비디오 세그먼트를 각각 포함하는 작은 파일들의 시퀀스를 사용하며, 각 세그먼트는 짧은 간격의 프레젠테이션 재생 시간을 포함한다. 프레젠테이션은 라이브 이벤트가될 수 있거나 및/또는 지정된 지속시간을 가질 수 있다. 적응형 비트레이트 스트림은 300kb/s, 500kb/s, 및 3MB/s와 같은 다양한 상이한 비트레이트로 이용될 수 있다. 소스 스트림들을 복수의 적응형 비트레이트 스트림들로 라이브 인코딩 및/또는 트랜스코딩하는 것은 상당한 컴퓨팅 자원을 필요로 하며, 라이브 인코딩 하드웨어는 상당히 비싸다.
본 발명은 라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장과 관련하여 최적화되고 개선된 시스템 및 방법을 제공하기 위한 것이다.
이제 도면을 참조하여 본 발명의 실시예에 따른 라이브 인코딩 시스템이 설명된다. 여러 실시예들에서, 라이브 인코딩 시스템은, 이에 한정되는 것은 아니지만, 스포츠 이벤트, 라이브 뉴스 커버리지, 웹 라이브 스트림, 및/또는 단일의 또는 다중화된 미디어 스트림들과 같은 라이브 미디어 피드(live media feed)를 수신한다. 미디어 스트림들은 멀티미디어를 포함하며 이는 공급자에 의해 제공되는 동안 클라이언트에 의해 지속적으로 수신되어 클라이언트에게 제공된다. 스트리밍이란 스트림들을 통해 미디어를 전달하는 프로세스를 말한다. 라이브 인코딩 시스템은 라이브 입력 스트림으로부터 인코딩된 미디어 스트림을 클라이언트에 제공할 수 있다. 더욱이, 라이브 인코딩 시스템은 수신된 라이브 미디어 피드들을 상이한 최대 비트레이트를 갖는 여러의 상이한 적응형 비트레이트 스트림들로 인코딩할 수 있다. 라이브 인코딩 시스템은 또한 HTTP 요구사항을 포함하는 프로토콜들(이에 한정되는 것은 아니다)을 통해 라이브 미디어 프레젠테이션으로 인코딩된 적응형 비트레이트 스트림을 스트리밍 클라이언트로 송신할 수 있고 및/또는 인코딩된 적응형 비트레이트 스트림을 클라이언트 디바이스에 배포하기 위해 서버들에 제공할 수 있다. 라이브 미디어 프레젠테이션의 인코딩 및 전송은 이러한 동작들을 수행하는데 사용되는 하드웨어에 부담이 될 수 있다. 본 발명의 실시예들은 라이브 인코딩 및 송신 동작들을 수행하는 하드웨어 상의 부하를 감소시키는 여러 기술을 제공한다. 실례로, 본 발명의 많은 실시예들에 따른 라이브 인코딩 시스템들은 여러 수단들에 의해 네트워크 및/또는 서버 로드 레벨들을 평가할 수 있다. 로드는 라이브 인코딩 시스템이 수행하는 작업량(예를 들면: 계산, 인코딩 동작, 메모리 동작 등)으로 종종 측정된다. 평가들에 기초하여 라이브 인코딩 시스템은 라이브 미디어 피드들로부터의 비디오 프레임이 인코딩되는 방식을 조정할 수 있다. 실례로, 라이브 인코딩 시스템의 일부 실시예들은 현재 인코딩된 프레임을 재-인코딩하는 대신에 상기 현재 인코딩된 프레임을 복제하고, 그 다음, 상기 복제된 프레임을 여러 상이한 적응형 비트레이트 스트림들에 대해 필요에 따라 상이한 비트레이트, 해상도 및/또는 컨텍스트로 조정한다. 또한, 라이브 인코딩 시스템의 다양한 실시예들은 리패키징(repackaged) 및/또는 재-인코딩되는 현재 프레임의 지속시간을 확장할 수 있다. 이들 및 다른 기술들을 활용하여, 본 발명의 실시예들에 따른 라이브 인코딩 시스템은 수신된 데이터의 갭(gap)들과, 느린 데이터의 공급 및/또는 서버 하드웨어 상의 과부하를 보다 효율적으로 처리할 수 있다.
네트워크 전송 레벨들은 라이브 인코딩 프로세스에 영향을 미칠 수 있다. 예를 들면, 라이브 미디어 피드가 라이브 입력 스트림에서 라이브 인코딩 시스템으로의 네트워크 전송 레벨에서 방해를 받게 될 때, 라이브 인코딩 시스템에 인입하는 데이터에서 갭이 있을 수 있다. 인입하는 데이터에서의 갭들로 인해 출력 데이터에 갭들이 생길 수 있고, 및/또는 라이브 인코딩 시스템이 요청시 출력 프레임들을 제공하지 못하게 될 수 있다. 본 발명의 일부 실시예들에 따른 라이브 인코딩 시스템들은 갭들이 언제 발생했는지를 판정하도록 입력 미디어 피드들을 평가할 수 있다. 이러한 평가들은 인입하는 프레임레이트, 인입하는 비트레이트, 도착된 프레임들 사이의 시간, 및/또는 네트워크 대역폭 측정들(이에 한정되지 않는다)을 포함하는 여러 가지 수단들에 기초하여 이루어질 수 있다. 본 발명의 많은 실시예들에 따른 라이브 인코딩 시스템들은 인입하는 미디어 스트림을 여러 개의 적응형 비트레이트 스트림들로 리패키징(repackaging)하는 동안 프레임들을 복제하고 및/또는 프레임들을 확장함으로써 데이터에서 검출된 갭들을 보상할 수 있다. 프레임들을 복제하고 및/또는 프레임들을 확장함으로써 라이브 인코딩 시스템들은 클라이언트가 의존하는 요청된 시간에 프레임의 가용성을 위태롭게 하지 않으면서 네트워크 조건을 안정화할 기회를 갖게 할 수 있다. 특히, 라이브 인코딩 시스템은 라이브 스트리밍된 미디어의 라이브 에지보다 뒤처질 수 있다. 클라이언트는 일반적으로 프레젠테이션의 라이브 에지에서 라이브 스트림으로부터 프레임들을 요청한다. 본 명세서에서, "라이브 에지"라는 용어는 클라이언트가 아직 사용할 수 없는 세그먼트들을 요청할 위험성을 갖지 않고 요청할 수 있는 라이브 스트림의 가장 최근에 인코딩된 세그먼트를 나타낸다. 아직 사용 가능하지 않은 세그먼트를 요청하면 (제한적이지는 않지만) 지연, HTTP 미발견 에러들과 같은 수많은 스트리밍 에러들이 발생하고, 대역폭-클로깅 반복된 요청들(bandwidth-clogging repeated requests)을 일으킬 수 있다.
서버 로드 레벨은 물론 라이브 인코딩 프로세스에도 영향을 미칠 수 있다. 라이브 인코딩 시스템이 라이브 인코딩 서버로 구현되는 경우 서버 하드웨어는 인코딩 프로세스에 의해 억압될 수 있다. 라이브 인코딩 서버가 라이브 에지보다 뒤처져있는 경우 클라이언트가 라이브 에지에서 이루어지는 요청들을 의존할 때 여러 적응형 비트레이트 스트림이 실패할 수 있다. 특히 라이브 스트리밍 클라이언트는 라이브 인코딩 시스템이 실시간보다 느리지 않은 세그먼트들을 발생시킨다는 가정하에 비디오 세그먼트들을 요청할 수 있다. 본 발명의 많은 실시예들에 따른 라이브 인코딩 시스템은 현재 프레임들을 확장하고 출력 프레임들의 타임 스탬프를 조정함으로써 서버 부하를 보상할 수 있다. 확장된 프레임들은 가시적 에러들을 인식하기에 약하거나 및/또는 어려울 수 있지만, 상기 요청을 보존하고 클라이언트가 라이브 스트리밍에 대해 의존하는 HTTP 사이클을 수신한다. 더욱이, 본 발명의 실시예들에 따른 라이브 인코딩 시스템은 또한 복제된 현재 프레임들에 의해 서버 부하를 보상할 수 있고, 출력 스트림들의 필요에 따라 그 프레임 컨텍스트를 조정할 수 있다.
도 1은 본 발명의 일 실시예에 따른 라이브 인코딩 시스템을 도시하는 네트워크 다이어그램이다.
도 2는 본 발명의 일 실시예에 따른 라이브 인코딩 시스템에 의해 수행되는 하이 레벨 프로세스를 도시하는 흐름도이다.
도 3은 본 발명의 실시예에 따라 누락된 입력 프레임을 보상하기 위해 프레임을 확장하는 라이브 인코딩 시스템의 예를 개념적으로 도시한다.
도 4는 본 발명의 실시예에 따라 누락된 입력 프레임들을 보상하기 위해 프레임들을 확장하는 라이브 인코딩 시스템의 대안적인 예를 개념적으로 도시한다.
도 5는 본 발명의 일 실시예에 따라 지연된 입력 프레임들을 보상하기 위해 프레임들을 확장하는 라이브 인코딩 시스템의 예를 개념적으로 도시한다.
도 6은 본 발명의 일 실시예에 따라 지연된 입력 프레임들을 보상하기 위해 프레임들을 확장하는 라이브 인코딩 시스템의 대안적인 예를 개념적으로 도시한다.
도 7은 본 발명의 실시예에 따라 시스템 부하를 보상하기 위해 프레임들을 복제하는 라이브 인코딩 시스템의 일례를 개념적으로 도시한다.
도 8은 본 발명의 일 실시예에 따른 라이브 인코딩 시스템 및 스트리밍에 대한 데이터 흐름도이다.
도 9는 본 발명의 실시예에 의해 이용될 수 있는 MPEG-DASH에 대한 미디어 프레젠테이션 디스크립션(MPD) 데이터 모델의 예이다.
도 10은 본 발명의 일 실시예에 따른 라이브 인코딩 서버의 구조를 개념적으로 도시한다.
본 발명의 많은 실시예들에 따른 라이브 인코딩 시스템의 동작들 및 기능들의 간략한 개요를 기술하고, 본 발명의 실시예들에 따른 라이브 인코딩 시스템에 대한 시스템들, 서버들, 및 방법들에 대해 더욱 상세히 기술한다.
라이브 인코딩 시스템들에 대한 네트워크 아키텍처
본 발명의 실시예에 따른 라이브 인코딩 시스템에 대한 네트워크 아키텍처가 도 1에 도시된다. 시스템(100)은 라이브 인코딩 서버 및 지원 하드웨어(102)를 포함하고, 이는 라이브 인코딩을 지원하기 위해 필요에 따라 애플리케이션 서버들, 데이터베이스 서버들, 및/또는 데이터베이스를 포함한다. 라이브 인코딩 서버 및 지원 하드웨어(102)는 컨텐트 소스들(114)로부터 라이브 미디어 컨텐트 및/또는 비-라이브 컨텐트를 수신할 수 있다. 컨텐트 소스들(114)은 라이브 인코딩 서버 및 지원 하드웨어(102)에 미디어를 제공하기 위한 하드웨어 사용을 포함할 수 있다. 콘텐트 소스들(114)로부터 수신된 미디어는 웹 스트림, 라이브 미디어 브로드캐스트, 텔레비전 브로드캐스트, 라이브 이벤트 커버리지, 라이브 카메라로부터의 비디오 피드, 이전에 저장된 미디어, 원시 미디어 피드, 인코딩된 미디어 피드, 및/또는 로컬 및/또는 원격 저장소로부터 수신된 정적 파일들(이에 제한되지 않는다)을 포함할 수 있다.
라이브 인코딩 서버 및 지원 하드웨어(102)는 네트워크(104)를 통해 컨텐트의 스트림들을 제공하기 위해 여러 디바이스 그룹들과 통신할 수 있다. 디바이스 그룹들은 웹, 파일 및/또는 미디어 서버(106), 컴퓨팅 디바이스(108), 및/또는 모바일 디바이스(112)(이에 제한되지 않는다)를 포함한다. 이들 디바이스 그룹들로부터 디바이스 사용자들은 로컬 스트리밍 클라이언트를 이용하여 제공된 스트리밍 컨텐트를 볼 수 있다. 또한, 웹, 파일 및/또는 미디어 서버(106)는 또한 상기 제공된 스트리밍 컨텐트의 클라이언트 및/또는 추가적인 다운스트림 뷰어들에 대한 호스트로서 역할을 할 수 있다.
도 1에 도시된 바와 같이, 라이브 인코딩 서버 및 지원 하드웨어(102)는 애플리케이션 서버들, 데이터베이스 서버들, 및 데이터베이스들을 포함한다. 다양한 실시예들에서, 라이브 인코딩 서버 및 지원 하드웨어(102)는 디바이스들의 가변적인 수들과 유형들을 포함할 수 있다. 예를 들면, 라이브 인코딩 서버 및 지원 하드웨어(102)는 단일 컴퓨팅 디바이스로서 구현될 수 있으며, 여기서 상기 단일 컴퓨팅 디바이스는 충분한 저장, 네트워킹, 및/또는 컴퓨팅 능력을 갖는다. 그러나, 라이브 인코딩 서버 및 지원 하드웨어(102)는 또한 다양한 유형들과 다중 위치들의 다수의 컴퓨팅 디바이스들을 사용하여 구현될 수도 있다. 예를 들면, 라이브 인코딩 서버 및 지원 하드웨어(102)는 라이브 미디어를 인코딩하기 위한 라이브 인코딩 서버 및 라이브 인코딩 서버에 의해 인코딩된 세그먼트들에 대한 HTTP 요청에 응답하기 위한 HTTP 서버로서 구현될 수 있다. 라이브 인코딩 서버 및 지원 하드웨어(102)가 애플리케이션 서버, 데이터베이스 서버 및 데이터베이스를 포함하여 도시되었지만, 당업자는 본 발명이 도 1에 도시된 디바이스들에 한정되지 않으며 추가적인 유형의 컴퓨팅 디바이스들(예를 들면, 웹 서버들 및/또는 클라우드 저장 시스템들)을 포함할 수 있다는 것을 인식할 것이다.
도 1에 도시된 실시예에서, 네트워크(104)는 인터넷이다. 라이브 인코딩 서버 및 지원 하드웨어(102)는 네트워크(104)를 통해 그리고 무선 접속(110)을 거쳐서 모바일 디바이스들(112)로 및 그로부터 요청들을 수신하고 미디어 세그먼트들을 전송할 수 있다. 무선 접속(110)은 4G 접속, 셀룰러 네트워크, Wi-Fi 네트워크 및/또는 특정 애플리케이션의 요구에 적합한 임의의 다른 무선 데이터 통신 링크(이에 제한되지 않는다)를 포함할 수 있다. 라이브 인코딩 서버 및 지원 하드웨어(102)는 네트워크(104)를 통해 컴퓨팅 디바이스들(108) 및 웹, 파일, 및/또는 미디어 서버들(106)과 직접 통신할 수 있다. 다른 실시예들은 이더넷 또는 가상 네트워크와 같은 다른 네트워크를 사용하여 디바이스들 사이에 통신할 수 있다. 당업자는 본 발명이 도 1에 도시된 네트워크 유형들에 한정되지 않고 추가적인 유형의 네트워크들(예를 들면, 인트라넷, 가상 네트워크, 모바일 네트워크, 및/또는 특정 애플리케이션의 요구에 적합한 다른 네트워크)을 포함할 수 있다는 것을 인식할 것이다.
특정 아키텍처가 도 1에 도시되어 있지만, 전자 디바이스들 및 네트워크 통신들을 수반하는 상이한 아키텍처들이 본 발명의 실시예들에 따라 동작들을 수행하고 기능들을 제공하는 라이브 인코딩 시스템들을 구현하는 데 이용될 수 있다.
라이브 인코딩 서버들에 대한 시스템들 및 프로세스들
라이브 인코딩 시스템들에서, 클라이언트는 종종 라이브 인코딩 에지에서 프레임들을 요청하고 수신할 수 있는 것에 의존한다. 인코딩 및/또는 전송이 중단되면 필요한 프레임들에 대한 클라이언트 실패, HTTP 요청 실패, 이미지 끊김(image stuttering), 및 뷰어에 의한 통상의 불편(frustration)을 겪을 수 있다. 본 발명의 다수의 실시예들에 따른 라이브 인코딩 시스템들은 하기에 기술된 기술들을 통해 인입하는 미디어 및/또는 인코딩 시스템 부하들의 실시간 분석을 사용하여 라이브 인코딩에서의 손실 및 중단을 완화할 수 있다.
도 2는 미디어를 수신하고, 스트림을 생성하며, 생성된 스트림을 라이브 스트리밍 클라이언트들에 제공하는 본 발명의 실시예들에 따른 라이브 인코딩 시스템들에 의해 수행될 수 있는 프로세스(200)를 개념적으로 도시한다. 다수의 실시예들에서, 프로세스(200)는 도 1과 관련하여 전술한 실시예에 따른 라이브 인코딩 서버에 의해 수행된다. 특히, 프로세스(200)는, 미디어의 연속적인 라이브 인코딩 및 라이브 스트리밍 동안, MPEG-DASH 라이브 인코딩 서버에 의해 수행될 수 있다.
미디어가 수신될 수 있다(210). 전술한 바와 같이, 미디어는 다양한 상이한 유형, 형식, 표준, 및/또는 프레젠테이션을 포괄할 수 있다. 수신된 미디어는 종종 이미 인코딩된 미디어의 라이브 피드가 된다. 수신된 미디어는 이에 제한되지는 않지만 입력 스트림, 라이브 미디어 피드, 텔레비전 피드, 위성 피드, 웹 스트림, 및/또는 로컬 및/또는 원격 저장소들로부터 수신된 정적 파일을 포함할 수 있다.
스트림들은 상기 수신된 미디어로부터 생성될 수 있다(220). 상기 생성된 스트림들은 이에 제한되지는 않지만 MPEG-DASH, H.264/AVC, HTTP 라이브 스트리밍, 스무스 스트리밍(Smooth Streaming), 및/또는 임의의 다른 적응형 비트레이트 포맷과 같은 많은 가능한 모맷들이 될 수 있다. 상기 생성된 스트림들은 이후 네트워크 접속을 통해 스트리밍 클라이언트들에 제공될 수 있다. 전형적으로, 생성된 스트림들은 상이한 최대 비트레이트들이 될 것이며, 가변적인 인코딩 파라미터들에 따라 인코딩될 것이다. 일부 실시예들에서, 스트림들은 라이브 인코딩 서버의 리패키징 애플리케이션을 이용하여 생성된다. 리패키징 애플리케이션은 수신된 미디어를 출력 스트림들로 다시 패키징한다. 그에 따라, 리패키징 애플리케이션은 상기 스트림들을 생성하기 위해 필요한 만큼 생성하는데 필요한 다양한 인코더들 및 디코더들을 활용하는 것을 이용할 수 있다.
스트림들의 생성은 라이브 미디어가 수신될 때 수행되는 연속적인 프로세스가 될 수 있다. 라이브 미디어의 수신에 응답하여 스트림들을 연속적으로 생성하는 동안, 라이브 인코딩 시스템의 로드 레벨들, 통신 네트워크의 로드 레벨들, 미디어 수신 시의 갭들, 및/또는 스트림 생성 시의 갭들이 평가될 수 있다(230). 또한, 상이한 실시예들은 라이브 인코딩 서버 동작들의 다른 측면들을 평가할 수 있다. 상기 평가들을 수행하는 데는 여러 하위 작업들이 포함될 수 있다. 예를 들면, 라이브 인코딩 시스템은 인입하는 데이터 레이트들 및/또는 수신된 미디어의 프레임 레이트들을 체크할 수 있다. 인입하는 데이터 레이트들 및/또는 수신된 미디어의 프레임 레이트들은 라이브 인코딩 시스템의 내부 로직에 따라 결정된 프레임 시간과 비교될 수 있다. 상기 내부 로직은 이에 제한되지는 않지만 수신된 미디어의 타임 스탬프들, 라이브 인코딩 시스템상의 클록 실행들, 및/또는 수신된 미디어의 선언된 프레임 레이트들과 같은 신뢰할 수 있는 시간을 결정하는 여러 소스들을 포함할 수 있다. 일부 실시예들에서, 라이브 인코딩 시스템은 전체의 인입하는 데이터 레이트를 산출하기 위해 인입하는 프레임들 사이에 시간의 차이를 측정할 수 있다. 이어서, 라이브 인코딩 시스템들은 상기 산출된 전체의 인입하는 데이터 레이트를 모니터링하여 라이브 인코딩 시스템의 프로세싱 능력을 억압할 수 있는 인입하는 데이터의 갭들 또는 잠재적인 서지(surge)들을 식별할 수 있다. 이러한 평가들 중 하나 이상은, 라이브 인코딩 시스템이 적절한 시간에 프레임을 수신하지 못했고 및/또는 라이브 인코딩 시스템들의 라이브 에지 요구사항을 충족하는 시간에 프레임을 인코딩하지 못할 것이라는 것을 나타낼 수 있다.
라이브 에지에 대해 제시간에 프레임들을 생성하지 못하는 위험을 완화하기 위해, 수신된 미디어의 프레임들은 선택적으로 복제 및/또는 복사될 수 있다(240). 일부 실시예들에서, 복제된 프레임들은 다양한 생성된 스트림들과 연관된 새로운 프레임 컨텍스트들을 고려하도록 수정될 수 있다. 상이한 프레임 컨텍스트들은 이에 제한되지 않지만 상이한 해상도, 상이한 프레임 유형(I-프레임, B-프레임, 및/또는 P-프레임 등), 상이한 최대 비트레이트를 포함할 수 있다. 수신된 미디어로부터 스트림들을 생성하는 것은 종종 인코딩된 프레임들을 포함하는 상기 수신된 미디어를 상이한 포맷으로 재-인코딩하는 것을 수반한다. 수신된 미디어를 재-인코딩하는 것은 인코딩 시스템들에 의해 수행된 더욱 자원 집중적인 동작들 중에서 있게 될 수 있다. 다음에 상기 복제된 프레임들은 상대적으로 값비싼 재-인코딩 동작 없이 상기 생성된 스트림들에서 이용될 수 있다. 복제된 프레임들은 또한 상기 수신된 미디어로부터의 인코딩된 프레임에 부가하여 상기 수신된 미디어의 원시 프레임들로부터 복제될 수 있다.
하지만, 라이브 인코딩 프로세스의 일부로서 프레임들을 재-인코딩하는 대신에 인코딩된 프레임을 복제하는 것은 출력 스트림들이 H.264/AVC에서 가상의 기준 디코더(HRD)의 특정 요구사항을 위반하게 할 수 있다. 정의에 따르면 HRD는 그 입력이 호환 스트림(compliant stream)일 때 오버플로하거나 언더플로우하지 않아야한다. 큰 인코딩된 프레임을 복제하고 상기 복제된 스트림을 낮은 최대 비트레이트 스트림으로 이용하는 것은 HRD 요구사항을 충족시키지 못할 수 있는 버퍼 오버플로우를 야기할 위험이 있다. 그러나, 소프트웨어 디코더 클라이언트는 그들의 더욱 유연한 버퍼로 인해 문제없이 이러한 것을 보상할 수 있다. 소프트웨어 디코더 클라이언트는 상기 복제된 프레임들을 처리하기 위해 추가의 CPU 사이클들을 요구할 수 있을 것이다. 하드웨어 디코더 클라이언트들은, 복제된 프레임들이 더 낮은 최대 비트레이트 스트림에서 사용될 때, 가능한 버퍼 오버플로우들로 인해 에러들을 맞닥뜨리게 된다. 본 발명의 일부 실시예들은, 하드웨어 디코더에서 버퍼 오버플로우의 위험을 완화하기 위해 더 낮은 최대 비트레이트 출력 스트림들에 대한 복제된 프레임들의 비트 값들을 감소시키는 것을 제공한다. 또 다른 실시예에서, 복제된 프레임들은 그 자신의 특정 최대 비트레이트 출력 스트림들에 대해서만 사용되고, 그에 의해 높은 비트 값 프레임들이 낮은 최대 비트레이트 스트림들로 사용되는 것을 방지한다. 이러한 것은 각 출력 스트림에 대해 별도의 인코딩 프로세스를 포함함으로써 달성될 수 있다.
또한, 일부 실시예들에서, 입력 스트림 및 출력 스트림이 동일한 포맷들, 최대 비트레이트들, 및/또는 해상도들을 공유하는 경우 입력 스트림들로부터 프레임들이 복제 및/또는 복사될 수 있다. 이러한 것은 원하는 출력 스트림이 입력 스트림과 동일한 경우에 일어날 수 있다. 이러한 상황이 일어나는 경우, 재-인코딩은 스킵될 수 있고, 여러 실시예들은 입력 스트림들로부터 순시 디코딩 리프레시(IDR) 프레임들을 단순하게 복제할 수 있다. 전술한 바와 같이, 결과적인 출력 스트림은 상기 여러 실시예들에서 비-HRD 호환(non-HRD compliant)이 될 수 있다.
라이브 에지에 대해 제시간에 프레임들을 생성하지 못하는 위험을 완화시키는 또 다른 기술에서, 수신된 미디어의 프레임들이 선택적으로 확장될 수 있다(250). 프레임들을 확장하는 것은 주어진 프레임의 지정된 타임 스탬프와는 다른 시간에 주어진 프레임을 출력 스트림에 패키징하는 것을 포함할 수 있다. 이전의 평가들에 따라 다양한 프레임 확장들이 일어날 수 있다. 미디어의 피딩 및/또는 수신 시에 갭이 검출되는 경우, 출력 스트림들의 생성 시 현재 프레임이 확장될 수 있다. 라이브 인코딩 서버의 일부로서 리패키징 애플리케이션을 이용하는 실시예에서, 리패키징 애플리케이션은 프레임들을 출력 스트림들로 리패키징하는 동안 확장을 수행할 수 있다. 비디오의 시각적 아티팩트 및/또는 지각된 스톨(stall)들을 줄이기 위하여, 리패키징 애플리케이션은 여러 단계들에서 갭을 보상하기 위해 여러 개의 더 작은 프레임 확장들을 다수의 프레임들에 걸쳐 분산시킬 수 있다. 상기 더 작은 확장들은 스트리밍 클라이언트 뷰어들에게 상기 확장들을 숨기는 역할을 할 수 있다.
상기 생성된 출력 스트림들은 스트리밍 클라이언트들에 제공될 수 있다(260). 상기 생성된 출력 스트림들은 상이한 최대 비트레이트가 될 수 있지만, 각각 단일의 미디어 프레젠테이션을 나타낸다. 따라서, 주어진 미디어 프레젠테이션은 상이한 최대 비트레이트들을 갖는 여러 스트림들에서 스트리밍 클라이언트들에 제공될 수 있다. 생성된 출력 스트림들의 제공은 생성된 출력 스트림들로부터의 세그먼트들에 대한 HTTP 요청들을 통해 달성될 수 있다.
프로세스(200)에 제시된 동작들이 선형 순서로 제공되는 동안, 다양한 실시예들이 가변적인 순서들로 상기 동작들을 수행할 수 있다. 실례로, 라이브 미디어가 수신되면 클라이언트에 대한 스트림들의 생성 및 제공이 계속해서 수행될 수 있다. 따라서, 프로세스(200)에 제시된 동작들의 순서는 단지 설명적인 것이며 수신된 미디어의 프레임들로부터의 스트림들의 실시간 생성을 위한 순환 프로세스의 일부로서 연속적으로 수행될 수 있다. 일부 실시예들의 라이브 인코딩 시스템들에 의해 수행되는 프로세스들의 개요를 기술하고, 다음의 설명은 상기 프로세스들의 일부로서 수행될 수 있는 프레임 확장 및 프레임 복제의 여러 예들을 제공할 것이다.
프레임 확장 및 프레임 복제의 예
전술한 바와 같이, 본 발명의 실시예들에 따른 라이브 인코딩 시스템들은 평가된 네트워크 및/또는 서버 조건들에 응답하여 프레임들을 확장하고 및/또는 프레임들을 복제할 수 있다. 프레임 확장 및/또는 프레임 복제는 누락된 입력 프레임들, 지연된 입력 프레임들, 및/또는 인코딩 시스템 부하를 보상할 수 있다. 도 3, 도 4, 도 5, 도 6, 및 도 7은 본 발명의 실시예들에 따른 프레임 확장 및 프레임 복제의 여러 예들을 개념적으로 도시한다. 상기 언급한 도면들에 제시된 예들은 프레임 복제 및/또는 프레임 확장의 효과를 나타내기 위해 도시된 라이브 인코딩 프로세스의 개념이다. 본 발명의 실시예들에 따른 라이브 인코딩 시스템들은 도 3, 도 4, 도 5, 도 6, 및 도 7의 예에 도시되지 않은 추가적인 세부사항들, 구성요소들, 및/또는 기능들을 포함할 것이다. 타임 스탬프, 프레임 번호, 및/또는 프레임 지속시간에 대한 특정된 수들은 설명을 목적으로 제시된다. 본 발명의 실시예들은도 3, 도 4, 도 5, 도 6, 및 도 7에 제시된 특정 값들에 한정되지 않으며, 라이브 인코딩 동작들에 요구되는 넓은 범위의 가능한 타임 스탬프들, 프레임 번호들, 및/또는 프레임 지속시간들을 포함할 수 있다. 더욱이, 다음의 도면들에서는 단지 하나의 출력 스트림이 도시되어 있지만, 본 발명의 실시예들은 전형적으로 가변적인 인코딩 파라미터들로 가변적인 최대 비트레이트들에서 다수의 출력 스트림들을 생성한다.
도 3은 본 발명의 실시예에 따라 누락된 입력 프레임들을 보상하기 위해 프레임들을 확장하는 라이브 인코딩 시스템의 예를 개념적으로 도시한다. 도시된 바와 같이, 라이브 인코딩 시스템(300)은 입력 스트림(310)을 수신하고 출력 스트림(360)을 생성한다. 도 3에 도시된 예에서, 라이브 인코딩 시스템(300)의 라이브 인코딩 프로세스들은 입력 스트림(310)의 연속하는 수신 및 출력 스트림(360)의 생성 동안 수행된다. 입력 스트림(310)은 입력 스트림들 및/또는 전술한 미디어의 어떠한 것도 될 수 있다. 라이브 인코딩 시스템(360)은 생성된 출력 스트림(360)을 전술한 임의의 기술(HTTP 요청들을 수신하고 출력 스트림으로부터 세그먼트들을 전송하는 것과 같은 기술)을 통해 스트리밍 클라이언트(도시되지 않음)에 제공할 수 있다.
도시된 바와 같이, 입력 스트림(310)은 식별된 시간 스탬프들 및 지속시간들을 갖는 여러 프레임들을 포함한다. 상기 프레임들은 프레임 비디오와 같은 미디어 부분을 포함할 수 있다. 타임 스탬프는 약어 "TS"로 표시된다. 지속시간은 약어 "D"로 표시된다. 전술한 바와 같이, 도 3에 도시된 값들은 예시적인 것이다. 본 발명의 실시예들은 라이브 인코딩을 지원하는 데 있어 필요에 따라 다양한 시간 스탬프 및 지속시간 값들을 수신하고 처리할 수 있다. 프레임 5(320)는 5와 동일한 타임 스탬프 값 및 1과 동일한 지속시간 값을 갖는다.
라이브 인코딩 시스템(300)은 지정된 시간에 입력 스트림(310)으로부터 프레임들을 수신할 것을 기대한다. 상기 지정된 시간에 프레임들이 수신되지 않으면, 라이브 인코딩 시스템(300)은 라이브 스트리밍 클라이언트들에 의해 기대되는 라이브 에지에 대해 제시간에 출력 스트림(360)을 생성할 수 없을 수도 있다. 라이브 인코딩 시스템(300)은 (라이브 인코딩 시스템(300)에 의해 유지되는 내부 클록들을 라이브 입력 스트림(310)의 수신된 프레임들의 타임 스탬프들과 비교하는 것과 같은) 전술한 바와 같이 다양한 수단들을 사용하여 프레임들이 입력 스트림(310)으로부터 누락되는지 여부를 평가할 수 있다. 라이브 인코딩 시스템(310)은 또한 프레임들을 확장하기 전에 충족되어야하는 누락 프레임들에 대한 임계치를 포함할 수 있다. 라이브 인코딩 시스템(310)은 적어도 2 개의 프레임 갭을 보상하기 위해 확장 프레임들을 선정하기 전에 2 개의 누락 프레임들의 임계치를 포함한다. 상이한 실시예들은, 시퀀스에서 누락된 프레임을 대신하여 시간 세그먼트에 걸친 누락 프레임과 같은, 상이한 프레임 수 및/또는 상이한 임계치 측정에 기초할 수 있는 상이한 임계치들을 포함할 수 있다. 비디오의 라이브 인코딩은 본질적으로 자원 집중적인 프로세스이므로, 다양한 실시예들은 인코딩 시스템 로드, 클라이언트 끊김(client stuttering), 네트워크 대역폭 안정성, 비디오 품질, 및 비디오의 라이브 인코딩에 영향을 미칠 수 있는 다른 메트릭 및/또는 조건들과 같은, 인코딩 조건들을 평가하는 것과 관련하여 다양한 임계치들을 이용할 수 있다. 전술한 바와 같이, 프레임들의 특정 카운트 및 이들의 전달이 산출되어 본 발명의 상이한 실시예들에서의 프레임 카운트 및 시간의 상이한 임계치와 비교될 수 있다. 또한, 상이한 실시예들은 이러한 스트리밍 조건들, 프로세싱 사이클 카운트, 프레임 세트들의 인코딩을 위한 시간 벤치마크, 네트워크 전송 속도, 전달 및 디스플레이된 프레임레이트, 및 시각적 품질/충실도의 다양한 측정치를 평가하기 위한 상이한 메트릭을 사용할 수 있다. 여기에서는 특정 값이 제공되지는 않지만, 상이한 특정 값들(예를 들어, 초당 24 프레임 미만의 딥(dip), 특정한 감마값 초과 시 디스플레이 실패를 야기하는 시각적 에러, 초당 인코딩된 프레임 등)은 본 발명의 사상을 벗어나지 않는 범위 내에서 본 발명을 구현하기 위해 필요에 따라 이용될 수 있다.
입력 프레임은, 이에 제한되지는 않지만, 입력 스트림의 제공자와 라이브 인코딩 시스템 사이의 네트워크 접속에서 장애가 있을 때, 입력 스트림에 결함이 있을 때, 및/또는 라이브 인코딩 시스템의 내부 에러와 같이, 다양한 상이한 환경들 하에서 누락이 있을 수 있다. 도시된 바와 같이, 입력 스트림(310)은 프레임(330) 및 프레임(340)을 누락하고 있다. 라이브 인코딩 시스템(300)은 프레임 8(350)의 타임 스탬프를 프레임 5(320)의 타임 스탬프 및 라이브 인코딩 시스템(300)에 의해 유지되는 내부 클록과 비교함으로써 이러한 갭들을 검출할 수 있다. 일단 누락 프레임 임계치가 충족되면, 라이브 인코딩 시스템(300)은 프레임들에서의 갭을 보상하기 위해 프레임들을 확장할 수 있다. 다양한 실시예들은 전술한 임의의 것들을 포함하여 상이한 임계 방식(different thresholding scheme)들을 사용할 수 있다.
도시된 바와 같이, 라이브 인코딩 시스템(300)은 출력 스트림(360)을 생성할 때 입력 스트림(310)으로부터 프레임 5(320)를 확장시킨다. 확장된 프레임(370)은 누락 프레임들(330 및 340)을 커버하기 위해 3과 동일한 지속시간 값을 갖도록 확장된다. 확장된 프레임(370)은 라이브 스트리밍 클라이언트에 의해 요구될 때 이용될 수 있으며 중단되지 않는 라이브 스트리밍을 지원하는데 요구되는 라이브 에지를 보존한다. 하지만, 프레임 지속시간을 확장하는 것은 과도하게 사용되는 경우 시각적 아티팩트를 야기할 수 있다.
도 4는 프레임 확장의 영향을 숨기는 것을 돕는 프레임 지속시간을 확장하는 대안적인 방법을 개념적으로 도시한다. 도시된 바와 같이, 라이브 인코딩 시스템(400)은 입력 스트림(410)으로부터 출력 스트림(460)을 생성하고 있다. 입력 스트림(410)은 프레임들(430 및 440)을 누락하고 있다. 이러한 갭을 보상하기 위해, 라이브 인코딩 시스템(400)은 프레임 5(420) 및 프레임 8(450)의 지속시간을 확장할 수 있고, 또한 프레임 8(450)의 타임 스탬프 값을 조정할 수 있다. 출력 스트림(460)에 도시된 바와 같이, 확장된 프레임 5(470)는 2의 지속시간 값을 갖도록 확장되었고 확장된 프레임 8(480)은 역시 2의 지속시간 값을 갖도록 확장되었다. 하지만, 확장된 프레임 8(470)에 대한 타임 스탬프는, 확장된 프레임 8(480)이 확장된 프레임 5(470) 직후에 이용가능하게 되도록, 7로 조정되었다. 누락된 프레임들 주위에서 확장들을 분배함으로써, 라이브 인코딩 시스템(400)은 프레임 지속시간 확장들에 의한 시각적 아티팩트 원인의 일부를 숨길 수 있다.
도 5는 본 발명의 일 실시예에 따라 지연된 입력 프레임들을 보상하기 위해 프레임들을 확장하는 라이브 인코딩 시스템의 예를 개념적으로 도시한다. 도시된 바와 같이, 라이브 인코딩 시스템(500)은 입력 스트림(510)으로부터 출력 스트림(560)을 생성하고 있다. 그러나, 프레임 지연들(530 및 540)로 인해 프레임 6(550)이 늦게 도착한다. 라이브 인코딩 시스템(500)은 프레임 지연을 검출하고 프레임 지속시간 확장을 사용하여 이를 보상할 수 있다. 이전 예들과는 달리 손실된 프레임들은 없을 것이다. 라이브 인코딩 시스템(500)은 3으로 확장된 지속시간을 갖는 확장된 프레임 5 및 8로 조정된 타임 스탬프 값을 갖는 프레임 6(580)을 포함하는 출력 스트림(560)을 생성한다. 확장된 프레임(570)은 라이브 스트리밍 클라이언트에 의해 요청될 때 이용가능하게 될 것이고, 중단이 없는 라이브 스트리밍을 지원하도록 요구되는 라이브 에지를 보존한다. 상기 기술된 예들과 마찬가지로, 프레임 지속시간들을 확장하는 것은 지나치게 사용하는 경우 시각적 아티팩트를 야기할 수 있다.
도 6은 프레임 확장의 영향을 숨기는 것을 돕는 프레임 지연들을 보상하기 위해 프레임 지속시간을 확장하는 대안적인 방법을 개념적으로 도시한다. 도시된 바와 같이, 라이브 인코딩 시스템(600)은 입력 스트림(610)으로부터 출력 스트림(660)을 생성하고 있다. 상기한 바와 같이, 프레임 지연들이 630 및 640에서 일어나고 있다. 이러한 지연을 보상하기 위해 라이브 인코딩 시스템(600)은 프레임 5(620) 및 프레임 6(650)의 지속시간을 확장할 수 있고, 또한 프레임 6(650)의 타임 스탬프 값을 조정할 수 있다. 출력 스트림(660)에 도시된 바와 같이, 확장된 프레임 8(670)은 2의 지속시간 값을 갖도록 확장되었고, 확장된 프레임 8은 역시 2의 지속시간 값을 갖도록 확장되었다. 하지만, 확장된 프레임 8(670)에 대한 타임 스탬프는, 확장된 프레임 8(670)이 확장된 프레임 5(670) 직후에 이용가능하게 되도록, 7로 조정되었다. 지연된 프레임들 주위에서 확장들을 분배함으로써, 라이브 인코딩 시스템(400)은 프레임 지속시간 확장들에 의한 시각적 아티팩트 원인의 일부를 숨길 수 있다.
본 발명의 실시예들은 도 3, 도 4, 도 5, 및 도 6과 관련하여 전술한 프레임 확장 기술들에 제한되지 않는다. 다양한 실시예들은 도 3 및 도 5에 도시된 바와 같은 프레임 지속시간의 순차적인 확장들 및/또는 상이한 환경에서 4 및 도 5에 도시된 바와 같은 프레임 지속시간의 점재된 확장(interspersed extension)을 이용할 수 있다. 또한, 프레임 지속시간을 확장하는 것은 누락된 및/또는 지연된 프레임들로 인해 수행되는 데 제한되지 않는다.
라이브 인코딩 서버는 전형적으로 라이브 에지 요건을 충족시키는 라이브 스트림을 인코딩하기 위해 상당한 연산 능력을 필요로 하는 매우 강력하고 값 비싼 머신이다. 하지만, 강력한 서버라도 과부하가 걸리고 덜한 서버들은 더욱더 그럴 수 있다. 특히, 인코딩된 프레임들을 재-인코딩하는 것은 서버 자원에 대해 심각한 소모가 될 수 있다. 도 7은 본 발명의 일 실시예에 따라 서버 부하를 보상하기 위해 프레임들을 확장하는 라이브 인코딩 시스템의 예를 개념적으로 도시한다. 도시된 바와 같이, 라이브 인코딩 시스템(700)은 입력 스트림(710)을 수신하고, 출력 스트림(760)을 생성한다. 도 7에 도시된 예에서, 라이브 인코딩 시스템(700)의 라이브 인코딩 프로세스는 입력 스트림(710)의 연속하는 수신 및 출력 스트림(760)의 생성 동안 수행된다. 라이브 인코딩 시스템(700)은 부하(740) 하에 있는 것으로 도시된다. 이러한 부하를 보상하기 위해, 라이브 인코딩 시스템(700)은 인코딩된 도메인에서 인코딩된 입력 스트림으로부터 프레임들을 복제할 수 있다.
도시된 바와 같이, 라이브 인코딩 시스템(700)은 인코딩된 프레임 4(720) 및 인코딩된 프레임 5(730)를 수신한다. 라이브 인코딩 시스템(700)은 인코딩된 출력 스트림(750)을 생성하는 데 있어 이들 프레임들을 복제한다. 복제된 프레임 4(760) 및 복제된 프레임 5(770)에 대한 새로운 필드들이 새로운 프레임 컨텍스트를 설명하기 위해 조정되어야 할 수도 있다. 하지만 이러한 조정은 재-인코딩 동작들에 비하여 프로세싱 자원들을 훨씬 적게 필요로 한다. 복제된 프레임 4(760) 및 복제된 프레임 5(770)는 인코딩된 프레임 4(720) 및 인코딩된 프레임 5(730)와 동일한 지속시간 값들 및 타임 스탬프 값들을 갖는다.
본 발명의 실시예들은 도 7에 개념적으로 도시된 예에서 전술한 특정 프레임 복제 기술에 제한되지 않는다. 다양한 실시예들은 원시의(raw), 인코딩되지 않은 입력 스트림들과 같은 입력 스트림의 다양한 포맷들로 프레임 복제 및/또는 복사를 이용할 수 있다. 또한, 본 발명의 실시예들은 서버 부하의 시간 동안에만 프레임 복제 및/또는 프레임 복사를 수행하는 것으로 제한되지 않는다. 실례로, 본 발명의 일부 실시예들은 서버 부하가 임계 레벨에 도달할 때까지 대기하지 않고서 효율적인 라이브 인코딩을 유지하기 위해 연속하는 인코딩 프로세스의 일부로서 인코딩된 프레임 복제를 수행할 수 있다. 상기 일부 실시예들은 저전력의 라이브 인코딩 서버에서 활용될 수 있다.
MPEG-DASH 라이브 인코딩
MPEG-DASH(ISO/IEC 23009-1)는 인터넷을 통해 멀티미디어 컨텐트를 스트리밍하기 위한 표준이다. MPEG-DASH는 MPEG(Moving Picture Expert Group)에 의해 개발되었다. MPEG는 MPEG-2, MPEG-4, MPEG-7, MPEG-21 등을 포함하는 이전의 멀티미디어 표준들을 개발하는 역할을 맡아왔다. MPEG-DASH는 HTTP를 사용하여 적응형 세그먼트화된 미디어 전달을 제공한다. MPEG-DASH 사양은 MPD 및 세그먼트 포맷들만을 정의한다. 주의해야할 것으로, 패칭(fetching), 적응 휴리스틱(adaptation heuristics), 및 컨텐트 재생을 위한 클라이언트 동작은 물론, 세그먼트들을 포함하는 미디어-인코딩 포맷들 및 MPD가 MPEG-DASH 표준에서 정의되지 않는다.
도 8은 본 발명의 일 실시예에 따라 MPEG-DASH를 이용하는 라이브 인코딩 시스템에 대한 예시적인 데이터 흐름도를 개념적으로 도시한다. 도 8은 미디어 피드 데이터(810), 라이브 인코딩 시스템(820), HTTP 요청(830), 요청된 스트림 세그먼트(840), 스트리밍 클라이언트(850), 및 미디어 프레젠테이션 디스크립션(860)을 포함한다. 도시되지는 않았지만, 미디어 피드 데이터(810), HTTP 요청(830), 요청된 스트림 세그먼트(840), 및 미디어 프레젠테이션 디스크립션(860)은 통신 네트워크를 통해 전송될 수 있다. 통신 네트워크는 인터넷을 포함하지만 이에 제한되는 것은 아니다.
도시된 바와 같이, 라이브 인코딩 시스템(820)은 미디어 피드 데이터(810)를 수신하고 있다. 미디어 피드 데이터(810)는 적어도 위에서 언급된 수신된 미디어 유형들을 포함할 수 있다. 라이브 인코딩 시스템(820)은 수신된 미디어 피드 데이터(810)로부터 출력 스트림을 생성할 수 있다. 수신된 미디어 피드 데이터(810)로부터 출력 스트림을 생성하는 동안, 라이브 인코딩 시스템(820)은 미디어 피드 데이터(810)의 수신 레이트, 라이브 인코딩 시스템(820)의 부하 레벨, 미디어 피드 데이터(810)의 전송을 지원하는 통신 네트워크의 부하 레벨, 미디어 피드 데이터(810)의 갭, 및/또는 라이브 인코딩 시스템(820)에 의한 스트림 발생 시의 갭의 평가에 기초하여 미디어 피드 데이터(810)로부터의 프레임들을 확장할 수 있고 및/또는 미디어 피드 데이터(810)로부터의 프레임들을 복제할 수 있다.
라이브 인코딩 시스템(820)은 또한 HTTP 요청(830)을 수신한다. HTTP 요청에 응답하여 라이브 인코딩 시스템(820)은 요청된 스트림 세그먼트들(840)을 제공한다. HTTP 요청(830)은 생성된 출력 스트림들 중 하나로부터의 특정 세그먼트에 대한 바이트 범위 요청을 포함할 수 있다. 라이브 인코딩 시스템(820)은 개별적인 라이브 인코딩 서버들 및 HTTP 서버들을 포함하는 다수의 구성요소들을 포함할 수 있다. HTTP 서버는 클라이언트와의 미디어 세그먼트 및 요청에 대한 HTTP 통신을 지원할 수 있다. 더욱이, HTTP 서버는 스트리밍 클라이언트(850)로의 미디어 세그먼트의 전달을 지원하기 위해 HTTP 기반의 컨텐트 분배 네트워크(CDN)를 이용할 수 있다.
MPEG-DASH는 MPD(Media Presentation Description)를 사용하여 클라이언트에게 스트림 세그먼트에 대한 HTTP 요청을 통해 액세스될 수 있는 여러 개의 적응형 비트레이트 스트림들을 기술하는 잘 구조화된 XML 매니페스트를 제공한다. 각각의 MPD는 기술된 여러 개의 적응형 비트레이트 스트림들을 통해 보게 될 수 있는 단일 미디어 프레젠테이션에 대응한다. MPD는 액세스 가능한 미디어 세그먼트 및 상기 미디어 세그먼트에 대한 대응하는 타이밍을 기술한다. MPD는 미디어 프레젠테이션, 피리어드(period), 적응 세트(adaptation set), 표현(representation), 및 세그먼트를 포함하는(계층의 상단으로부터 내림차순) 계층적 데이터 모델이다. 미디어 프레젠테이션은 라이브 브로드캐스트, 라이브 스트림, 라이브 이벤트, 및/또는 미리 기록된 미디어 프레젠테이션에 포함할 수 있다. 미디어 프레젠테이션은 이어질 수 있고 및/또는 여러 피리어드를 포함할 수 있다. 피리어드는 링크되지 않은 디폴트에 의한 것이며, 어떠한 기능적 손실도 없이 이들 사이에 이어진 광고 피리어드를 가질 수 있다. 피리어드는 여러 개의 적응 세트들을 포함할 수 있다. 적응 세트는 라이브 스포츠 이벤트로부터의 상이한 카메라들과 같이, 동일한 프레젠테이션에 대한 상이한 시각(different perspective)을 포함할 수 있다. 또한, 상이한 적응 세트들은 오디오 적응 세트 및 비디오 적응 세트와 같은 상이한 포맷들을 포함할 수 있다. 각각의 적응 세트 내에서 여러 개의 표현들이 포함될 수 있다. 표현들은 동일한 프레젠테이션을 형성하는 상이한 대역폭 및/또는 최대 비트레이트 레벨들의 선택을 지원한다. 따라서, MPEG-DASH의 클라이언트는 대역폭 및/또는 클라이언트 부하가 허용하는 대로 상이한 표현들로 전환함으로써 적응형 비트레이트 스트리밍을 사용할 수 있다. 각 표현은 HTTP를 통해 요청될 수 있는 미디어의 세그먼트들을 포함한다. HTTP 요청은 각 세그먼트와 연관된 미리 포맷된 URL에서 수신된다.
도 9는 MPEG-DASH로부터의 예시적인 미디어 표현 기술 MPD 데이터 모델을 개념적으로 도시한다. 도시된 바와 같이, 미디어 프레젠테이션(910)은 여러 개의 피리어드(915-925)를 포함한다. 피리어드(915-925)는 각각 상이한 피리어드 개시 시간을 포함한다. 개시 시간 100 초에서 피리어드(920)는 여러 개의 포함된 적응 세트(925-930)를 보이도록 확장된다. 적응 세트 1(925)은 미디어 프레젠테이션(910)의 카메라(1)로부터의 비디오를 포함한다. 적응 세트 2(930)는 미디어 프레젠테이션(910)에 대한 오디오를 포함한다. 적응 세트 3(935)은 미디어 프레젠테이션(910)의 카메라(2)로부터의 비디오를 포함한다. 적응 세트 1(925)은 표현 1(940) 및 표현 2(945)를 보이도록 확장되었다. 표현 1(940)은 적응 세트 1(925)에 대한 500kb/s 표현이며, 표현 2(945)는 적응 세트 1(925)에 대한 250kb/s 표현이다. 표현 1(940) 내에는 초기화 세그먼트(100) 및 미디어 세그먼트들(955-965)이 있다. 이러한 세그먼트들은 이들 내에 포함된 미디어를 수신하도록 HTTP를 통해 스트리밍 클라이언트에 의해 요청된다.
유의해야할 것으로서, 도 9에 도시된 타원들의 예들은 추가적인 피리어드, 적응 세트, 프레젠테이션, 및 세그먼트의 가능성을 나타낸다. 도 9에 제시된 예시적인 MPD는 본 발명의 다양한 실시예들에 의해 지원되는 임의의 다양한 구성들로부터 단지 하나의 가능한 예가 된다는 것이다. 예를 들어, 본 발명의 다른 실시예들은 도 9에 도시된 실시예에서 설명을 목적으로 제공되는 것보다 많은 상이한 최대 비트레이트들을 지원할 수 있다.
라이브 인코딩 서버 아키텍처
본 발명의 실시예에 따라 라이브 인코딩 서버(1000)의 아키텍처가 도 10에 도시된다. 라이브 인코딩 서버(1000)는 비-휘발성 메모리(1030), 휘발성 메모리(1020), 및 네트워크(1040)와 통신하는 프로세서(1010)를 포함한다. 도시된 실시예에서, 비-휘발성 메모리는 입력 데이터 핸들링 애플리케이션(1050), 디멀티플렉서 애플리케이션(1055), 리패키저 애플리케이션(1060), MPD 조합 애플리케이션(1065), MPD 생성 애플리케이션(1070), HTTP 요청 애플리케이션(1075), 오디오 디코더 애플리케이션(1080), 오디오 인코더 애플리케이션(1085), 비디오 디코더 애플리케이션(1090), 및 비디오 인코더 애플리케이션(1095)을 포함한다. 유의해야할 것으로서, 라이브 인코딩 서버(1000)는 스트림들에 대한 MPD 파일들을 준비하고 HTTP 요청을 통해 출력 스트림의 세그먼트를 스트리밍 클라이언트에 제공하는 MPEG-DASH 포맷 라이브 인코딩 서버가 된다. 다른 실시예들은 상이한 포맷을 이용할 수 있고, 상기 상이한 포맷을 지원하는데 필요한 다른 애플리케이션을 포함할 수 있다.
입력 데이터 핸들링 애플리케이션(1050)은 네트워크 인터페이스(1040)로부터 입력 스트림을 수신한다. 상기 입력 스트림은, 이에 제한되지는 않지만, 비디오 컨텐트의 라이브 스트림, 미디어 프레젠테이션, 비디오 전용 파일, 오디오 전용 파일, 스포츠 이벤트, 웹 스트림, 및/또는 MPEG-DASH 표준 스트림을 포함할 수 있다. 입력 데이터 핸들링 애플리케이션(1050)은 입력 스트림의 식별을 포함하는 추가적인 기능을 수행할 수 있다. 식별은 입력 스트림에 포함된 메타데이터 및/또는 입력 스트림의 특성 및 파라미터의 평가를 사용하여 수행될 수 있다.
디멀티플렉서 애플리케이션(1055)은 입력 스트림으로부터 개별적인 기본 스트림을 역다중화한다. 예를 들어, 디멀티플렉서 애플리케이션(1055)은 입력 스트림 내의 오디오, 비디오 및/또는 서브타이틀 스트림을 분리(break out)할 수 있다. 역다중화된 스트림은 다른 애플리케이션에 의해 수행되는 후속 동작에서 분석, 디코딩 및 재-인코딩될 수 있다.
리패키저 애플리케이션(1060)은 전체 라이브 인코딩 서버 동작들의 일부로서 재-인코딩, 복제, 및 프레임 확장 동작들을 수행할 수 있다. 리패키저 애플리케이션(1060)은 입력 데이터 핸들링 애플리케이션(1050), 디멀티플렉서 애플리케이션(1055), 네트워크 인터페이스(1040), 및/또는 스트림을 리패키징하는데 필요한 라이브 인코딩 서버(1000)의 임의의 다른 구성요소로부터 입력 스트림을 수신할 수 있다. 리패키저 애플리케이션(1060)은 필요에 따라 비디오 디코더 애플리케이션(1090) 및 비디오 인코더 애플리케이션(1095)을 이용하여 수신된 미디어의 인입하는 라이브 프레임들을 여러 개의 출력 스트림들로 재-인코딩할 수 있다. 재-인코딩 동작 동안, 리패키저 애플리케이션(1060)은 여러 가지 수단에 의해 라이브 인코딩 서버(1000)의 네트워크 및/또는 서버 부하 레벨들을 평가할 수 있다. 이러한 평가에 기초하여, 리패키저 애플리케이션(1060)은 인입하는 프레임들을 복제하여 서버 부하 레벨을 감소시키고 및/또는 인입 네트워크 대역폭의 예상된 저하를 보상하기 위해 특정 프레임들을 확장할 수 있다. 리패키저 애플리케이션(1060)은 출력 스트림들에서의 지속시간을 증가시키기 위해 프레임들의 타임 코드 및/또는 타임 스탬프를 조정함으로써 프레임들을 확장할 수 있다. 리패키저 애플리케이션(1060)은 HTTP 요청 애플리케이션(1075)을 이용하여 클라이언트에 대한 나중의 스트리밍 준비를 위해 MPD 조합 애플리케이션(1065) 및/또는 MPD 생성 애플리케이션(1070)에 출력 스트림의 리패키징, 재-인코딩, 복제, 및/또는 확장된 프레임들을 제공할 수 있다.
MPD 조합 애플리케이션(1065)은 리패키저 애플리케이션(1060)에 의해 생성된 다수의 출력 스트림들을 단일 프레젠테이션으로 결합한다. MPD 조합 애플리케이션(1070)은 결합된 프레젠테이션을 위한 MPD 파일을 생성할 수 있다. 전술한 바와 같이, MPD 파일은 미디어 프레젠테이션의 피리어드, 적응 세트, 표현, 및 세그먼트를 기술할 수 있다. MPD 조합 애플리케이션(1070)은 생성된 출력 스트림의 특성에 따라 MPD를 생성한다. 이러한 특성은 리패키저 애플리케이션(1060)에 의해 수행되는 동작에 따라 변화될 것이다. MPD 파일은 전형적으로 MPEG-DASH 스트리밍 세션을 개시하기 위해 스트리밍 클라이언트에 초기에 요청되고 제공된다.
HTTP 요청 애플리케이션(1075)은 상기 HTTP 요청에 따라 HTTP 요청 및 서버 미디어 세그먼트를 핸들링한다. HTTP 요청 애플리케이션(1075)은 네트워크 인터페이스(1040)를 통해 스트리밍 클라이언트들과 통신할 수 있다. 일부 실시예들에서, HTTP 요청 애플리케이션(1075)은 라이브 인코딩 서버로부터 별도의 HTTP 서버에서 호스팅된다.
비-휘발성 메모리는 오디오 디코더 애플리케이션(1080), 오디오 인코더 애플리케이션(1085), 비디오 디코더 애플리케이션(1090), 및 비디오 인코더 애플리케이션(1095)을 포함한다. 비-휘발성 메모리(1030)는 단일 비디오 디코더 애플리케이션(1090) 및 단일 비디오 인코더 애플리케이션(1095)을 포함하지만, 다른 실시예들은 다중 비디오 인코더 및 비디오 디코더 애플리케이션들을 포함할 수 있다. 또한, 일부 실시예들은 각각의 상이한 출력 스트림을 생성하기 위해 별도의 리패키저, 디코더, 및 인코더 애플리케이션들을 갖기 위해 각 출력 스트림에 대한 애플리케이션들의 세트를 이용할 수 있다.
여러 실시예들에서, 네트워크 인터페이스(1040)는 프로세서(1010), 휘발성 메모리(1020), 및/또는 비-휘발성 메모리(1030)와 통신할 수 있다. 라이브 인코딩 서버(1000)의 비-휘발성 메모리(1030)에 저장된 애플리케이션들의 상기한 설명은 라이브 인코딩 서버(1000)를 지원하는 애플리케이션들의 하나의 예시적인 세트를 설명한 것이다. 본 발명의 다른 실시예들은 본 발명을 구현하는데 필요한 다수의 서버들 및/또는 위치들에 걸쳐 분배된 하기에 설명되는 기능들을 갖는 다수의 서버들을 이용할 수 있다. 또한, 이하에서 설명되는 애플리케이션들은 하나 이상의 애플리케이션들로 결합될 수 있고, 본 발명을 구현하는 데 필요한 것으로서 소프트웨어 모듈들로서 구현될 수 있다. 예를 들어, 아래에 설명된 애플리케이션들은 대안적으로 라이브 인코딩 서버(1000) 상에 존재하는 단일 애플리케이션의 모듈로서 구현될 수 있다. 또한, 단일 애플리케이션이 나타난 경우, 다른 실시예들은 유사한 기능들에 전용되는 다수의 애플리케이션들을 이용할 수 있다.
전술한 다양한 프로세스들은 단일의 분리된 서버들로 구현될 수 있다. 대안적으로, 이들 각각은 임의의 수의 물리적, 가상적 또는 클라우드 컴퓨팅 디바이스들 상에서 공유 및/또는 개별 서버들로서 구현될 수 있다. 특히, 본 발명의 일부 실시예들에 따른 라이브 인코딩 시스템은 별도의 인코딩 서버(들) 및 HTTP 서버(들)를 포함할 수 있다. 당업자는 다양한 구현 방법이 본 발명의 실시예들의 프로세스 서버를 구현하는데 사용될 수 있다는 것을 인식할 것이다.
상기 설명은 본 발명의 다수의 특정 실시예들을 포함하지만, 이들은 본 발명의 범위를 제한하는 것으로 해석되어서는 안 되며, 오히려 본 발명의 일 실시예의 예로서 해석되어야한다. 따라서, 본 발명의 범위는 설명된 실시예들이 아니라 첨부된 청구범위 및 그 등가물에 의해 결정되어야한다.

Claims (20)

  1. 라이브 인코딩 시스템(live encoding system)을 사용하여 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법으로서:
    라이브 인코딩 시스템을 사용하여 입력 스트림을 수신하는 단계;
    상기 라이브 인코딩 시스템을 사용하여 인코딩 조건들을 평가하는 단계; 및
    상기 라이브 인코딩 시스템을 사용하여 상기 입력 스트림의 주어진 세그먼트를 복수의 적응형 비트레이트 세그먼트들로 인코딩하는 단계를 포함하고,
    상기 입력 스트림의 주어진 세그먼트를 상기 복수의 적응형 비트레이트 세그먼트들로 인코딩하는 단계는:
    상기 평가된 인코딩 조건들이 제 1 임계치를 충족할 때 상기 입력 스트림의 주어진 세그먼트로부터 적어도 하나의 프레임을 확장하고 상기 복수의 적응형 비트레이트 세그먼트들 중 적어도 하나에서 상기 입력 스트림의 세그먼트로부터 상기 확장된 적어도 하나의 프레임을 사용하는 단계;
    상기 평가된 인코딩 조건들이 제 2 임계치를 충족할 때 상기 입력 스트림의 주어진 세그먼트로부터 적어도 하나의 프레임을 복제하고 상기 복수의 적응형 비트레이트 세그먼트들 중 적어도 하나에서 상기 입력 스트림의 세그먼트로부터 상기 복제된 적어도 하나의 프레임을 사용하는 단계; 및
    상기 평가된 인코딩 조건들이 상기 제 1 임계치 또는 상기 제 2 임계치의 어느 것도 충족하지 않을 때 상기 라이브 인코딩 시스템을 사용하여 상기 입력 스트림의 주어진 세그먼트의 프레임들을 상기 복수의 적응형 비트레이트 세그먼트들로 인코딩하는 단계를 포함하는, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 인코딩된 복수의 적응형 비트레이트 세그먼트들을 적어도 하나의 네트워크를 통해 복수의 스트리밍 클라이언트들에 스트리밍하는 단계를 더 포함하는, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 라이브 인코딩 시스템을 사용하여 인코딩 조건들을 평가하는 단계는 이전 세그먼트와 상기 주어진 세그먼트 사이의 도달 시간을 결정하는 단계를 더 포함하고, 상기 제 1 임계치는 상이한 세그먼트들의 도달 사이의 특정 양의 시간인, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  4. 제 3 항에 있어서,
    상기 이전 세그먼트와 상기 주어진 세그먼트 사이의 상기 도달 시간을 결정하는 단계는 상기 이전 세그먼트와 상기 주어진 세그먼트 사이의 시간 스탬프 차이들을 상기 라이브 인코딩 시스템의 클록 실행과 비교하는 단계를 더 포함하는, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 라이브 인코딩 시스템을 사용하여 인코딩 조건들을 평가하는 단계는 상기 라이브 인코딩 시스템을 사용하여 상기 입력 스트림으로부터 수신되는 데이터의 양을 산출하는 단계를 더 포함하며, 상기 제 1 임계치는 지정된 양의 시간에 걸쳐 수신된 특정 양의 데이터인, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 복수의 적응형 비트레이트 세그먼트들은 상이한 최대 비트레이트들로 인코딩되는, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 입력 스트림은 라이브 스트림인, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  8. 제 7 항에 있어서,
    상기 라이브 스트림은 오디오 트랙들, 비디오 트랙들, 서브타이틀 트랙들, 및 멀티미디어 트랙들의 그룹으로부터 선택된 미디어를 포함하는, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 라이브 인코딩 시스템을 사용하여 인코딩 조건들을 평가하는 단계는 상기 라이브 인코딩 시스템을 사용하여 상기 라이브 인코딩 시스템의 부하량을 산출하는 단계를 더 포함하고, 상기 제 2 임계치는 상기 라이브 인코딩 시스템이 수행하는 특정의 연산 작업량인, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  10. 제 1 항에 있어서,
    상기 입력 스트림은 특정 인코딩을 갖고, 상기 입력 스트림의 세그먼트로부터 상기 복제된 적어도 하나의 프레임은 동일한 특정 인코딩을 갖는, 입력 스트림을 복수의 적응형 비트레이트 스트림들로 인코딩하는 방법.
  11. 라이브 인코딩 시스템에 있어서:
    적어도 하나의 프로세싱 유닛; 및
    컴퓨터 명령들을 포함하는 라이브 인코딩 애플리케이션을 저장하는 메모리를 포함하고,
    상기 라이브 인코딩 애플리케이션은:
    입력 스트림을 수신하고;
    인코딩 조건들을 평가하고;
    상기 입력 스트림의 주어진 세그먼트를 복수의 적응형 비트레이트 세그먼트들로 인코딩하도록, 상기 적어도 하나의 프로세싱 유닛에 지시하며,
    상기 입력 스트림의 주어진 세그먼트를 복수의 적응형 비트레이트 세그먼트들로 인코딩하도록 하는 명령들은:
    상기 평가된 인코딩 조건들이 제 1 임계치를 충족할 때 상기 입력 스트림의 주어진 세그먼트로부터 적어도 하나의 프레임을 확장하고 상기 복수의 적응형 비트레이트 세그먼트들 중 적어도 하나에서 상기 입력 스트림의 세그먼트로부터 상기 확장된 적어도 하나의 프레임을 사용하고;
    상기 평가된 인코딩 조건들이 제 2 임계치를 충족할 때 상기 입력 스트림의 주어진 세그먼트로부터 적어도 하나의 프레임을 복제하고 상기 복수의 적응형 비트레이트 세그먼트들 중 적어도 하나에서 상기 입력 스트림의 세그먼트로부터 상기 복제된 적어도 하나의 프레임을 사용하고;
    상기 평가된 인코딩 조건들이 상기 제 1 임계치 또는 상기 제 2 임계치의 어느 것도 충족하지 않을 때 상기 입력 스트림의 주어진 세그먼트의 프레임들을 상기 복수의 적응형 비트레이트 세그먼트들로 인코딩하도록 하는, 명령들을 더 포함하는, 라이브 인코딩 시스템.
  12. 제 11 항에 있어서,
    상기 라이브 인코딩 애플리케이션은 상기 인코딩된 복수의 적응형 비트레이트 세그먼트들을 적어도 하나의 네트워크를 통해 복수의 스트리밍 클라이언트들에 스트리밍하도록 하는 명령들을 더 포함하는, 라이브 인코딩 시스템.
  13. 제 11 항에 있어서,
    상기 인코딩 조건들을 평가하도록 하는 명령들은 이전 세그먼트와 상기 주어진 세그먼트 사이의 도달 시간을 결정하도록 하는 명령들을 더 포함하고, 상기 제 1 임계치는 상이한 세그먼트들의 도달 사이의 특정 양의 시간인, 라이브 인코딩 시스템.
  14. 제 13 항에 있어서,
    상기 이전 세그먼트와 상기 주어진 세그먼트 사이의 상기 도달 시간을 결정하도록 하는 명령들은 상기 이전 세그먼트와 상기 주어진 세그먼트 사이의 시간 스탬프 차이들을 상기 라이브 인코딩 시스템의 클록 실행과 비교하도록 하는 명령들을 더 포함하는, 라이브 인코딩 시스템.
  15. 제 11 항에 있어서,
    상기 인코딩 조건들을 평가하도록 하는 명령들은 상기 입력 스트림으로부터 수신되는 데이터의 양을 산출하도록 하는 명령들을 더 포함하며, 상기 제 1 임계치는 지정된 양의 시간에 걸쳐 수신된 특정 양의 데이터인, 라이브 인코딩 시스템.
  16. 제 11 항에 있어서,
    상기 복수의 적응형 비트레이트 세그먼트들은 상이한 최대 비트레이트들로 인코딩되는, 라이브 인코딩 시스템.
  17. 제 11 항에 있어서,
    상기 입력 스트림은 라이브 스트림인, 라이브 인코딩 시스템.
  18. 제 17 항에 있어서,
    상기 라이브 스트림은 오디오 트랙들, 비디오 트랙들, 서브타이틀 트랙들, 및 멀티미디어 트랙들의 그룹으로부터 선택된 미디어를 포함하는, 라이브 인코딩 시스템.
  19. 제 11 항에 있어서,
    상기 인코딩 조건들을 평가하도록 하는 명령들은 상기 라이브 인코딩 시스템의 부하량을 산출하도록 하는 명령들을 더 포함하고, 상기 제 2 임계치는 상기 라이브 인코딩 시스템이 수행하는 특정의 연산 작업량인, 라이브 인코딩 시스템.
  20. 제 11 항에 있어서,
    상기 입력 스트림은 특정 인코딩을 갖고, 상기 입력 스트림의 세그먼트로부터 상기 복제된 적어도 하나의 프레임은 동일한 특정 인코딩을 갖는, 라이브 인코딩 시스템.
KR1020177023590A 2015-02-27 2016-02-26 라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법 KR101897959B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562126393P 2015-02-27 2015-02-27
US62/126,393 2015-02-27
PCT/US2016/019955 WO2016138493A1 (en) 2015-02-27 2016-02-26 Systems and methods for frame duplication and frame extension in live video encoding and streaming

Publications (2)

Publication Number Publication Date
KR20170118759A true KR20170118759A (ko) 2017-10-25
KR101897959B1 KR101897959B1 (ko) 2018-09-12

Family

ID=56789873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177023590A KR101897959B1 (ko) 2015-02-27 2016-02-26 라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법

Country Status (9)

Country Link
US (3) US10715574B2 (ko)
EP (2) EP3627337A1 (ko)
JP (2) JP6588987B2 (ko)
KR (1) KR101897959B1 (ko)
CN (1) CN107251008B (ko)
ES (1) ES2768979T3 (ko)
HK (1) HK1246423A1 (ko)
SG (1) SG11201706160UA (ko)
WO (1) WO2016138493A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019210152A1 (en) * 2018-04-26 2019-10-31 Phenix Real Time Solutions, Inc. Adaptive bit-rate methods for live broadcasting

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3627337A1 (en) 2015-02-27 2020-03-25 DivX, LLC Systems and methods for frame duplication and frame extension in live video encoding and streaming
US10291681B2 (en) * 2015-06-18 2019-05-14 Ericsson Ab Directory limit based system and method for storing media segments
JP2018041340A (ja) * 2016-09-08 2018-03-15 富士通株式会社 情報処理システム
US10652294B2 (en) * 2016-10-31 2020-05-12 Google Llc Anchors for live streams
AU2018254570B2 (en) * 2017-04-21 2021-08-05 Zenimax Media Inc. Systems and methods for deferred post-processes in video encoding
JP7230008B2 (ja) * 2017-05-15 2023-02-28 ミックスヘイロー コーポレイション リアルタイムオーディオおよびデータを提供するためのシステムおよび方法
US10652166B2 (en) * 2017-06-27 2020-05-12 Cisco Technology, Inc. Non-real time adaptive bitrate recording scheduler
KR102200317B1 (ko) * 2017-12-08 2021-01-08 구글 엘엘씨 디지털 비디오 컨텐츠 수정
US11146852B2 (en) * 2018-05-11 2021-10-12 Qualcomm Incorporated Signaling missing sections of media data for network streaming in a segment
CN110798739B (zh) * 2019-11-11 2021-10-08 四川东方网力科技有限公司 基于html5的视频实时目标属性叠加显示方法、装置及设备
CN111083162B (zh) * 2019-12-30 2022-08-23 广州酷狗计算机科技有限公司 多媒体流卡顿检测方法和装置
US11425182B1 (en) * 2020-12-30 2022-08-23 Meta Platforms, Inc. Systems and methods for dynamically encoding media streams
KR102568415B1 (ko) * 2021-04-28 2023-08-21 (주)이머시브캐스트 Hmd 기반의 pc 게임 확장 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7339993B1 (en) * 1999-10-01 2008-03-04 Vidiator Enterprises Inc. Methods for transforming streaming video data
US20120307886A1 (en) * 2011-05-31 2012-12-06 Broadcom Corporation Adaptive Video Encoding Based on Predicted Wireless Channel Conditions
US20130114744A1 (en) * 2011-11-06 2013-05-09 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
US8532171B1 (en) * 2010-12-23 2013-09-10 Juniper Networks, Inc. Multiple stream adaptive bit rate system
US20140019593A1 (en) * 2012-07-10 2014-01-16 Vid Scale, Inc. Quality-driven streaming

Family Cites Families (233)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5400401A (en) 1992-10-30 1995-03-21 Scientific Atlanta, Inc. System and method for transmitting a plurality of digital services
JP2707950B2 (ja) 1993-07-30 1998-02-04 ソニー株式会社 ディジタル画像情報処理装置
US5596564A (en) 1993-10-08 1997-01-21 Matsushita Electric Industrial Co., Ltd. Information recording medium and apparatus and method for recording and reproducing information
US6157391A (en) * 1994-01-10 2000-12-05 International Business Machines Corporation Method and apparatus for providing slow motion video at normal motion play speed
JPH07327029A (ja) 1994-05-31 1995-12-12 Fujitsu Ltd 暗号化通信システム
JP2842796B2 (ja) 1994-12-06 1999-01-06 富士通株式会社 動画像の暗号化処理方法及び装置及び暗号化された動画像の復号化処理方法及び装置
US6009237A (en) 1995-02-24 1999-12-28 Hitachi Ltd. Optical disk and optical disk reproduction apparatus
US6002834A (en) 1995-02-24 1999-12-14 Hitachi, Ltd. Optical disk having table relating sector address and time and optical disk reproducing apparatus
US5813010A (en) 1995-04-14 1998-09-22 Kabushiki Kaisha Toshiba Information storage and information transmission media with parental control
CA2173929C (en) 1995-04-14 2001-04-03 Kazuhiko Taira Method, apparatus and recording medium for reproducing information
EP0788094A4 (en) 1995-08-21 1998-06-24 Matsushita Electric Ind Co Ltd MULTIMEDIA OPTICAL DISK WHICH CAN COMPLETELY GENERATE UNEXPECTED SCENES THROUGH INTERACTIVE CONTROL, THEIR PLAYBACK DEVICE AND PLAYBACK METHOD
TW385431B (en) 1995-09-29 2000-03-21 Matsushita Electric Ind Co Ltd A method and an apparatus for encoding a bitstream with plural possible searching reproduction paths information useful in multimedia optical disk
TW436777B (en) 1995-09-29 2001-05-28 Matsushita Electric Ind Co Ltd A method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
CA2237293A1 (en) 1995-12-29 1997-07-10 Scientific-Atlanta, Inc. Method and apparatus for providing conditional access in connection-oriented, interactive networks with a multiplicity of service providers
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US6065050A (en) 1996-06-05 2000-05-16 Sun Microsystems, Inc. System and method for indexing between trick play and normal play video streams in a video delivery system
US5805700A (en) 1996-10-15 1998-09-08 Intel Corporation Policy based selective encryption of compressed video data
FI106071B (fi) 1997-03-13 2000-11-15 Nokia Mobile Phones Ltd Mukautuva suodatin
MY124583A (en) 1997-03-19 2006-06-30 Sony Corp Video data decoding apparatus and method and video signal reproduction apparatus and method
US6654933B1 (en) 1999-09-21 2003-11-25 Kasenna, Inc. System and method for media stream indexing
US6970564B1 (en) 1998-07-13 2005-11-29 Sony Corporation Data multiplexing device, program distribution system, program transmission system, pay broadcast system, program transmission method, conditional access system, and data reception device
FI103003B1 (fi) 1997-06-13 1999-03-31 Nokia Mobile Phones Ltd Suodatusmenetelmä, suodatin ja matkaviestinpääte
KR100242448B1 (ko) 1997-06-28 2000-02-01 윤종용 디지털 비디오 디스크 고속 재생 제어장치 및 방법
US6594699B1 (en) 1997-10-10 2003-07-15 Kasenna, Inc. System for capability based multimedia streaming over a network
US6057832A (en) 1997-12-02 2000-05-02 V Soft Ltd. Method and apparatus for video-on-demand with fast play capability
JP4186242B2 (ja) 1997-12-26 2008-11-26 ソニー株式会社 画像信号処理装置及び画像信号処理方法
US6751623B1 (en) 1998-01-26 2004-06-15 At&T Corp. Flexible interchange of coded multimedia facilitating access and streaming
US7809138B2 (en) 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
US6320905B1 (en) 1998-07-08 2001-11-20 Stream Machine Company Postprocessing system for removing blocking artifacts in block-based codecs
US7457415B2 (en) 1998-08-20 2008-11-25 Akikaze Technologies, Llc Secure information distribution system utilizing information segment scrambling
US6931531B1 (en) 1998-09-02 2005-08-16 Matsushita Electric Industrial Co., Ltd. Image object recording, compression, and encryption method and system
US6351538B1 (en) 1998-10-06 2002-02-26 Lsi Logic Corporation Conditional access and copy protection scheme for MPEG encoded video data
CN1897146A (zh) 1998-10-12 2007-01-17 松下电器产业株式会社 信息记录介质及用于记录或再现数据的装置和方法
US6850965B2 (en) * 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
CA2289958C (en) 1998-11-19 2003-01-21 Tomoyuki Okada Information recording medium, apparatus and method for recording or reproducing data thereof
US6236764B1 (en) 1998-11-30 2001-05-22 Equator Technologies, Inc. Image processing circuit and method for reducing a difference between pixel values across an image boundary
EP1021048A3 (en) 1999-01-14 2002-10-02 Kabushiki Kaisha Toshiba Digital video recording system and its recording medium
WO2000044119A1 (en) 1999-01-26 2000-07-27 Infolio, Inc. Universal mobile id system and method for digital rights management
JP3433125B2 (ja) 1999-01-27 2003-08-04 三洋電機株式会社 動画像再生装置
JP3715533B2 (ja) 1999-02-05 2005-11-09 株式会社東芝 ストリーム情報の情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
DE19906450C1 (de) 1999-02-16 2000-08-17 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines verschlüsselten Nutzdatenstroms und Verfahren und Vorrichtung zum Entschlüsseln eines verschlüsselten Nutzdatenstroms
DE19906449C1 (de) 1999-02-16 2000-08-10 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines verschlüsselten Nutzdatenstroms und Verfahren und Vorrichtung zum Abspielen eines verschlüsselten Nutzdatenstroms
JP3805985B2 (ja) 1999-02-18 2006-08-09 株式会社東芝 ストリームデータの情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
US6415031B1 (en) 1999-03-12 2002-07-02 Diva Systems Corporation Selective and renewable encryption for secure distribution of video on-demand
WO2000055854A1 (fr) 1999-03-17 2000-09-21 Kabushiki Kaisha Toshiba Procede d'enregistrement de donnees en fluxet de leur structure
EP1039468A3 (en) 1999-03-19 2000-10-04 Deutsche Thomson-Brandt Gmbh Method for implementing trickplay modes in a data stream recorder
US6912513B1 (en) 1999-10-29 2005-06-28 Sony Corporation Copy-protecting management using a user scrambling key
US7151832B1 (en) 1999-11-18 2006-12-19 International Business Machines Corporation Dynamic encryption and decryption of a stream of data
EP1267515A3 (en) 2000-01-21 2004-04-07 Sony Computer Entertainment Inc. Method and apparatus for symmetric encryption/decryption of recorded data
JP2001209583A (ja) 2000-01-26 2001-08-03 Sony Corp データ記録再生器およびセーブデータ処理方法、並びにプログラム提供媒体
JP4599740B2 (ja) 2000-04-21 2010-12-15 ソニー株式会社 情報処理装置および方法、記録媒体、プログラム、並びに記録媒体
GB2362532B (en) 2000-05-15 2004-05-05 Nokia Mobile Phones Ltd Video coding
KR100448452B1 (ko) 2000-06-09 2004-09-13 엘지전자 주식회사 고밀도 광 기록매체의 메뉴 지원방법
US6871006B1 (en) 2000-06-30 2005-03-22 Emc Corporation Processing of MPEG encoded video for trick mode operation
US7188183B1 (en) 2000-08-04 2007-03-06 Oracle International Corporation Maintaining state information in mobile applications
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
EP1313318A1 (en) 2000-08-25 2003-05-21 Matsushita Electric Industrial Co., Ltd. Data transmission method and data relay method
US6453115B1 (en) 2000-08-31 2002-09-17 Keen Personal Media, Inc. Digital video recording system which generates an index data structure for displaying a video stream in trickplay mode
US7242772B1 (en) 2000-09-07 2007-07-10 Eastman Kodak Company Encryption apparatus and method for synchronizing multiple encryption keys with a data stream
US7212726B2 (en) 2000-09-15 2007-05-01 International Business Machines Corporation System and method of processing MPEG streams for file index insertion
US7031393B2 (en) 2000-10-20 2006-04-18 Matsushita Electric Industrial Co., Ltd. Block distortion detection method, block distortion detection apparatus, block distortion removal method, and block distortion removal apparatus
US7450641B2 (en) 2001-09-14 2008-11-11 Sharp Laboratories Of America, Inc. Adaptive filtering based upon boundary strength
US7110664B2 (en) 2001-04-20 2006-09-19 Front Porch Digital, Inc. Methods and apparatus for indexing and archiving encoded audio-video data
US7065213B2 (en) 2001-06-29 2006-06-20 Scientific-Atlanta, Inc. In a subscriber network receiving digital packets and transmitting digital packets below a predetermined maximum bit rate
US6928603B1 (en) * 2001-07-19 2005-08-09 Adaptix, Inc. System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system
KR100895559B1 (ko) 2001-07-23 2009-04-29 파나소닉 주식회사 정보기록매체, 정보기록매체에 정보를 기록하는 장치 및방법
JP4145586B2 (ja) 2001-07-24 2008-09-03 セイコーエプソン株式会社 画像処理装置及び画像処理プログラム、並びに画像処理方法
US7426315B2 (en) 2001-09-05 2008-09-16 Zoran Microelectronics Ltd. Method for reducing blocking artifacts
KR100424762B1 (ko) 2001-09-06 2004-03-30 삼성전자주식회사 영상 데이터 제공 시스템 및 방법
US6983079B2 (en) 2001-09-20 2006-01-03 Seiko Epson Corporation Reducing blocking and ringing artifacts in low-bit-rate coding
US20030077071A1 (en) 2001-10-23 2003-04-24 Shu Lin Fast forward trick mode and reverse trick mode using an information file
JP2003152698A (ja) 2001-11-15 2003-05-23 Nippon Hoso Kyokai <Nhk> コンテンツ利用制御送信方法、コンテンツ利用制御受信方法およびコンテンツ利用制御送信装置、コンテンツ利用制御受信装置ならびにコンテンツ利用制御送信プログラム、コンテンツ利用制御受信プログラム
DK2938071T3 (en) 2001-11-29 2018-01-22 Godo Kaisha Ip Bridge 1 METHOD OF REMOVING CODING PREVENTION
CA2435757C (en) 2001-11-29 2013-03-19 Matsushita Electric Industrial Co., Ltd. Video coding distortion removal method and apparatus using a filter
US20040037421A1 (en) 2001-12-17 2004-02-26 Truman Michael Mead Parital encryption of assembled bitstreams
US8027470B2 (en) 2002-01-02 2011-09-27 Sony Corporation Video slice and active region based multiple partial encryption
US7065651B2 (en) 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
JP2003230089A (ja) 2002-01-31 2003-08-15 Toshiba Corp 情報記憶媒体及び情報記録装置
US7174021B2 (en) 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations
AU2003268037A1 (en) 2002-07-30 2004-02-16 Digital Interactive Streams, Inc. Digital content security system and method
US20040022391A1 (en) 2002-07-30 2004-02-05 O'brien Royal Digital content security system and method
US7167560B2 (en) 2002-08-08 2007-01-23 Matsushita Electric Industrial Co., Ltd. Partial encryption of stream-formatted media
KR100609392B1 (ko) 2002-09-05 2006-08-08 엘지전자 주식회사 정지 영상의 재생을 관리하기 위한 재생리스트 마크의데이터 구조를 갖는 기록 매체, 그에 따른 기록 및 재생방법 및 장치
CN100495558C (zh) 2002-09-06 2009-06-03 Lg电子株式会社 记录和再现用于管理静止图像的数据结构的方法及装置
US20050144468A1 (en) 2003-01-13 2005-06-30 Northcutt J. D. Method and apparatus for content protection in a personal digital network environment
US7020287B2 (en) 2002-09-30 2006-03-28 Sony Corporation Method and system for key insertion for stored encrypted content
US7295673B2 (en) 2002-10-23 2007-11-13 Divx, Inc. Method and system for securing compressed digital video
KR20040039852A (ko) 2002-11-05 2004-05-12 주식회사 디지털앤디지털 프레임 인덱스를 이용한 트릭 플레이 구현방법
US8572408B2 (en) 2002-11-05 2013-10-29 Sony Corporation Digital rights management of a digital device
CN1692426B (zh) 2002-11-20 2010-05-12 Lg电子有限公司 具有管理数据重现的数据结构的记录介质及记录和重现的方法和装置
US7227901B2 (en) 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US9352222B2 (en) * 2002-12-10 2016-05-31 Sony Interactive Entertainment America Llc System and method for capturing text for an online application
JP2006519565A (ja) 2003-03-03 2006-08-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオ符号化
US7007170B2 (en) 2003-03-18 2006-02-28 Widevine Technologies, Inc. System, method, and apparatus for securely providing content viewable on a secure device
KR101030155B1 (ko) 2003-04-10 2011-04-18 파나소닉 주식회사 정보기록매체, 정보기록매체에 정보를 기록하는 장치 및방법
KR20040096718A (ko) 2003-05-10 2004-11-17 삼성전자주식회사 멀티미디어 데이터 재생장치, 오디오 데이터 수신방법 및오디오 데이터 구조
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US7424501B2 (en) 2003-06-30 2008-09-09 Intel Corporation Nonlinear filtering and deblocking applications utilizing SIMD sign and absolute value operations
JP4411879B2 (ja) 2003-07-01 2010-02-10 株式会社ニコン 信号処理装置、信号処理プログラム、および電子カメラ
AU2004258523B2 (en) 2003-07-07 2009-12-10 Irdeto B.V. Reprogrammable security for controlling piracy and enabling interactive content
US20050013494A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation In-loop deblocking filter
US7382879B1 (en) 2003-07-23 2008-06-03 Sprint Communications Company, L.P. Digital rights management negotiation for streaming media over a network
JP2005057435A (ja) 2003-08-01 2005-03-03 Sony Corp クライアント機器及びクライアント機器におけるコンテンツ処理方法、並びにコンテンツ提供システム
ATE500695T1 (de) 2003-08-07 2011-03-15 Pervenio Ltd Server zum bestimmen und speichern von mobilgerät-leistungsmerkmalen
US7853980B2 (en) 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
JP4537083B2 (ja) 2004-01-28 2010-09-01 キヤノン株式会社 データ処理装置及びその制御方法
US9094699B2 (en) 2004-02-05 2015-07-28 Broadcom Corporation System and method for security key transmission with strong pairing to destination client
US7546641B2 (en) 2004-02-13 2009-06-09 Microsoft Corporation Conditional access to digital rights management conversion
EP1757087A4 (en) * 2004-04-16 2009-08-19 James A Aman AUTOMATIC VIDEO RECORDING OF EVENTS, PURSUIT AND CONTENT PRODUCTION SYSTEM
US7397853B2 (en) 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7400679B2 (en) 2004-04-29 2008-07-15 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7539248B2 (en) 2004-04-29 2009-05-26 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7477749B2 (en) 2004-05-12 2009-01-13 Nokia Corporation Integrity protection of streamed content
US8600217B2 (en) 2004-07-14 2013-12-03 Arturo A. Rodriguez System and method for improving quality of displayed picture during trick modes
US7571246B2 (en) * 2004-07-29 2009-08-04 Microsoft Corporation Media transrating over a bandwidth-limited network
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
EP1780711B1 (en) 2004-08-17 2012-02-15 Panasonic Corporation Information recording medium, data sorting device, and data reproducing device
JP4850075B2 (ja) 2005-01-18 2012-01-11 パナソニック株式会社 データ格納方法、データ再生方法、データ記録装置、データ再生装置および記録媒体
US7349886B2 (en) 2005-03-25 2008-03-25 Widevine Technologies, Inc. Securely relaying content using key chains
KR100677026B1 (ko) 2005-04-07 2007-02-01 (주)아이티너스 코리아 영상 신호 송수신 시스템 및 이에 사용되는 보안 모듈
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP4321550B2 (ja) 2005-08-31 2009-08-26 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US20070067472A1 (en) 2005-09-20 2007-03-22 Lsi Logic Corporation Accurate and error resilient time stamping method and/or apparatus for the audio-video interleaved (AVI) format
US20070083467A1 (en) 2005-10-10 2007-04-12 Apple Computer, Inc. Partial encryption techniques for media data
CN100425078C (zh) * 2005-11-08 2008-10-08 上海广电(集团)有限公司中央研究院 码流转换中编码速度和视频质量的自适应联合控制方法
US7991891B2 (en) 2006-02-02 2011-08-02 Microsoft Corporation Version-specific content searching
US8224041B2 (en) 2006-07-19 2012-07-17 Panasonic Corporation Media data processing apparatus and media data processing method
US7743161B2 (en) 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
TW200820783A (en) 2006-10-25 2008-05-01 Realtek Semiconductor Corp Apparatus and method for deblock filtering
US8243924B2 (en) 2007-06-29 2012-08-14 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
WO2009018171A1 (en) * 2007-07-27 2009-02-05 Synergy Sports Technology, Llc Systems and methods for generating bookmark video fingerprints
US10277956B2 (en) 2007-10-01 2019-04-30 Cabot Communications Method and apparatus for streaming digital media content and a communication system
US20090106082A1 (en) 2007-10-23 2009-04-23 Senti Thad E System and method to facilitate targeted advertising
KR20100106327A (ko) 2007-11-16 2010-10-01 디브이엑스, 인크. 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조
US8169916B1 (en) 2007-11-23 2012-05-01 Media Melon, Inc. Multi-platform video delivery configuration
US8131875B1 (en) 2007-11-26 2012-03-06 Adobe Systems Incorporated Device profile assignment based on device capabilities
WO2009109976A2 (en) 2008-03-05 2009-09-11 Webtview Ltd. Distributing internet channels to a media viewer
CN101540645A (zh) 2008-03-21 2009-09-23 华为技术有限公司 动态内容分发方法和装置
US20090249081A1 (en) 2008-03-31 2009-10-01 Kabushiki Kaisha Toshiba-1 Shibaura 1-Chomominatoku Storage device encryption and method
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
AU2009256066B2 (en) 2008-06-06 2012-05-17 Deluxe Media Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
WO2010000910A1 (en) * 2008-06-30 2010-01-07 Nokia Corporation Transmission capacity probing using adaptive redundancy adjustment
CN101426179A (zh) 2008-09-22 2009-05-06 深圳华为通信技术有限公司 业务激活的方法和业务提供的方法以及终端设备和服务器
EP2180664A1 (en) 2008-10-22 2010-04-28 Vivendi Mobile Entertainment System and method for accessing multi-media content via a mobile terminal
CN102217309B (zh) * 2008-11-13 2014-04-09 汤姆逊许可证公司 使用hrd信息共享和比特分配等待的多线程视频编码
WO2010108053A1 (en) * 2009-03-19 2010-09-23 Azuki Systems, Inc. Method for scalable live streaming delivery for mobile audiences
US9380091B2 (en) * 2012-06-12 2016-06-28 Wi-Lan Labs, Inc. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US20130290492A1 (en) * 2009-06-12 2013-10-31 Cygnus Broadband, Inc. State management for video streaming quality of experience degradation control and recovery using a video quality metric
KR101740039B1 (ko) * 2009-06-26 2017-05-25 톰슨 라이센싱 적응형 기하학적 분할을 이용한 비디오 인코딩 및 디코딩 방법 및 장치
WO2011022405A2 (en) 2009-08-17 2011-02-24 Akamai Technologies, Inc. Method and system for http-based stream delivery
US9203816B2 (en) 2009-09-04 2015-12-01 Echostar Technologies L.L.C. Controlling access to copies of media content by a client device
CA2715362A1 (en) 2009-09-22 2011-03-22 Thwapr, Inc. Interoperable mobile media sharing
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US10264029B2 (en) 2009-10-30 2019-04-16 Time Warner Cable Enterprises Llc Methods and apparatus for packetized content delivery over a content delivery network
US8930991B2 (en) 2009-11-19 2015-01-06 Gregory Philpott System and method for delivering content to mobile devices
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US20110296048A1 (en) 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format
US9038116B1 (en) 2009-12-28 2015-05-19 Akamai Technologies, Inc. Method and system for recording streams
KR101636108B1 (ko) 2010-01-18 2016-07-04 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 미디어 스트림 분배를 위한 방법과 배열
US20110179185A1 (en) 2010-01-20 2011-07-21 Futurewei Technologies, Inc. System and Method for Adaptive Differentiated Streaming
GB2477515B (en) * 2010-02-03 2012-09-26 Orbital Multi Media Holdings Corp Data flow control method and apparatus
US9532113B2 (en) 2010-02-17 2016-12-27 Verimatrix, Inc. Systems and methods for securing content delivered using a playlist
EP2362651A1 (en) 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
EP2360923A1 (en) 2010-02-24 2011-08-24 Thomson Licensing Method for selectively requesting adaptive streaming content and a device implementing the method
US8819116B1 (en) 2010-03-08 2014-08-26 Amazon Technologies, Inc. Providing services using a device capabilities service
EP2375680A1 (en) 2010-04-01 2011-10-12 Thomson Licensing A method for recovering content streamed into chunk
US8402155B2 (en) * 2010-04-01 2013-03-19 Xcira, Inc. Real-time media delivery with automatic catch-up
US9043484B2 (en) 2010-04-02 2015-05-26 Disney Enterprises, Inc. Streaming playback and dynamic ad insertion
US9137278B2 (en) 2010-04-08 2015-09-15 Vasona Networks Inc. Managing streaming bandwidth for multiple clients
AU2010202741B1 (en) 2010-06-30 2010-12-23 Adeia Media Holdings Llc Dynamic chunking for media streaming
US20130080267A1 (en) 2011-09-26 2013-03-28 Unicorn Media, Inc. Single-url content delivery
US8824560B2 (en) * 2010-07-07 2014-09-02 Netzyn, Inc. Virtual frame buffer system and method
US8782268B2 (en) 2010-07-20 2014-07-15 Microsoft Corporation Dynamic composition of media
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US8677428B2 (en) 2010-08-20 2014-03-18 Disney Enterprises, Inc. System and method for rule based dynamic server side streaming manifest files
US10637891B2 (en) 2010-11-02 2020-04-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for media description delivery
US9001886B2 (en) * 2010-11-22 2015-04-07 Cisco Technology, Inc. Dynamic time synchronization
US9264750B2 (en) 2010-12-23 2016-02-16 Verizon Patent And Licensing Inc. Advertising insertion for playback of video streams on user devices
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
CA2825937A1 (en) 2011-01-28 2012-08-02 Eye IO, LLC Encoding of video stream based on scene type
US9026671B2 (en) 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US8849950B2 (en) 2011-04-07 2014-09-30 Qualcomm Incorporated Network streaming of video data using byte range requests
EP2685742A4 (en) * 2011-04-07 2014-03-05 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR SENDING AND PROCESSING MEDIA CONTENT
US9646141B2 (en) 2011-06-22 2017-05-09 Netflix, Inc. Fast start of streaming digital media playback with deferred license retrieval
US9615126B2 (en) * 2011-06-24 2017-04-04 Google Technology Holdings LLC Intelligent buffering of media streams delivered over internet
US9420534B2 (en) 2011-06-28 2016-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Technique for managing streaming media traffic at a network entity
CN103650451B (zh) 2011-07-07 2016-10-19 瑞典爱立信有限公司 网络容量优化的自适应http流播
US9590814B2 (en) 2011-08-01 2017-03-07 Qualcomm Incorporated Method and apparatus for transport of dynamic adaptive streaming over HTTP (DASH) initialization segment description fragments as user service description fragments
WO2013022470A1 (en) 2011-08-11 2013-02-14 Intel Corporation Methods for switching between a mbms download and an http-based delivery of dash formatted content over an ims network
EP2761881A4 (en) * 2011-09-30 2015-06-17 Intel Corp EXPERIENCE QUALITY IMPROVEMENTS BETWEEN WIRELESS NETWORKS
US9800945B2 (en) * 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9246741B2 (en) * 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
KR20160063405A (ko) 2012-04-24 2016-06-03 브이아이디 스케일, 인크. Mpeg/3gpp-dash에서의 원활한 스트림 스위칭을 위한 방법 및 장치
CN104285411A (zh) * 2012-06-11 2015-01-14 英特尔公司 在多个无线电链路上分发分层多媒体流
US9602827B2 (en) * 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
JP6064249B2 (ja) 2012-07-09 2017-01-25 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 動的適応ストリーミングオーバーハイパーテキスト転送プロトコルクライアント挙動フレームワークおよびセッション管理の実装
US10511997B2 (en) 2012-07-09 2019-12-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for distributing information during broadcast delivery
JP6106851B2 (ja) * 2012-07-09 2017-04-05 パナソニックIpマネジメント株式会社 通信装置、通信方法、プログラム
US9351005B2 (en) * 2012-09-24 2016-05-24 Qualcomm Incorporated Bitstream conformance test in video coding
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
US9426196B2 (en) * 2013-01-04 2016-08-23 Qualcomm Incorporated Live timing for dynamic adaptive streaming over HTTP (DASH)
US20140209493A1 (en) 2013-01-28 2014-07-31 Susan Jean Hale Garment and Accessories Organizer and Shoulder Bag
US8752113B1 (en) 2013-03-15 2014-06-10 Wowza Media Systems, LLC Insertion of graphic overlays into a stream
US8869218B2 (en) * 2013-03-15 2014-10-21 Wowza Media Systems, LLC On the fly transcoding of video on demand content for adaptive streaming
US20140351871A1 (en) * 2013-05-22 2014-11-27 Microsoft Corporation Live media processing and streaming service
US9094737B2 (en) * 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
DE102013211571B4 (de) * 2013-06-19 2016-02-11 Opticom Dipl.-Ing. Michael Keyhl Gmbh Konzept zur bestimmung der qualität eines mediadatenstroms mit variierender qualität-zu-bitrate
US9179159B2 (en) * 2013-06-20 2015-11-03 Wowza Media Systems, LLC Distributed encoding of a video stream
WO2014209493A1 (en) * 2013-06-28 2014-12-31 Wi-Lan Labs, Inc. State management for video streaming quality of experience degradation control and recovery using a video quality metric
GB2520334B (en) * 2013-11-18 2015-11-25 Helen Bradley Lennon A video broadcast system and a method of disseminating video content
US9282133B2 (en) * 2013-12-12 2016-03-08 Ooma, Inc. Communicating control information within a real-time stream
US9253231B2 (en) * 2013-12-19 2016-02-02 Verizon Patent And Licensing Inc. Retrieving and caching adaptive bitrate stream segments based on network congestion
US10567765B2 (en) * 2014-01-15 2020-02-18 Avigilon Corporation Streaming multiple encodings with virtual stream identifiers
CN111416984B (zh) * 2014-01-29 2024-08-23 皇家Kpn公司 建立事件的流传输呈现
US9106887B1 (en) * 2014-03-13 2015-08-11 Wowza Media Systems, LLC Adjusting encoding parameters at a mobile device based on a change in available network bandwidth
US9635077B2 (en) * 2014-03-14 2017-04-25 Adobe Systems Incorporated Low latency live video streaming
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
CN103944675B (zh) * 2014-04-04 2017-08-04 浙江大学 适合物理层无速率编码传输的自适应流水线传输方法
US8896765B1 (en) 2014-05-16 2014-11-25 Shadowbox Media, Inc. Systems and methods for remote control of a television
US10110657B2 (en) * 2014-07-03 2018-10-23 Telefonaktiebolaget Lm Ericsson (Publ) System and method for pushing live media content in an adaptive streaming environment
US9426478B2 (en) * 2014-07-21 2016-08-23 Cisco Technology, Inc. Resolution robust video quality metric
US9756361B2 (en) * 2014-07-25 2017-09-05 Verizon Patent And Licensing Inc. On-demand load balancer and virtual live slicer server farm for program ingest
US9838455B2 (en) * 2014-09-19 2017-12-05 Mobitv, Inc. Fast encoding of live streaming media content
CN104318926B (zh) * 2014-09-29 2018-08-31 四川九洲电器集团有限责任公司 基于IntMDCT的无损音频编码方法、解码方法
MX2017005085A (es) * 2014-10-22 2018-01-30 Arris Entpr Llc Reduccion de latencia de transmision de velocidad binaria adaptativa.
EP3490174B1 (en) * 2014-11-20 2023-10-11 Panasonic Intellectual Property Corporation of America Transmitting method, receiving method, transmitting device, and receiving device
WO2016098056A1 (en) * 2014-12-18 2016-06-23 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
KR101942208B1 (ko) * 2015-01-08 2019-01-24 애리스 엔터프라이지즈 엘엘씨 Dlna http 스트리밍 클라이언트들을 위한 서버측 적응형 비트 레이트 제어
GB2534136A (en) * 2015-01-12 2016-07-20 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US9781084B2 (en) * 2015-01-23 2017-10-03 Arris Enterprises Llc Reducing start-up delay in streaming media sessions
US10218981B2 (en) * 2015-02-11 2019-02-26 Wowza Media Systems, LLC Clip generation based on multiple encodings of a media stream
US9756106B2 (en) * 2015-02-13 2017-09-05 Citrix Systems, Inc. Methods and systems for estimating quality of experience (QoE) parameters of secured transactions
EP3627337A1 (en) 2015-02-27 2020-03-25 DivX, LLC Systems and methods for frame duplication and frame extension in live video encoding and streaming

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7339993B1 (en) * 1999-10-01 2008-03-04 Vidiator Enterprises Inc. Methods for transforming streaming video data
US8532171B1 (en) * 2010-12-23 2013-09-10 Juniper Networks, Inc. Multiple stream adaptive bit rate system
US20120307886A1 (en) * 2011-05-31 2012-12-06 Broadcom Corporation Adaptive Video Encoding Based on Predicted Wireless Channel Conditions
US20130114744A1 (en) * 2011-11-06 2013-05-09 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
US20140019593A1 (en) * 2012-07-10 2014-01-16 Vid Scale, Inc. Quality-driven streaming

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019210152A1 (en) * 2018-04-26 2019-10-31 Phenix Real Time Solutions, Inc. Adaptive bit-rate methods for live broadcasting
US11019368B2 (en) 2018-04-26 2021-05-25 Phenix Real Time Solutions, Inc. Adaptive bit-rate methods for live broadcasting
US11363312B2 (en) 2018-04-26 2022-06-14 Phenix Real Time Solutions, Inc. Adaptive bit-rate methods for live broadcasting
US11711551B2 (en) 2018-04-26 2023-07-25 Phenix Real Time Solutions, Inc. Adaptive bit-rate methods for live broadcasting
US12058386B2 (en) 2018-04-26 2024-08-06 Phenix Real Time Solutions, Inc. Adaptive bit-rate methods for live broadcasting

Also Published As

Publication number Publication date
US20160255131A1 (en) 2016-09-01
JP2019193312A (ja) 2019-10-31
EP3262523B1 (en) 2019-12-04
EP3262523A1 (en) 2018-01-03
EP3627337A1 (en) 2020-03-25
JP6928038B2 (ja) 2021-09-01
US10715574B2 (en) 2020-07-14
ES2768979T3 (es) 2020-06-24
KR101897959B1 (ko) 2018-09-12
EP3262523A4 (en) 2018-07-25
SG11201706160UA (en) 2017-09-28
US20220124137A1 (en) 2022-04-21
WO2016138493A1 (en) 2016-09-01
CN107251008B (zh) 2020-11-13
HK1246423A1 (zh) 2018-09-07
CN107251008A (zh) 2017-10-13
US11134115B2 (en) 2021-09-28
JP6588987B2 (ja) 2019-10-09
US11824912B2 (en) 2023-11-21
JP2018511978A (ja) 2018-04-26
US20200344284A1 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
KR101897959B1 (ko) 라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법
US9179183B2 (en) Transcoding media streams using subchunking
US11201903B1 (en) Time synchronization between live video streaming and live metadata
US20160037176A1 (en) Automatic and adaptive selection of profiles for adaptive bit rate streaming
US11968431B2 (en) Multimedia content delivery with reduced delay
US10863218B2 (en) Method for synchronizing GOPS and IDR-frames on multiple encoders without communication
CN103733632A (zh) 带宽变化连接上的动态比特率调节
US11539985B2 (en) No reference realtime video quality assessment
US10693642B1 (en) Output switching for encoded content streams
US11563990B2 (en) Method and apparatus for automatic HLS bitrate adaptation
US20220417084A1 (en) Video transport stream stability prediction
US20210168472A1 (en) Audio visual time base correction in adaptive bit rate applications
US20240187548A1 (en) Dynamic resolution switching in live streams based on video quality assessment
US9866459B1 (en) Origin failover for live streaming
US10277924B1 (en) Stitching content streams together
US11909795B1 (en) Input switching for streaming content

Legal Events

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