KR20120008432A - 스트리밍 서비스 송/수신 장치 및 방법 - Google Patents

스트리밍 서비스 송/수신 장치 및 방법 Download PDF

Info

Publication number
KR20120008432A
KR20120008432A KR1020110030807A KR20110030807A KR20120008432A KR 20120008432 A KR20120008432 A KR 20120008432A KR 1020110030807 A KR1020110030807 A KR 1020110030807A KR 20110030807 A KR20110030807 A KR 20110030807A KR 20120008432 A KR20120008432 A KR 20120008432A
Authority
KR
South Korea
Prior art keywords
chunks
file
chunk
http
iso file
Prior art date
Application number
KR1020110030807A
Other languages
English (en)
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 한국전자통신연구원
Priority to US13/810,600 priority Critical patent/US20130124699A1/en
Priority to PCT/KR2011/005221 priority patent/WO2012008792A2/ko
Publication of KR20120008432A publication Critical patent/KR20120008432A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/756Media network packet handling adapting media to device 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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/762Media network packet handling at the source 

Abstract

스트리밍 서비스를 송신 및 수신하기 위한 장치 및 방법이 제공된다. 스트리밍 서비스를 송신 및 수신하기 위한 장치 및 방법은 HTTP 스트리밍에 적합한 경량형 멀티미디어 파일을 사용한다. HTTP 힌트 트랙을 사용함으로써 HTTP 스트리밍 서비스에 부적합한 비-인터리브된 저장 방식에 의해 제작된 ISO 파일이 HTTP 스트리밍에 적합한 인터리브된 저장 방식으로 변환될 수 있다. ISO 파일은 다중 비트율 및 해상도를 지원하기 위한 다중 미디어 트랙들을 포함할 수 있다. 다중의 멀티미디어 품질을 제공하는 미디어 트랙들의 청크 데이터가 효율적으로 획득되며, 획득된 청크 데이터를 인터리브된 방식으로 저장함으로써 HTTP 스트리밍 서비스에 적합한 경량한 ISO 파일이 생성된다.

Description

스트리밍 서비스 송/수신 장치 및 방법{METHOD AND APPARATUS FOR TRANSMITTING/RECEIVING STREAMING SERVICE}
본 발명은 스트리밍 서비스 송/수신 장치 및 방법에 관한 것으로, 더 상세하게는 HTTP 스트리밍 서비스 송/수신 장치 및 방법에 관한 것이다.
HTTP(Hyper Text Transfer Protocol) 스트리밍 서비스에서, 단말은 콘텐츠 파일에 대한 다운로드를 요청하기 위해 HTTP를 이용한다. 서버는 다운로드 요청에 대한 응답으로써, TCP(transmission control protocol)를 이용하여, 단말로 요청받은 콘텐츠 파일을 전달한다.
콘텐츠 파일은 ISO 기반 미디어 파일 포멧(ISO base media file format)을 사용하는 것일 수 있다.
ISO 기반 미디어 파일 포멧을 사용하는 콘텐츠 파일은 다중 비트율 및 해상도를 지원하기 위해, 다중 미디어 트랙(track)들을 포함할 수 있다.
다중 미디어 트랙들을 포함하는 ISO 기반 미디어 파일 포멧 기반의 콘텐츠 파일은 HTTP 힌트 트랙을 사용한다.
콘텐츠 파일의 힌트 트랙을 활용한 HTTP 스트리밍 서비스는 전송되는 콘텐츠 파일의 경량화할 수 있다. 콘텐츠 파일의 경량화는 파일의 다운로드에 소요되는 시간을 단축시키면서, 인터넷과 같은 IP 망에서의 트래픽 량을 감소시킬 수 있다.
따라서, 단말 및 서버는 HTTP 힌트 트랙을 사용함으로써 품질 적응적(quality adaptive) HTTP 스트리밍 서비스를 효과적으로 제공할 수 있다.
본 발명의 일 실시에는 비-인터리브된 저장 방식으로 제작된 ISO 파일을 HTTP 스트리밍 서비스에 효과적인 인터리브된 저장 방식의 ISO 파일로 변환하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 실시에는 다중 비트율과 해상도를 지원하기 위해 다중 미디어 트랙들을 포함하는 ISO 파일에 대한 품질 적응적 HTTP 스트리밍 서비스를 제공하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 측에 따르면, 제1 경량형 ISO 파일에 대한 요청을 단말로부터 수신하는 동작, 원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 동작 및 상기 제1 경량형 ISO 파일을 스트리밍을 통해 상기 단말로 전송하는 동작을 포함하고, 상기 제1 경량형 ISO 파일은 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 인터리브된, 스트리밍 서비스 송신 방법이 제공된다.
상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 경량형 ISO 파일에 대한 제1 품질 정보를 포함할 수 있다. 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들일 수 있고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들일 수 있다.
상기 원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 동작은, 상기 원본 파일에 포함된 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 상기 제1 영상 청크들 중 n 번째 제1 영상 청크 및 상기 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별하는 동작 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -, 상기 n 번째 제1 영상 청크 및 상기 n 번째 제1 음성 청크를 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정하는 동작 - 및 상기 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 상기 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 - 을 포함하는, 스트리밍 서비스 송신 방법이 제공된다.
상기 원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 동작은, 상기 제1 경량형 ISO 파일 내에서의 상기 n 번째 HTTP 청크의 위치를 나타내는 n 번째 청크 옵셋을 계산하는 동작을 더 포함할 수 있고, 상기 제1 경량형 ISO 파일을 생성하는 동작은 상기 n 번째 청크 옵셋을 사용함으로써 상기 n 번째 HTTP 청크를 상기 제1 경량형 ISO 파일 내에 배치할 수 있다.
상기 스트리밍 서비스 송신 방법은, 제2 경량형 ISO 파일에 대한 요청을 상기 단말로부터 수신하는 동작, 상기 원본 파일에 기반하여 제2 경량형 ISO 파일을 생성하는 동작 및 상기 제2 경량형 ISO 파일을 스트리밍을 통해 상기 단말로 전송하는 동작을 더 포함할 수 있고, 상기 제2 경량형 ISO 파일은 하나 이상의 제2 영상 청크들 및 하나 이상의 제2 음성 청크들을 포함할 수 있고, 상기 제2 경량형 ISO 파일 내의 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 인터리브될 수 있다.
상기 하나 이상의 제2 영상 청크들은 상기 제2 경량형 ISO 파일에 대한 요청이 수신되었을 때 상기 하나 이상의 제1 영상 청크들 중 상기 제1 경량형 ISO 파일의 스트리밍 서비스에 의해 상기 단말로 전송되지 않은 미전송된 제1 영상 청크들에 대응하는 영상 청크들일 수 있고, 상기 하나 이상의 제2 음성 청크들은 상기 제2 경량형 ISO 파일에 대한 요청이 수신되었을 때 상기 하나 이상의 제1 음성 청크들 중 상기 제1 경량형 ISO 파일의 스트리밍 서비스에 의해 상기 단말로 전송되지 않은 미전송된 제1 영상 음성들에 대응하는 영상 청크들일 수 있다.
상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 경량형 ISO 파일에 대한 제1 품질 정보를 포함할 수 있고, 상기 제2 경량형 ISO 파일에 대한 요청은 상기 제2 경량형 ISO 파일에 대한 제2 품질 정보를 포함할 수 있고, 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들일 수 있고, 상기 제2 영상 청크들은 상기 제2 품질 정보에 대응하는 영상의 청크들일 수 있고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들일 수 있고, 상기 제2 음성 청크들은 상기 제2 품질 정보에 대응하는 음성의 청크들일 수 있다.
상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제2 영상 청크들은 동일한 내용의 영상의 상이한 품질을 갖는 청크들일 수 있다.
상기 원본 파일에 기반하여 제2 경량형 ISO 파일을 생성하는 동작은, 상기 원본 파일에 포함된 제2 HTTP 청크 포인터들 중 n 번째 제2 HTTP 청크 포인터가 가리키는 상기 제2 영상 청크들 중 n 번째 제2 영상 청크 및 상기 제2 음성 청크들 중 n 번째 제2 음성 청크를 식별하는 동작 - n은 m 이상 제2 영상 청크들의 개수 이하의 값임, m은 상기 제2 경량형 ISO 파일에 대한 요청이 수신되었을 때 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크 중 스트리밍 서비스를 통해 상기 단말로 전송되지 않은 최초의 상기 제1 영상 청크의 인덱스임 -, 상기 n 번째 제2 영상 청크 및 상기 n 번째 제2 음성 청크를 제2 HTTP 청크들 중 n 번째 제2 HTTP 청크에 포함될 청크로 결정하는 동작 및 상기 하나 이상의 제2 HTTP 청크들을 순차적으로 포함하는 제2 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 상기 제2 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 - 을 포함할 수 있다.
본 발명의 다른 일 측에 따르면, 제1 경량형 ISO 파일에 대한 요청을 단말로부터 수신하는 수신부, 원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 경량형 ISO 파일 생성부 및 상기 제1 경량형 ISO 파일을 스트리밍을 통해 상기 단말로 전송하는 전송부를 포함하고, 상기 경량형 ISO 파일 생성부는 상기 제1 경량형 ISO 파일 내에 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 인터리브로 포함시키는, 스트리밍 서비스 송신 장치가 제공된다.
본 발명의 또 다른 일 측에 따르면, 제1 경량형 ISO 파일에 대한 요청을 서버로 전송하는 동작, 원본 파일에 기반하여 생성된 제1 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작, 제2 경량형 ISO 파일에 대한 요청을 상기 서버로 전송하는 동작 및 상기 원본 파일에 기반하여 생성된 제2 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작을 포함하고, 상기 제1 경량형 ISO 파일은 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 상기 제2 경량형 ISO 파일은 하나 이상의 제2 영상 청크들 및 하나 이상의 제2 음성 청크들을 포함하며, 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 인터리브되고, 상기 제2 경량형 ISO 파일 내의 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 인터리브된, 스트리밍 서비스 수신 방법이 제공된다.
상기 스트리밍 서비스 수신 방법은, 상기 제1 경량형 ISO 파일에 대한 품질을 나타내는 제1 품질 정보를 생성하는 동작 및 상기 제2 경량형 ISO 파일에 대한 품질을 나타내는 제2 품질 정보를 생성하는 동작을 더 포함할 수 있고,상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 품질 정보를 포함할 수 있고, 상기 제2 경량형 ISO 파일에 대한 요청은 상기 제2 품질 정보를 포함할 수 있고, 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들일 수 있고, 상기 제2 영상 청크들은 상기 제2 품질 정보에 대응하는 영상의 청크들일 수 있고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들일 수 있고, 상기 제2 음성 청크들은 상기 제2 품질 정보에 대응하는 음성의 청크들일 수 있다.
본 발명의 또 다른 일 측에 따르면, 제1 경량형 ISO 파일에 대한 요청을 서버로 전송하는 동작, 원본 파일에 기반하여 생성된 제1 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작, 제2 경량형 ISO 파일에 대한 요청을 상기 서버로 전송하는 동작 및 상기 원본 파일에 기반하여 생성된 제2 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작을 수행하고, 상기 제1 경량형 ISO 파일은 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 상기 제2 경량형 ISO 파일은 하나 이상의 제2 영상 청크들 및 하나 이상의 제2 음성 청크들을 포함하며, 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 인터리브되고, 상기 제2 경량형 ISO 파일 내의 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 인터리브된, 스트리밍 서비스 수신 장치가 제공된다.
상기 스트리밍 서비스 수신 장치는, 상기 제1 경량형 ISO 파일에 대한 품질을 나타내는 제1 품질 정보를 생성하는 동작 및 상기 제2 경량형 ISO 파일에 대한 품질을 나타내는 제2 품질 정보를 생성하는 동작을 더 수행할 수 있고, 상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 품질 정보를 포함할 수 있고, 상기 제2 경량형 ISO 파일에 대한 요청은 상기 제2 품질 정보를 포함할 수 있고, 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들일 수 있고, 상기 제2 영상 청크들은 상기 제2 품질 정보에 대응하는 영상의 청크들일 수 있고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들일 수 있고, 상기 제2 음성 청크들은 상기 제2 품질 정보에 대응하는 음성의 청크들일 수 있다.
본 발명의 또 다른 일 측에 따르면, 하나 이상의 제1 영상 청크들, 하나 이상의 제1 음성 청크들 및 하나 이상의 제1 HTTP 청크 포인터들을 포함하는 원본 파일을 사용하여 스트리밍 서비스를 위한 멀티미더어 파일을 생성하는 방법에 있어서, 상기 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 상기 제1 영상 청크들 중 n 번째 제1 영상 청크 및 상기 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별하는 동작 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -, 상기 n 번째 제1 영상 청크 및 상기 n 번째 제1 음성 청크를 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정하는 동작 - 및 상기 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 상기 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 - 을 포함하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법이 제공된다.
상기 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법은, 상기 제1 경량형 ISO 파일 내에서의 상기 n 번째 제1 HTTP 청크의 위치를 나타내는 n 번째 제1 청크 옵셋을 계산하는 동작을 더 포함할 수 있고, 상기 제1 경량형 ISO 파일을 생성하는 동작은 상기 n 번째 제1 청크 옵셋을 사용함으로써 상기 n 번째 제1 HTTP 청크를 상기 제1 경량형 ISO 파일 내에 배치할 수 있다.
상기 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법은, 상기 원본 파일로부터 상기 제1 HTTP 청크 포인터들을 제거하는 동작을 더 포함할 수 있고, 상기 제1 경량형 ISO 파일은 상기 원본 파일을 수정함으로써 생성될 수 있다.
상기 제1 경량형 ISO 파일은 moov 박스 및 mdat 박스를 포함할 수 있고, 상기 mdat 박스는 상기 제1 HTTP 청크들을 포함할 수 있고, 상기 moov 박스는 제1 영상 트랙 및 제1 음성 트랙을 포함할 수 있고, 상기 제1 영상 트랙 및 상기 제1 음성 트랙은 상기 제1 HTTP 청크들을 참조할 수 있다.
상기 원본 파일은 moov 박스 및 mdat 박스를 포함할 수 있고, 상기 mdat 박스는 상기 제1 영상 청크들 및 상기 제1 음성 청크들을 포함할 수 있고, 상기 moov 박스는 제1 영상 트랙, 제1 음성 트랙 및 제1 HTTP 힌트 트랙을 포함할 수 있고, 상기 제1 영상 트랙은 상기 제1 영상 청크들을 참조할 수 있고, 상기 제1 음성 트랙은 상기 제1 음성 청크들을 참조할 수 있고, 상기 제1 HTTP 힌트 트랙은 상기 청크 옵셋들을 참조할 수 있다.
상기 원본 파일은 제2 영상 청크들을 포함할 수 있고, 상기 제1 영상 청크들이 나타내는 제1 영상 및 상기 제2 영상 청크들이 나타내는 제2 영상은 상이한 품질을 가질 수 있고, 상기 제1 영상은 상기 제1 경량형 ISO 파일에 대해 요청된 품질에 대응하는 품질을 가질 수 있다.
상기 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법은, 상기 원본 파일로부터 상기 제2 영상 청크들을 제거하는 동작을 더 포함할 수 있고, 상기 제1 경량형 ISO 파일은 상기 원본 파일을 수정함으로써 생성될 수 있다.
상기 원본 파일은 제2 HTTP 청크 포인터들을 포함할 수 있고, 상기 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법은, 상기 제2 HTTP 청크 포인터들 중 n 번째 제2 HTTP 청크 포인터가 가리키는 상기 제2 영상 청크들 중 n 번째 제2 영상 청크 및 상기 제1 음성 청크들 중 n 번째 상기 제1 음성 청크를 식별하는 동작 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -, 상기 n 번째 제2 영상 청크 및 상기 n 번째 제2 음성 청크를 제2 HTTP 청크들 중 n 번째 제2 HTTP 청크에 포함될 청크로 결정하는 동작 - 및 상기 하나 이상의 제2 HTTP 청크들을 순차적으로 포함하는 제2 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 상기 제2 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 - 을 더 포함할 수 있다.
본 발명의 또 다른 일 측에 따르면, 하나 이상의 제1 영상 청크들, 하나 이상의 제1 음성 청크들 및 하나 이상의 제1 HTTP 청크 포인터들을 포함하는 원본 파일을 사용하여 스트리밍 서비스를 위한 멀티미디어 파일을 생성하는 장치에 있어서, 상기 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 상기 제1 영상 청크들 중 n 번째 제1 영상 청크 및 상기 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별하는 HTTP 청크 식별부 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -, 상기 n 번째 제1 영상 청크 및 상기 n 번째 제1 음성 청크를 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정하는 HTTP 청크 결정부 - 및 상기 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일을 생성하는 파일 생성부를 포함하고, 상기 파일 생성부는 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들을 상기 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 장치가 제공된다.
비-인터리브된 저장 방식으로 제작된 ISO 파일을 HTTP 스트리밍 서비스에 효과적인 인터리브된 저장 방식의 ISO 파일로 변환하는 장치 및 방법이 제공된다.
다중 비트율과 해상도를 지원하기 위해 다중 미디어 트랙들을 포함하는 ISO 파일에 대한 품질 적응적 HTTP 스트리밍 서비스를 제공하는 장치 및 방법이 제공된다.
도 1은 본 발명의 일 예에 따른 HTTP 기반의 프로그레시브 스트리밍 서비스의 개요를 설명한다.
도 2는 본 발명의 일 예에 따른 ISO 기반 미디어 파일 포멧의 기본적인 구조를 나타낸다.
도 3은 본 발명의 일 예에 따른 비-인터리브된 방식으로 저장되는 ISO 파일 포맷을 도시한다.
도 4는 본 발명의 일 예에 따른 인터리브된 방식으로 저장되는 ISO 파일 포맷들을 도시한다.
도 5는 본 발명의 일 예에 따른 ISO 파일 변환 과정 및 변환된 ISO 파일에 대한 HTTP 스트리밍 제공 과정을 나타내는 블록도이다.
도 6은 본 발명의 일 예에 따른 HTTP 힌트 트랙 스위칭을 사용한 품질 적응적(quality adaptive) ISO 파일의 생성 과정 및 생성된 ISO 파일에 대한 HTTP 스트리밍 과정을 나타내는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 HTTP 힌트 트랙을 사용하여 비-인터리브된 저장 방식의 ISO 파일을 인터리브된 저장 방식의 ISO 파일로 변환하는 방법을 나타낸다.
도 8은 본 발명의 일 예에 따른 HTTP 힌트 트랙(716)의 삭제 및 청크 옵셋 값의 변경을 포함하는 트랜스코딩(transcoding) 절차를 통해 moov(760)을 생성하는 방법을 나타낸다.
도 9는 본 발명의 일 실시예에 따른 다중 HTTP 힌트 트랙들을 사용하여 비-인터리브된 저장 방식의 ISO 파일을 인터리브된 저장 방식의 ISO 파일로 변환하는 방법을 나타낸다.
도 10은 본 발명의 일 예에 따른 다중 HTTP 힌트 트랙들을 포함하는 원본 파일(900)에 대한 트랜스코딩(transcoding) 절차를 통해 복수 개의 moov들을 생성하는 방법을 나타낸다.
도 11는 본 발명의 일 실시예에 따른 다중 HTTP 힌트 트랙들을 사용하여 인터리브된 저장 방식의 ISO 파일을 경량의 인터리브된 저장 방식의 ISO 파일로 변환하는 방법을 나타낸다.
도 12는 본 발명의 일 실시예에 따른 인터리브된 저장 방식의 경량형 ISO 파일을 생성하는 방법의 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 품질 적응적 HTTP 스트리밍 서비스를 위한 인터리브된 ISO 파일들의 생성 방법을 나타낸다.
도 14는 본 발명의 일 실시예에 따른 품질 적응적 HTTP 스트리밍 서비스 방법의 흐름도이다.
도 15는 본 발명의 일 실시예에 따른 서버(1400)의 구조도이다.
도 16는 본 발명의 일 예에 따른 샘플 디스크립션 박스(sample description box)(1600)를 나타낸다.
도 17은 본 발명의 일 예에 따른 부가 데이터(1640)을 나타낸다.
도 18은 본 발명의 일 예에 따른 HTTP 힌트 트랙 내의 샘플 포맷(1800)을 나타낸다.
도 19는 본 발명의 일 예에 따른 패킷 엔트리 포맷(1900)을 나타낸다.
도 20는 본 발명의 일 예에 따른 생성자(constructor) 포맷(2000)을 나타낸다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 예에 따른 HTTP 기반의 프로그레시브 스트리밍 서비스의 개요를 설명한다.
단말(즉, 클라이언트(client))(110)은 원하는 콘텐츠 파일에 대한 서비스 요청을 서버(120)에게 알리기 위해 HTTP 프로토콜의 "GET Request"(130)를 전송한다.
서버(120)는 콘텐츠 파일을 단말(110)로 전송한다. 서버(120)는 콘텐츠 파일을 전송하기 위한 전송 프로토콜로써 TCP를 사용한다.
콘텐츠 파일은 TCP에 의해 단말(110)에 도착한다.
단말(110)은 초기에 도착한 콘텐츠 파일의 일부 데이터를 버퍼링한다.
단말(110)은 버퍼링된 콘텐츠 파일의 일부 데이터를 파싱(parsing)하여 비디오 및 오디오를 재생(playout)한다.
따라서, HTTP 스트리밍 서비스는 콘텐츠 파일의 모든 데이터가 단말(110)에 도착한 후에야 비로소 콘텐츠 파일이 재생되는 다운로드(download) 방식과 차별화된다. 또한, HTTP 스트리밍 서비스는 기존의 다운로드 방식의 문제점인 서비스 지연 시간을 대폭적으로 줄일 수 있다.
도 2는 본 발명의 일 예에 따른 ISO 기반 미디어 파일 포멧의 기본적인 구조를 나타낸다.
HTTP 스트리밍 서비스에서 전송되는 콘텐츠 파일은 압축된 비디오 및 오디오를 하나의 파일로 저장하기 위해서 퀵타임(QuickTime)(.mov), MPEG-4(.mp4), 윈도우 미디어 비디오(Windows Media Video)(.wmv), 플레쉬 비디오(Flash Video)(.flv) 및 3GPP(.3gp) 등의 다양한 멀티미디어 파일 포맷 규격에 의해 생성 된다.
이러한 다양한 멀티미디어 파일 포맷 규격들은 ISO/IEC MPEG에서 개발한 기본적인 표준 멀티미디어 파일 포맷 규격인 "ISO 기반 미디어 파일 포멧"(ISO/IEC 14496-12 (MPEG-4 파트 12))을 기반으로 확장되었다.
다양한 멀티미디어 파일 포맷 규격들을 바탕으로 제작된 멀티미디어 파일은 HTTP 스트리밍 서비스에 의해 유무선 IP (Internet Protocol) 망을 통해 광범위하게 제작, 배포 및 유통되어 왔다.
ISO 파일(200)의 포맷은 "moov" 박스(box)(또는 moov)(210) 및 "mdat" 박스(220)(또는 mdat)를 포함한다.
moov(210)는 기본적으로 오디오, 비디오 및 데이터와 같은 미디어의 내용을 표현하기 위해 필요한 메타 데이터(meta data)를 포함한다. mdat(220)는 실제적인 미디어의 샘플 데이터를 저장한다.
"trak(video)"(212)는 moov(210) 내부에 존재하는 비디오 트랙(video track)이다. trak(video)(212)는 mdat(220) 내에 저장된 비디오 샘플 데이터에 대한 내용을 표현하기 위한 메타 정보를 포함하는 trak box이다.
"trak(audio)"(214)는 moov(210) 내부에 존재하는 오디오 트랙(audio track)이다. trak(audio)(214)는 mdat(210) 내에 저장된 오디오 샘플 데이터에 대한 내용을 표현하기 위한 메타 정보를 포함하는 trak box이다.
"trak(hint)(216)는 moov(210) 내부에 존재하는 힌트 트랙(hint track)이다.
힌트 트랙은 지시(instruction) 정보를 포함하는 trak box이다. 상기의 지시 정보는 mdat(220)에 포함된 샘플 데이터를 전송하기 위해 서버가 비디오 트랙 또는 오디오 트랙에 접근하여 전송 프로토콜 규격에 맞는 데이터 포맷을 형성하는 것을 도와주는 정보이다.
ISO 파일 포맷의 표준 규격에 따라 정의된 힌트 트랙으로서, 실시간 트랜스포트 프로토콜(Real-time Transport Protocol; RTP) 힌트 트랙 및 파일 전송(File Delivery; FD) 힌트 트랙이 있다.
RTP 힌트 트랙은 실시간 스트리밍을 지원하는 RTP(Real-time Transport Protocol) 프로토콜을 위한 힌트 트랙이다. FD 힌트 트랙은 오류 감내(fault-tolerant) 데이터 전송을 위한 전향 오류 정정(forward error correction; FEC) 심볼의 전송을 지원하는 단방향 트랜스포트 상의 파일 전달(File Delivery over Unidirectional Transport; FLUTE) 프로토콜을 위한 힌트 트랙이다.
mdat(220)에는 비디오와 오디오의 샘플 데이터가 저장된다. mdat(220)에서 사용되는 저장 방식은 인터리브된(interleaved) 방식 및 비-인터리브된(non-interleaved) 방식이 있다.
도 3은 본 발명의 일 예에 따른 비-인터리브된 방식으로 저장되는 ISO 파일 포맷을 도시한다.
비-인터리브된 방식은 A/V(오디오 및 비디오) 청크 들을 미디어 별로 서로 독립적으로 배열하는 방식이다.
도 3에서, ISO 파일 포맷에 저장되는 비디오(V1) 및 오디오(A1)의 샘플 데이터들은 각각 n 개의 청트들(chk_1 내지 chk_n) (322 또는 324)로 분할된다.
비디오(V1)의 청크들(322)은 V1_chk_1 내지 V1_chk_1이다.
오디오(A1)의 청크들(324)은 A1_chk_1 내지 A1_chk_1이다.
분할된 청크들(322 및 324)은 각각 비-인터리브된 방식으로 mdat(320) 내에 배치된다.
moov(310) 내의 video_trak(V1)(312)는 mdat(320) 내의 V1의 제1 청크 V1_chk_1을 참조한다.
moov(310) 내의 audio_trak(A1)(314)은 mdat(320) 내의 A1의 제1 청크 A1_chk_1을 참조한다.
도 4는 본 발명의 일 예에 따른 인터리브된 방식으로 저장되는 ISO 파일 포맷들을 도시한다.
인터리브된 방식은 A/V(오디오/비디오) 청크(chunk) 단위를 서로 뒤섞어서 배치하는 방식이다.
도 4에서, ISO 파일 포맷에 저장되는 비디오(V1) 및 오디오(A1)의 샘플 데이터들은 각각 n 개의 청트들(chk_1 내지 chk_n)로 분할된다.
비디오(V1)의 청크들(422)은 V1_chk_1 내지 V1_chk_n이다.
오디오(A1)의 청크들(424)은 A1_chk_1 내지 A1_chk_n이다.
분할된 청크들(422)은 인터리브된 방식으로 mdat(420) 내에 배치된다. 즉, 오디오의 제1 청크 A1_chk_1가 비디오의 제1 청크 V1_chk_1를 뒤따르고, 비디오의 제2 청크 V1_chk_2가 오디오의 제1 청크 A1_chk_1을 뒤따른다.
moov(410)내의 video_trak(즉, V1)(412) 및 moov(410) 내의 audio_trak(즉, A1)(314)는 각각 mdat(320) 내의 V1의 제1 청크 V1_chk_1를 참조한다.
moov(410)내의 video_trak(즉, V1)(412) 및 moov(410) 내의 audio_trak(즉, A1)(314)이 V1의 제1 청크 V1_chk_1만을 참조할 경우, 뒤에 있는 청크들을 참조하기 위해서 과도한 연산이 요구될 수 있다. moov(410)내의 video_trak(즉, V1)(412) 및 moov(410) 내의 audio_trak(즉, A1)(314)는 각각 인터리브된 청크들 중 중간의 청크, 예컨대 V1의 제k 청크 V1_chk_k를 참조할 수 있다.
비-인터리브된 저장 방식은 서로 독립적인 인코딩 과정을 통해 비디오 샘플 데이터 및 오디오 샘플 데이터를 생성하고, 생성된 비디오 샘플 데이터 및 오디오 샘플 데이터를 mdat 내에 저장할 수 있다. 따라서, 비-인터리브된 저장 방식은 인코딩 과정의 복잡도 및 비용을 크게 낮출수 있으며, ISO 파일(즉, ISO 기반 미디어 파일 포멧을 따르는 콘텐츠 파일)의 제작을 용이하게 할 수 있다.
비-인터리브된 저장 방식을 사용하여 제작된 ISO 파일로부터 비디오 샘플 데이터 및 오디오 샘플 데이터가 추후에 추출될 수 있으며, 추출된 비디오 샘플 데이터 및 오디오 샘플 데이터는 다른 용도로 재사용(re-use)될 수 있다.
독립적으로 생성되어 ISO 파일 포맷에 저장된 비디오 샘플 데이터 및 오디오 샘플 데이터는, RTP 프로토콜 기반의 실시간 스트리밍 서비스에 최적화된 데이터 구조를 제공한다. RTP 기반의 실시간 스트리밍 서비스에서는 비디오 전송을 위한 RTP 세션 및 오디오 전송을 위한 RTP 세션이 독립적으로 형성되기 때문이다. 즉, 서로 독립적인 RTP 세션들 각각의 RTP 패킷이 생성될 때, RTP 패킷은, 서로 다른 미디어 트랙 간의 간섭 없이, 독립적이고 직접적으로(straightforward) 샘플 데이터를 mdat로부터 추출함으로써 만들어질 수 있기 때문이다.
또한, 비-인터리브된 저장 방식을 사용하여 ISO 파일이 생성된 경우, 파일 포멧이 생성된 후에 ISO 파일을 편집하는 과정도 간소화될 수 있다. 즉, ISO 파일이 파일 포맷이 생성된 후 필요에 따라 편집될 경우, 비디오 및 오디오가 독립적으로 편집될 수 있다. 또한, 단순히 기존의 청크들에 이어서 연속적으로 새로운 청크들을 mdat에 저장함으로써 ISO 파일에 별도의 트랙이 추가될 수 있다.
반면, 인터리브된 저장 방식은 서로 연관이 되는 비디오 샘플 데이터 및 오디오 샘플 데이터를 시간적 순서대로 뒤섞어서 저장한다. 따라서, 인터리브된 저장 방식이 사용될 경우, 인코딩 과정 및 저장 과정에 있어서의 비용 및 복잡도가 증가되며, RTP 기반의 실시간 스트리밍 서비스 제공을 위한 RTP 패킷 생성 과정에서의 복잡도가 증가한다.
인터리브된 저장 방식에 의해 생성된 ISO 파일 내에서는 비디오 청크들 및 오디오 청크들이 서로 뒤섞여서 배치되므로 편집 과정에 있어서도 복잡도가 증가한다.
따라서, 대부분의 ISO 파일들은 기본적으로 비-인터리브 방식의 파일 포맷을 바탕으로 제작된다. 기존에 이미 제작된 수 많은 파일들도 대부분 비-인터리브된 방식을 따른다.
HTTP 스트리밍 서비스에서는, 파일 포맷의 데이터는 파일 다운로드 원리에 의해 저장된 순서대로 순차적으로 전송된다. 따라서, 파일 내의 moov가 먼저 전송되고, 그 다음으로 mdat에 저장되어 있는 청크들이 저장된 순서대로 순차적으로 전송된다.
도 3의 비-인터리브된 저장 방식이 사용된 경우, 파일 내의 V1_chk_1 내지 V1_chk_n에 해당하는 n개의 모든 비디오 청크들의 전송이 완료된 후에야 첫 번째 오디오 청크인 A1_chk_1이 전송될 수 있다.
따라서, 비-인터리비된 저장 방식이 사용된 파일이 전송될 경우, 도 1에 표시된 단말에서의 재생 시작(start of playback) 시점은, 비디오 청크와 서로 동기를 맞춰저야 하는 오디오 청크들이 도착하는데 걸리는 상당히 긴 시간 이후로 지연된다.
이러한 재생 시작 시점의 지연은 HTTP 스트리밍 서비스를 요청하였던 소비자들이 체감하는 서비스에 대한 품질 만족도를 떨어뜨리는 주요 요인이 된다.
따라서, HTTP 스트리밍 서비스의 품질을 향상하기 위해서는, 도 4를 참조하여 전술된 것과 같은 인터리브된 저장 방식에 기반하여 ISO 파일이 제작되거나, 비-인터리브된 저장 방식에 기반하여 제작된 ISO 파일이 전송 시에 인터리브된 저장 방식의 파일 포맷으로 변환되어야 한다.
따라서, 비-인터리브된 저장 방식으로 제작된 ISO 파일에 대해서, 효과적인 HTTP 스트리밍 서비스를 실시 할 수 있는 방법이 요구된다.
후술될 본 발명의 실시예들에서는 HTTP 스트리밍 서비스를 효과적으로 제공하기 위한 HTTP 힌트 트랙을 개시한다.
HTTP 힌트 트랙을 활용함으로써, HTTP 스트리밍 서비스에 부적합한 비-인터리브된 저장 방식에 의해 제작된 ISO 파일이 HTTP 스트리밍에 적합한 인터리브된 저장 방식으로 간단하게 변환될 수 있다.
HTTP 힌트 트랙은 저작 툴(authoring tool)에 의해 새롭게 생성되는 ISO 파일에 삽입될 수 있다. 또한, HTTP 힌트 트랙은 기존에 제작된 ISO 파일 내에도 힌팅 툴(hinting tool)에 의해, 기존의 ISO 파일 구조를 거의 변경하지 않은 채, 새롭게 추가될 수 있다.
또한, 후술될 본 발명의 실시예들에서, 다중 비트율 및 다중 해상도를 지원하기 위해서, 다중 미디어 트랙들을 포함하는 ISO 파일에 대한 HTTP 힌트 트랙 스위칭 기법이 개시된다.
HTTP 힌트 트랙 스위칭을 활용함으로써 품질 적응적(quality adaptive) HTTP 스트리밍 서비스가 효과적으로 제공될 수 있다. HTTP 힌트 트랙을 활용한 HTTP 스트리밍 서비스는 전송되는 콘텐츠 파일의 크기를 경량화함으로써 ISO 파일의 다운로드에 소요되는 시간을 단축시킬 수 있으며, 동시에 IP 망에서의 트래픽 량을 감소시킬 수 있다.
또한, 후술될 본 발명의 실시예는, HTTP 스트리밍에 활용하기 위해서 이미 제작된 ISO 파일 내부에 HTTP 힌트 트랙이 삽입되어야할 경우, 파일에 이미 저장되어 있는 기존의 미디어 트랙들을 수정하지 않은 채 HTTP 힌트 트랙을 파일 내에 독립적으로 저장할 수 있다.
도 5는 본 발명의 일 예에 따른 ISO 파일 변환 과정 및 변환된 ISO 파일에 대한 HTTP 스트리밍 제공 과정을 나타내는 블록도이다.
변환의 대상이 되는 파일은, mdat 내에 비-인터리브된 미디어(media)(즉, 비디오 및 오디오 등)를 갖는 ISO 파일이다.
동작(510)에서, HTTP 힌트 트랙을 사용하여 인터리브된 ISO 파일이 생성된다. 또는, mdat 내에 비-인터리브된 미디어를 갖는 ISO 파일이 mdat 내에 인터리브된 미디어를 갖는 ISO 파일로 변환된다.
변환된 파일은 mdat 내에 인터리브된 미디어를 갖는 ISO 파일이다.
동작(520)에서 mdat 내에 인터리브된 미디어를 갖는 ISO 파일에 대한 HTTP 스트리밍 서비스가 제공된다.
동작(520)에 의해, 클라이언트(즉, 단말)에서의 단축된 재생 지연(reduced playout latency)을 갖는 ISO 파일 다운로드가 제공된다. 즉, 다운로드를 통해 ISO 파일을 수신하는 단말에서의 재생 시작(start of playback) 시점이 단출될 수 있다.
앞서 도 1 내지 도 4를 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 6은 본 발명의 일 예에 따른 HTTP 힌트 트랙 스위칭을 사용한 품질 적응적(quality adaptive) ISO 파일의 생성 과정 및 생성된 ISO 파일에 대한 HTTP 스트리밍 과정을 나타내는 블록도이다.
HTTP 힌트 트랙 간의 스위칭을 사용함으로써 품질 적응적인 HTTP 스트리밍 서비스가 제공될 수 있다.
변환의 대상이 되는 파일은 다중(multiple) A/V 미디어 트랙들을 갖는 ISO 파일이다.
동작(610)에서, HTTP 힌트 트랙을 사용하여 인터리브된 ISO 파일이 생성된다. 즉, 다중 A/V 미디어 트랙들을 갖는 ISO 파일은 적응된 품질(adapted quality)을 갖는(즉, 단말이 요구하는 품질에 적응적인) 경량 ISO 파일로 변환된다.
변환된 경량 ISO 파일은 단일 A/V 미디어 트랙을 갖는 품질 적응적 파일이다.
동작(620)에서 단일 A/V 미디어 트랙을 갖는 품질 적응적 파일에 대한 HTTP 스트리밍 서비스가 제공된다.
동작(620)에 의해, 파일 크기 및 전송(transmission) 시간이 단축된 파일 다운로드가 제공된다.
다른 대안적인(alternative) 품질을 다운로드하기 위한, 클라이언트(즉, 단말)로부터의 HTTP 요청이 도달하면, 동작(630)이 수행된다. 즉, 동작(630)은 HTTP 스트리밍 실시 도중에, 클라이언트(즉, 단말)이 새로운 품질을 요청할 때 수행된다.
동작(630)에서, HTTP 힌트 트랙 스위칭이 수행된다. HTTP 힌트 트랙 스위칭은 다중 A/V 미디어 트랙들을 갖는 ISO 파일 내의 다중 HTTP 힌트 트랙들 중, 경량 ISO 파일을 생성하기 위한 HTTP 힌트 트랙이 변경되는 것이다. HTTP 힌트 트랙을 변경함으로써, HTTP 스트리밍 실시 도중에 단말이 요청한 새로운 품질을 만족시키는 경량 ISO 파일이 생성된다.
동작(630)에 의해, 새로운 품질을 만족시키는 경량 ISO 파일에 대한 HTTP 스트리밍 서비스가 계속적으로 제공된다.
전술된 동작들(610 내지 630)에 의해, HTTP 스트리밍 서비스에서 전송되는 ISO 파일의 크기가 경량화되며, ISO 파일의 다운로드에 소요되는 시간이 단축될 수 있으며, 인터넷과 같은 IP 망에서의 트래픽 량이 감소될 수 있다.
앞서 도 1 내지 도 5를 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 7은 본 발명의 일 실시예에 따른 HTTP 힌트 트랙을 사용하여 비-인터리브된 저장 방식의 ISO 파일을 인터리브된 저장 방식의 ISO 파일로 변환하는 방법을 나타낸다.
원본 파일(700)은 moov(710), mdat(720)을 포함한다.
moov(710)은 영상 트랙(712), 음성 트랙(714) 및 HTTP 힌트 트랙(716)을 포함한다.
영상 트랙(712)은 n 개의 영상 청크들(722)을 참조한다.
음성 트랙(714)은 n 개의 음성 청크들(724)을 참조한다.
HTTP 힌트 트랙(716)은 샘플 테이블(sample table; stbl) 박스(730)를 포함한다.
샘플 테이블 박스(730)는 mdat(720) 내에 저장된 HTTP 힌트 샘플들(726)에 관한 시간적 데이터 위치 및 공간적 데이터 위치에 관련된 정보를 포함한다.
즉, 샘플 테이블 박스(730)(또는, HTTP 힌트 트랙(716))은 HTTP 힌트 샘플들(726)을 참조한다.
HTTP 힌트 샘플들(726)을 참조하기 위해, 샘플 데이터 박스(730)는 HTTP 힌트 샘플들(726)을 가리키는 HTTP 청크 힌트(732)를 포함할 수 있다.
mdat(720)는 n 개의 영상 청크들(722)을 포함한다. n 개의 영상 청크들(722)는 V1_chk_1 내지 V1_chk_n을 포함한다. V1_chk_1은 첫 번째 영상 청크이고, V1_chk_n은 n 번째 영상 청크이다.
mdat(720)는 n 개의 음성 청크들(724)을 포함한다. n 개의 음성 청크들(724)은 A1_chk_1 내지 A1_chk_n을 포함한다. A1_chk_1은 첫 번째 음성 청크이고, A1_chk_n은 n 번째 음성 청크이다.
mdat(720)는 n 개의 영상 청크들 및 n 개의 음성 청크들을 순차적으로 포함한다. 따라서, mdat(720)는 A/V 비-인터리브된 것이며, 원본 파일(700)은 HTTP 힌트 트랙을 포함하는 비-인터리브된 ISO 파일이다.
mdat(720)는 n 개의 HTTP 힌트 샘플들(726)을 포함한다. HTTP 힌트 샘플은 청크 옵셋(chunk offset) 및 HTTP 청크 포인터를 포함한다. 하나 이상의 HTTP 힌트 샘플들(726) 각각은 HTTP chunk pointer_1 내지 HTTP chunk pointer_n을 포함한다. 순서에 따라, HTTP chunk pointer_1은 첫 번째 HTTP 청크 포인터이고, HTTP chunk ponter_n은 n 번째 HTTP 청크 포인터이다.
HTTP 힌트 샘플에 의해 처리되는 데이터 크기의 단위는 기본적으로 비디오 청크 및 오디오 청크의 한 쌍으로 구성된다. 예컨대, i 번째 HTTP 청크 포인터는 i 번째 영상 청크 및 i 번째 음성 청크를 가리킨다. (1 ≤ i ≤ n)
HTTP 스트리밍 서비스를 제공받는 단말은 최소한 한 쌍의 A/V 청크를 재생할 수 있다. 한 쌍의 비디오 청크 및 오디오 청크는 동일한 시간 구간(time duration)에 대한 청크들이다. 즉, 한 쌍의 A/V 청크가 재생을 위한 데이터 단위이다. 한 쌍의 A/V 청크를 이하 HTTP 청크로 명명한다.
선택적으로, HTTP 청크는 하나 이상의 비디오들 각각의 영상 청크들을 포함할 수 있다. 또한, HTTP 청크는 하나 이상의 오디오들 각각의 영상 청크들을 포함할 수 있다.
동일한 시간 구간에 속하는 한 쌍의 A/V 청크는 HTTP 청크 포인터에 의해 참조된다.
HTTP 힌트 트랙(716)을 사용하여 원본 파일(700)에 기반한 인터리브된 ISO 파일(750)이 생성된다.
인터리브된 ISO 파일(750)은 moov(760) 및 mdat(770)을 포함한다.
mdat(770)은 n 개의 HTTP 청크들(772)을 포함한다.
HTTP 청크는 영상 청크 및 음성 청크를 포함한다. i 번째 HTTP 청크가 포함하는 i 번째 영상 청크는 원본 파일(700)의 V1_chk_i이다. i 번째 HTTP 청크가 포함하는 i 번째 음성 청크는 원본 파일(700)의 A1_chk_i이다.
moov(760)은 영상 트랙(762) 및 음성 트랙(764)를 포함한다. 영상 트랙(762) 및 음성 트랙(764)은 각각 HTTP 청크들(772)을 참조한다.
인터리브된 ISO 파일(750)을 생성하기 위한 기본적인 동작 원리는 HTTP 힌트 트랙(716)을 사용하여 동일한 시간 구간에 속하는 한 쌍의 A/V 청크를 식별(또는, 독출(read))하고, 식별된 한 쌍의 A/V 청크를 인터리브된 방식으로 저장하는 것이다.
상기의 식별을 위해, 영상 트랙(712) 및 음성 트랙(714)으로부터 독출할 영상 청크 및 음성 청크 데이터의 위치 정보를 나타내는 HTTP 청크 포인터가 HTTP 힌트 트랙(716)의 mdat(720) 내에 포함된다.
인터리브된 ISO 파일(750)을 위한 새로운 moov(760)을 고속으로 생성하기 위해서, 원본 파일(700)의 moov(710)에 기록된 A/V 트랙의 청크 옵셋 박스(또는 'stco' 박스) 내에 저장되어 있는 청크 옵셋 값이 변경될 수 있다. 인터리브된 ISO 파일(750)을 위해 요구되는 새로운 청크 옵셋 값인 새 청크 옵셋이 mdat(720) 내에 포함된다.
원본 ISO 파일(700)의 영상 트랙(712) 및 음성 트랙(714)의 표기는 V1 및 A1이다. 반면, 인터리브된 ISO 파일(750)의 영상 트랙(762) 및 음성 트랙(764)의 표기는 V1' 및 A1'이다. 이러한 표기의 변경은, 원래의 영상 트랙(712) 및 음성 트랙(714)의 청크 옵셋 정보가 HTTP 힌트 트랙에 기반한 파일 변환 과정에서 새 청크 옵셋 정보에 의해 변경된 것에 기인한다.
한편, HTTP 스트리밍을 위해 인터리브된 저장 방식으로 변환된, 변환된 ISO 파일(750) 내에는 HTTP 힌트 트랙(716)이 포함될 필요가 없다. 따라서, HTTP 힌트 트랙(716)은 mdat(770) 내에서 제거된다.
앞서 도 1 내지 도 6을 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 8은 본 발명의 일 예에 따른 HTTP 힌트 트랙(716)의 삭제 및 청크 옵셋 값의 변경을 포함하는 트랜스코딩(transcoding) 절차를 통해 moov(760)를 생성하는 방법을 나타낸다.
트랜스코딩부(810)는 HTTP 힌트 트랙 제거부(820) 및 청크 옵셋 변환부(830)를 포함한다.
HTTP 힌트 트랙 제거부(820)는 원본 파일(700)의 moov(710) 내에서 HTTP 힌트 트랙(716)을 제거한다.
청크 옵셋 변환부(830)는 원본 파일(700)의 청크 옵셋들에 대한 새 청크 옵셋들을 계산한다. 청크 옵셋들은 원본 파일(700)의 moov(710)에 기록된 A/V 트랙의 청크 옵셋 박스(또는 'stco' 박스)(840) 내에 저장될 수 있다.
HTTP 힌트 트랙 제거부(820) 및 청크 옵셋 변환부(830)에 의해 인터리브된 ISO 파일(750)의 moov(760)가 생성될 수 있다. 전술된 것처럼, ISO 파일(750)의 moov(760)는 영상 트랙(762) 및 음성 트랙(764)을 포함한다.
도 7 및 도 8을 참조하여 설명된 방법의 모든 처리 과정은 미디어의 샘플 단위가 아닌 다수의 샘플들로 구성된 청크 단위로 수행될 수 있다. 따라서, 상기의 처리 과정의 복잡도는 낮다.
일반적으로 비디오 청크는 수 초의 시간에 해당하는 샘플들을 묶음으로써 구성된다. 또한, 일반적으로 다수의 그림들의 그룹(group of picture; GOP)을 묶음으로써 하나의 청크가 구성된다.
앞서 도 1 내지 도 7을 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 9는 본 발명의 일 실시예에 따른 다중 HTTP 힌트 트랙들을 사용하여 비-인터리브된 저장 방식의 ISO 파일을 인터리브된 저장 방식의 ISO 파일로 변환하는 방법을 나타낸다.
원본 파일(900)은 도 7의 원본 파일(700)과 유사하나, 다중 미디어 트랙들(912, 914 및 916)을 포함한다. 다중 미디어 트랙들(912, 914 및 916)은 원본 파일(900)이 나타나는 콘텐츠에 대해 다중 비트율(bit rate) 및 해상도(resolution)를 지원하기 위한 것일 수 있다.
원본 파일(900)은 2가지 종류의 영상 비트율을 지원하기 위해 2개의 영상 트랙들(912 및 914) 및 1 개의 음성 트랙(916)을 비-인터리브된 방식으로 저장하는 ISO 파일이다.
이러한 구조를 갖는 파일에 대해서, 서로 상이한 비트율을 갖는 영상 트랙들(912 및 914)을 활용함으로써 2 가지 종류의 영상 품질을 선택적으로 제공할 수 있는 HTTP 스트리밍 서비스가 제공될 수 있다.
원본 파일(900)은, 2 가지 종류의 영상 트랙들을 선택적으로 제공하면서 HTTP 스트리밍 서비스를 효과적으로 실시하기 위해, 2 개의 HTTP 힌트 트랙들(922 및 924)을 포함한다.
HTTP 힌트 트랙 H1(922)은 영상 트랙 V1(912) 및 음성 트랙 A1(916)을 사용하여 HTTP 스트리밍을 실시하기 위한 것이며, HTTP 힌트 트랙 H2(924)는 영상 트랙 V2(914) 및 음성 트랙 A1(916)을 사용하여 HTTP 스트리밍을 실시하기 위한 것이다.
2 개의 HTTP 힌트 트랙들(922 및 924)을 사용함으로써 2 개의 인터리브된 ISO 파일들(950 및 970)이 생성될 수 있다. 2 개의 인터리브된 ISO 파일들(950 및 970)은 상이한 품질을 갖는다.
HTTP 힌트 트랙 H1(922)은 HTTP 청크를 구성하는 한 쌍의 A/V 청크들을 각각 영상 트랙 V1(912) 및 음성 트랙 A1(916)로부터 복사해온다. 마찬가지로, HTTP 힌트 트랙 H2(924)는 HTTP 청크를 구성하는 한 쌍의 A/V 청크들을 각각 영상 트랙 V2(914) 및 음성 트랙 A1(916)로부터 복사해온다.
다중 미디어 트랙들을 포함하는 ISO 파일이 지원할 수 있는 멀티미디어 품질의 종류만큼의 HTTP 힌트 트랙들(922 및 924)이 원본 파일(900) 내에 포함될 수 있고, 이러한 HTTP 힌트 트랙들(922 및 924)에 의해 다중 품질의 HTTP 스트리밍 서비스가 제공될 수 있다.
각 HTTP 힌트 트랙(922 또는 924)이 지원할 수 있는 평균 비트율(average bit rage) 및 최대 비트율(maximum bit rate)에 대한 정보는 힌트 미디어 헤더(Hint Media Header Box; hmhd) 박스의 'avgbitrate' 및 'maxbitrate' 필드에 의해 표시될 수 있다. 따라서, hmhd 박스의 avgbitrate 및 maxbitrate 필드 정보를 바탕으로 원하는 품질을 제공할 수 있는 HTTP 힌트 트랙(922 또는 924)이 선택될 수 있으며, 선택된 HTTP 힌트 트랙(922 또는 924)에 따른 HTTP 스트리밍이 실시될 수 있다.
앞서 도 1 내지 도 8을 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 10은 본 발명의 일 예에 따른 다중 HTTP 힌트 트랙들을 포함하는 원본 파일(900)에 대한 트랜스코딩(transcoding) 절차를 통해 복수 개의 moov들을 생성하는 방법을 나타낸다.
도 10의 상단은 제1 인터리브된 ISO 파일(950)의 moov가 생성되는 방법을 나타낸다. 도 10의 하단은 제2 인터리브된 ISO 파일(970)의 moov가 생성되는 방법을 나타낸다.
트랜스코딩부(1010)는 HTTP 힌트 트랙 제거부(1020), 미디어 트랙 제거부(1030) 및 청크 옵셋 변환부(1040)를 포함한다.
도 8에서 트랜스코딩부(810)에 대해 설명된 내용은 트랜스코딩부(1010)에 적용될 수 있다.
HTTP 힌트 트랙 제거부(1020)는 도 8의 HTTP 힌트 트랙 제거부(820)와 유사하다. HTTP 힌트 트랙 제거부(1020)는 원본 파일(900) 내의 복수 개의 HTTP 힌트 트랙들(922 및 924)을 제거한다.
미디어 트랙 제거부(1020)는 원본 파일(900) 내의 다중 미디어 트랙들(912, 914 및 916)들 중 생성될 인터리브된 ISO 파일(950 또는 970)에서 사용되지 않을 트랙(914 또는 912)을 제거한다.
청크 옵셋 변환부(1040)는 도 8의 청크 옵셋 변환부(830)와 유사하다. 청크 옵셋 변환부(1040)는 다중 미디어 트랙들(912, 914 및 916)들 중 생성될 인터리브된 ISO 파일(950 또는 970)에서 사용될 트랙들(914과 916, 또는 912와 916)에 대한 새 청크 옵셋들을 계산한다. 청크 옵셋들은 원본 파일(900)의 moov에 기록된 A/V 트랙의 청크 옵셋 박스(또는 'stco' 박스)(1050) 내에 저장될 수 있다. 다중 미디어 트랙들(912, 914 및 916)들 각각에 대해 별개의 청크 옵셋 박스가 사용될 수 있다.
전술된 방식에 의해, HTTP 힌트 트랙의 제거, 불필요한 미디어 트랙의 제거 및 청크 옵셋 값의 변경만을 통해 원본 파일(900)이 인터리브된 ISO 파일(950 또는 970)로 변환될 수 있다.
앞서 도 1 내지 도 9를 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 11는 본 발명의 일 실시예에 따른 다중 HTTP 힌트 트랙들을 사용하여 인터리브된 저장 방식의 ISO 파일을 경량의 인터리브된 저장 방식의 ISO 파일로 변환하는 방법을 나타낸다.
도 7 및 도 8을 참조하여 전술된 HTTP 힌트 트랙을 사용한 인터리브된 저장 방식의 ISO 파일로의 변환 방법은 원본 파일(1100)이 인터리브 방식으로 저장된 ISO 파일일 경우에도 사용될 수 있다.
도 11에서, 제1 영상 트랙(1112), 제2 영상 트랙(1114) 및 음성 트랙(1116)은 인터리브되었다. 즉, 제1 영상 트랙(1112)의 영상 청크들, 제2 영상 트랙(1114)의 영상 청크들 및 음성 트랙(1116)의 음성 청크들은 서로 인터리브되어 저장되었다.
제1 HTTP 힌트 트랙(1122)의 HTTP 청크 포인터들은 인터리브된 제1 영상 청크 및 음성 청크를 가리킨다. 제2 HTTP 힌트 트랙(1124)의 HTTP 청크 포인터들은 인터리브된 제2 영상 청크 및 음성 청크를 가리킨다.
따라서, 트랙들(1112, 1114 및 1116)이 인터리브된 것과는 독립적으로, HTTP 청크를 구성하는 한 쌍의 A/V 청크들이 HTTP 청크 포인터에 의해 식별될 수 있다.
따라서, 도 9를 참조하여 전술된 변환 방법은, 인터리브된 저장 방식의 원본 파일(1100)에 대해서도 적용될 수 있으며, 전술된 인터리브된 ISO 파일(950 및 970)이 생성될 수 있다.
앞서 도 1 내지 도 10을 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 12는 본 발명의 일 실시예에 따른 인터리브된 저장 방식의 경량형 ISO 파일을 생성하는 방법의 흐름도이다.
경량형 ISO 파일을 생성하기 위해 원본 파일이 요구된다. 원본 파일은 도 7, 도 9 및 도 11의 원본 파일(700, 900, 1100)일 수 있다. 원본 파일은 비-인터리브된 ISO 파일일 수 있고, 다중 트랙 ISO 파일일 수 있다. 원본 파일은 HTTP 힌트 트랙을 포함한다.
경량형 ISO 파일은 원본 파일을 수정함으로써 생성될 수 있다. 즉, 경량형 ISO 파일은 원본 파일로부터 HTTP 힌트 트랙 및 사용되지 않는 미디어 트랙을 제거하고, 청크 옵셋을 변경함으로써 생성될 수 있다.
원본 파일은 하나 이상의 제1 영상 청크들, 하나 이상의 제1 음성 청크들 및 하나 이상의 제1 HTTP 청크 포인터들을 포함한다.
동작(1210)에서, 원본 파일 내의 HTTP 힌트 트랙들이 제거된다.
제1 HTTP 힌트 트랙들이 제거됨으로써 제1 HTTP 힌트 트랙에 의해 참조되는 제1 HTTP 청크 포인터들이 제거된다.
동작(1220)에서, 원본 파일 내의 사용되지 않는 미디어 트랙들이 제거된다.
동작(1220)은 원본 파일이 다중 트랙 ISO 파일일 경우 선택적으로 실행될 수 있다.
동작(1230)에서, 청크 옵셋이 변경된다. 청크 옵셋의 변경은 제1 청크 옵셋이 계산된다는 것을 의미한다. 제1 청크 옵셋은 도 7을 참조하여 전술된 새 청크 옵셋을 나타낸다. 즉, 제1 경량형 ISO 파일 내에서의 n 번째 제1 HTTP 청크의 위치를 나타내는 n 번째 제1 청크 옵셋이 계산된다.
동작(1240)에서, 경량형 ISO 파일을 위한 moov가 완성된다.
동작(1250)에서, HTTP 힌트 트랙을 사용함으로써 HTTP 청크들이 구성된다.
동작(1250)은 하기의 동작들을 포함할 수 있다.
동작(1252)에서, 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 제1 영상 청크들 중 n 번째 제1 영상 청크 및 제1 음성 청크들 중 n 번째 제1 음성 청크가 식별된다. n은 1 이상 제1 영상 청크들의 개수 이하의 값이다.
동작(1254)에서, n 번째 제1 영상 청크 및 n 번째 제1 음성 청크가 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정된다.
동작(1260)에서, 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일이 생성된다.
제1 경량형 ISO 파일이 생성되는 동작은, n 번째 제1 청크 옵셋을 사용함으로써 n 번째 제1 HTTP 청크를 상기 제1 경량형 ISO 파일 내에 배치하는 것일 수 있다.
제1 경량형 ISO 파일은 인터리브된 파일이다. 즉, 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들은 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치된다.
제1 경량형 ISO 파일은 전술된 인터리브된 ISO 파일(750, 950 또는 970)일 수 있다.
원본 파일이 다중 미디어 트랙 ISO 파일일 경우, 원본 파일은 제2 영상 청크들을 포함할 수 있다. 제1 영상 청크들이 나타내는 제1 영상 및 상기 제2 영상 청크들이 나타내는 제2 영상은 상이한 품질(예컨대, 비트율 또는 해상도)을 갖는다.
제1 경량형 ISO 파일에 대해 특정한 품질이 요청된 경우, 제1 영상은 제1 경량형 ISO 파일에 대해 요청된 품질에 대응하는 품질을 갖는 영상이다.
제1 경량형 ISO 파일이 생성될 때, 동작(1220)에서, 제1 경량형 ISO 파일의 생성을 위해 사용되지 않는 제2 영상 청크들이 원본 파일로부터 제거될 수 있다.
전술된 인터리브된 저장 방식의 경량형 ISO 파일을 생성하는 방법에 의해 제1 경량형 파일과 함께 제2 경량형 파일이 동시에 또는 순차적으로 생성될 수 있다.
이 경우, 동작(1252)에서, 제2 HTTP 청크 포인터들 중 n 번째 제2 HTTP 청크 포인터가 가리키는 제2 영상 청크들 중 n 번째 제2 영상 청크 및 제1 음성 청크들 중 n 번째 제1 음성 청크가 식별된다.
또한, 동작(1254)에서, n 번째 제2 영상 청크 및 n 번째 제2 음성 청크가 제2 HTTP 청크들 중 n 번째 제2 HTTP 청크에 포함될 청크로 결정된다.
또한, 동작(1260)에서, 하나 이상의 제2 HTTP 청크들을 순차적으로 포함하는 제2 경량형 ISO 파일이 생성된다. 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 제2 경량형 ISO 파일 내에 순차적으로 인터리브로 배치된다.
앞서 도 1 내지 도 11을 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 13은 본 발명의 일 실시예에 따른 품질 적응적 HTTP 스트리밍 서비스를 위한 인터리브된 ISO 파일들의 생성 방법을 나타낸다.
인터리브된 ISO 파일들은 스트리밍 서비스에 의해 제공되는 멀티미디어 파일이다. 따라서, 본 실시예는 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법을 나타낼 수 있다.
HTTP 힌트 트랙 H1(1322)에 의해 제1 인터리브된 ISO 파일(1350)이 생성되면, 서버는 생성된 제1 인터리브된 ISO 파일(1350)을 HTTP 스트리밍 서비스를 통해 단말에게 제공할 수 있다.
제1 인터리브된 ISO 파일(1350)은 HTTP 힌트 트랙 H1(1322)의 HTTP 청크 포인터가 참조하는 제1 영상 트랙(1312) 및 제1 음성 트랙(1316)에 의해 생성된다.
HTTP 스트리밍 서비스가 실시되는 도중, 단말은 서버에게 HTTP 스트리밍 서비스에 의해 제공되는 콘텐츠의 품질의 변경을 요청할 수 있다. 변경된 품질은 HTTP 힌트 트랙 H2(1324)에 의해 제공될 수 있다. 즉, 변경된 품질은 HTTP 힌트 트랙 H2(1324)의 HTTP 청크 포인터가 참조하는 제2 영상 트랙(1314) 및 제1 음성 트랙(1316)에 의해 제공된다.
따라서, 서버는 HTTP 힌트 트랙 H2(1324)을 사용하여 제2 인터리브된 ISO 파일(1370)을 생성하고, 생성된 제2 인터리브된 ISO 파일(1370)을 HTTP 스트리밍 서비스를 통해 단말에게 전송함으로써 품질 적응적 HTTP 스트리밍 서비스를 제공할 수 있다.
HTTP 스트리밍 서비스가 제공되는 경우, 서버는 제1 인터리브된 ISO 파일(1350)을 생성하면서 단말에게 생성된 제1 인터리브된 ISO 파일(1350)의 부분(즉, HTTP 청크들)을 순차적으로 단말에게 전송할 수 있다.
서버가 제1 인터리브된 ISO 파일(1350)을 생성하는 도중, 단말로부터 콘텐츠의 품질의 변경이 요청되면, 서버는 인터리브된 ISO 파일을 생성하기 위한 HTTP 힌트 트랙을 스위칭함으로써(즉, HTTP 힌트 트랙 H1(1322)에서 HTTP 힌트 트랙 H2(1324)로 ISO 파일을 생성하기 위한 HTTP 힌트 트랙이 스위칭됨.) 변경된 품질에 맞는 제2 인터리브된 ISO 파일(1370)을 생성할 수 있다.
HTTP 힌트 트랙 스위칭에 의한 품질 적응적 HTTP 스트리밍은 표준 ISO 파일 포맷의 트랙 선택(Track Selection; tsel) 박스를 사용함으로써 수행될 수 있다. tsel 박스에 의해 HTTP 힌트 트랙들(1322 및 1324)이 하나의 스위칭 그룹으로 설정될 수 있다. HTTP 힌트 트랙들(1322 및 1324)이 제공할 수 있는 품질은 속성(attribute) 정보를 통해 서버에게 제공될 수 있다.
서버는 이 정보들을 바탕으로 다양한 품질을 제공하는 HTTP 힌트 트랙들(1322 및 1324) 간의 스위칭을 통해 품질 적응적 HTTP 스트리밍 서비스를 제공할 수 있다.
도 13에서, HTTP 힌트 트랙 H1(1322)에 의해 k-1 번째까지의 HTTP 청크들이 단말에게 전송되었다. 제1 인터리브된 ISO 파일(1350)은 모든(즉, n 개의) HTTP 청크들을 포함할 수 있고, k-1 번째까지의 HTTP 청크들 만을 포함할 수도 있다.
k 번째 HTTP 청크부터는, 품질 변경 요청에 의해 HTTP 힌트 트랙 H2(1324)에 의해 생성된 HTTP 청크들이 HTTP 스트리밍 서비스에 의해 단말에게 전송된다.
품질 변경 요청은 다른 대안을 다운로드하기 위한 HTTP Get 요청을 통해 단말로부터 서버로 전송될 수 있다.
제2 인터리브된 ISO 파일(1370)은 k 번째부터 n 번째까지의 HTTP 청크들을 포함한다.
청크 단위의 정밀도로 HTTP 힌트 트랙이 스위칭되기 위해서는, 영상 트랙의 청크들에 포함되는 첫 번째 샘플이 I-프레임(frame)이 되도록 원본 파일(1300)이 제작되어야 한다.
일반적으로, 영상 청크는 수 초에 해당하는 복수 개의 GOP를 묶음으로써 구성된다. 따라서, 영상 청크의 첫 번째 샘플은 I-프레임으로 시작된다.
앞서 도 1 내지 도 12를 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 14는 본 발명의 일 실시예에 따른 품질 적응적 HTTP 스트리밍 서비스 방법의 흐름도이다.
하기의 동작들(1420 내지 1475)은 서버(1400)에 의해 수행되는 스트리밍 서비스 송신 방법 및 단말(1410)에 의해 수행되는 스트리밍 서비스 수신 방법을 구성할 수 있다.
동작(1420)에서, 서버(1400) 및 단말(즉, 클라이언트)(1410) 간의 연결이 설정되고 서비스가 초기화된다. 서버(1400)는 단말(1410)로 서비스 디스크립션 정보(service description information)를 전송한다.
동작(1425)에서, 단말(1410)은 전송받을 콘텐츠 파일 및 콘텐츠 파일의 제1 품질을 선택한다. 전송받을 콘텐츠 파일은 제1 경량형 ISO 파일이다. 제1 경량형 ISO 파일은 선택된 제1 품질을 갖는 파일이다.
단말(1400)은 제1 경량형 ISO 파일에 대한 품질을 나타내는 제1 품질 정보를 생성할 수 있다.
동작(1430)에서, 단말(1410)은 서버(1400)에게 제1 경량형 ISO 파일을 요청한다. 상기의 요청은 HTTP GET 요청일 수 있다.
상기의 제1 경량형 ISO 파일에 대한 요청은 제1 경량형 ISO 파일에 대한 제1 품질 정보를 포함할 수 있다.
서버(1400)는 제1 경량형 ISO 파일에 대한 요청을 단말로부터 수신한다.
동작(1435)에서, 서버(1400)는 원본 파일에 기반하여 제1 경량형 ISO 파일을 생성한다. 제1 경량형 ISO 파일은 전술된 인터리브된 ISO 파일(950 또는 1350)일 수 있다. 즉, 제1 경량형 ISO 파일은 HTTP 힌트 트랙을 사용하여 생성된 경량형 ISO 파일이다.
제1 경량형 ISO 파일을 생성하기 위한 동작이 도 12를 참조하여 전술되었다.
제1 경량형 ISO 파일은 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 제1 경량형 ISO 파일 내의 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들은 인터리브되었다. 또한, 제1 영상 청크들은 제1 품질 정보에 대응하는 영상의 청크들이고, 제1 음성 청크들은 제1 품질 정보에 대응하는 음성의 청크들이다.
동작(1440)에서, 서버(1400)는 제1 경량형 ISO 파일을 단말(1410)에게 전송한다.
서버(1400)는 HTTP 스트리밍을 통해 제1 경량형 ISO 파일을 단말(1410)에게 전송할 수 있다.
단말(1410)은 제1 경량형 ISO 파일을 스트리밍을 통해 서버(1400)로부터 수신한다.
동작(1445)에서, 단말(1410)은 제1 경량형 ISO 파일을 재생한다. 단말(1410)은 HTTP 스트리밍을 통해 서버(1400)로부터 제1 경량형 ISO 파일을 제공받는 동시에, 제1 경량형 ISO 파일 중 전송된 부분을 재생할 수 있다.
동작(1450)에서, 단말(1410)은 보틀넥(bottleneck)을 감지한다. 보틀넥이 감지됨에 따라, 단말(1410)은 다른 대안(another alternative) 품질을 선택한다. 즉, 단말(1410)은 감지된 보틀넥에 기반하여 콘텐츠 파일의 제2 품질을 선택한다. 전송받을 콘텐츠 파일은 제2 경량형 ISO 파일이다. 제2 경량형 ISO 파일은 선택된 제2 품질을 갖는 파일이다.
단말(1400)은 제2 경량형 ISO 파일에 대한 품질을 나타내는 제2 품질 정보를 생성할 수 있다.
동작(1460)에서, 단말(1410)은 서버(1400)에게 제2 경량형 ISO 파일을 요청한다. 상기의 요청은 HTTP GET 요청일 수 있다.
상기의 제2 경량형 ISO 파일에 대한 요청은 제2 경량형 ISO 파일에 대한 제2 품질 정보를 포함할 수 있다.
동작(1465)에서, 서버(1400)는 원본 파일에 기반하여 제2 경량형 ISO 파일을 생성한다. 제2 경량형 ISO 파일은 전술된 인터리브된 ISO 파일(970 또는 1370)일 수 있다. 즉, 제2 경량형 ISO 파일은 HTTP 힌트 트랙을 사용하여 생성된 경량형 ISO 파일이다.
제2 경량형 ISO 파일을 생성하기 위한 동작이 도 12 및 도 13을 참조하여 전술되었다.
제2 경량형 ISO 파일은 하나 이상의 제2 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 제2 경량형 ISO 파일 내의 하나 이상의 제2 영상 청크들 및 하나 이상의 제1 음성 청크들은 인터리브되었다. 또한, 제2 영상 청크들은 제2 품질 정보에 대응하는 영상의 청크들이고, 제1 음성 청크들은 제2 품질 정보에 대응하는 음성의 청크들이다.
하나 이상의 제1 영상 청크들 및 하나 이상의 제2 영상 청크들은 동일한 내용의 영상(즉, 동일한 콘텐츠)의 상이한 품질을 갖는 청크들일 수 있다.
하나 이상의 제2 영상 청크들은 제2 경량형 ISO 파일에 대한 요청이 서버(1400)에게 수신되었을 때, 하나 이상의 제1 영상 청크들 중 제1 경량형 ISO 파일의 스트리밍 서비스에 의해 단말(1410)로 전송되지 않은 미전송된 제1 영상 청크들에 대응하는 영상 청크들일 수 있다.
또한, 하나 이상의 제2 음성 청크들은 제2 경량형 ISO 파일에 대한 요청이 서버(1400)에게 수신되었을 때, 하나 이상의 제1 음성 청크들 중 제1 경량형 ISO 파일의 스트리밍 서비스에 의해 단말(1410)로 전송되지 않은 미전송된 제1 영상 음성들에 대응하는 영상 청크들일 수 있다.
동작(1470)에서, 서버(1400)는 제2 경량형 ISO 파일을 단말(1410)에게 전송한다.
서버(1400)는 HTTP 스트리밍을 통해 제2 경량형 ISO 파일을 단말(1410)에게 전송할 수 있다.
단말(1410)은 제2 경량형 ISO 파일을 스트리밍을 통해 서버(1400)로부터 수신한다.
동작(1475)에서, 단말(1410)은 제2 경량형 ISO 파일을 재생한다. 단말(1410)은 HTTP 스트리밍을 통해 서버(1400)로부터 제2 경량형 ISO 파일을 제공받는 동시에, 제2 경량형 ISO 파일 중 전송된 부분을 재생할 수 있다.
단말(1410)은, 동작(1445)에서 재생하였던 제1 경량형 ISO 파일의 특정 지점의 이후의 부분에 대해서, 제2 경량형 ISO 파일을 사용하여 재생할 수 있다. 즉, 제1 경량형 ISO 파일 및 제2 경량형 ISO 파일이 순차적으로 재생됨으로써, 동작(1425)에서 선택된 콘텐츠가 품질이 스위칭되면서 계속적으로 재생될 수 있다.
인터리브된 저장 방식의 경량형 ISO 파일이 HTTP 스트리밍에 의해 제공됨에 의해, 단말(1410)은 콘텐츠의 다운로드에 소요되는 시간을 단축시킬 수 있다. 또한, IP 망의 트래픽 양이 감소될 수 있다.
앞서 도 1 내지 도 13을 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 15는 본 발명의 일 실시예에 따른 서버(1400)의 구조도이다.
서버(1400)는 도 14을 참조하여 전술된 스트리밍 서비스 송신 방법을 수행하는 스트리밍 서비스 송신 장치이다. 또한, 서버(1400)는 경량형 ISO 파일을 생성할 수 있다. 따라서, 서버(1400)는 스트리밍 서비스를 위한 멀티미디어 파일 생성 장치이다.
서버(1400)는 수신부(1510), 경량형 ISO 파일 생성부(1520) 및 전송부(1530)를 포함한다.
수신부(1510)는 단말(1410)로부터 정보를 수신한다. 예컨대, 수신부(1510)는 단말(1410)로부터 연결 설정 및 서비스 초기화를 위한 정보를 수신하고, 제1 경량형 ISO 파일에 대한 요청 및 제2 경량형 ISO 파일에 대한 요청을 수신한다.
전송부(1530)는 단말(1410)로 정보를 전송한다. 예컨대, 전송부(1530)는 연결 설정 및 서비스 초기화를 위한 정보를 단말(1410)로 전송하고, 제1 경량형 ISO 파일 및 제2 경량형 ISO 파일을 단말(1410)로 전송한다.
경량형 ISO 파일 생성부(1520)는 원본 파일에 기반하여 제1 경량형 ISO 파일 및 제2 경량형 ISO 파일을 생성한다.
경량형 ISO 파일 생성부(1520)는 경량형 ISO 파일을 생성하는 장치일 수 있다.
경량형 ISO 파일 생성부(1520)는 제1 영상 청크들, 하나 이상의 제1 음성 청크들 및 하나 이상의 제1 HTTP 청크 포인터들을 포함하는 원본 파일을 사용하여 인터리브된 저장 방식의 제1 경량형 ISO 파일을 생성할 수 있다. 또한, 경량형 ISO 파일 생성부(1520)는 제2 영상 청크들, 하나 이상의 제1 음성 청크들 및 하나 이상의 제2 HTTP 청크 포인터들을 포함하는 원본 파일을 사용하여 인터리브된 저장 방식의 제2 경량형 ISO 파일을 생성할 수 있다.
경량형 ISO 파일 생성부(1520)는 HTTP 청크 식별부(1540), HTTP 청크 결정부(1550) 및 파일 생성부(1560)를 포함할 수 있다.
HTTP 청크 식별부(1540)는 전술된 동작(1252)을 수행한다. 예컨대, HTTP 청크 식별부(1540)는 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 제1 영상 청크들 중 n 번째 제1 영상 청크 및 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별한다. 또한, HTTP 청크 식별부(1540)는 제2 HTTP 청크 포인터들 중 n 번째 제2 HTTP 청크 포인터가 가리키는 제2 영상 청크들 중 n 번째 제2 영상 청크 및 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별한다.
HTTP 청크 결정부(1550)는 전술된 동작(1254)을 수행한다. 예컨대, HTTP 청크 결정부(1550)는 n 번째 제1 영상 청크 및 n 번째 제1 음성 청크를 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정한다. 또한, HTTP 청크 결정부(1550)는 n 번째 제2 영상 청크 및 n 번째 제1 음성 청크를 제2 HTTP 청크들 중 n 번째 제2 HTTP 청크에 포함될 청크로 결정한다.
파일 생성부(1560)는 전술된 동작(1260)을 수행한다. 예컨대, 파일 생성부(1560)는 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일을 생성한다. 또한, 파일 생성부(1560)는 하나 이상의 제2 HTTP 청크들을 순차적으로 포함하는 제2 경량형 ISO 파일을 생성한다.
파일 생성부(1560)는 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치한다. 또한, 파일 생성부(1560)는 하나 이상의 제2 영상 청크들 및 하나 이상의 제1 음성 청크들을 제2 경량형 ISO 파일 내에 순차적으로 인터리브로 배치한다.
경량형 ISO 파일 생성부(1520)는 HTTP 힌트 트랙 제거부(1570), 미사용 미디어 트랙 제거부(1580) 및 청크 옵셋 변환부(1590)를 더 포함할 수 있다.
HTTP 힌트 트랙 제거부(1570)는 전술된 동작(1210)을 수행한다. HTTP 힌트 트랙 제거부(1570)는 HTTP 힌트 트랙 제거부(820 또는 1020)일 수 있다.
미사용 미디어 트랙 제거부(1580)는 전술된 동작(1220)을 수행한다. 미사용 미디어 트랙 제거부(1580)는 미디어 트랙 제거부(1030)일 수 있다.
청크 옵셋 변환부(1590)는 전술된 동작(1230)을 수행한다. 청크 옵셋 변경부(1590)는 청크 옵셋 변환부(830 또는 1040)일 수 있다.
앞서 도 1 내지 도 14를 참조하여 설명된 본 발명의 일 실시예 및 일 예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
하기에서, 도 16 내지 도 20을 참조하여, HTTP 힌트 트랙을 ISO 파일 포맷에 저장하기 위한 HTTP 힌트 트랙 포맷과 관련된 신택스(syntax) 및 시맨틱(semantic)을 개시한다.
도 16는 본 발명의 일 예에 따른 샘플 디스크립션 박스(sample description box)(1600)를 나타낸다.
http(1610)는 HTTP 힌트 트랙을 위한 샘플 엔트리 명칭(sample entry name)이다.
힌트 트랙 버전(Hinttrackversion)(1620)은 1로 세팅된 값으로서, 현재의 힌트 트랙의 버전을 표시한다.
최대 호환성 버전(Highestcompatibleversion)(1630)은 1로 세팅된 값으로서, 상기의 현재의 힌트 트랙이 역 호환성(backward-compatibility)을 지원하는 가장 오래된 힌트 트랙의 버전을 표시한다.
부가 데이터(additional data)(1640)는 도 16과 같이 표시되는 box를 나타낸다.
도 17은 본 발명의 일 예에 따른 부가 데이터(1640)을 나타낸다.
새 moov 옵셋(new_moov_offset)(1610) 인터리브된 저장 방식으로 새롭게 생성되는 ISO 파일의 moov의 크기를 나타낸다. new_moov_offset(1710)은 미디어 트랙의 청크 옵셋의 값을 변경할 때, 고려되어야 할 moov의 크기에 대한 옵셋 정보로써 사용된다.
도 18은 본 발명의 일 예에 따른 HTTP 힌트 트랙 내의 샘플 포맷(1800)을 나타낸다.
HTTP 힌트 트랙에서의 샘플은 복수 개의 미디어 트랙 내에 저장된 청크들을 하나로 묶은 HTTP 청크를 생성한다.
청크 카운트(chunkcount)(1810)는 생성되는 HTTP 청크들의 개수를 나타낸다.
청크들(chunks)(1820)은 생성된 HTTP 청크들을 의미한다. chunks(1820)는 chunkcount(1810)가 나타내는 개수만큼 생성된다.
도 19는 본 발명의 일 예에 따른 패킷 엔트리 포맷(1900)을 나타낸다.
각각의 HTTP 청크는 HTTP 청크(HTTPchunk)(1910)의 구조에 따라 생성된다.
엔트리 카운트(entry_count)(1920)는 HTTPchunk(1910)의 다음에 따라오는 테이블의 항목의 개수를 나타낸다.
도 20는 본 발명의 일 예에 따른 생성자(constructor) 포맷(2000)을 나타낸다.
트랙 참조 인덱스(trackrefindex)(2010)는 복사를 통해 미디어의 청크 데이터를 가져오기 위해, 참조해야 할 미디어 트랙의 정보를 나타낸다.
길이(length)(2020)는 복사해서 가져와야 할 미디어 청크의 길이를 바이트 단위로 나타낸다.
샘플 번호(Samplenumber)(2030)는 복사해서 가져와야 할 미디어 청크의 시작 지점에 위치하는 샘플의 번호를 나타낸다.
청크 옵셋(Chunkoffset)(2040)은 복사해서 가져와야 할 미디어 청크의 시작 지점이 파일의 시작 지점으로부터 얼마나 떨어져 있는 지를 바이트 단위로 나타낸다.
새 청크 옵셋(new_chunk_offset)(2050)은 복사해서 가져온 청크가 인터리브된 저장 방식의 ISO 파일의 mdat에 저장될 때, 복사해서 가저온 청크가 mdat의 시작 지점으로부터 얼마나 떨어져 있는지를 바이트 단위로 나타낸다.
new_moov_offset(1610) 및 new_chunk_offset(2050)의 합을 계산함으로써, 인터리브된 저장 방식의 경량형 ISO 파일에 포함된 미디어 트랙의 stco 박스에 기록할 새 청크 옵셋 값이 빠르게 계산될 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1400: 서버
1410: 단말
1510: 수신부
1520: 경량형 ISO 파일 생성부
1540: HTTP 청크 생성부
1550: HTTP 청크 결정부
1560: 파일 생성부
1570: HTTP 힌트 트랙 제거부
1580: 미사용 미디어 트랙 제거부
1590: 청크 옵셋 변환부
1530: 전송부

Claims (23)

  1. 제1 경량형 ISO 파일에 대한 요청을 단말로부터 수신하는 동작;
    원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 동작; 및
    상기 제1 경량형 ISO 파일을 스트리밍을 통해 상기 단말로 전송하는 동작
    을 포함하고, 상기 제1 경량형 ISO 파일은 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 인터리브된, 스트리밍 서비스 송신 방법.
  2. 제1항에 있어서,
    상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 경량형 ISO 파일에 대한 제1 품질 정보를 포함하고, 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들이고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들인, 스트리밍 서비스 송신 방법.
  3. 제1항에 있어서,
    상기 원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 동작은,
    상기 원본 파일에 포함된 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 상기 제1 영상 청크들 중 n 번째 제1 영상 청크 및 상기 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별하는 동작 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -;
    상기 n 번째 제1 영상 청크 및 상기 n 번째 제1 음성 청크를 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정하는 동작 -; 및
    상기 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 상기 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 -
    을 포함하는, 스트리밍 서비스 송신 방법.
  4. 제3항에 있어서,
    상기 원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 동작은,
    상기 제1 경량형 ISO 파일 내에서의 상기 n 번째 HTTP 청크의 위치를 나타내는 n 번째 청크 옵셋을 계산하는 동작
    을 더 포함하고,
    상기 제1 경량형 ISO 파일을 생성하는 동작은 상기 n 번째 청크 옵셋을 사용함으로써 상기 n 번째 HTTP 청크를 상기 제1 경량형 ISO 파일 내에 배치하는, 스트리밍 서비스 송신 방법.
  5. 제1항에 있어서,
    제2 경량형 ISO 파일에 대한 요청을 상기 단말로부터 수신하는 동작;
    상기 원본 파일에 기반하여 제2 경량형 ISO 파일을 생성하는 동작; 및
    상기 제2 경량형 ISO 파일을 스트리밍을 통해 상기 단말로 전송하는 동작
    을 더 포함하고, 상기 제2 경량형 ISO 파일은 하나 이상의 제2 영상 청크들 및 하나 이상의 제2 음성 청크들을 포함하며, 상기 제2 경량형 ISO 파일 내의 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 인터리브된, 스트리밍 서비스 송신 방법.
  6. 제5항에 있어서,
    상기 하나 이상의 제2 영상 청크들은 상기 제2 경량형 ISO 파일에 대한 요청이 수신되었을 때 상기 하나 이상의 제1 영상 청크들 중 상기 제1 경량형 ISO 파일의 스트리밍 서비스에 의해 상기 단말로 전송되지 않은 미전송된 제1 영상 청크들에 대응하는 영상 청크들이고, 상기 하나 이상의 제2 음성 청크들은 상기 제2 경량형 ISO 파일에 대한 요청이 수신되었을 때 상기 하나 이상의 제1 음성 청크들 중 상기 제1 경량형 ISO 파일의 스트리밍 서비스에 의해 상기 단말로 전송되지 않은 미전송된 제1 영상 음성들에 대응하는 영상 청크들인, 스트리밍 서비스 송신 방법.
  7. 제5항에 있어서,
    상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 경량형 ISO 파일에 대한 제1 품질 정보를 포함하고, 상기 제2 경량형 ISO 파일에 대한 요청은 상기 제2 경량형 ISO 파일에 대한 제2 품질 정보를 포함하고, 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들이고, 상기 제2 영상 청크들은 상기 제2 품질 정보에 대응하는 영상의 청크들이고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들이고, 상기 제2 음성 청크들은 상기 제2 품질 정보에 대응하는 음성의 청크들인, 스트리밍 서비스 송신 방법.
  8. 제7항에 있어서,
    상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제2 영상 청크들은 동일한 내용의 영상의 상이한 품질을 갖는 청크들인, 스트리밍 서비스 송신 방법.
  9. 제5항에 있어서,
    상기 원본 파일에 기반하여 제2 경량형 ISO 파일을 생성하는 동작은,
    상기 원본 파일에 포함된 제2 HTTP 청크 포인터들 중 n 번째 제2 HTTP 청크 포인터가 가리키는 상기 제2 영상 청크들 중 n 번째 제2 영상 청크 및 상기 제2 음성 청크들 중 n 번째 제2 음성 청크를 식별하는 동작 - n은 m 이상 제2 영상 청크들의 개수 이하의 값임, m은 상기 제2 경량형 ISO 파일에 대한 요청이 수신되었을 때 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크 중 스트리밍 서비스를 통해 상기 단말로 전송되지 않은 최초의 상기 제1 영상 청크의 인덱스임 -;
    상기 n 번째 제2 영상 청크 및 상기 n 번째 제2 음성 청크를 제2 HTTP 청크들 중 n 번째 제2 HTTP 청크에 포함될 청크로 결정하는 동작; 및
    상기 하나 이상의 제2 HTTP 청크들을 순차적으로 포함하는 제2 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 상기 제2 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 -
    을 포함하는, 스트리밍 서비스 송신 방법.
  10. 제1 경량형 ISO 파일에 대한 요청을 단말로부터 수신하는 수신부;
    원본 파일에 기반하여 제1 경량형 ISO 파일을 생성하는 경량형 ISO 파일 생성부; 및
    상기 제1 경량형 ISO 파일을 스트리밍을 통해 상기 단말로 전송하는 전송부
    를 포함하고, 상기 경량형 ISO 파일 생성부는 상기 제1 경량형 ISO 파일 내에 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 인터리브로 포함시키는, 스트리밍 서비스 송신 장치.
  11. 제1 경량형 ISO 파일에 대한 요청을 서버로 전송하는 동작;
    원본 파일에 기반하여 생성된 제1 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작;
    제2 경량형 ISO 파일에 대한 요청을 상기 서버로 전송하는 동작; 및
    상기 원본 파일에 기반하여 생성된 제2 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작;
    을 포함하고, 상기 제1 경량형 ISO 파일은 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 상기 제2 경량형 ISO 파일은 하나 이상의 제2 영상 청크들 및 하나 이상의 제2 음성 청크들을 포함하며, 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 인터리브되고, 상기 제2 경량형 ISO 파일 내의 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 인터리브된, 스트리밍 서비스 수신 방법.
  12. 제11항에 있어서,
    상기 제1 경량형 ISO 파일에 대한 품질을 나타내는 제1 품질 정보를 생성하는 동작; 및
    상기 제2 경량형 ISO 파일에 대한 품질을 나타내는 제2 품질 정보를 생성하는 동작;
    을 더 포함하고,
    상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 품질 정보를 포함하고, 상기 제2 경량형 ISO 파일에 대한 요청은 상기 제2 품질 정보를 포함하고, 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들이고, 상기 제2 영상 청크들은 상기 제2 품질 정보에 대응하는 영상의 청크들이고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들이고, 상기 제2 음성 청크들은 상기 제2 품질 정보에 대응하는 음성의 청크들인, 스트리밍 서비스 수신 방법.
  13. 제1 경량형 ISO 파일에 대한 요청을 서버로 전송하는 동작;
    원본 파일에 기반하여 생성된 제1 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작;
    제2 경량형 ISO 파일에 대한 요청을 상기 서버로 전송하는 동작; 및
    상기 원본 파일에 기반하여 생성된 제2 경량형 ISO 파일을 스트리밍을 통해 상기 서버로부터 수신하는 동작;
    을 수행하고, 상기 제1 경량형 ISO 파일은 하나 이상의 제1 영상 청크들 및 하나 이상의 제1 음성 청크들을 포함하며, 상기 제2 경량형 ISO 파일은 하나 이상의 제2 영상 청크들 및 하나 이상의 제2 음성 청크들을 포함하며, 상기 제1 경량형 ISO 파일 내의 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 인터리브되고, 상기 제2 경량형 ISO 파일 내의 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 인터리브된, 스트리밍 서비스 수신 장치.
  14. 제11항에 있어서,
    상기 제1 경량형 ISO 파일에 대한 품질을 나타내는 제1 품질 정보를 생성하는 동작; 및
    상기 제2 경량형 ISO 파일에 대한 품질을 나타내는 제2 품질 정보를 생성하는 동작;
    을 더 수행하고,
    상기 제1 경량형 ISO 파일에 대한 요청은 상기 제1 품질 정보를 포함하고, 상기 제2 경량형 ISO 파일에 대한 요청은 상기 제2 품질 정보를 포함하고, 상기 제1 영상 청크들은 상기 제1 품질 정보에 대응하는 영상의 청크들이고, 상기 제2 영상 청크들은 상기 제2 품질 정보에 대응하는 영상의 청크들이고, 상기 제1 음성 청크들은 상기 제1 품질 정보에 대응하는 음성의 청크들이고, 상기 제2 음성 청크들은 상기 제2 품질 정보에 대응하는 음성의 청크들인, 스트리밍 서비스 수신 장치.
  15. 하나 이상의 제1 영상 청크들, 하나 이상의 제1 음성 청크들 및 하나 이상의 제1 HTTP 청크 포인터들을 포함하는 원본 파일을 사용하여 스트리밍 서비스를 위한 멀티미더어 파일을 생성하는 방법에 있어서,
    상기 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 상기 제1 영상 청크들 중 n 번째 제1 영상 청크 및 상기 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별하는 동작 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -;
    상기 n 번째 제1 영상 청크 및 상기 n 번째 제1 음성 청크를 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정하는 동작 -; 및
    상기 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들은 상기 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 -
    을 포함하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  16. 제15항에 있어서,
    상기 제1 경량형 ISO 파일 내에서의 상기 n 번째 제1 HTTP 청크의 위치를 나타내는 n 번째 제1 청크 옵셋을 계산하는 동작
    을 더 포함하고,
    상기 제1 경량형 ISO 파일을 생성하는 동작은 상기 n 번째 제1 청크 옵셋을 사용함으로써 상기 n 번째 제1 HTTP 청크를 상기 제1 경량형 ISO 파일 내에 배치하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  17. 제15항에 있어서,
    상기 원본 파일로부터 상기 제1 HTTP 청크 포인터들을 제거하는 동작
    을 더 포함하고, 상기 제1 경량형 ISO 파일은 상기 원본 파일을 수정함으로써 생성되는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  18. 제15항에 있어서,
    상기 제1 경량형 ISO 파일은 moov 박스 및 mdat 박스를 포함하고, 상기 mdat 박스는 상기 제1 HTTP 청크들을 포함하고, 상기 moov 박스는 제1 영상 트랙 및 제1 음성 트랙을 포함하고, 상기 제1 영상 트랙 및 상기 제1 음성 트랙은 상기 제1 HTTP 청크들을 참조하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  19. 제15항에 있어서,
    상기 원본 파일은 moov 박스 및 mdat 박스를 포함하고, 상기 mdat 박스는 상기 제1 영상 청크들 및 상기 제1 음성 청크들을 포함하고, 상기 moov 박스는 제1 영상 트랙, 제1 음성 트랙 및 제1 HTTP 힌트 트랙을 포함하고, 상기 제1 영상 트랙은 상기 제1 영상 청크들을 참조하고, 상기 제1 음성 트랙은 상기 제1 음성 청크들을 참조하고, 상기 제1 HTTP 힌트 트랙은 상기 청크 옵셋들을 참조하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  20. 제15항에 있어서,
    상기 원본 파일은 제2 영상 청크들을 포함하며,
    상기 제1 영상 청크들이 나타내는 제1 영상 및 상기 제2 영상 청크들이 나타내는 제2 영상은 상이한 품질을 갖고,
    상기 제1 영상은 상기 제1 경량형 ISO 파일에 대해 요청된 품질에 대응하는 품질을 갖는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  21. 제20항에 있어서,
    상기 원본 파일로부터 상기 제2 영상 청크들을 제거하는 동작
    을 더 포함하고, 상기 제1 경량형 ISO 파일은 상기 원본 파일을 수정함으로써 생성되는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  22. 제20항에 있어서,
    상기 원본 파일은 제2 HTTP 청크 포인터들을 포함하고,
    상기 제2 HTTP 청크 포인터들 중 n 번째 제2 HTTP 청크 포인터가 가리키는 상기 제2 영상 청크들 중 n 번째 제2 영상 청크 및 상기 제1 음성 청크들 중 n 번째 상기 제1 음성 청크를 식별하는 동작 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -;
    상기 n 번째 제2 영상 청크 및 상기 n 번째 제2 음성 청크를 제2 HTTP 청크들 중 n 번째 제2 HTTP 청크에 포함될 청크로 결정하는 동작 -; 및
    상기 하나 이상의 제2 HTTP 청크들을 순차적으로 포함하는 제2 경량형 ISO 파일을 생성하는 동작 - 상기 하나 이상의 제2 영상 청크들 및 상기 하나 이상의 제2 음성 청크들은 상기 제2 경량형 ISO 파일 내에 순차적으로 인터리브로 배치됨 -
    을 더 포함하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 방법.
  23. 하나 이상의 제1 영상 청크들, 하나 이상의 제1 음성 청크들 및 하나 이상의 제1 HTTP 청크 포인터들을 포함하는 원본 파일을 사용하여 스트리밍 서비스를 위한 멀티미디어 파일을 생성하는 장치에 있어서,
    상기 제1 HTTP 청크 포인터들 중 n 번째 제1 HTTP 청크 포인터가 가리키는 상기 제1 영상 청크들 중 n 번째 제1 영상 청크 및 상기 제1 음성 청크들 중 n 번째 제1 음성 청크를 식별하는 HTTP 청크 식별부 - n은 1 이상 제1 영상 청크들의 개수 이하의 값임 -;
    상기 n 번째 제1 영상 청크 및 상기 n 번째 제1 음성 청크를 제1 HTTP 청크들 중 n 번째 제1 HTTP 청크에 포함될 청크로 결정하는 HTTP 청크 결정부 -; 및
    상기 하나 이상의 제1 HTTP 청크들을 순차적으로 포함하는 제1 경량형 ISO 파일을 생성하는 파일 생성부
    를 포함하고, 상기 파일 생성부는 상기 하나 이상의 제1 영상 청크들 및 상기 하나 이상의 제1 음성 청크들을 상기 제1 경량형 ISO 파일 내에 순차적으로 인터리브로 배치하는, 스트리밍 서비스를 위한 멀티미디어 파일 생성 장치.
KR1020110030807A 2010-07-16 2011-04-04 스트리밍 서비스 송/수신 장치 및 방법 KR20120008432A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/810,600 US20130124699A1 (en) 2010-07-16 2011-07-15 Apparatus and method for transceiving a streaming service
PCT/KR2011/005221 WO2012008792A2 (ko) 2010-07-16 2011-07-15 스트리밍 서비스 송/수신 장치 및 방법

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US36516310P 2010-07-16 2010-07-16
US61/365,163 2010-07-16
US36584910P 2010-07-20 2010-07-20
US61/365,849 2010-07-20

Publications (1)

Publication Number Publication Date
KR20120008432A true KR20120008432A (ko) 2012-01-30

Family

ID=45613442

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110030807A KR20120008432A (ko) 2010-07-16 2011-04-04 스트리밍 서비스 송/수신 장치 및 방법

Country Status (2)

Country Link
US (1) US20130124699A1 (ko)
KR (1) KR20120008432A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924581B1 (en) * 2012-03-14 2014-12-30 Amazon Technologies, Inc. Managing data transfer using streaming protocols
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
KR101819193B1 (ko) * 2016-11-17 2018-01-16 (주)판도라티비 실시간 파일 포맷 변환 스트리밍 서비스 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004077790A1 (en) * 2003-02-26 2004-09-10 Koninklijke Philips Electronics N.V. System for broadcasting multimedia content
US7237061B1 (en) * 2003-04-17 2007-06-26 Realnetworks, Inc. Systems and methods for the efficient reading of data in a server system
KR100524770B1 (ko) * 2003-09-17 2005-10-31 엘지전자 주식회사 주문형 비디오 서비스 장치 및 방법
AP2923A (en) * 2007-05-04 2014-05-31 Nokia Corp Media stream recording into a reception hint trackof a multimedia container file
US20080294691A1 (en) * 2007-05-22 2008-11-27 Sunplus Technology Co., Ltd. Methods for generating and playing multimedia file and recording medium storing multimedia file
US20100250633A1 (en) * 2007-12-03 2010-09-30 Nokia Corporation Systems and methods for storage of notification messages in iso base media file format
US20090177942A1 (en) * 2008-01-09 2009-07-09 Nokia Corporation Systems and methods for media container file generation
US8099476B2 (en) * 2008-12-31 2012-01-17 Apple Inc. Updatable real-time or near real-time streaming
US8566393B2 (en) * 2009-08-10 2013-10-22 Seawell Networks Inc. Methods and systems for scalable video chunking
US8166191B1 (en) * 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
WO2011050831A1 (en) * 2009-10-26 2011-05-05 Telefonaktiebolaget L M Ericsson (Publ) Client entity, network entity and data replacement entity
CN107911332B (zh) * 2009-11-04 2021-01-08 阿莫泰克有限公司 媒体内容流播的方法、系统和计算机可读介质
US8510375B2 (en) * 2009-12-11 2013-08-13 Nokia Corporation Apparatus and methods for time mapping media segments in streaming media files
WO2011159602A1 (en) * 2010-06-14 2011-12-22 Thomson Licensing Method and apparatus for encapsulating coded multi-component video

Also Published As

Publication number Publication date
US20130124699A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
US11924526B2 (en) Segment types as delimiters and addressable resource identifiers
RU2622621C2 (ru) Система и способ для потоковой передачи воспроизводимого контента
CN107409234B (zh) 基于lct利用dash格式的基于文件格式的流式传输
KR101703179B1 (ko) 미디어 스트리밍 동안 적응 세트들 간의 스위칭
CN107251562B (zh) 检索媒体数据的方法及装置、发信媒体信息的方法及装置
CN108600784B (zh) 向客户端设备流传输媒体内容的方法、装置及存储介质
CN108141455B (zh) 用于媒体数据的流式发射的期限信令
EP2666288B1 (en) Apparatus and method for storing and playing content in a multimedia streaming system
CN110099288B (zh) 发送媒体数据的方法及装置
CN110832872B (zh) 使用用于文件格式方框的通用描述符处理媒体数据
JP2016007026A (ja) 部分化を利用した適応的なストリーミング方法及びその装置
CN112106382B (zh) 检索媒体数据的方法、设备、存储介质
KR20170089863A (ko) 멀티미디어 및 파일 전송을 위한 전송 인터페이스
KR20160030133A (ko) 실시간 전송 프로토콜 기반의 방송 시스템에서 미디어 방송 신호의 송수신 방법 및 장치
US10887645B2 (en) Processing media data using file tracks for web content
TW201711431A (zh) 超級本文傳輸協定上動態自適應串流客戶經驗品質度量之中間軟體傳遞
CN109155876B (zh) 一种检索视频数据的方法、装置、设备及可读存储媒体
WO2019178148A1 (en) Processing interactivity events for streaming media data
KR20160110424A (ko) Dash의 강건한 라이브 동작
CN109076264B (zh) 样本条目和随机存取
KR20230030589A (ko) 스위칭 세트들을 갖는 어드레스가능한 리소스 인덱스 트랙을 포함하는 미디어 데이터의 스트리밍
KR102137858B1 (ko) 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램
KR20120008432A (ko) 스트리밍 서비스 송/수신 장치 및 방법
KR20220157957A (ko) 미디어 데이터의 네트워크 스트리밍을 위한 데이터의 청크들의 가용성의 결정
Alnesjö Chunked DASH in JavaScript

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid