KR101761302B1 - Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지 - Google Patents

Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지 Download PDF

Info

Publication number
KR101761302B1
KR101761302B1 KR1020167022545A KR20167022545A KR101761302B1 KR 101761302 B1 KR101761302 B1 KR 101761302B1 KR 1020167022545 A KR1020167022545 A KR 1020167022545A KR 20167022545 A KR20167022545 A KR 20167022545A KR 101761302 B1 KR101761302 B1 KR 101761302B1
Authority
KR
South Korea
Prior art keywords
packet
packets
box
payload
streaming
Prior art date
Application number
KR1020167022545A
Other languages
English (en)
Other versions
KR20160103550A (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 KR20160103550A publication Critical patent/KR20160103550A/ko
Application granted granted Critical
Publication of KR101761302B1 publication Critical patent/KR101761302B1/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/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • H04L65/602
    • 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/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring 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)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크 장치에 의해 실행되는 미디어 스트리밍 방법으로서, 상기 방법은 세그먼트 내의 하나 이상의 패킷에 메시지 박스를 캡슐화하는 단계 및 상기 세그먼트를 스트리밍 클라이언트에 직접 또는 간접적으로 송신하는 단계를 포함한다.

Description

MPEG-2 트랜스포트 스트림에서 ISO-BMFF 이벤트 박스의 캐리지{CARRIAGE OF ISO-BMFF EVENT BOXES IN AN MPEG-2 TRANSPORT STREAM}
본 발명은 MPEG-2 트랜스포트 스트림에서 ISO-BMFF 이벤트 박스의 캐리지에 관한 것이다.
미디어 콘텐츠 제공자 또는 배급자는 미디어 콘텐츠를 스트리밍 클라이언트에 스트리밍하는데, 스트리밍 클라이언트는 다양한 사용자 및 기기의 형태를 취하는데, 기기로는 예를 들어, 텔레비전, 노트북 컴퓨터, 및 이동전화가 있다. 미디어 콘텐츠는 미디어 프레젠테이션 디스크립션(Media Presentation Description: MPD) 및 복수의 미디어 세그먼트를 포함할 수 있으며, 이것들은 미디어 스트림에 반송(搬送)될 수 있다. MPD는 그 다양한 레프리젠테이션, 유니폼 리소스 로케이터(Uniform Resource Locator: URL) 어드레스, 및 다른 특성과 같이, 미디어 콘텐츠를 설명하는 확장형 마크업 언어(extensible markup language: XML) 파일 또는 문서일 수 있다. 예를 들어, 미디어 콘텐츠는 수개의 미디어 컴포넌트(예를 들어, 오디오, 비디오, 및 텍스트)를 포함하는데, 이들 각각은 MPD에 지정되는 상이한 특정을 가질 수 있다. 각각의 미디어 컴포넌트는 실제의 미디어 콘텐츠 부분을 포함하는 복수의 미디어 세그먼트를 포함하고, 세그먼트는 단일 파일에 집합적으로 저장되거나 복수 파일에 개별적으로 저장될 수 있다. 각각의 세그먼트는 미디어 콘텐츠의 사전규정된 바이트 크기(예를 들이, 1,000 바이트) 또는 재생시간의 간격(예를 들어, 2 또는 5초)을 포함할 수 있다.
미디어 콘텐츠는 네트워크 상황, 기기 성능, 및 사용자 선택과 같은 다양한 요인에 기초하여 스트리밍 서버로부터 스트리밍 클라이언트로 전달될 수 있다. TS의 수신 시에, 스트리밍 클라이언트는 TS를 분석하여 그 안에서 정보를 추출할 수 있다. 적응형 스트리밍 기술은 하이퍼텍스트 트랜스퍼 프로토콜을 통한 동적 적응형 스트리밍 스트리밍(Dynamic Adaptive Streaming over Hypertext Transfer Protocol(HTTP): DASH), HTTP 라이브 스트리밍(HLS), 적응형 전송 스트리밍(Adaptive Transport Streaming: ATS), 또는 인터넷 정보 서비스(Internet Information Services: IIS) 평활 스트리밍과 같이, 실시되고 있거나 현재 개발 중인 다양한 기술 또는 표준을 포함할 수 있다.
예를 들어, 적응형 스트리밍의 한 유형으로서, DASH가 국제표준화기구(International Organization for Standardization: ISO) 및 국제전자기계협회(International Electrotechnical Commission: IEC)에 의해 국제표준으로서 정해져 있다. 이 표준은 통상적으로 ISO/IEC 23009-1로 확인되며, 정보 기술 - HTTP를 통한 동적 적응형 스트리밍(DASH) - Part 1: 미디어 프레젠테이션 디스크립션 및 세그먼트 포맷"으로 명칭이 정해져 있고 본 명세서에 원용되어 병합된다. ISO/IEC 23009-1에 대한 최근의 보정안은 ISO-기반 미디어 파일 포맷(BMFF) 박스를 사용하여 이벤트 메시지(emsg로 표시함)를 이송하는 방식을 제안하였다. emsg 박스는 ISO-BMFF 미디어 세그먼트에 특정될 수 있으며 동영상 전문가 그룹-2 표준(Moving Picture Experts Group-2: MPEG-2) 표준에 의해 규정된 트랜스포트 스트림(TS)의 미디어 세그먼트 내의 emsg 이벤트에 대한 일반적인 대응부분이 없을 수도 있다. 결론적으로, 적응형 스트리밍은 MPEG-2 TS 지원으로는 사용자 기기에 편리하게 전달될 수 없다.
일실시예에서, 본 발명은 네트워크 장치에 의해 실시되는 미디어 스트리밍 방법을 포함하며, 상기 방법은, 메시지 박스를 세그먼트 내의 하나 이상의 패킷에 캡슐화하는 단계; 및 상기 세그먼트를 스트리밍 클라이언트에 직접 또는 간접적으로 송신하는 단계를 포함한다.
다른 실시예에서, 본 발명은 네트워크 장치를 포함하며, 상기 장치는, 세그먼트 내의 적어도 하나의 트랜스포트 스트림(TS) 패킷에 메시지 박스를 캡슐화하며; 그리고 상기 적어도 하나의 TS 패킷을 포함하는 미디어 세그먼트를 생성하도록 구성되어 있는 프로세서; 및 상기 프로세서에 결합되어 있고 상기 미디어 세그먼트를 전송하도록 구성되어 있는 전송기를 포함한다.
또 다른 실시예에서, 본 발명은 스트리밍 클라이언트로서 기능하는 장치를 포함하며, 상기 장치는, 복수의 패킷을 포함하는 트랜스포트 스트림(TS)을 수신하도록 구성되어 있는 수신기 - 여기서 상기 패킷 중 하나 이상은 그 안에 캡슐화된 이벤트 메시지 박스를 포함함 - ; 및 상기 수신기에 결합되어 있고 상기 하나 이상의 패킷을 분석함으로써 상기 하나 이상의 패킷으로부터 이벤트 메시지 박스를 추출하도록 구성되어 있는 프로세서를 포함한다.
이러한 특징 및 다른 특징에 대해서는 첨부된 도면 및 특허청구범위와 결합하여 이하에 상세한 설명으로부터 분명하게 이해하게 될 것이다.
본 발명의 더 완전한 이해를 위해, 첨부된 도면 및 상세한 설명과 결합하여, 이하의 간략한 설명을 참조할 것이며, 도면 중 유사한 도면부호는 유사한 부분을 나타낸다.
도 1은 미디어 스트리밍 아키텍처에 대한 실시예를 나타내는 도면이다.
도 2는 패킷을 포함하는 미디어 세그먼트에 대한 실시예를 나타내는 도면이다.
도 3은 스트리밍 클라이언트에 의한 박스 추출을 위한 의사 코드의 섹션을 나타내는 예시도이다.
도 4는 미디어 스트리밍 방법에 대한 실시예를 나타내는 도면이다.
도 5는 네트워크 장치에 대한 실시예를 나타내는 도면이다.
하나 이상의 실시예에 대한 도해적 실시를 이하에 제공하지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는 임의 수의 기술을 사용하여 실시될 수 있다는 것을 애초에 이해하여야 한다. 본 발명은 여기에 도해되고 설명된 예시적 설계 및 실시를 포함한 이하에 설명되는 도해적 실시, 도면, 및 기술에 제한되지 않지만, 그 전체적인 등가의 범주와 함께 첨부된 특허청구범위의 범주 내에 수정될 수 있다.
케이블 전기통신 공학의 사회(The Society of Cable Telecommunications Engineerigns: SCTE)는 이벤트 메시징을 미디어 스트림에 부가하는 데 사용될 수 있는 표준을 정하였다. 이 표준을 명칭이 "케이블용 디지털 프로그램 삽입 신호 메시지(Digital Program Insertion Cueing Message for Cable)"인 SCTE 35라 한다. 이 표준은 동적 광고(ad로 약칭함) 삽입(예를 들어, ad 삽입의 경계 만들기)과 관련된 메시지의 상대적으로 복잡하고 많은 구조를 사용하고, 광고를 부가할 것으로 요구하며, 변경 통지(예를 들어, 프로그램 간섭 또는 초과)를 예정할 수 있다.
그렇지만, 하이퍼텍스트 트랜스퍼 프로토콜을 통한 동적 적응형 스트리밍 스트리밍(Dynamic Adaptive Streaming over Hypertext Transfer Protocol(HTTP): DASH) 클라이언트에서 SCTE 35를 사용하면 몇 가지 문제가 생길 수 있다. 예를 들어, 첫째, DASH 클라이언트는 SCTE 35 커맨드를 분석할 능력이 있어야 하며, 이것은 SCTE 35 스택 외에, MPEG-2 TS 헤더 및 프로그램 특정 정보(Program Specific Information: PSI)를 분석하는 것을 의미할 수 있다. 둘째, SCTE 35는 지원을 받아야 하는 그 자체의 조건적 액세스 모델을 가지며, 이것은 DASH 클라이언트에서의 실시를 더 복잡하게 할 수도 있다. 그러므로 SCTE 35가 ad 삽입이 종종 일어날 수 있는 케이블 헤드엔드 내의 서버 측 상에 어디에도 있을 수 있더라도, SCTE 35는 클라이언트 측 상에서 가상적으로 존재하지 않을 수 있다. 셋째, 확장성은 잠재적 문제일 수 있는데, SCTE 35는 미리 정해진 이벤트를 가지며 더 많은 일반적은 형태의 이벤트를 가질 수 있다. 예를 들어, SCTE 35-규정 이벤트는 그 길이가 353 바이트에 제한될 수 있다. 이 크기 제한은 일반적인 emsg 박스를 반송하는 데 충분하지 않을 수도 있다. 때로는, 미디어 프레젠테이션 디스크립션(Media Presentation Description: MPD) 유니폼 리소스 로케이터(Uniform Resource Locator: URL)조차도 이 제한을 초과할 수 있다.
SCTE 35에서 새로운 디스크립터를 생성할 수도 있으나, 이때 크기 제한은 4K(kilo) 바이트가 될 수 있다. 이 크기 제한은 어떤 경우에는 충분할 수도 있으나, 예를 들어, MPD의 일부를 박스 내에 매립하는 경우에는 박스가 더 클 수도 있다. 또한, 이벤트 메커니즘을 MPEG-2 TS 및 ISO-BMFF 미디어 세그먼트에 대한 가능한 유사하게 하는 것이 바람직하다. DASH 클라이언트 측 상에서는 실시를 적게 하는 것이 바람직하다.
본 발명의 지침은 emsg 박스와 같은 메시지 박스가 하나 이상의 패킷으로 캡슐화되거나 패킷화될 수 있는 대안의 솔루션을 제시한다. 하나 이상의 패킷은 미디어 세그먼트에 포함될 수 있다. 또한, 메시지 박스를 반송하는 모든 패킷은 고정된 패킷 식별자(fixed packet identifier: PID) 값, 예를 들어, 적응형 스트리밍을 위해 MPEG-2에 의해 예약되어 있는 0x0004의 13 비트의 값을 가지도록 구성될 수도 있다. 메시지 박스를 캡슐화하는 최초의 패킷은 캡슐화의 시작을 지시하는 패킷 헤더 및 메시지 박스의 헤더를 포함하는 패킷 페이로드를 포함할 수 있다. 또한, 마지막 패킷은 하나 이상의 스터핑 바이트(stuffing byte)로 패딩되어 있는 어댑테이션 필드를 가질 수 있다. 한편, 수신된 TS의 미디어 세그먼트로부터 이벤트 메시지를 확인 및 추출하기 위해, 스트리밍 클라이언트는 하나 이상의 패킷의 패킷 헤더를 분석할 수 있다. 스트리밍 클라이언트는 필요하면 어댑테이션 필드를 건너뛸 수 있다. 전체적으로, 본 명세서에서 제시하는 실시예는 DASH 클라이언트용 코드를 최대한 재사용할 수 있다.
도 1은 미디어 스트리밍 아키텍처(100)에 대한 실시예를 나타내는 도면이며, 이것은 스트리밍 서버 또는 프로바이더(120)로부터 스트리밍 클라이언트(110)로 미디어 콘텐츠를 전달하기 위해 실행될 수 있다. 예를 들어, 스트리밍 아키텍처(100)는 DASH, MPEG-2 TS, 또는 다른 유형의 스트리밍 방식을 포함할 수 있다. 스트리밍 클라이언트(110)는 사용자 기기의 운영체제에서 실행되는 프로그램 또는 애플리케이션일 수 있거나, 웹 플랫폼에 액세스되는 웹 클라이언트일 수 있다. 스트리밍 클라이언트(110)는 이동전화, 노트북, 컴퓨터, 텔레비전 등과 같은 임의의 사용자 기기에서 실행될 수 있다. DASH가 사용되는 경우, 스트리밍 클라이언트(110)는 DASH 클라이언트이고, 스트리밍 서서는 HTTP 서버 또는 프록시일 수 있다.
스트리밍 서버(120)에 저장되어 있는 미디어 콘텐츠는 스트리밍 미디어 준비 유닛(130)에 의해 생성되거나 준비될 수 있다. 미디어 준비 유닛(130)은 스트리밍 서버(120) 또는 다른 곳(예를 들어, 콘텐츠 프로바이더)에 위치할 수 있다. 스트리밍 서버(120)는 콘텐츠 프로바이더의 일부이거나 콘텐츠 분배 네트워크(content distribution network: CDN) 내의 노드일 수 있다. 예를 들어, 스트리밍 서버(120)는 CDN 내의 에지 노드일 수 있거나 콘텐츠 프로바이더로부터 스트리밍 클라이언트(110)로의 라스트 홉(last hop)으로 작동할 수 있다. 미디어 콘텐츠는 콘텐츠 프로바이더에 의해 생성된 다음 CDN 노드에 전송된다. 스트리밍 서버(120) 내의 미디어 콘텐츠는 MPD 및 복수의 세그먼트를 포함할 수 있다. 원한다면 MPD 및 세그먼트는 다른 서버에 저장되어 다른 서버로부터 스트리밍 클라이언트(110)로 송신될 수 있다는 것에 주목하라. 또한, 여기서 언급하는 스트리밍 서버는 서버의 일례에 지나지 않으며, 따라서 여기서 설명되는 실시예 역시 다른 적절한 유형의 서버에서 실시될 수 있다는 것은 당연하다.
스트리밍 클라이언트(110)는 스트리밍 서버(120)에 미디어 콘텐츠에 대한 요구를 송신할 수 있다. 응답으로, 스트리밍 서버(120)는 먼저 MPD 전달 기능(140)을 사용하여 MPD를 스트리밍 클라이언트(110)에 전달할 수 있다. MPD는 HTTP, 이메일, 썸 드라이브(thumb drive), 브로드캐스트, 또는 임의의 다른 전송을 사용하여 전달될 수 있다. MPD를 분석함으로써, 스트리밍 클라이언트(110)는, 프로그램의 타이밍, 미디어 콘텐츠의 이용 가능성, 미디어 유형, 해상도, 최소 및 최대 대역폭, 멀티미디어 컴포넌트의 다양한 인코딩된 대안의 확장성, 액세스 가능성 특징 및 필요한 디지털 권한 관리(digital right management: DRM), 네트워크 상에서의 각각의 미디어 컴포넌트의 위치, 및 미디어 콘텐츠의 다른 특성과 같이, 미디어 콘텐츠에 관한 정보를 학습할 수 있다. 이 정보를 사용하여, 스트리밍 클라이언트(110)는 적절하게 인코딩된 레프리젠테이션을 선택하고 미디어 세그먼트를 페치함으로써, 예를 들어, MPEG-2 TS 표준을 따름으로써 미디어 콘텐츠를 스트리밍하기 시작할 수 있다.
스트리밍 서버(120)는 미디어 세그먼트를 스트리밍 클라이언트(110)에 전달하기 위해 세그먼트 전달 기능을 사용할 수 있다. 미디어 세그먼트는 하나 이상의 TS 패킷을 포함할 수 있으며, 이 패킷에는 적어도 하나의 메시지 박스(예를 들어, emsg 박스)가 캡슐화되어 있다. 스트리밍 클라이언트(110)는 예를 들어 네트워크 대역폭을 최대로 사용하기 위해 복수의 스트리밍 서버로부터 세그먼트를 다운링크 할 수 있다는 것에 유의해야 한다. 스트리밍 클라이언트(110)는 다운로드된 미디어를 적절하게 렌더링하여 스트리밍 서비스를 스트리밍 클라이언트(110)의 사용자에게 제공할 수 있다. 스트리밍 클라이언트(110)가 MPD에 포함된 URL에 의해 지정된 위치에 기초하여 세그먼트를 획득할 수 있고, 때로는 세그먼트는 HTTP 캐시(150)(예를 들어, 스트리밍 서버(120)에 저장될 수 있으며 이에 따라 스트리밍 클라이언트(110)는 이것들 더 효과적으로 수신할 수 있다.
도 2는 미디어 세그먼트(200)의 실시예를 도시하고 있으며, 이것은 스트리밍 프로바이더로부터 스트리밍 클라이언트로 통신되는 유효한 TS일 수 있다. 서브-세그먼트가 미디어 세그먼트(200)에서 사용되는 경우, 여기서 설명하는 실시예는 세그먼트에 적용될 때와 마찬가지로 서브-세그먼트에도 적용 가능하다.
세그먼트(200)는 복수의 TS 패킷을 포함하며, 패킷 중 하나 이상은 메시지 박스를 캡슐화하는 데 사용될 수 있다. 즉, 하나의 메시지 박스는 하나의 패킷을 사용하거나, 복수의 패킷(연속적일 수도 있고 아닐 수도 있다)을 사용하여 캡슐화될 수 있다. 메시지를 박스를 캡슐화하는 데 사용되는 패킷의 수는 메시지 박스의 크기와 같은 인자에 따라 다를 수 있다. 메시지가 박스의 단위로 전송될 때, 이하에서는 이러한 메시지를 메시지 박스라고 한다. 일례로, 도 2에 도시된 패킷(210, 220, 및 230)은 이벤트 메시지(emsg) 박스(240)의 캡슐화에 사용된다. 박스 캡슐화 또는 패킷화의 원리를 설명하기 위해 emsg를 예시적 메시지로서 사용하고 있으나, 당업자라면 여기에 설명된 원리는 다른 적절한 유형의 이벤트 메시지 박스 또는 일반적인 메시지 박스에도 적용 가능하다는 것을 이해할 수 있을 것이다.
메시지 박스(예를 들어, ISO-BMFF 박스)는 이벤트 메시지, EventMessageBox (emsg)와 같은 메시지를 박스 포맷(예를 들어, DASH에 의해 규정됨)에 반송할 수 있다. emsg 박스는 일반적인 이벤트 박스일 수 있고, 그 페이로드는 애플리케이션-규정일 수 있다. DASH 표준에서, 예를 들어, emsg 박스는 미디어 프레젠테이션 시간과 관련된 일반적인 이벤트를 위한 시그널링을 제공할 수 있다. emsg 박스의 세만틱스는 MPD 이벤트를 위한 것들을 따를 수 있고, emsg 박스는 또한 DASH 동작에 특정된 시그널을 제공할 수 있다. ISO BMFF에 캡슐화되면 미디어 세그먼트는 하나 이상의 패킷화된 emsg 박스를 포함할 수 있다. 제공되는 경우, 임의의 emsg 박스는 원하는 경우 캡슐화될 수도 있는 '무프(moof)' 박스 앞에 위치할 수 있다. 메시지 박스는 (DASH 보정안에서 표준화된) MPD를 리프레시해야 한다는 것을 스트리밍 클라이언트에 통지하는 것, 패치(patch)를 제공하여 MPD에 적용하는 것 및/또는 곧 있을 ad(예를 들어, CTE 35, 인터랙티브 광고부(Interactive Advertising Bureau: IAB) 비디오 Ad 서비 템플릿(Video Ad Serving Template: VAST), 및/또는 IAB 비디오 다중 Ad 재생목록(Video Multiple Ad Playlist: VMAP))에 관한 정보를 제공하는 것과 같은 다양한 목적에 사용될 수 있다. 이벤트 메시지 박스의 예시적인 실시예에 대한 상세는 DASH 표준 보정안의 5.10.3.3 부분에 나와 있다. 보정안 문서는 ISO/IEC 23009-1:2012/Amd.1:2013(E)로 확인되고, 명칭은 "Information technology - Dynamic adaptive streaming over HTTP (DASH) - Part 1: Media presentation description and segment formats, AMENDMENT 1,"이고 여기에 원용되어 병합된다.
TS 패킷(210, 220, 및 230) 각각은 예를 들어 188 바이트의 고정된 길이를 가질 수 있다. 188-바이트 길이는 길이 비동기 전송 모드(Asynchronous Transfer Mode: ATM) 셀과 높게 호환될 수 있고 오류-정정 코딩에 효과적이고 강력한 그 적용 가능성으로 인해 MPEG-2 TS 세그먼트에서 흔히 사용된다. 패킷(210)은 예시적인 패킷으로서 패킷 헤더(211)를 포함할 수 있다. 패킷 헤더는 동기화 필드(212), 트랜스포트 오류 지시자(213), 페이로드-유닛 시작 지시자(214)(payload_unit_start_indicator로 표시됨), 트랜스포트 우선순위 필드(215), PID(216), 트랜스포트-스크램블링 제어 필드(217), 어댑테이션 필드 제어 플래그(adaptation_field_control로 표시됨)(218), 및 연속성 인덱스(219)를 포함하는 다양한 필드를 포함할 수 있다. 패킷 헤더 및 그 필드는 임의의 적절한 크기를 가지도록 구성될 수 있다. 실시예에서, 패킷 헤더(211)는 4 바이트(예를 들어, 32 비트)의 고정된 크기를 가지며, 8-비트 동기화 필드(212), 1-비트 트랜스포트 오류 지시자(213), 1-비트 페이로드-유닛 시작 지시자(214), 1-비트 트랜스포트 우선순위 필드(215), 13-비트 패킷 식별자(packet identifier: PID)(216), 2-비트 트랜스포트-스크램블링 제어 필드(217), 2-비트 어댑테이션 필드 제어 플래그(218), 및 4-비트 연속성 인덱스(218)를 포함한다.
패킷 헤더 내의 어댑테이션 필드 제어 플래그는 어댑테이션 필드의 확장, 또는 페이로드, 또는 헤더가 뒤따르는 양자(both)를 지시할 수 있다. 예를 들어, adaptation_field_control='01'은 페이로드가 헤더를 뒤따른다는 것을 지시할 수 있고, adaptation_field_control='10'은 어댑테이션 필드가 헤더를 뒤따른다는 것을 지시할 수 있고, adaptation_field_control='11'은 어댑테이션 필드가 헤더를 뒤따른다는 것을 지시할 수 있고, 어댑테이션 필드 및 페이로드 모두가 헤더를 뒤따른다는 것을 지시할 수 있다.
패킷 헤더 내의 PID는 상이한 유형의 패킷을 식별할 수 있으며, 예를 들어, 약 8000개의 유형이 13-비트 필드를 사용하여 식별될 수 있다. 0x0004의 PID 값(0x는 16진수 값을 나타낸다)을 가지는 TS 패킷은 실시예에 따라 특별히 적응성 스트리밍 메시지를 위해 예약될 수 있고, emsg 박스의 적어도 일부를 캡슐화하는 각각의 패킷은 0x0004의 PID가 주어질 수 있다. 또한, 패킷 헤더 내의 페이로드-유닛 시작 지시자는 페이로드 유닛, 예를 들어, 싱글 파일-레벨 메시지 박스의 시작을 지시할 수 있다. 트랜스포트-스크램블링 제어 필드는 페이로드 섹션이 스크램블링되는지를 지시할 수 있고, 연속성 인덱스는 패킷 불연속성을 검출하는 데 사용될 수 있다.
미디어 세그먼트는 MPEG-2 TS일 수 있고, TS 패킷에 캡슐화된 하나 이상의 이벤트 메시지('emsg') 박스를 포함할 수 있다. 실시예에서, emsg 박스(240)를 반송하는 하나 이상의 TS 패킷은 0x0004의 예약된 또는 고정된 PID 값을 사용할 수 있다. emsg 박스의 시작(박스 헤더)을 반송하는 TS 패킷은 턴 온된(예를 들어, '1'에 설정되어 있는) payload_unit_start_indicator 필드를 가질 수 있다. 패킷 페이로드는 emsg 박스(240)의 개시로부터 시작할 수 있다. 완전한 박스 유형 필드(242)는 Box.type로 표시되어 있고 이 최초의 패킷에 제공될 수 있으며, 페이로드 크기는 적어도 4 바이트일 수 있다. 박스 유형 필드(242)는 emsg 박스(240)의 헤더의 일부일 수 있고 박스가 emsg 박스이다는 것을 지시하는 데 사용될 수 있다. 섹션이나 패킷화된 엘리멘터리 스트림(packetized elementary stream: PES) 패킷 중 어느 것도 메시지 박스를 캡슐화하거나 반송하는 데 사용될 수 없다는 것에 유의하라.
패킷 페이로드는 메시지 박스(박스 헤더)의 개시로부터 시작할 수 있거나, 또는 박스 헤더가 뒤따르는 고정된 N-바이트 헤더로부터 시작할 수 있다. N-바이트 헤더는 추가의 정보(예를 들어, 박스 완전성을 검증하기 위한 검사 또는 암호화 해시)를 제공할 수 있거나 박스의 말단부가 뒤따르는 이러한 정보의 이용 가능성을 지시할 수 있다. 양자의 헤더는 최초의 패킷에 제공될 수 있으며, 따라서 어댑테이션 필드의 크기는 최대 182 - N - 8 바이트일 수 있다. 박스 데이터의 연속성은 동일한 PID를 가지는 뒤따르는 TS 패킷을 점유할 수 있다. 그 안에 캡슐화된 메시지 박스를 포함하는 패킷은 패킷이 동일한 PID를 포함할 때 예를 들어 스크램블링 클라이언트에 의해 검출 또는 식별될 수 있다. 박스의 말단부를 반송하는 최후의 패킷은 어댑테이션 필드 스터핑 바이트를 사용하여 패딩될 수 있다. 스터핑 바이트는 무작위일 수도 있고 사전설정된 값일 수도 있다(예를 들어, 스터핑 바이트는 255와 등가의 고정된 8-비트 값으로 설정될 수 있다). 스터핑 바이트는 인코더 또는 임의의 네트워크 내 장치, 예를 들어, 멀티플렉서, 패키저 등에 의해 삽입될 수 있고, 그런 다음 디코더에 의해 폐기될 수 있다. 박스의 말단부 뒤에 추가의 "푸터(footer)"가 위치할 수 있다. 0x0004의 PID 값을 가지는 임의의 패킷에 있어서, transport_scrambling_control의 값은 '00'에 설정되어, 스크램블링이 페이로드 섹션에서 사용되지 않는다는 것을 지시할 수 있다.
세그먼트는 하나 이상의 완전한 메시지 박스(예를 들어, emsg 박스(240)의 완전성)를 포함할 수 있다는 것에 주목하라. 스트리밍 클라이언트는 메시지 박스가 박스의 헤더를 검사함으로써 완료되는지를 검출하고, 이 헤더는 박스의 크기를 포함한다. 또한, @bitstreamSwitching의 필드가 설정되어 있고 서브세그먼트가 사용되는 경우, 서브세그먼트는 하나 이상의 완전한 emsg 박스를 포함할 수 있다. 비트스트림 스위칭 세그먼트는, 제공되는 경우, 세그먼트가 할당되는 레프리젠테이션으로 전환되는 필수 데이터를 포함할 수 있다는 것에 주목하라. 예를 들어, 비트스트림 스위칭 세그먼트 내의 "참(true)"에 설정되어 있는 @bitstreamSwitching의 필드가 유효한 TS(예를 들어, MPEG-2 TS)이다.
지침으로서 MPEG-2 TS 패킷 내에 이벤트 박스를 반송하는 솔루션은 일반적인 솔루션일 수 있다. MPEG-2 시스템이 부과하는 박스 크기에 대한 제한이 없기 때문에, 임의의 박스 길이가 사용될 수 있고, 박스 크기는 박스 헤더에 주어질 수 있다. 또한, emsg 박스의 캡슐화는, 직접 MPEG-2 TS 트랜스포트가 필수인 것으로 간주되는 임의의 다른 박스에 있어서, 약간의 복잡함(trivial complexity)으로 확장될 수 있다. 또한, 임의의 ISO-BMFF 박스 또는 다른 유형의 메시지 박스를 여기서 설명한 실시예와 함께 사용할 수 있다는 것을 이해해야 한다. 또한, 박스 신택스를 사용하는 임의의 데이터가 수용될 수 있다.
여기에 설명된 실시예의 다른 이점은 ISO-BMFF와의 공통성일 수 있는데, 이는 emsg 박스에 대한 유도 과정을 사용하고, 그런 다음 emsg를 임의의 세그먼트 포맷에 내장하는 것이 가능하기 때문이다. 또한, 본 발명은 TS-기반 이벤트만의 적응성 세트(들)의 사용을 동일한 주기 내에서 ISO-BMFF 적응성 세트(들)(AdaptationSet로 표시함) 요소로서 허용할 수 있다. 예를 들어, 본 발명은 ad-관련 메타데이터를 SCTE 35를 넘어 통과시킬 수 있고, TS-기반 클라이언트에 대한 MPD 만료의 지시를 허용할 수 있다. DASH를 넘어, 여기에 개시된 실시예는 미디어가 MPEG-2 TS 패킷에 캡슐화되는 어떠한 시스템에서도 사용될 수 있다.
스트리밍 프로바이더 또는 서버는 미디어 세그먼트를 포함하는 TS를 스트리밍 클라이언트에 직접 또는 간접적으로 송신할 수 있다. 하나의 미디어 세그먼트에서, 하나 이상의 패킷은 그 안에 캡슐화된 적어도 하나의 메시지 박스를 포함할 수 있다. 하나의 스트리밍 클라이언트의 말단부 상에서, TS가 수신될 수 있고, 메시지 박스는 분석을 통해 미디어 세그먼트로부터 추출될 수 있다.
도 3은 스트리밍 클라이언트에 의한 박스 추출에 대한 예시적 의사 코드(pseudo code)의 부분이다. 도 3의 의사 코드에 의해 당업자는 메시지 박스뿐만 아니라 스터핑 바이트의 시작 이전에 패킷을 드롭할 수 있고, 이에 의해 완전한 메시지 박스를 생성할 수 있다. 스트리밍 클라이언트는 패킷의 PID를 분석함으로써 완전한 메시지 박스가 TS 패킷에 캡슐화되는지를 검출할 수 있다. 하나 이상의 패킷이 0x0004의 예약된 PID 값을 가지는 경우, 적어도 하나의 메시지 박스가 캡슐화된다는 것을 지시할 수 있다. 패킷 헤더를 검출할 때의 계산상의 복잡도는 미디어 세그먼트가 완전하게 암호화되지 않는 경우 사소할 수 있다.
또한, 이벤트 추출을 수행하기 위해, 세그먼트 내에 완전한 박스만이 제공될 수 있다는 것에 주목하라. 논리 및 (AND) 연산을 의사 코드에서 사용하여 패킷화된 emsg 박스를 찾아낸다. 어댑테이션 필드 제어 플래그가 상이한 값(예를 들어, '01', '10', 또는 '11')에 설정될 수 있으므로 스트리밍 클라이언트는 필요하다면 어댑테이션 필드를 생략할 수도 있다.
클라이언트 측 상에서 이벤트 프레젠테이션 시간의 계산을 간단하게 하기 위해서는 타이밍 데이터 필요할 수도 있다. 실시예에서, 박스 헤더에 포함되고 emsg.presentation_time_delta로 표시된 필드는 세그먼트의 가장 이른 프레젠테이션 시간과 관련될 수 있다. DASH 클라이언트는 세그먼트의 가장 이른 프레젠테이션 시간을 알 수 있으나, MPEG-2 TS는 이 정보가 부족할 수 있으며, 따라서 헤더 내에 선택적 pts_offset 필드를 가지는 것이 emsg.presentation_time_delta를 인식하지 못하는 사용자 기기 내에서 이벤트를 처리하는 데 도움이 될 수 있다.
도 4는 미디어 스트리밍 방법(400)의 실시예를 도시하며, 이것은 스트리밍 서버(예를 들어, 스트리밍 서버(120))에 의해 실시될 수 있다. 방법(400)은 단계 410에서 시작하며, 스트리밍 서버는 메시지 박스를 하나 이상의 패킷에 캡슐화할 수 있다. 실시예에서, 메시지 박스는 DASH에 특정한 emsg 박스이고, 패킷은 MPEG-2에 특정하다. 캡슐화의 결과로, 메시지(예를 들어, 이벤트 메시지) 박스는 하나 이상의 패킷에 패킷화되고 포함된다. 단계 420에서 방법(400)은 하나 이상의 패킷을 포함하는 세그먼트(예를 들어, 미디어 세그먼트)를 생성할 수 있다. 단계 430에서, 방법은 세그먼트를 스트리밍 클라이언트에 직접 또는 간접적으로 송신할 수 있으며, 세그먼트는 메시지 박스가 캡슐화되어 있는 하나 이상의 패킷을 포함한다.
방법(400)의 변형이 있고 여기에 설명된 원리에 의해 포함된다는 것을 이해해야 한다. 예를 들어, 스트리밍 서버가 이미 준비된 트랜스포트 스트림을 수신하는 CDN 에지 노드인 경우, 메시지 박스의 캡슐화 및 세그먼트의 생성은 콘텐츠 준지 동안 상이한 장치, 예를 들어 콘텐츠 프로바이더에 의해 수행될 수 있다. 이 경우, 방법(400)에서의 단계 중 일부만이 스트리밍 서버에서 실행된다. 다른 예에서, 다른 단계, 예를 들어, 세그먼트의 트랜스코딩, 암호화, 암호화해제는 방법(400)에 병합되어, 적절하게 되는 아니든, 미디어 스트리밍 서비스를 용이하게 할 수 있다.
전술한 방식은 예를 들어, 처리 전력, 메모리 자원, 및 네트워크 처리 성능이 충분하여 노드에 부과되는 필요한 작업부하를 처리할 수 있는 네트워크 컴포넌트 또는 노드 상에서 실행될 수 있다. 도 5는 미디어 스트리밍 방법(40)과 같이 여기에 개시된 방법/방식의 하나 이상의 실시예를 실시하기에 적절한 네트워크 노드 또는 장치(50)의 실시예를 도시한다. 또한, 네트워크 노드(500)는 스트리밍 클라이언트(110) 또는 스트리밍 서버(120)와 같이, 여기에 설명된 임의의 장치를 실현하도록 구성될 수 있다.
네트워크 장치(500)는 세컨더리 저장(504)을 포함하는 메모리 장치, 리드 온리 메모리(ROM)(506), 랜덤 액세스 메모리(RAM)(508), 입력/출력(I/O) 장치(510), 및 전송기/수신기(512)와 통신하는 프로세서(502)를 포함한다. 하나의 프로세서가 도시되어 있으나, 프로세서(502)는 제한되지 않으며 복수의 프로세서를 포함할 수 있다. 프로세서(502)는 하나 이상의 중앙처리장치(CPU) 칩, 코어(예를 들어, 멀티코어 프로세서), 필드-프로그래머블 게이트 어레이(field-programmable gate arrays: FPGA), 주문형 집적회로(application specific integrated circuits: ASIC), 및/또는 디지털 신호 프로세서(digital signal processors: DSP)로 실현될 수 있고, 및/또는 하나 이상의 ASIC 중 일부일 수 있다. 프로세서(502)는 미디어 스트리밍 방법(400)을 포함한 여기서 설명된 어떠한 방식도 실행하도록 구성될 수 있다. 프로세서(502)는 하드웨어 또는 하드웨어와 소프트웨어의 조합을 사용해서 실현될 수 있다.
세컨더리 저장(504)은 통상적으로 하나 이상의 디스크 드라이브 또는 테이프 드라이브로 이루어져 있고 데이터를 비휘발성으로 저장하는 데 사용되며 RAM(508)이 모든 작업 데이터를 유지하기에 크지 않을 때 오버-플로 데이터 저장 장치로 사용된다. 세컨더리 저장(504)은 프로그램이 실행을 위해 선택되면 RAM(508)에 로딩되는 프로그램을 저장하는 데 사용될 수 있다. ROM(506)은 프로그램 실행 동안 판독되는 명령 및 데이터를 저장하는 데 사용된다. ROM(506)은 세컨더리 저장(504)의 큰 메모리 용량에 비해 작은 메모리 용량을 가지는 비휘발성 메모리 장치이다. RAM(508)은 비휘발성 데이터를 저장하는 데 사용되며 명령을 저장하는 데 사용된다. ROM(506) 및 RAM(508) 모두에 대한 액세스는 통상적으로 세컨더리 저장(504)에 액세스하는 것보다 빠르다.
전송기/수신기(512)는 네트워크 장치(500)의 출력 및/또는 입력 장치의 역할을 한다. 예를 들어, 전송기/수신기(512)가 전송기로 작동하면, 데이터를 네트워크 장치(500)로부터 전송할 수 있다. 예를 들어, 전송기/수신기(512)가 수신기로 작동하면, 데이터를 네트워크 장치(500)로 수신할 수 있다. 예를 들어, 전송기/수신기(512)는 모뎀, 모뎀 뱅크, 이더넷 카드, 범용 직렬 버스(USB) 카드, 직렬 인터페이스, 토큰 링 카드, 섬유 분배 데이터 인터페이스(fiber distributed data interface: FDDI) 카드, 무선 근거리 통신망(WLAN) 카드, 무선 송수신기 카드, 및 그외 공지의 네트워크 장치의 형태를 취할 수 있으며, 상기 무선 송수신기 카드로는 예를 들어 코드분할다중접속(code division multiple access: CDMA), 이동통신을 위한 글로벌 시스템(global system for mobile communications: GSM), 롱텀에볼루션(long-term evolution: LTE), 와이맥스(worldwide interoperability for microwave access: WiMAX) 및/또는 다른 에어 인터페이스 프로토콜 무선 송수신기 카드를 들 수 있다. 전송기/수신기(512)는 프로세서(502)가 인터넷 또는 하나 이상의 인트라넷과 통신할 수 있게 한다. I/O 장치(510)는 비디오 모니터, 액정 디스플레이(LCD), 터치스크린 디스플레이, 또는 다른 유형의 비디오 디스플레이를 포함하여 비디오를 표시할 수 있으며, 비디오 레코딩 장치를 포함하여 비디오를 캡처할 수도 있다. I/O 장치(510)는 하나 이상의 키보드, 마우스, 또는 트랙볼, 또는 그외 공지의 입력 장치를 포함할 수도 있다.
실행 가능한 명령을 프로그래밍하거나 및/또는 실행 가능한 명령을 네트워크 장치(500)에 로딩함으로써, 프로세서(502), 세컨더리 저장(504), RAM(508), 및 ROM(506) 중 적어도 하나는 변경되고, 네트워크 장치(500)가 특별한 머신 또는 장치(예를 들어, 본 발명에서 제공하는 새로운 기능을 가진 스트리밍 서버 또는 클라이언트)로 부분적으로 변환한다는 것을 이해해야 한다. 실행 가능한 명령은 세컨더리 저장(504), ROM(506), 및/또는 RAM(508)에 저장되고 실행을 위해 프로세서(502)에 로딩될 수 있다. 전기공학 및 소프트웨어 공학 분야에서는 실행 가능한 소프트웨어를 컴퓨터에 로딩하여 실행될 수 있는 기능은 공지의 설계 규칙에 의거하여 하드웨어 실현으로 변환될 수 있다는 것은 기본적인 사항이다. 소프트웨어 대 하드웨어의 개념을 실현하는 것에 대한 결정은 통상적으로 소프트웨어 영역으로부터 하드웨어 영역으로 전환하는 데 관련되는 어떤 이슈보다는 생산된 유닛의 설계 및 수의 안정성의 고려에 달려 있다. 일반적으로, 설계를 빈번하게 변경하는 것은 소프트웨어로 실현하는 것이 바람직한데, 그 이유는 하드웨어 실현을 리스피닝(re-spinning)하는 것이 소프트웨어 설계를 리스피닝하는 것보다 비용이 많이 들기 때문이다. 일반적으로, 대용량으로 생산하는 것이 안정적인 설계는 하드웨어, 예를 들어, 주문형 집적회로(application specific integrated circuit: ASIC)로 실현하는 것이 바람직한데, 그 이유는 대량 생산에 있어서는 하드웨어 실현이 소프트웨어 실현보다 저렴할 수 있기 때문이다. 흔히 설계는 소프트웨어 형태로 개발되고 검사되고, 나중에 공지의 설계 규칙에 의해, 소프트웨어의 명령이 배선되는 주문형 집적회로 내의 등가의 하드웨어 실현으로 변환될 수 있다. 새로운 ASIC에 의해 제어되는 머신이 특별한 머신 또는 장치인 것과 같은 방식으로, 마찬가지로 실행 가능한 명령이 프로그램되었거나 및/또는 로딩된 컴퓨터를 특별한 머신 또는 장치로 볼 수 있다.
적어도 하나의 실시예에 대해 설명하였으며, 당업자가 수행하는 실시예(들) 및/또는 실시예(들)의 특징에 대한 변형, 조합, 및/또는 수정은 본 개시의 범위 내에 있다. 실시예(들)의 특징들을 조합, 통합, 및/또는 생략함으로써 생기는 대안의 실시예도 본 개시의 범위 내에 있다. 수치상의 범위 또는 한계를 명시적으로 나타내는 경우, 그러한 표현 범위 또는 한계는 명시적으로 설명된 범위 또는 한계 내에 부합하는 정도의 반복적인 범위 또는 한계를 포함하는 것으로 파악되어야 한다(예를 들어, 약 1부터 약 10까지는 2, 3, 4 등을 포함하고; 0.10보다 크다는 것은 0.11, 0.12, 0.13 등을 포함한다). 예를 들어, 하한 Rl과 상한 Ru를 가지는 수치상의 범위를 설명할 때마다, 그 범위에 부합하는 임의의 수치는 구체적으로 개시된다. 특히, 범위 내에서 이어지는 수치는 구체적으로 개시된다: R = Rl + k*(Ru - Rl)이고, 여기서 k는 1 퍼센트부터 100 퍼센트까지 1 퍼센트씩 증가하는 변수이고, 즉 k는 1 퍼센트, 2 퍼센트, 3 퍼센트, 4 퍼센트, 7 퍼센트, ..., 70 퍼센트, 71 퍼센트, 72 퍼센트, ..., 95 퍼센트, 96 퍼센트, 97 퍼센트, 98 퍼센트, 99 퍼센트, 또는 100 퍼센트이다. 또한, 위에서 규정한 바와 같이 2개의 R 숫자로 규정된 임의의 수치 범위 역시 구체적으로 개시된다. 용어 "관하여"의 사용은 다른 말이 없으면, 후속의 수의 +/- 10%를 의미한다. 청구의 범위의 임의의 요소와 관련해서 "선택적으로"란 용어는, 그 요소가 필요하거나, 또는 대안으로 그 요소가 필요하지 않으며, 양자의 대안이 청구의 범위 내의 범위에 있다는 의미이다. 포함하는, 구비하는, 및 가지는과 같이 넓은 용어를 사용하는 것은 이루어져 있는 필수적으로 이루어져 있는, 및 실질적으로 이루어져 있는과 같이 좁은 용어를 지원하는 것으로 파악되어야 한다. 따라서, 보호의 범위는 위에서 설정된 설명에 의해 제한되는 것이 아니라, 청구의 범위의 요지에 대한 모든 등가를 포함하는 그 범위를 따르는 청구의 범위에 의해 규정된다. 각각의 모든 청구항은 명세서에의 추가의 개시로서 통합되며 청구의 범위는 본 발명의 실시예(들)이다. 본 개시에서 참고문헌에 대한 논의는 종래기술이므로 허용되지 않으며, 특히 본 출원의 우선일 이후의 공개일을 가지는 참고문헌은 특히 그러하다. 본 개시에 언급된 모든 특허, 특허 어플리케이션, 및 공개문헌에 대한 설명은 본 명세서로써 참고문헌에 의해 예시, 과정, 또는 그외 본 개시에 대한 상세한 보충을 제공하는 정도로 통합된다.
몇몇 실시예에 대해 본 개시에 제공되었으나, 개시된 시스템 및 방법은 본 개시의 정신 및 범위를 벗어남이 없이 많은 다른 특정한 형태로 구현될 수 있다는 것을 이해해야 한다. 제공된 예는 설명으로서 파악되어야지 제한으로서 파악되어서는 안 되며, 그 의도는 여기에 주어진 상세한 설명에 대한 제한이 아니다는 것이다. 예를 들어, 다양한 요소 및 구성요소는 다른 시스템에 결합 또는 통합될 수 있거나 소정의 특징은 생략될 수 있거나 실현되지 않을 수도 있다.
또한, 다양한 실시예에 독립 또는 별도로 설명되고 도해된 기술, 시스템, 서브시스템 및 방법은 본 개시의 범위를 벗어남이 없이 다른 시스템, 모듈, 기술 또는 방법과 결합되거나 통합될 수 있다. 결합되거나 직접 결합되거나 서로 통신하는 것으로 도시되고 설명된 다른 항목들은 전기적으로, 기계적으로, 또는 그렇지 않은 다른 방식으로든 간에 일부의 인터페이스, 장치, 또는 중간의 구성요소를 통해 직접적으로 결합 또는 통신될 수 있다. 변경, 대체, 및 대안의 다른 예들은 당업자에 의해 확인될 수 있으며 여기에 개시된 정신 및 범위를 벗어남이 없이 이루어질 수 있다.

Claims (15)

  1. 네트워크 장치에 의해 실시되는 미디어 스트리밍 방법으로서,
    메시지 박스를 세그먼트 내의 하나 이상의 패킷에 캡슐화하는 단계 - 상기 메시지 박스는 하이퍼텍스트 트랜스퍼 프로토콜을 통한 동적 적응형 스트리밍(Dynamic Adaptive Streaming over Hypertext Transfer Protocol(HTTP): DASH) 이벤트 메시지를 반송하는 데 사용되고, 상기 하나 이상의 패킷 모두는 동일한 패킷 식별자(packet identifier: PID)를 포함하며, 상기 PID는 적응성 스트리밍 메시지를 위해 예약된 0x0004의 13-비트 예약 값을 가짐 - ; 및
    상기 세그먼트를 DASH 클라이언트에 송신하는 단계
    를 포함하고,
    상기 하나 이상의 패킷 중 최초의 패킷은 패킷 헤더 및 패킷 페이로드를 포함하고, 상기 패킷 헤더는 턴 온(turn on)된 페이로드-유닛 시작 지시자를 포함하며, 상기 페이로드-유닛 시작 지시자는 상기 메시지 박스가 상기 최초의 패킷에서 시작한다는 것을 지시하는, 미디어 스트리밍 방법.
  2. 제1항에 있어서,
    상기 이벤트 메시지는 상기 세그먼트의 미디어 프레젠테이션 시간과 관련된 일반적인 이벤트에 시그널링을 제공하며, 상기 패킷은 동영상 전문가 그룹-2(Moving Picture Experts Group-2: MPEG-2) 트랜스포트 스트림(transport stream: TS) 패킷인, 미디어 스트리밍 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 패킷 각각은 트랜스포트-스크램블링 제어 필드(transport-scrambling control field)를 포함하는, 미디어 스트리밍 방법.
  4. 제3항에 있어서,
    상기 트랜스포트-스크램블링 제어 필드는 transport_scrambling_control로 표시되고, 00의 2 비트 값을 가지는, 미디어 스트리밍 방법.
  5. 제1항에 있어서,
    상기 페이로드-유닛 시작 지시자는 '1'의 1-비트 값을 가지고, 상기 패킷 페이로드는 상기 메시지 박스의 박스 헤더를 포함하며, 상기 박스 헤더는 상기 메시지 박스의 유형 필드를 포함하며, 상기 패킷 페이로드의 크기는 적어도 4 바이트인, 미디어 스트리밍 방법.
  6. 제1항에 있어서,
    상기 메시지 박스의 말단부를 반송하는 상기 하나 이상의 패킷 중 최후의 패킷은 스터핑 바이트(stuffing byte)로 패딩된 어댑테이션 필드(adaptation field)를 포함하고, 상기 어댑테이션 필드는 상기 메시지 박스의 말단부를 지시하고, 상기 스터핑 바이트의 패딩은 상기 최후의 패킷의 패킷 헤더에 포함된 어댑테이션 필드 제어 플래그에 기초하는, 미디어 스트리밍 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 패킷 각각은 크기가 188 바이트이고 4 바이트의 고정된 크기를 가진 패킷 헤더를 포함하며, 각각의 패킷 헤더는 8-비트 동기화 필드, 1-비트 트랜스포트 오류 지시자, 1-비트 페이로드-유닛 시작 지시자, 1-비트 트랜스포트 우선순위 필드, 2-비트 트랜스포트-스크램블링 제어 필드, 2-비트 어댑테이션 필드 제어 플래그, 및 4-비트 연속성 인덱스(continuity index)를 포함하는, 미디어 스트리밍 방법.
  8. 네트워크 장치로서,
    하이퍼텍스트 트랜스퍼 프로토콜을 통한 동적 적응형 스트리밍(Dynamic Adaptive Streaming over Hypertext Transfer Protocol(HTTP): DASH) 이벤트 메시지를 반송하는 데 사용되는 메시지 박스를 적어도 하나의 트랜스포트 스트림(TS) 패킷에 캡슐화하고, 상기 적어도 하나의 TS 패킷을 포함하는 미디어 세그먼트를 생성하도록 구성되어 있는 프로세서 - 상기 하나 이상의 TS 패킷 모두는 동일한 패킷 식별자(packet identifier: PID)를 포함하며, 상기 PID는 적응성 스트리밍 메시지를 위해 예약된 0x0004의 13-비트 예약 값을 가짐 - ; 및
    상기 프로세서에 결합되어 있고 상기 미디어 세그먼트를 전송하도록 구성되어 있는 전송기
    를 포함하고,
    상기 하나 이상의 패킷 중 최초의 패킷은 패킷 헤더 및 패킷 페이로드를 포함하고, 상기 패킷 헤더는 턴 온(turn on)된 페이로드-유닛 시작 지시자를 포함하며, 상기 페이로드-유닛 시작 지시자는 상기 메시지 박스가 상기 최초의 패킷에서 시작한다는 것을 지시하는, 네트워크 장치.
  9. 제8항에 있어서,
    상기 미디어 세그먼트는 동영상 전문가 그룹-2(Moving Picture Experts Group-2: MPEG-2) 표준에 의해 규정되는, 네트워크 장치.
  10. 제8항에 있어서,
    상기 하나 이상의 TS 패킷 각각은 트랜스포트-스크램블링 제어 필드를 포함하는, 네트워크 장치.
  11. 제10항에 있어서,
    상기 트랜스포트-스크램블링 제어 필드는 transport_scrambling_control로 표시되고, 00의 2 비트 값을 가지는, 네트워크 장치.
  12. 제8항에 있어서,
    상기 메시지 박스의 말단부를 반송하는 상기 하나 이상의 TS 패킷 중 최후의 TS 패킷은 스터핑 바이트로 패딩된 어댑테이션 필드를 포함하며, 상기 스터핑 바이트의 패딩은 상기 최후의 TS 패킷의 패킷 헤더에 포함된 어댑테이션 필드 제어 플래그에 기초하는, 네트워크 장치.
  13. 스트리밍 클라이언트로서 기능하는 장치로서,
    복수의 패킷을 포함하는 트랜스포트 스트림(TS)을 수신하도록 구성되어 있는 수신기 - 여기서 상기 패킷 중 하나 이상은 그 안에 캡슐화된 이벤트 메시지 박스를 포함하고, 상기 하나 이상의 패킷 모두는 적응성 스트리밍 메시지를 위해 예약된 0x0004의 고정 값을 가지는 동일한 패킷 식별자(packet identifier: PID)를 포함하며, 상기 메시지 박스는 하이퍼텍스트 트랜스퍼 프로토콜을 통한 동적 적응형 스트리밍(Dynamic Adaptive Streaming over Hypertext Transfer Protocol(HTTP): DASH) 이벤트 메시지를 반송하는 데 사용됨 - ; 및
    상기 수신기에 결합되어 있고, 상기 하나 이상의 패킷을 분석함으로써 상기 하나 이상의 패킷으로부터 상기 이벤트 메시지 박스를 추출하도록 구성되어 있는 프로세서
    를 포함하고,
    상기 하나 이상의 패킷 중 최초의 패킷은 패킷 헤더 및 패킷 페이로드를 포함하고, 상기 패킷 헤더는 턴 온(turn on)된 페이로드-유닛 시작 지시자를 포함하며, 상기 페이로드-유닛 시작 지시자는 상기 메시지 박스가 상기 최초의 패킷에서 시작한다는 것을 지시하는, 장치.
  14. 제13항에 있어서,
    상기 수신된 TS는 동영상 전문가 그룹-2(Moving Picture Experts Group-2: MPEG-2) TS인, 장치.
  15. 제13항에 있어서,
    상기 하나 이상의 패킷을 분석하는 것은,
    상기 하나 이상의 패킷 각각의 동일한 패킷 식별자(PID)를 식별하여 상기 이벤트 메시지 박스가 그 안에 캡슐화되어 있다는 것으로 결정하는 단계; 및
    상기 하나 이상의 패킷 중 최후의 패킷이 스터핑 바이트로 패딩된 어댑테이션 필드를 포함하는 것으로 결정하는 단계
    를 포함하는, 장치.
KR1020167022545A 2012-08-22 2013-08-22 Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지 KR101761302B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261692099P 2012-08-22 2012-08-22
US61/692,099 2012-08-22
PCT/US2013/056251 WO2014031885A1 (en) 2012-08-22 2013-08-22 Carriage of iso-bmff event boxes in an mpeg-2 transport stream

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157006123A Division KR20150042255A (ko) 2012-08-22 2013-08-22 Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지

Publications (2)

Publication Number Publication Date
KR20160103550A KR20160103550A (ko) 2016-09-01
KR101761302B1 true KR101761302B1 (ko) 2017-07-25

Family

ID=49165834

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157006123A KR20150042255A (ko) 2012-08-22 2013-08-22 Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지
KR1020167022545A KR101761302B1 (ko) 2012-08-22 2013-08-22 Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157006123A KR20150042255A (ko) 2012-08-22 2013-08-22 Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지

Country Status (6)

Country Link
US (2) US9992250B2 (ko)
EP (2) EP3270596A1 (ko)
JP (1) JP5961760B2 (ko)
KR (2) KR20150042255A (ko)
CN (2) CN104756501B (ko)
WO (1) WO2014031885A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102004837B1 (ko) 2014-04-09 2019-07-29 엘지전자 주식회사 방송 전송 장치, 방송 수신 장치, 방송 전송 장치의 동작 방법 및 방송 수신 장치의 동작 방법
GB2528039A (en) * 2014-07-01 2016-01-13 Canon Kk Method for identifying objects across time periods and corresponding device
CN105812961B (zh) * 2014-12-31 2019-09-10 中兴通讯股份有限公司 自适应流媒体处理方法及装置
WO2016111563A1 (ko) * 2015-01-07 2016-07-14 삼성전자 주식회사 통신 시스템에서 미디어 정보를 송수신하는 방법 및 장치
CN105791296A (zh) * 2016-03-08 2016-07-20 浪潮集团有限公司 一种网络报文快速加解扰的方法
US11038938B2 (en) * 2016-04-25 2021-06-15 Time Warner Cable Enterprises Llc Methods and apparatus for providing alternative content
CN105978681A (zh) * 2016-05-13 2016-09-28 浪潮集团有限公司 一种防窃听的安全交换机
CN106331840B (zh) * 2016-08-31 2019-05-21 青岛海信宽带多媒体技术有限公司 一种基于hls协议的音视频的跳转播放方法及装置
US10827210B1 (en) * 2016-12-08 2020-11-03 CSC Holdings, LLC Systems and methods for signaling host devices via a broadcast channel with grouping filters
JP6967370B2 (ja) * 2017-05-17 2021-11-17 ソニーグループ株式会社 受信装置、受信方法、送信装置、及び送信方法
WO2020007922A1 (en) 2018-07-05 2020-01-09 Dolby International Ab Processing media data structures
US10979784B1 (en) 2019-12-02 2021-04-13 CodeShop, B.V. Track format for carriage of event messages
US11546406B2 (en) * 2020-04-13 2023-01-03 Tencent America LLC Media systems and methods including mixed event message tracks
US11218784B1 (en) 2021-04-09 2022-01-04 CodeShop, B.V. Method and system for inserting markers in a media presentation
US11509701B2 (en) * 2021-04-20 2022-11-22 Tencent America LLC Extended relationship signaling between events in event message tracks
US11323537B1 (en) * 2021-09-15 2022-05-03 Cloudflare, Inc. Generating early hints informational responses at an intermediary server
CN114374860A (zh) * 2021-12-29 2022-04-19 中国电信股份有限公司 一种视频业务处理方法及装置

Family Cites Families (37)

* 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
US5805762A (en) * 1993-01-13 1998-09-08 Hitachi America, Ltd. Video recording device compatible transmitter
US5381181A (en) 1993-05-13 1995-01-10 Thomson Consumer Electronics, Inc. Clock recovery apparatus as for a compressed video signal
US5467342A (en) * 1994-01-12 1995-11-14 Scientific-Atlanta, Inc. Methods and apparatus for time stamp correction in an asynchronous transfer mode network
US5625693A (en) * 1995-07-07 1997-04-29 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitting applications in an interactive TV system
US6172988B1 (en) 1996-01-31 2001-01-09 Tiernan Communications, Inc. Method for universal messaging and multiplexing of video, audio, and data streams
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
US6522342B1 (en) * 1999-01-27 2003-02-18 Hughes Electronics Corporation Graphical tuning bar for a multi-program data stream
EP1049336A3 (en) 1999-04-26 2001-03-07 Sarnoff Corporation Establishing a datapipe in a video stream
KR100472255B1 (ko) 1999-07-14 2005-03-14 마츠시타 덴끼 산교 가부시키가이샤 정보 수신 장치 및 그 방법, 및 기억 매체
US20020019984A1 (en) * 2000-01-14 2002-02-14 Rakib Selim Shlomo Headend cherrypicker with digital video recording capability
US6963561B1 (en) * 2000-12-15 2005-11-08 Atrica Israel Ltd. Facility for transporting TDM streams over an asynchronous ethernet network using internet protocol
US7652999B2 (en) 2003-06-18 2010-01-26 Thomson Licensing Method and apparatus for processing null packets in a digital media receiver
US8015613B2 (en) 2004-09-17 2011-09-06 Sony Corporation System renewability message transport
JP2007065928A (ja) 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
KR101197365B1 (ko) 2005-04-06 2012-11-05 삼성전자주식회사 멀티미디어 메시지 서비스 방법 및 장치
JP2007115293A (ja) 2005-10-17 2007-05-10 Toshiba Corp 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法
US7983354B2 (en) 2005-11-25 2011-07-19 Samsung Electronics Co., Ltd. Digital broadcast transmitter/receiver having an improved receiving performance and signal processing method thereof
US7903604B2 (en) * 2007-04-18 2011-03-08 Wi-Lan Inc. Method and apparatus for a scheduler for a macro-diversity portion of a transmission
WO2008131030A1 (en) 2007-04-18 2008-10-30 Nextwave Broadband Inc. Macro-diversity region rate modification
CN101150383A (zh) 2007-10-15 2008-03-26 中兴通讯股份有限公司 Ip数据的传输方法
KR100928397B1 (ko) * 2008-04-24 2009-11-23 한양대학교 산학협력단 전송스트림 분할을 이용한 vod 송수신 시스템 및 방법
FR2933564A1 (fr) * 2008-07-02 2010-01-08 Thomson Licensing Procede d'embrouillage et desembrouillage pour le transport de flux de donnees audio video mpeg2
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US20100312905A1 (en) 2009-06-08 2010-12-09 Dov Sandmann Sustaining Live Interactive Streaming
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9027062B2 (en) * 2009-10-20 2015-05-05 Time Warner Cable Enterprises Llc Gateway apparatus and methods for digital content delivery in a network
US9520931B2 (en) 2009-11-02 2016-12-13 Huawei Technologies Co., Ltd. System and method for unified feedback in a communication system
KR101777347B1 (ko) 2009-11-13 2017-09-11 삼성전자주식회사 부분화에 기초한 적응적인 스트리밍 방법 및 장치
KR101809957B1 (ko) * 2010-03-29 2017-12-18 엘지전자 주식회사 비실시간 서비스 처리 방법 및 방송 수신기
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
WO2012032502A1 (en) * 2010-09-10 2012-03-15 Nokia Corporation A method and apparatus for adaptive streaming
WO2012093202A1 (en) 2011-01-07 2012-07-12 Nokia Corporation Method and apparatus for signaling presentation
US9026671B2 (en) 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US9445136B2 (en) 2011-09-21 2016-09-13 Qualcomm Incorporated Signaling characteristics of segments for network streaming of media data
CN102546112B (zh) 2012-01-16 2015-05-13 瑞斯康达科技发展股份有限公司 一种数据封装方法及装置
EP3139698B1 (en) * 2012-10-26 2020-05-06 Intel Corporation Streaming with coordination of video orientation (cvo)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO/IEC 23009-1:2012(E): Information technology-Dynamic adaptive streaming over HTTP (DASH)-Part 1: Media presentation description and segment formats", ISO/IEC JTC 1/SC 29/WG 11, no. W12329*

Also Published As

Publication number Publication date
US9992250B2 (en) 2018-06-05
CN104756501B (zh) 2018-10-30
EP3270596A1 (en) 2018-01-17
US10911511B2 (en) 2021-02-02
KR20160103550A (ko) 2016-09-01
JP5961760B2 (ja) 2016-08-02
KR20150042255A (ko) 2015-04-20
CN104756501A (zh) 2015-07-01
CN109413447A (zh) 2019-03-01
EP2875642B1 (en) 2017-11-01
WO2014031885A1 (en) 2014-02-27
CN109413447B (zh) 2021-03-30
US20180262549A1 (en) 2018-09-13
US20140059180A1 (en) 2014-02-27
EP2875642A1 (en) 2015-05-27
JP2015530041A (ja) 2015-10-08

Similar Documents

Publication Publication Date Title
KR101761302B1 (ko) Mpeg-2 트랜스포트 스트림에서 iso-bmff 이벤트 박스의 캐리지
US11082479B2 (en) Method and apparatus for transmitting and receiving content
JP6359142B2 (ja) マルチメディアサービス受信方法
KR101757306B1 (ko) 방송 신호 송/수신 처리 방법 및 장치
RU2639725C2 (ru) Способ и устройство для приемопередачи данных для системы передачи мультимедиа
US9635394B2 (en) Method and device for flexible MMT asset transmission and reception
EP3404924B1 (en) Reception device and data processing method
WO2016205733A1 (en) Template uniform resource locator signing
KR102138000B1 (ko) 멀티미디어 통신 시스템에서 패킷 송/수신 장치 및 방법
US10237196B2 (en) Apparatus for transmitting broadcast signal, apparatus for receiving broadcast signal, method for transmitting broadcast signal and method for receiving broadcast signal
KR102451242B1 (ko) 방송 서비스 제공을 위한 방법 및 장치
KR20160004858A (ko) 멀티미디어 통신 시스템에서 패킷 송/수신 장치 및 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant