KR20120080214A - 다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치 - Google Patents

다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치 Download PDF

Info

Publication number
KR20120080214A
KR20120080214A KR1020127010859A KR20127010859A KR20120080214A KR 20120080214 A KR20120080214 A KR 20120080214A KR 1020127010859 A KR1020127010859 A KR 1020127010859A KR 20127010859 A KR20127010859 A KR 20127010859A KR 20120080214 A KR20120080214 A KR 20120080214A
Authority
KR
South Korea
Prior art keywords
media file
transport protocol
protocol request
fragments
processor
Prior art date
Application number
KR1020127010859A
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 노키아 코포레이션
Publication of KR20120080214A publication Critical patent/KR20120080214A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/764Media network packet handling at the destination 
    • 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
    • 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/643Communication protocols
    • 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
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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 

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

동적 미디어 스트리밍을 용이하게 하는 방법, 장치 시스템 및 컴퓨터 프로그램 제품이 제공된다. 이와 관련하여, 서버는, 미디어 파일의 적어도 일부가 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜을 수신할 수 있다. 응답으로, 콘텐츠 소비 디바이스로 전송된 복수의 프래그먼트는 전송 프로토콜 요청에 기초하여 결정될 수 있고, 다음에 복수의 프래그먼트는 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로 전송될 수 있다.

Description

다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치{SYSTEM, METHOD AND APPARATUS FOR DYNAMIC MEDIA FILE STREAMING}
본 발명의 실시예는 일반적으로 통신 기술에 관한 것으로, 보다 상세하게는 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치에 관한 것이다.
네트워킹 기술 및 그 네트워킹 기술을 이용하는 컴퓨팅 디바이스는, 정보 전달의 용이성 및 사용자에 대한 편의성을 계속해서 수월하게 하는 방식으로 진화되었다. 이와 관련하여, 네트워크의 확장 및 네트워크 컴퓨팅 디바이스의 진화는 충분한 프로세싱 전력, 저장 공간 및 네트워크 대역폭을 제공하여 증가하는 복잡한 디지털 미디어 파일의 전달 및 재생을 가능하게 하였다. 따라서, 인터넷 텔레비전, 비디오 공유 등이 인기를 얻고 있다.
디지털 미디어 파일의 전달 및 재생을 용이하게 하기 위해, 디지털 미디어 파일은 서버에서, 컴퓨팅 디바이스 같은 콘텐츠 소비 디바이스로 스트리밍될 수 있다. 미디어 파일 스트림은 미디어 파일을 복수의 프래그먼트(fragment)로 프래그먼팅함으로써 수용될 수 있다. 콘텐츠 소비 장치는 미디어 파일의 프래그먼트를 요청하고, 다음에, 서버는 그 요청에 응답하여 그 프래그먼트를 콘텐츠 소비 디바이스로 전송할 수 있다. 하나의 프래그먼트의 전송 및 수신에 이어, 콘텐츠 소비 디바이스는 서버로부터 또 다른 프그래먼트를 요청할 수 있다. 이 프로세스는 미디어 파일이 서버로부터 콘텐츠 소비 디바이스로 한번에 하나의 프래그먼트를 전송하면서 반복될 수 있다.
따라서, 일 예의 실시예에 따라, HTTP(hypertext transport protocol)와 같은 전송 프로토콜을 사용하여 미디어 파일의 스티리밍을 용이하게 하는 시스템, 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 일 실시예에서, 콘텐츠 소비 디바이스는, 서버가 미디어 파일의 다수의 프래그먼트를 전송하도록 야기하는 전송 프로토콜 요청을 발행할 수 있다. 전송 프로토콜 요청에 응답하여 다수의 프래그먼트를 전송함으로써, 미디어 파일은, 서버와 콘텐츠 소비 디바이스 간에 전송되는 데이터의 보다 낮은 요청 오버헤드 및 보다 큰 퍼센트가 콘텐츠 자체에 전용되는 보다 효율적인 방식으로 스트리밍될 수 있다. 스트리밍 프로세스의 효율을 더 증가시키기 위해, 두 개 이상의 상이한 유형의 트랙을 식별하는 전송 프로토콜 요청이 발행이 발행되어, 그 전송 프로토콜 요청에 응답하여 두 개 이상의 상이한 종류의 트랙 각각의 복수의 프래그먼트가 제공될 수 있다. 부가하여, 단일 전송 프로토콜에 응답하여 다수의 프래그먼트를 전송하게 되면, 네트워크 조건들의 품질에 따라 미디어 파일을 스트리밍하는 과정에 걸쳐 비트레이트가 보다 원활하게 적응되도록 할 수 있어, 비트레이트에서의 어떤 변화가 시청자를 당황하게 할 수 있다. 더욱이, 전송 프로토콜 요청이 다운로드될 특정 프래그먼트를 지정할 필요없이 다운로드될 미디어 파일의 부분을 식별하게 함으로써, 서버는 이용가능한 프래그먼트의 인덱스 파일을 초기에 제공할 필요가 없고, 그 자체로서, 전송 프로토콜 요청에 응답하여 프래그먼트들을 동적으로 생성할 수 있다.
일 실시예에서, 미디어 파일의 적어도 부분이 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청을 수신하는 단계를 포함하는 방법이 제공된다. 이 실시예의 방법은 또한, 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정한 다음, 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로 복수의 프래그먼트의 전송을 제공한다.
또 다른 실시예에서, 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 프로그램 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함한다. 이 실시예의 컴퓨터 판독가능 프로그램 명령어는, 서버에 의해 실행될 때, 미디어 파일의 적어도 부분이 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청을 수신하도록 구성되는 프로그램 명령어를 포함할 수 있다. 이 실시예의 컴퓨터 판독가능 프로그램 명령어는 또한, 실행될 때, 서버로 하여금, 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정하게 한 다음, 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로 복수의 프래그먼트의 전송을 제공하게 하도록 구성된다.
추가의 실시예에서, 장치가 제공된다. 이 실시예의 장치는 적어도 하나의 프로세서, 및 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함한다. 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리는, 적어도 하나의 프로세서와 동작하면서, 장치로 하여금, 미디어 파일의 적어도 부분이 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청을 수신하게 하도록 구성된다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정한 다음, 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로 복수의 프래그먼트의 전송을 제공하도록 구성된다.
또 다른 실시예에서, 미디어 파일의 적어도 부분이 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청을 수신하는 수단을 포함하는 장치가 제공된다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정하는 수단, 및 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로 복수의 프래그먼트의 전송을 제공하는 수단을 포함한다.
또 다른 실시예에서, 미디어 파일의 적어도 부분이 서버로부터 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청의 발행을 지시하는 단계를 포함하는 방법이 제공된다. 이 실시예의 방법은 또한, 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하는 단계를 포함한다.
또 다른 실시예에서, 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 프로그램 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함한다. 이 실시예의 컴퓨터 판독가능 프로그램 명령어는, 프로세서에 의해 실행될 때, 미디어 파일의 적어도 부분이 서버로부터 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청의 발행을 지시하도록 구성되는 프로그램 명령어를 포함한다. 이 실시예에서의 컴퓨터 판독가능 프로그램 명령어는 또한, 프로세서에 의해 실행될 때, 통신 디바이스로 하여금 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하게 하도록 구성된다.
추가의 실시예에서, 장치가 제공된다. 이 실시예의 장치는 적어도 하나의 프로세서, 및 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함한다. 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리는, 적어도 하나의 메모리와 동작하면서, 장치로 하여금, 미디어 파일의 적어도 부분이 서버로부터 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청의 발행을 지시하게 하도록 구성된다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신한다.
또 다른 실시예에서, 미디어 파일의 적어도 부분이 서버로부터 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청의 발행을 지시하는 수단을 포함하는 장치가 제공된다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하는 수단을 포함한다.
또 다른 실시예에서, 서버 및 콘텐츠 소비 디바이스를 포함하고, 서버로부터 콘텐츠 소비 디바이스로의 미디어 파일 스트리밍을 지원하도록 구성된 시스템이 제공된다. 이 실시예에서, 콘텐츠 소비 디바이스는 미디어 파일의 적어도 부분이 서버로부터 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청의 발행을 지시하고, 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하도록 구성된다. 부가하여, 이 실시예에서의 서버는 미디어 파일의 적어도 부분이 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 표시하는, 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청을 수신하도록 구성된다. 이 실시예의 서버는 또한, 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정한 다음, 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로 복수의 프래그먼트의 전송을 제공하도록 구성된다.
전술한 개요는, 본 발명의 몇몇 양상의 기본적인 이해를 제공하기 위해 본 발명의 몇몇의 예시적인 실시예를 요약하는 목적으로 단지 제공된다. 따라서, 전술한 예시적인 실시예는 단지 예이고 본 발명의 사상 또는 범위를 어떠한 방식으로든 좁히는 것으로 해석되어서는 안된다는 것이 이해될 것이다. 본 발명의 범위는 많은 잠재적인 실시예를 포함하며, 여기서 요약된 것에 부가하여 그들 실시예 중 부분이 추가로 설명될 것이다.
본 발명의 실시예를 일반적인 용어로 설명하였지만, 이제 첨부 도면을 참조할 것이고, 이들 첨부 도면은 반드시 축적을 맞출 필요는 없다.
도 1은 본 발명의 예시적 실시예에 따라 전송 프로토콜을 이용하여 미디어 파일의 스트리밍을 용이하게 하는 시스템을 도시한다.
도 2는 본 발명의 예시적인 실시예에 따른 이동 단말기의 개략 블록도이다.
도 3은 본 발명의 하나의 예시적인 실시예에 따라 미디어 파일의 스트리밍을 용이하게 하는 예시적인 방법에 다른 흐름도이다.
도 4는 본 발명의 하나의 예시적인 실시예에 따라 포맷팅될 수 있는 ISOFF-부합 구조 미디어 콘텐츠를 도시한다.
도 5 내지 도 8은 본 발명의 예시적인 실시예에 따라 미디어 파일의 스트리밍을 용이하게 하는 예시적인 방법에 따른 추가의 흐름도를 도시한다.
이후, 본 발명의 몇몇 실시예가 본 발명의 전부가 아닌 몇몇 실시예가 도시된 첨부 도면을 참조하여 상세히 설명된다. 사실상, 여기서 설명되고 도시된 실시예에 부가하여 본 발명의 다른 많은 잠재적인 실시예가 다른 많은 형태로 구체화될 수 있다는 것이 이해되어야 한다. 본 발명의 실시예는 여기서 설명된 실시예로 한정되는 것으로 해석되어서는 안되고, 오히려, 여기서 설명된 실시예는 본 개시가 적용가능한 법적 요구조건을 만족하도록 제공된다. 유사한 참조부호는 전체에 걸쳐 유사한 구성요소를 지칭한다.
여기서 사용되는 바와 같이, 용어 '회로'는 (a) 하드웨어만으로 회로 구현(예를 들면, 아날로그 회로 및/또는 디지털 회로로 구현); (b) 회로, 장치가 여기서 설명된 하나 이상의 기능을 수행하도록 함께 동작하는 하나 이상의 컴퓨터 판독가능 메모리에 저장된 소프트웨어 및/또는 펌웨어 명령어를 포함하는 컴퓨터 프로그램 제품(들)의 조합; 및 (c) 소프트웨어 또는 펌웨어가 물리적으로 존재하지 않더라도 동작을 위해 소프트웨어 또는 펌웨어를 요구하는, 예를 들면, 마이크로프로세서(들) 또는 마이크로프로세서(들)의 부분와 같은 회로를 지칭한다. 이러한 '회로'의 정의는 임의의 청구항을 포함하여 여기의 이 용어의 모든 사용에 적용한다. 추가의 예로서, 여기서 사용되는 바와 같이, 용어 '회로'는 또한 하나 이상의 프로세서 및/또는 그들의 부분(들) 및 수반하는 소프트웨어 및/또는 펌웨어를 포함하는 구현예를 포함한다. 또 다른 예로서, 여기서 사용되는 바와 같이 용어 '회로'는 또한, 예를 들면, 모바일 전화기용의 기저대역 집적 회로 또는 애플리케이션 프로세서 집적 회로 또는 서버의 유사한 집적 회로, 셀룰러 네트워크, 기타 네트워크 디바이스, 및/또는 기타 컴퓨팅 디바이스를 포함한다.
몇몇 멀티미디어 서버는 미디어 스트리밍을 위해 (제어 프로토콜로서 실시간 스트리밍 프로토콜(real-time streaming protocol(RTSP)와 함께) 사용자 데이터그램 프로토콜(user datagram protocol(UDP)) 위의 실시간 전송 프로토콜(real-time transport protocol(RTP))을 사용한다. 이와 관련하여, UDP는 애플리케이션 어드레싱 및 손상(corruption) 검출과 같은 기본적인 전송 기능을 제공한다. RTP는, 손실 검출, 패킷 재순서화(re-odering), 동기화, 통계 데이터 수집, 및 세션 참가자 식별과 같은 미디어 전송 관련 기능을 갖는 UDP를 구현한다. 그러나, UDP위의 RTP(RTP/UDP)는 빌트인 혼잡 제어 및/또는 에러 정정 기능을 제공하지 못한다. RTP/UDP는 애플리케이션 레벨에서 필요한 것에 기초하여(on a need basis) 혼잡 제어 및/또는 에러 정정 기능을 구현하기 위한 충분한 정보를 수집할 수 있다. 그러나, 모바일 및 인터넷의 인기가 증가함에 따라, 적절한 레이트 제어 메커니즘을 통해 양호한 네트워크 거동을 유지하는 것이 더 중요한 우선순위가 되고 있다. 부가하여, RTP/UDP기반 스트리밍 애플리케이션에서, 스트리밍 미디어의 송신기 및/또는수신기는, 적절히 구성되지 않는다면, 송신기와 수신기 사이의 스트리밍 경로에 위치한 네트워크 어드레스 변환(network address translation) 디바이스(들) 및/또는 방화벽(들)을 트래버싱(traverse)하는 것을 실패할 수 있다.
HTTP(hypertext transfer protocol) 스트리밍 미디어 전달은 몇몇 애플리케이션에서 RTSP/TRP기반 스트리밍을 대체하고 있다. HTTP가 실시간 미디어의 전달용으로 설계되지는 않았더라도, HTTP는 스트리밍 미디어 콘텐츠 전달 애플리케이션용으로 매력적이라는 이점을 제공한다. 이와 관련하여, HTTP는 셋업 및 배치하는(deploy) 것이 상대적으로 용이하다. 부가하여, HTTP 미디어 전달은 RTSP/RTP기반 스트리밍의 사용을 방해하는 NAT 및 방화벽 트래버스 이슈를 극복한다. 더욱이, HTTP는 효율적인 데이터 분배를 가능하게 하는 (HTTP 캐시 같은) 매우 강건한 인프라구조로 폭넓게 배치되어 있다.
HTTP는 하이퍼링크된 텍스트 문서들의 전달을 위해 배치된 애플리케이션 레벨 전송 프로토콜이다. 이 프로토콜의 용도는 상이한 유형의 파일 및 데이터의 파일의 전달을 또한 커버하도록 진화화되었다. HTTP는 요청/응답 모델을 사용하여 웹 서버로부터 원격 자원을 검색한다. 클라이언트는 전형적으로 포트 80에 서버로 전송 프로토콜 접속(예를 들면, 전송 제어 프로토콜(transmission control protocol(TCP) 접속)을 구축하고, HTTP 메시지를 서버와 교환한다. HTTP 메시지는 헤더 부분 및 선택적 보디(body) 부분을 포함한다. 헤더 부분은, 각각 캐리지 리턴/라인 피드(carriage return/line feed) 캐릭터로 종료되는 HTTP 헤더 필드의 시퀀스를 포함할 수 있다. HTTP 메시지 헤더는 빈 라인(empty lne)에 의해 HTTP 메시지 보디로부터 분리될 수 있다. HTTP 헤더 필드는 인간이 판독가능한 텍스트 포맷으로 제공된다. URL(Uniform Resource Locator) 또는 URI(Uniform Resource Identifier)를 사용하여 HTTP 클라이언트에 의해 검색된 자원을 식별하고 로케이팅한다. URI는 프로토콜 식별자, FQDN(fully qualified domain name), 요청된 자원으로의 경로, 및 선택적으로 질의 스트링을 포함한다.
그러나, HTTP 상의 미디어 스트리밍은, 예를 들면, 상대적으로 높은 요청 오버헤드에 기인하여 여전히 원하는 만큼 효율적인 것은 아니다. 이와 관련하여, 스트리밍 미디어에 앞서, 콘텐츠 소비 디바이스는 일반적으로 서버로부터 인덱스 파일을 가져온다. 인덱스 파일은 미디어 파일의 모든 콘텐츠 프래그먼트와 연관된 하나 이상의 식별자의 리스트를 포함한다.
미디어 파일의 전체 길이에 비해, 2 내지 4초와 같이, 콘텐츠 프래그먼트가 상대적으로 짧기 때문에, 인덱스 파일은 크기조정이 가능하고, 특히, 인덱스 파일이 일반적으로, 예를 들면, 라이브 콘텐츠에 대해 완전히 빈번하게 업데이트되고 재전송될 수 있기 때문에, 콘텐츠 소비 디바이스로의 자신의 전송은 원하는 것보다 더 많은 대역폭을 소비할 수 있다. 더욱이, 인덱스 파일은 일반적으로 우선 파싱되고 콘텐츠 소비 디바이스에 의해 프로세싱되어야 하는 XML(extensible markup language) 문서의 형태로 제공된다. 인덱스 파일의 파싱은 또한 원하는 것보다 더 많은 시간 및 자원을 소비할 수 있고, 또한 미디어 파일 스트리밍과 연관된 오버헤드를 바람직하지 않게 증가시킬 수 있다. 모든 콘텐츠 프래그먼트와 연관된 인덱스 파일 리스트 식별자의 진보된 규정(advanced provision)에 연관된 추가적인 이슈는 인덱스 파일의 규정이 미디어 파일이 이미 프래그먼트로 포맷되었다는 것을 가정하는 것이다. 그러나, 스포츠 이벤트 또는 라이브 뮤지컬 공연과 같은 라이브 또는 진행중인 이벤트를 캡처하는 미디어 파일, 또는 주문형 미이어 파일과 같은 몇몇 유형의 미디어 파일에 대하여, 미디어 파일은 프래그먼트로 미리 포맷될 수 없고, 사실상, 인덱스 파일 컴파일되는 시간에 존재하지 않을 수 있다.
서버로부터 콘텐츠 소비 디바이스로 인덱스 파일을 전송한 다음, 콘텐츠 소비 디바이스는 미디어 파일의 특정 프래그먼트에 대한 요청을 발행할 수 있다. 그러면, 서버는 요청된 미디어 파일의 프래그먼트를 제공하고, 콘텐츠 소비 디바이스에 의한 프래그먼트의 수신 후에만 콘텐츠 소비 디바이스는 미디어 파일의 또 다른 프래그먼트를 요청할 수 있다. 미디어 파일에 의해 요청되고 프래그먼트별로 전달되는 이 프로세스는 미디어 파일의 원하는 부분이 콘텐츠 소비 디바이스로 전송되었을 때까지 매우 많은 회수로 반복될 수 있다. 미디어 파일의 프래그먼트에 대한 반복되는 요청은 미디어 파일 스트리밍과 연관된 오버헤드를 바람직하지 않게 증가시킨다. 부가하여, 콘텐츠 소비 디바이스가 동일한 TCP 접속을 통해 다음 프래그먼트에 대한 요청을 발행하기 전에 직전 프래그먼트의 수신을 대기해야 하기 때문에, 프래그먼트 중 하나가 잘못 가게 되거나 또는 콘텐츠 소비 디바이스에 의해 적절히 수신되지 못하는 경우 미디어 파일 스트리밍 프로세스에 지연이 끼어들 수 있다. 데이터 프래그먼트를 수신할 때의 지연은 콘텐츠 소비 디바이스에서 미디어 콘텐츠의 재생을 중단(interruption)을 초래할 수 있다.
미디어 파일의 프래그먼트는 복수의 상이한 레이트로 서버로부터 이용가능할 수 있다. 네트워크 조건에 기초하여, 콘텐츠 소비 디바이스는, 예를 들면, 이용가능한 네트워크 대역폭에서이 감소를 조정하기 위해 미디어 콘텐츠의 낮은 비트레이트 트랙으로부터 프래그먼트를 요청함으로써, 자신의 요청을 맞출(tailor) 수 있다. 네트워크 대역폭 또는 네트워크에서의 향상이 검출되면, 콘텐츠 소비 디바이스는 미디어 콘텐츠의 높은 비트레이트 트랙으로부터 프래그먼트를 요청할 수 있다. 이 예에서, 상대적으로 낮은 대역폭과 같은 상대적으로 열악한 네트워크 조건을 검출하는 콘텐츠 소비 디바이스가 더 낮은 비트레이트를 갖는 프래그먼트를 요청할 수 있는 반면, 더 높은 대역폭과 같은 향상된 네트워크 조건을 검출하는 콘텐츠 소비 디바이스는 더 높은 비트레이트를 갖는 프래그먼트를요청할 수 있고 따라서 품질이 향상될 수 있다. 네트워크 조건의 결정은 일반적으로 각각의 요청을 기초로 콘텐츠 소비 디바이스에 의해 수행된다. 그러나, 그러한 요청은 단일 프래그먼트에 대한 것이기 때문에, 콘텐츠 소비 디바이스에는 현재의 네트워크 조건을 측정하는데 충분한 지속기간이 제공되지 않을 수 있다. 더욱이, 비트레이트 및, 따라서, 프래그먼트의 품질은 매 2 내지 4조마다와 같이 매 프래그먼트마다 변할 수 있기 때문에, 디스플레이의 품질에서의 결과적인 변경은 시청자를 당황하게 할 수 있다.
미디어 파일은 복수의 상이한 트랙을 포함할 수 있다. 전술한 바와 같이, 미디어 파일은 비디오 트랙과 같이 동일한 유형의 상이한 트랙을 포함할 수 있지만, 상이한 비트레이트에서 현재 네트워크 조건에 응답하여 비트레이트 적응을 용이하게 할 수 있다. 상이한 유형의 트랙의 예로서, 미디어 파일은 비디오 트랙, 오디오 트랙 및 동일한 미디어 파일에 대한 서브타이틀 트랙을 포함할 수 있다. 종래에, 콘텐츠 소비 디바이스는, 오디오 트랙 프래그먼트에 대해 하나의 요청, 비디오 트랙 프래그먼트에 대해 또 다른 요청, 및 서브타이틀 트랙 프래그먼트에 대해 또 다른 요청과 같이 각각의 상이한 유형의 트랙으로부터의 프래그먼트에 대해 요청을 개별적으로 발행해야만 하곤 한다. 각각의 요청이 직렬 형식으로 발행되어야 하기 때문에, 상이한 유형의 트랙에 대해 개별 요청을 발행해야 하는 필요성은 요청 오버헤드를 더 증가시키고 미디어 파일 스트리밍 프로세스의 효율을 감소시킨다.
따라서, 본 발명의 실시예는 종래의 미디어 스트리밍 기술의 결점들 중 몇몇을 해결할 수 있는 시스템, 방법, 장치 및 컴퓨터 프로그램 제품을 제공한다. 예를 들면, 요청 오버헤드를 감소시키고 미디어 파일 스트리밍 프로세스의 효율을 증가시킬 뿐만 아니라 다른 이점을 제공하기 위해, 다수의 프래그먼트가 단일 전송 프로토콜 요청에 응답하여 서버로부터 콘텐츠 소비 디바이스로 전송되게 하는 본 발명의 실시예에 따른 시스템, 장치, 방법 및 컴퓨터 프로그램 제품이 제공된다. 이와 관련하여, 도 1은 본 발명의 예시적인 실시예에 따라 미디어 파일의 스트리밍을 용이하게 하는 시스템(100)의 블록도를 도시한다. 여기서 사용되는 바와 같이, "예시적"이란 단지 예를 의미하는 것이고, 그에 따라 본 발명에 대한 하나의 예시적인 실시예를 나타내는 것으로 본 발명의 범위 또는 사상을 어떤 방식으로든 좁히는 것으로 해석해서는 안된다. 본 발명의 범위는 여기서 설명되고 도시된 것들에 부가하여 많은 잠재적인 실시예를 포함한다는 것이 이해될 것이다. 따라서, 도 1이 미디어 파일의 스트리밍을 용이하게 하는 시스템의 구성의 일 예를 도시하고 있지만, 본 발명의 실시예를 구현하는데 다수의 다른 구성이 또한 사용될 수 있다. 더욱이, HTTP(hypertext transfer protocol)가 본 발명의 몇몇 실시예에 따라 미디어 파일의 스트리밍을 위해 사용될 수 있는 애플리케이션층 전송 프로토콜의 예로서 사용된다는 것이 이해되어야 한다. 본 발명의 다른 실시예는 HTTP에 부가하여 또는 그 대신 다른 애플리케이션층 전송 프로토콜을 사용하여 미디어 파일을 스트리밍하도록 구성된다.
도 1은 본 발명의 예시적인 실시예에 따라, HTTP(hypertext transfer protocol) 같은 애플리케이션층 전송 프로토콜을 사용하여 미디어 파일을 스트리밍하는 시스템(100)의 블록도를 도시한다. 예시적인 실시예에서, 시스템(100)은 콘텐츠 소비 디바이스(102)와 서버(104)를 포함한다. 콘텐츠 소비 디바이스(102)와 서버)(104)는 네트워크(108)를 통해 통신하도록 구성된다. 예를 들면, 네트워크(108)는 하나 이상의 유선 네트워크, 하나 이상의 무선 네트워크, 또는 그들의 몇몇의 조합을 포함한다. 네트워크(108)는 네트워크 오퍼레이터에 의해 동작되는 PLMN(public land mobile network)을 포함할 수 있다. 이와 관련하여, 네트워크(108)는, 예를 들면, 3GPP 표준에 따르는 것과 같이 셀룰러 네트워크 액세스를 제공하는 오퍼레이터 네트워크를 포함한다. 네트워크(108)는 추가적으로 또는 대안으로 인터넷을 포함할 수 있다.
콘텐츠 소비 디바이스(102)는 서버(104)로부터 네트워크(108)를 거쳐 콘텐츠를 액세스하도록 구성된 임의의 디바이스를 포함할 수 있다. 예를 들면, 콘텐츠 소비 디바이스(102)는 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 모바일 단말기, 모바일 컴퓨터, 모바일 폰, 모바일 통신 디바이스, 게임 디바이스, 디지털 카메라/캠코더, 오디오/비디오 플레이어, 텔레비전 디바이스, 라디오 수신기, 디지털 비디오 레코더, 포지셔닝 디바이스, 그들의 임의의 조합 등을 포함한다.
예시적인 실시예에서, 콘텐츠 소비 디바이스(102)는 도 2에 도시된 바와 같이 모바일 단말기로서 구체화된다. 이와 관련하여, 도 2는 본 발명의 실시예에 따라 콘텐츠 소비 디바이스(102)의 일 실시예를 나타내는 모바일 단말기(10)의 블록도를 도시한다. 그러나, 도시되고 이후 설명되는 모바일 단말기(10)는 단지 본 발명의 실시예를 구현하고 및/또는 그로부터 이점을 얻을 수 있는 콘텐츠 소비 디바이스(102)의 한 유형을 나타낸 것이고, 따라서, 본 발명의 범위를 제한하는 것으로 취급되어서는 안된다는 것이 이해되어야 한다. 전자 디바이스의 몇몇 실시예가 도시되고 이후 예의 목적으로 설명되지만, 모바일 전화, 모바일 컴퓨터, 개인 휴대정보 단말기(PDA), 페이저, 랩톱 컴퓨터, 데스크톱 컴퓨터, 게임 디바이스, 텔레비전, 및 다른 유형의 전자 시스템과 같은 다른 유형의 전자 디바이스가 본 발명의 실시예를 채용할 수 있다.
도시된 바와 같이, 모바일 단말기(10)는 송신기(14) 및 수신기(16)와 통신하는 안테나(12)(또는 다수의 안테나(12))를 포함할 수 있다. 모바일 단말기는 또한 송신기 및 수신기로부터 각각 신호를 제공하고 신호를 수신하는 프로세서(20)를 포함할 수 있다. 이들 신호는 적용가능한 셀룰러 시스템의 무선 인터페이스, 및/또는, 제한적인 것은 아니지만 Wi-Fi(Wireless-fidelity), IEEE(Institute of Electrical and Electronics Engineers) 802.11과 같은 WLAN(wireless local access network) 기술 등을 포함하는 임의의 수의 상이한 유선 또는 무선 네트워킹 기술에 따른 시그널링 정보를 포함할 수 있다. 부가하여, 이들 신호는 음성 데이터, 사용자 생성 데이터, 사용자 요청 데이터 등을 포함할 수 있다. 이와 관련하여, 모바일 단말기는 하나 이상의 무선 인터페이스 표준, 통신 프로토콜, 변조 유형, 액세스 유형 등과 동작할 수 있다. 보다 상세하게, 모바일 단말기는 다양한 제1 세대(1G), 제2 세대(2G), 2.5G, 제3 세대(3G) 통신 프로토콜, 제4 세대(4G) 통신 프로토콜 등에 따라 동작할 수 있다. 예를 들면, 모바일 단말기는 2G 무선 통신 프로토콜 IS-136(TDMA(Time Division Multiple Access)), GSM(Global system for Mobile communications), IS-95(CDMA(Code Division Multiple Access) 등에 따라 동작할 수 있다. 또한, 예를 들면, 모바일 단말기는 2.5G 무선 ㅌ오신 프로토콜 GPRS(General Packet Radio Service), EDGE(Enhanced Data GSM Environment) 등에 따라 동작할 수 있다. 더욱이, 예를 들면, 모바일 단말기는 UMTS(Universal Mobile Telecommunications System), CDMA2000(Code Division Multiple Access 2000, WCDMA(Wideband Code Division Multiple Access), TD-SCDMA(Time Division-Synchronous Code Division Multiple Access) 등과 같은 3G 무선 통신프로토콜에 따라 동작할 수 있다. 모바일 단말기는 부가하여 LTE(Long Term Evolution) 또는 EUTRAN(Evolved Universal Terrestrial Radio Access Network) 같은 3.9G 무선 통신 프로토콜에 따라 동작할 수 있다. 부가하여, 예를 들면, 모바일 단말기는 제4 세대(4G) 무선 통신 프로토콜 등뿐만 아니라 미래에 개발될 수 있는 유사한 무선 통신 프로토콜에 따라 동작할 수 있다.
듀얼 또는 보다 상위의 모드 폰(예를 들면, 디지털/아날로그 또는 TDMA/CDMA/아날로그 폰)에서와 같이, 몇몇의 NAMPS(Narrow-band Advanced Mobile Phone System) 뿐만 아니라 TACS(Total Access Communication System), 모바일 단말기는 또한 본 발명의 실시예로부터 이점을 얻을 수 있다. 부가하여, 모바일 단말기(10)는 Wi-Fi(Wireless Fidelity) 또는 WiMAX(Worldwide Interoperability for Microwave Access) 프로토콜에 따라 동작할 수 있다.
프로세서(20)는 모바일 단말기(10)의 오디오/비디오 및 로직 기능을 구현하는 회로를 포함할 수 있다. 예를 들면, 프로세서(20)는, 예를 들면, 회로, 수반하는 디지털 신호 프로세서(들)을 구비한 하나 이상의 마이크로프로세서, 수반하는 디지털 신호 프로세서가 없는 하나 이상의 프로세서(들), 하나 이상의 코프로세서, 하나 이상의 멀티-코어 프로세서, 하나 이상의 컨트롤러, 프로세싱 회로, 하나 이상의 컴퓨터, 예를 들면, ASIC(application specific integrated circuit) 또는 FPGA(field programmable gate array) 또는 그들의 몇몇 조합과 같은 집적 회로를 포함하는다양한 다른 프로세싱 소자를 포함하는 다양한 수단으로서 구체화될 수 있다. 프로세서는 부가적으로 내부 VC(voice coder)(20a), 내부 데이터 모뎀(DM)(20b) 등을 포함할 수 있다. 더욱이, 프로세서는 메모리에 저장될 수 있는 하나이상의 소프트웨어 프로그램을 동작시키는 기능을 포함할 수 있다. 예를 들면, 프로세서는 웹 브라우저와 같은 접속 프로그램을 동작시킬 수 있다. 접속 프로그램은 모바일 단말기(10)가, WAP(Wireless Application Protocol), HTTP(hypertext transfer protocol) 등과 같은 프로토콜에 따라 위치기반 콘텐츠와 같은 웹 콘텐츠를 송신하고 수신할 수 있게 할 수 있다. 모바일 단말기(10)는 인터넷 또는 다른 네트워크를 거쳐 웹 콘텐츠를 송신하고 수신하기 위해 TCP/IP(Transmission Control Protocol/Internet Protocol)을 사용할 수 있다.
모바일 단말기(10)는 또한, 예를 들면, 프로세서(20)에 접속되어 동작할 수 있는 이어폰 또는 스피커(24), 링어(ringer; 22), 마이크로폰(26), 디스플레이(28), 사용자 입력 인터페이스 등을 포함하는 사용자 인터페이스를 포함할 수 있다. 도시되지는 않았지만, 모바일 단말기는 모바일 단말기에 연관된 다양한 회로, 예를 들면, 검출가능한 출력으로부터 기계적 진동을 제공하기 위한 회로에 전력을 공급하는 배터리를 포함할 수 있다. 사용자 입력 인터페이스는 모바일 단말기가 데이터를 수신하게 할 수 있는 키패드(30), 터치 디스플레이(도시 생략), 조이스틱(도시 생략), 및/또는 다른 입력 디바이스 같은 디바이스를 포함할 수 있다. 키패드를 포함하는 실시예에서, 키패드는 번호(0-9) 및 관련 키(#,*), 및/또는 모바일 단말기를 동작시키기 위한 다른 키를 포함할 수 있다.
도 2에 도시된 바와 같이, 모바일 단말기(10)는 또한 데이터를 공유하고 및/또는 획득하기 위한 하나 이상의 수단을 포함할 수 있다. 예를 들면, 상기 모바일 단말기는 단거리-영역 라디오 주파수(RF) 트랜시버 및/또는 호출기 (interrogator) (64)를 포함하며, RF 기술에 따라 데이터가 전자 디바이스와 공유되거나 및/또는 전자 디바이스로부터 획득될 수 있다. 모바일 단말기는, 예를 들면, 적외선(IR) 트랜시버 (66), 블루투스™ 스페셜 인터레스트 그룹에 의해 개발된 블루투스™ 브랜드 무선 기술을 이용하여 동작하는 블루투스(Bluetooth™(BT)) 트랜시버(68), 무선 범용 시리얼 버스(USB) 트랜시버(70) 등과 같은 다른 단거리-영역 트랜시버를 포함할 수 있다. 상기 블루투스™ 트랜시버 (68)는 초-저 전력 블루투스™ 기술 (예를 들면, Wibree™) 라디오 표준에 따라 동작할 수 있다. 이와 관련하여, 모바일 단말기(10), 그리고 특히 단거리-영역 트랜시버는 모바일 단말기 근방 내에 있는, 예를 들면, 10 미터 이내에 있는 전자 디바이스로 데이터를 전송하고 및/또는 그 전자 디바이스로부터 데이터를 수신할 수 있다. 도시되지는 않았지만, 모바일 단말기는, Wi-Fi(Wireless Fidelity), IEEE 802.11과 같은 WLAN 기술 등을 포함하는 다양한 무선 네트워킹 기술에 따라 전자 디바이스로 데이터를 전송하고 및/또는 그 전자 디바이스로부터 데이터를 수신할 수 있다.
모바일 단말기(10)는 모바일 가입자에 연관된 정보 요소를 저장할 수 있는 가입자 신원 모듈 (subscriber identity module(SIM))(38), 분리가능한 사용자 신원 모듈(removable user identity module(R-UIM)) 등과 같은 메모리를 포함할 수 있다. SIM에 부가하여, 모바일 단말기는 다른 분리 가능 및/또는 고정 메모리를 포함할 수 있다. 모바일 단말기(10)는 휘발성 메모리(40) 및/또는 비휘발성 메모리 (42)를 포함할 수 있다. 예를 들면, 휘발성 메모리(40)는 동적 및/또는 정적인 RAM을 포함하는 랜덤 액세스 메모리(RAM), 온-칩 또는 오프-칩 캐시 메모리 등을 포함할 수 있다. 내장되거나 및/또는 분리 가능한 비휘발성 메모리(42)는, 예를 들면, 읽기 전용 메모리, 플래시 메모리, 자기 저장 디바이스(예를 들면, 하드 디스크, 플로피 디스크 드라이브, 자기 테이프 등), 광학 디스크 드라이브 및/또는 미디어, 비휘발성 랜덤 액세스 메모리 (NVRAM) 등을 포함할 수 있다. 휘발성 메모리(40)와 유사하게 비휘발성 메모리(42)는 데이터 임시 저장을 위한 캐시 영역을 포함할 수 있다. 메모리는 모바일 단말기의 기능을 수행하기 위해 모바일 단말기에 의해 사용될 수 있는 하나 이상의 소프트웨어 프로그램, 명령어, 정보 조각, 데이터 등을 저장할 수 있다. 예를 들면, 메모리는 국제 모바일 장비 신원 (international mobile equipment identification(IMEI)) 코드와 같이 모바일 단말기(10)를 고유하게 식별할 수 있는 식별자를 포함할 수 있다.
도 1을 다시 참조하면, 예시적인 일 실시예에서, 콘텐츠 소비 디바이스(102)는 프로세서(110), 메모리(112), 통신 인터페이스(114), 사용자 인터페이스(116) 및 미디어 재생 회로(118)와 같이 여기서 설명된 다양한 기능을 수행하기 위한 다양한 수단을 포함한다. 여기서 설명된 클라이언트 디바이스(102)의 다양한 수단은, 예를 들면, 하드웨어 소자, 예를 들면, 적절하게 프로그래밍된 프로세서, 조합 논리 회로 등, 컴퓨터 판독 가능 매체, 예를 들면, 메모리(112) 상에 저장된 컴퓨터 판독 가능 프로그램 명령어, 예를 들면, 소프트웨어 및/또는 펌웨어를 포함하는 컴퓨터 프로그램 제품을 포함한다. 프로그램 명령어는 프로세싱 디바이스, 예를 들면, 프로세서(110)에 의해 실행가능하다.
프로세서(110)는, 예를 들면, 디지털 신호 프로세서(들)를 수반하는 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(들)를 수반하지 않는 하나 이상의 프로세서(들), 하나 이상의 코프로세서, 하나 이상의 컨트롤러, 프로세싱 회로, 하나 이상의 컴퓨터, 예를 들면, ASIC 또는 FPGA와 같은 집적 회로를 포함하는 다양한 다른 프로세싱 소자 또는 그들의 몇몇 조합을 포함하는 다양한 수단으로서 구체화될 수 있다. 따라서, 비록 도 1에서 단일 프로세서로서 도시되지만, 몇몇 실시예에서 프로세서(110)는 복수의 프로세서를 포함한다. 복수의 프로세서는 서로 동작 가능하게 통신 상태에 있을 수 있고 여기서 설명된 바와 같은 콘텐츠 소비 디바이스(102)의 하나 이상의 기능을 수행하도록 집합적으로 구성될 수 있다. 콘텐츠 소비 디바이스(102)가 모바일 단말기(10)로서 구체화된 실시예에서, 프로세서(110)는 프로세서(20)로서 구체화되거나 또는 그렇지 않다면 프로세서(20)를 포함할 수 있다. 예시적인 일 실시예에서, 프로세서(110)는 메모리(112)에 저장된 또는 저장되지 않았다면 프로세서(110)에 액세스 가능한 명령어를 실행하도록 구성된다. 명령어는, 프로세서(110)에 의해 실행될 때, 콘텐츠 소비 디바이스(102)로 하여금 여기서 설명된 바와 같은 콘텐츠 소비 디바이스(102)의 기능 중 하나 이상을 수행하도록 한다. 이와 같이, 하드웨어 또는 소프트웨어 동작에 의해 또는 그들의 조합에 의해 구성되어, 프로세서(110)는 적절히 구성될 때 본 발명의 실시예에 따른 동작을 수행할 수 있는 엔티티를 나타낼 수 있다. 예를 들면, 프로세서(110)가 ASIC, FPGA 등으로 구체화될 때, 프로세서(110)는 여기서 설명된 하나 이상의 동작을 수행하기 위해 특별하게 구성된 하드웨어를 포함할 수 있다. 대안으로, 다른 예로서, 프로세서(110)가 명령어의 실행자로서 구체화될 때, 명령어는 여기서 설명된 하나 이상의 동작을 수행하기 위해, 명령어에 의해 제공되는 특별한 구성이 아니라면 범용 프로세싱 소자일 수 있는 프로세서(110)를 특별하게 구성할 수 있다.
메모리(112)는, 예를 들면, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 도 1에서 단일의 메모리로서 도시되었지만, 메모리(112)는 복수의 메모리를 포함할 수 있다. 메모리(112)는 휘발성 메모리, 비-휘발성 메모리 또는 그들의 몇몇의 조합을 포함할 수 있다. 이와 관련하여, 메모리(112)는, 예를 들면, 하드 디스크, 랜덤 액세스 메모리, 캐시 메모리, 플래시 메모리, 컴팩트 디스크 읽기 전용 메모리(CD-ROM), DVD-ROM (digital versatile disc read only memory), 광학 디스크, 정보를 저장하도록 구성된 회로 또는 그들의 몇몇의 조합을 포함할 수 있다. 콘텐츠 소비 디바이스(102)가 모바일 단말기로서 구체화되는 실시예에서, 메모리(112)는 휘발성 메모리(40) 및/또는 비휘발성 메모리(42)로서 구체화되거나 또는 그렇지 않으면 그들을 포함한다. 메모리(112)는 콘텐츠 소비 디바이스(102)가 본 발명의 실시예에 따라 다양한 기능을 수행하는 것을 가능하게 하기 위한 정보, 데이터, 애플리케이션, 명령어 등을 저장하도록 구성될 수 있다. 예를 들면, 적어도 몇몇의 실시예에서, 메모리(112)는 프로세서(110)에 의한 프로세싱을 위해 입력 데이터를 버퍼링하도록 구성된다. 추가로 또는 대안으로, 적어도 몇몇의 실시예에서, 메모리(112)는 프로세서(110)에 의한 실행용의 프로그램 명령어를 저장하도록 구성된다. 메모리(112)는 정적 및/또는 동적인 정보의 형태로 정보를 저장할 수 있다. 이 저장된 정보는 미디어 재생 유닛(118)이 자신의 기능을 수행하는 과정 동안에 저장되고 및/또는 사용될 수 있다.
통신 인터페이스(114)는 네트워크(108)를 통해 원격 디바이스로부터 데이터를 수신하고 그 원격 디바이스로 데이터를 전송하도록 구성된 하드웨어, 컴퓨터 판독가능 매체(예를 들면, 메모리(112))에 저장되고 프로세싱 디바이스(예를 들면, 프로세서(110))에 의해 실행되는 컴퓨터 판독가능 프로그램 명령어를 포함하는 컴퓨터 프로그램 제품, 또는 그들의 조합으로 구체화된 임의의 디바이스 또는 수단으로서 구체화될 수 있다. 적어도 하나의 실시예에서, 통신 인터페이스(114)는 적어도 부분적으로 프로세서(110)로서 구체화되거나 또는 그렇지 않다면 프로세서(110)에 의해 제어된다. 이와 관련하여, 통신 인터페이스(114)는 버스 등을 경유하여 프로세서와 통신 상태에 있을 수 있다. 통신 인터페이스(114)는, 시스템 (100)의 다른 엔티티들과의 통신을 가능하게 하기 위해, 예를 들면, 안테나, 송신기, 수신기, 트랜지버 및 지원 하드웨어 또는 소프트웨어, 예를 들면, 도 2의 모바일 단말기의 안테나(12), 송신기(14) 및/또는 수신기(16)를 포함할 수 있다. 통신 인터페이스(114)는 시스템(100)의 컴퓨팅 디바이스들 사이에서의 통신을 위해서 사용될 수 있는 임의의 프로토콜을 이용하여 데이터를 수신하고 및/또는 전송하도록 구성될 수 있다. 통신 인터페이스(114)는 버스 등을 경유하여 메모리(112), 사용자 인터페이스 (116) 및/또는 미디어 재생 유닛(118)과 추가로 통신 상태에 있을 수 있다.
상기 사용자 인터페이스(116)는 사용자 입력의 표시를 수신하고 및/또는 사용자에게 청각의, 시각적인, 기계적인 또는 다른 출력을 제공하기 위해서 프로세서(110)와 통신할 수 있다. 이와 같이, 사용자 인터페이스(116)는, 예를 들면, 키보드, 마우드, 조이스틱, 디스플레이, 터치 스크린 디스플레이, 마이크로폰, 스피커 및/또는 다른 입력/출력 메커니즘, 예를 들면, 도 2의 모바일 단말기(10)의 이어폰 또는 스피커(24), 마이크로폰(26), 디스플레이(28) 및/또는 키패드(30)을 포함할 수 있다. 사용자 인터페이스(116)는 콘텐츠 소비 디바이스(102) 상에서의 재생을 위해서 서버(104)로부터 콘텐츠 소비 디바이스(102)로 스트리밍될 미디어 파일 및/또는 미디어 트랙을 사용자가 선택하도록 하는 인터페이스를 제공할 수 있다. 이와 관련하여, 미디어 파일로부터의 비디오는 사용자 인터페이스(116)의 디스플레이 상에 디스플레이될 수 있고 미디어 파일로부터의 오디오는 사용자 인터페이스(116)의 스피커를 통해서 들릴 수 있다. 사용자 인터페이스(116)는 버스 등을 통해 메모리(112), 통신 인터페이스(114) 및/또는 미디어 재생 회로(118)와 통신할 수 있다.
미디어 재생 회로(118)는 하드웨어, 컴퓨터 판독가능 매체(예를 들면, 메모리(112))에 저장되고 프로세싱 디바이스(예를 들면, 프로세서(110))에 의해 실행되는 컴퓨터 판독가능 프로그램 명령어를 포함하는 컴퓨터 프로그램 제품, 또는 그들의 몇몇 조합과 같은 다양한 수단들로서 구체화될 수 있으며, 일 실시예에서, 프로세서(110)로서 구체화되거나 그렇지 않으면 프로세서(110)에 의해 제어된다. 미디어 재생 회로(118)가 프로세서(110)와 개별적으로 구체화되는 경우의 실시예에서, 미디어 재생 회로(118)는 프로세서(110)와 통신하는 상태에 있을 수 있다. 미디어 재생 회로(118)는 버스 등을 경유하여 메모리(112), 통신 인터페이스(114) 및/또는 사용자 인터페이스(116)와 또한 통신할 수 있다.
서버(104)는 콘텐츠 소비 디바이스(102)로 미디어 파일을 제공하도록 구성된 하나 이상의 컴퓨팅 디바이스를 포함할 수 있다. 적어도 하나의 실시예에서, 서버(104)는 HTTP 서버, 동적 스트리밍 서버, 콘텐츠 제공자 서버, 웹 서버, 네트워크 서버 같은 하나 이상의 서버를 포함한다. 서버(104)가 미디어 파일의 소스일 수 있지만, 서버는 또한 하나 이상의 콘텐츠 소스로부터 미디어 파일을 수신하고 그 미디어 파일을 콘텐츠 소비 디바이스(102)에 제공하는 중개자일 수 있다. 예시적인 일 실시예에서, 서버(104)는 여기서 설명된 다양한 기능을 수행하기 위해 프로세서(120), 메모리(122), 통신 인터페이스(124), 사용자 인터페이스(126) 및 미디어 스트리밍 회로(128)와 같은 다양한 수단을 포함한다. 여기서 설명된 바와 같은 서버(104)의 이들 수단은, 예를 들면, 하드웨어 소자(예를 들면, 적절하게 프로그래밍된 프로세서, 조합 논리 회로 등), 컴퓨터 판독가능 매체 (예를 들면, 메모리(112))에 저장되어 적절하게 구성된 프로세싱 디바이스(예를 들면, 프로세서(120))에 의해 실행 가능한 컴퓨터 판독가능 프로그램 명령어를 포함하는 컴퓨터 프로그램 제품, 또는 그들의 조합으로서 구체화될 수 있다.
프로세서(120)는, 예를 들면, 디지털 신호 프로세서(들)를 수반하는 하나 이상의 마이크로프로세서, 디지털 신호 프로세서를 수반하지 않는 하나 이상의 프로세서(들), 하나 이상의 코프로세서, 하나 이상의 컨트롤러, 프로세싱 회로, 하나 이상의 컴퓨터, 예를 들면, ASIC 또는 FPGA와 같은 집적 회로를 포함하는 다양한 다른 프로세싱 소자 또는 그들의 몇몇 조합을 포함하는 다양한 수단으로서 구체화될 수 있다. 따라서, 도 1에서 단일의 프로세서로서 도시되지만, 몇몇 실시예에서 프로세서(120)는 복수의 프로세서를 포함한다. 복수의 프로세서는 단일의 컴퓨팅 디바이스 상에서 구현되거나 또는 복수의 컴퓨팅 디바이스를 통해서 분산될 수 있다. 복수의 프로세서는 서로 동작 가능하게 통신 상태에 있을 수 있으며 여기서 설명된 바와 같은 서버(104)의 하나 이상의 기능을 수행하도록 집합적으로 구성될 수 있다. 예시적인 일 실시예에서, 프로세서(120)는 메모리(122)에 저장된 또는 저장되지 않았다면 프로세서(120)에 액세스 가능한 명령어를 실행하도록 구성된다. 이들 명령어는, 프로세서(120)에 의해 실행될 때, 서버(104)로 하여금 여기서 설명된 바와 같은 서버(104)의 기능 중 하나 이상을 수행하도록 할 수 있다. 이와 같이, 하드웨어 또는 소프트웨어 방법에 의해 또는 그들의 조합에 의해 구성되어, 프로세서(120)는 적절히 구성될 때 본 발명의 실시예에 따른 동작을 수행할 수 있는 엔티티를 나타낼 수 있다. 따라서, 예를 들면, 프로세서(120)가 ASIC, FPGA 등으로서 구체화될 때에, 프로세서(120)는 여기서 설명된 하나 이상의 동작을 수행하기 위해 특별하게 구성된 하드웨어를 포함할 수 있다. 대안으로, 다른 예로서, 프로세서(120)가 명령어의 실행자로서 구체화될 때에, 명령어는 여기서 설명된 하나 이상의 알고리즘 및 동작을 수행하기 위해, 명령어에 의해 제공된 특별한 구성이 아니라면 범용 프로세싱 소자일 수 있는 프로세서(120)를 특별하게 구성할 수 있다.
메모리(122)는, 예를 들면, 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있다. 도 1에서 단일의 메모리로서 도시되었지만, 메모리(112)는 복수의 메모리를 포함할 수 있으며, 그 복수의 메모리는 단일의 컴퓨팅 디바이스 상에서 구체화되거나 또는 복수의 컴퓨팅 디바이스를 통해 분산될 수 있다. 메모리(122)는 휘발성 메모리, 비휘발성 메모리 또는 그들의 몇몇의 조합을 포함할 수 있다. 이와 관련하여, 메모리(122)는, 예를 들면, 하드 디스크, 랜덤 액세스 메모리, 캐시 메모리, 플래시 메모리, 컴팩트 디스크 읽기 전용 메모리(CD-ROM), DVD-ROM(digital versatile disc read only memory), 광학 디스크, 정보를 저장하도록 구성된 회로 또는 그들의 몇몇의 조합을 포함할 수 있다. 메모리(122)는 미디어 콘텐츠 소스(104)가 본 발명의 실시예에 따라 다양한 기능을 수행하는 것을 가능하게 하기 위한 정보, 데이터, 애플리케이션, 명령어 등을 저장하도록 구성될 수 있다. 예를 들면, 적어도 몇몇의 실시예에서, 메모리(122)는 프로세서(120)에 의한 프로세싱을 위해 입력 데이터를 버퍼링하도록 구성된다. 추가로 또는 대안으로, 적어도 몇몇의 실시예에서, 메모리(122)는 프로세서(120)에 의한 실행용의 프로그램 명령어를 저장하도록 구성된다. 메모리(122)는 정적 및/또는 동적인 정보의 형태로 정보를 저장할 수 있다. 이 저장된 정보는 미디어 스트리밍 유닛(128)이 자신의 기능을 수행하는 과정 동안에 미디어 스트리밍 유닛(128)에 의해 저장되고 및/또는 사용될 수 있다.
통신 인터페이스(124)는 네트워크(108)를 통해 원격 디바이스로부터 데이터를 수신하고 그 원격 디바이스로 데이터를 전송하도록 구성된 하드웨어, 컴퓨터 판독가능 매체, 예를 들면, 메모리(122)에 저장되고 프로세싱 디바이스, 예를 들면, 프로세서(120)에 의해 실행되는 컴퓨터 판독가능 프로그램 명령어를 포함하는 컴퓨터 프로그램 제품, 또는 그들의 조합으로 구체화된 임의의 디바이스 또는 수단으로서 구체화될 수 있다. 적어도 하나의 실시예에서, 통신 인터페이스(124)는 적어도 부분적으로 프로세서(120)로서 구체화되거나 또는 그렇지 않다면 프로세서(120)에 의해 제어된다. 이와 관련하여, 통신 인터페이스(124)는 버스 등을 경유하여 프로세서와 통신 상태에 있을 수 있다. 통신 인터페이스(124)는, 시스템 (100)의 다른 엔티티들과의 통신을 가능하게 하기 위해서, 예를 들면, 안테나, 송신기, 수신기, 트랜시버 및/또는 지원 하드웨어나 소프트웨어를 포함할 수 있다. 통신 인터페이스(124)는 시스템(100)의 컴퓨팅 디바이스들 사이에서의 통신을 위해 사용될 수 있는 임의의 프로토콜을 이용하여 데이터를 수신하고 및/또는 전송하도록 구성될 수 있다. 통신 인터페이스(124)는 버스 등을 경유하여 메모리(122), 사용자 인터페이스(126) 및/또는 미디어 스트리밍 회로(128)와 추가로 통신 상태에 있을 수 있다.
사용자 인터페이스(126)는 사용자 입력의 표시를 수신하고 및/또는 사용자에게 청각의, 시각적인, 기계적인 또는 다른 출력을 제공하기 위해 프로세서(120)와 통신할 수 있다. 이와 같이, 사용자 인터페이스(126)는, 예를 들면, 키보드, 마우드, 조이스틱, 디스플레이, 터치 스크린 디스플레이, 마이크로폰, 스피커 및/또는 다른 입력/출력 메커니즘을 포함할 수 있다. 서버(104)가 하나 이상의 서버로서 구체화되는 실시예에서, 사용자 인터페이스(126)는 제한되거나 또는 심지어 제거될 수 있다. 사용자 인터페이스(126)는 버스 등을 통해 메모리(122), 통신 인터페이스(124) 및/또는 미디어 스트리밍 회로(128)와 또한 통신 상태에 있을 수 있다.
미디어 스트리밍 회로(128)는 하드웨어, 컴퓨터 판독가능 매체, 예를 들면, 메모리(112)에 저장되고 프로세싱 디바이스, 예를 들면, 프로세서(120)에 의해 실행되는 컴퓨터 판독가능 프로그램 명령어를 포함하는 컴퓨터 프로그램 제품, 또는 그들의 몇몇 조합과 같은 다양한 수단들로서 구체화될 수 있을 것이며, 일 실시예에서, 프로세서(120)로서 구현되거나 그렇지 않으면 프로세서(120)에 의해 제어된다. 미디어 스트리밍 회로(128)가 프로세서(120)와 개별적으로 구체화되는 경우의 실시예에서, 미디어 스트리밍 회로(128)는 프로세서(120)와 통신하는 상태에 있을 수 있다. 미디어 스트리밍 회로(128)는 버스 등을 경유하여 메모리(122), 통신 인터페이스(124) 및/또는 사용자 인터페이스(126)와 또한 통신할 수 있다.
예시적인 일 실시예에서, 미디어 재생 회로(118)는 미디어 파일에 대한 전송 프로토콜 요청을 서버(104)로 보내도록 구성된다. 예시적인 일 실시예에서, 요청된 미디어 파일은 ISO 기준 미디어 파일 포맷과 호환되는 미디어 파일을 포함한다. ISO 기준 미디어 파일 포맷의 예들은 3GP 미디어 파일 및 이동 픽처 전문가 그룹 4 (moving picture experts group 4(MPEG-4)) 파트 14 (MP4) 파일을 포함한다. 요청은, 예를 들면, 사용자 입력 또는 사용자 인터페이스(116)를 경유하여 수신된 사용자 입력 또는 요청에 응답하여 송신된다.
전송 프로토콜 요청은 미디어 파일이 콘텐츠 소비 디바이스(102)로 스트리밍될 것이라는 표시를 포함한다. 예시적인 일 실시예에서, 전송 프로토콜 요청은 HTTP GET 요청을 포함한다. HTTP GET 요청은 미디어 파일이 스트리밍될 것이라는 것을 나타내는 토큰을 구비한 헤더 필드를 포함한다. 예를 들면, 헤더 필드는 "Expect" 헤더 필드를 포함할 수 있고 서버(104)가 3GP 미디어 파일의 3GPP 기반 HTTP 스트리밍과 같은 미디어 파일의 HTTP 스트리밍을 지원하도록 요청받는다는 것을 표시하도록 정의된 토큰, 예를 들면 "http-streaming"을 포함할 수 있다. 다른 예에서, 헤더 필드는 "Pragma" 헤더 필드를 포함하며 서버(104)가 요청된 미디어 파일의 HTTP 스트리밍을 지원하는가에 대한 질의를 받고 있는가를 나타내도록 정의된 토큰, 예를 들면, "http-streaming"을 포함한다.
예시적인 일 실시예에서, 미디어 스트리밍 회로(128)는 콘텐츠 소비 디바이스(102)에 의해 보내진 전송 프로토콜 요청을 수신하도록 구성된다. 전송 프로토콜 요청이 요청된 미디어 파일이 콘텐츠 소비 디바이스(102)로 스트리밍될 것이며 서버(104)는 미디어 파일을 스트리밍하도록 구성되지 않았다는 표시를 포함하면, 미디어 스트리밍 회로(128)는 콘텐츠 소비 디바이스(102)로 오류 메시지를 보내도록 구성된다. 서버(104)가 미디어 파일을 스트리밍하도록 구성되면, 미디어 스트리밍 회로(128)는 콘텐츠 소비 디바이스(102)로 보내진 응답 메시지 내에 지원(support)을 포함시키도록 구성된다. 그러한 지원은, 예를 들면, HTTP 응답 메시지의 Pragma 헤더 필드의 부분로서 표시될 수 있다.
예시적인 일 실시예에서, 미디어 스트리밍 회로(128)는, 미디어 파일에 대한 전송 프로토콜 요청을 수신한 것에 대한 응답으로, 메모리(122) 또는 서버(104)로 액세스 가능한 다른 메모리로부터의 요청된 미디어 파일을 액세스하도록 또한 구성된다. 미디어 스트리밍 회로(128)는 미디어 파일 내의 미디어 데이터와 연관된 정보의 적어도 부분을 추출하도록 구성된다. 예시적인 일 실시예에서, 정보(들)의 추출된 부분은 미디어 파일 내의 미디어 데이터와 연관된 메타데이터의 부분(들)을 포함한다. 예를 들면, 메타데이터의 추출된 부분은 미디어 파일의 콘텐트에 대한 일반적인 정보, 예를 들면, 미디어 데이터 및/또는 그 미디어 파일 내의 다른 트랙들의 유형(들)을 포함한다. 메타데이터의 상기 추출된 부분(들)은, 예를 들면, 미디어 파일로부터 적어도 하나의 트랙을 선택하기에 클라이언트 소비 디바이스에게 유용한 정보만을 포함한다.
미디어 파일과 연관된 메타데이터는, 예를 들면, 아래의 표에서 개략적으로 표시된 ISO 기준 미디어 파일 포맷(ISOFF)에 따라 구성될 수 있다.
Figure pct00001
Figure pct00002
ISOFF는 객체 지향 방식으로 설계되어 있다. 이와 관련하여, ISOFF 부합 파일은 새로운 박스의 정의를 통해 확장되거나 승계될 수 있는 박스들의 세트로 구성된다. ISOFF 부합 파일 내의 모든 정보는 박스에 포함되어야 한다. 박스 자체는 다른 박스를 포함할 수 있다. 각각의 박스는, 전형적으로 4 바이트 유형(4 문자)로 정의되는 고유 유형에 의해 식별된다. 각각의 박스는 또한 박스의 헤더를 포함하는 박스의 길이를 나타낸다. 이들 두 개의 필드는 모든 ISOFF 박스에 의해 승계된 "Box" 박스에 의해 정의된다.
전술한 바와 같이, ISOFF 부합 데이터는 메타데이터의 복수 레벨의 계층 (hierarchy)을 포함한다. 각각의 레벨은 부모 레벨에 관련된 더욱 특정된 메타데이터를 포함하는 하나 이상의 서브레벨을 포함한다. 예를 들면, 제1 레벨 "L0"는 메타데이터 카테고리 ftyp, moov, moof, mfra, 및 mdat를 포함한다. Ftyp 및 mdat는 어떠한 서브레벨도 포함하지 않을 수 있다. 제2 레벨인 moov의 "L1"은, 예를 들면, mvhd 및 trak를 포함한다. 제3 레벨인 trak의 "L2"는, 예를 들면, tkhd, tref, 및 mdia를 포함한다. 제4 레벨인 mdia의 "L3"은, 예를 들면, mdhd, hdlr, 및 minf를 포함할 수 있다. 제5 레벨인 minf 의 "L4"는 vmhd, smhd, 및 stbl을 포함할 수 있다. 제6 레벨인 stbl 의 "L5"는, 예를 들면, stsd, stts, ctts, stsc, stsz, stco, 및 stss를 포함할 수 있다. 따라서, 상기 표 1은 메타데이터 블록의 포개진(nested) 계층을 나타내며, 그 경우에 메타데이터의 블록의 서브레벨은 대응하는 부모 메타데이터 블록을 포함하는 행(row) 아래의 행들에 그리고 메타데이터의 대응하는 부모 블록을 포함하는 열(column)의 오른쪽의 열들에 도시된다. 따라서, moov 블록의 메타데이터 블록의 모든 서브레벨은 그 moov 블록을 포함하는 행아래의 상기 표 1의 행들에서, 예를 들면, 메타데이터의 다른 부모 블록으로서 moov 블록과 동일한 레벨에 있는 "moof" 블록을 포함하는 행에 도달할 때까지 도시되어 있다. 유사하게, stbl 블록의 메타데이터의 모든 서브레벨의 블록은 stbl 블록을 포함하는 행의 아래의 상기 표 1 내의 행에서 moof 블록을 포함하는 행에 도달할 때까지 도시되어 있으며, 상기 moof 블록은 stbl 블록과 동일한 레벨 또는 더 높은 레벨에 있는 제1 블록이다.
미디어 재생 회로(118)의 제어에 의해 및/또는 그 제어 하에서, 콘텐츠 소비 디바이스(102)에서 및/또는 그에 의해 수행될 수 있는 동작을 도시하는 도 3에 일반적으로 도시된 바와 같이 서버(104)로부터 콘텐츠 소비 디바이스(102)로 콘텐츠를 스트리밍하기에 앞서, 콘텐츠 소비 디바이스(102)는 세션 또는 콘텐츠 설명 정보를 요청하여 제공받을 수 있다. 도 3의 동작(300)을 참조하라. 일 실시예에서, 서버(104)는 RTSP/RTP 스트리밍, HTTP 스트리밍 등과 같은 몇 개의 상이한 스트리밍 프로토콜을 통해 콘텐츠를 제공하도록 구성된다. 따라서, 콘텐츠 소비 디바이스(102)는, 이용가능한 콘텐츠 등을 발견하기 위해 서버(104)에 의해 제공되고 콘텐츠 소비 디바이스(102)에 의해 액세스되는 웹 포털을 통해, 세션 설명 프로토콜(session description protocol; SDP)를 이용하여 서버에 의해 콘텐츠 소비 디바이스(104)로 제공되는 세션 설명 정보에서, 서버(104)에 의해 지원되는 전달 방법에 관한 정보, 예를 들면, 다양한 스트리밍 옵션을 제공받을 수 있다.
서버(104)가 SDP를 이용하여 가능한 전달 옵션에 관한 정보를 제공하는 예에서, SDP는 콘텐츠가 HTTP 스트리밍을 통해 이용가능한지 여부를 표시하는 엘리먼트로 확장될 수 있다. SDP는 또한 콘텐츠의 모든 이용가능한 미디어 컴포넌트의 설명을 포함할 수 있다. 그러면, 콘텐츠 소비 디바이스(102)는 HTTP를 통하는 등의 스트리밍될 적절한 콘텐츠 컴포넌트를 선택할 때 이용가능한 미디어 컴포넌트의 설명을 이용할 수 있다. 예로서, HTTP를 통해 스트리밍될 수 있는 콘텐츠 컴포넌트는 비디오 트랙, 오디오 트랙, 서브타이틀 트랙 등과 같은 상이한 유형의 트랙을 포함할 수 있다. 비디오 또는 오디오 트랙과 같은 특정 유형의 트랙에 대해, 이용가능한 미디어 콘텐츠는 또한, 예를 듦녀, 스트리밍시의 네트워크 조건에 기초하여 아래에 설명되는 바와 같이 비트 레이트 적응을 지원하기 위해 상이한 비트 레이트로 콘텐츠를 포함할 수 있다. 예로서, 예시적인 미디어 파일에 대해 HTTP 스트리밍을 통해 이용가능한 미디어 컴포넌트를 설명하기 위해 서버(104) 및 대응하는 콘텐츠 소비 디바이스(102)에 의해 이용될 수 있는 SDP 확장은 다음과 같이 될 수 있다.
Figure pct00003
Figure pct00004
전술한 예에 도시된 바와 같이, 이용가능한 오디오 컴포넌트는 상이한 언어의 오디오 컴포넌트를 포함하는 한편, 이용가능한 비디오 컴포넌트는 상이한 비트 레이트로 코딩된 비디오 컴포넌트를 포함한다. 전술한 예에서, 세션 레벨에서 "a=control" 속성은 콘텐츠 파일에 대한 HTTP URL과 같은 콘텐츠의 식별자를 포함할 수 있다. 전술한 예에서, HTTP URL은 HTTP:/www.nokia.com/content/example.3gp이다. 콘텐츠 파일은 서버(104)에 물리적으로 존재할 수 있거나 또는 가상 파일을 나타낼 수 있다. 대조적으로, 미디어 레벨에서의 "a=control" 속성은 특정 미디어 컴포넌트가 저장되는 트랙의 식별자, 예를 들면, 트랙 ID=1, 트랙 ID=2 등을 포함할 수 있다. 트랙 ID는 미디어 레벨에서 이용될 수 있고, HTTP를 통해 스트리밍되는 콘텐츠는 트랙 ID 매핑을 유지할 수 있다.
세션 설명 정보에 기초하여, 클라이언트 소비 디바이스(102)는 HTTP 스트리밍이 도 3의 동작(302)에 도시된 바와 같이 인에이블되는지를 판정하고, 인에이블되지 않는다면, 도 3의 동작(304)에 도시된 바와 같이 프로그레시브 다운로딩 및/또는 RTSP/RTP 스트리밍에 의하는 등의 또 다른 방식으로 콘텐츠를 다운로드하도록 진행될 수 있다. 그러나, HTTP 스트리밍이 인에이블되면, 클라이언트 소비 디바이스(102)는 미디어 파일의 적어도 부분에 대한 전송 프로토콜 요청을 발행할 수 있다. 일 실시예에서, 클라이언트 소비 디바이스(102)는 초기에 파일 프레픽스(file prefix)를 요청하고, 그 파일 프레픽스의 수신에 응답하여, 그 후 콘텐츠 자체를 요청한다.
도 4에 도시된 바와 같이, 예를 들면, 서보(104)로부터 콘텐츠 소비 디바이스(102)로 스트리밍되는 콘텐츠 파일 또는 콘테이너(402)는 파일 프레픽스 및 미디어 파일의 요청 부분을 포함하는 복수의 프래그먼트를 포함할 수 있다. 이와 관련하여, 도 4는 본 발명의 예시적인 일 실시예에 따라 미디어 스트리밍 회로(128)에 의해 포맷팅될 수 있는 ISOFF 부합 구조 미디어 콘텐츠를 도시한다. 그러나, ISOFF 부합 미디어 파일은 예시적인 목적으로 사용된 것이고 한정하는 것이 아니라는 것이 이해될 것이다. 또한, 도 4에 도시되고 그에 대해 설명된 미디어 콘텐츠의 구조는 예시적인 목적이고 그 구조는 본 발명의 다른 실시예에 다라 상이하게 배열될 수 있다. 부가하여, 도 4의 미디어 콘텐츠는 영화 콘텐츠에 대해 설명된다. 그러나, 본 발명의 실시예는 오디오 전용 미디어 콘텐츠, 비디오 전용 미디어 콘텐츠, 및 오디오/비디오 미디어 콘텐츠 같은 다른 유형의 미디어 콘텐츠에도 적용될 수 있다는 것이 이해될 것이다.
도시된 실시예에서, 프레픽스는 한 번만 전송될 필요가 있고, ftyp 박스(404)가 미디어 콘텐츠의 버전 번호 및 브랜드를 나타내는 ftyp 및 moov 박스(404 및 406)가 포함된다. 본 실시예의 moov 박스(406)는 mvhd 박스(408), 하나 이상의 trak 박스(410) 및 하나 이상의 trex 박수(414)를 포함하는 mvex 박스(412)를 포함한다. 주목할 것은, moov 박스(406)가 어떠한 샘플 설명도 포함하지 않는데, 예를 들면, stts, ctts, stsc, stsz, stco 또는 stss 박스가 없으며, 따라서, 상대적으로 크기가 작다. 그 대신, moov 박스(406)는 파일이 구조, 기존 트랙, 트랙 유형 및 샘플 설명을 설명하는 정보만을 포함한다. 이와 관련하여, moov 박스(406)의 각각의 trak 박스(410)는, 예를 들면, 트랙의 위치 및 크기에 관한 정보, 설명 정보 및 타이밍 정보를 포함하는 ISOFF 부합 파일 내의 미디어 트랙에 관한 정보를 포함한다. 더욱이, 도시된 실시예의 mvex 박스(412) 및 자신의 trex 박스(414)는, 각각의 trex 박스(414)가 각각의 후속 영화 프래그먼트와 반복될 필요가 없는 디폴트 정보를 제공하면서, 제공될 미디어 파일의 부분이 영화 프래그먼트로 구성될 것이라는 것을 나타낸다.
파일 프레픽스에 이어, 각각의 영화 프래그먼트의 설명 및 미디어 샘플을 포함하는 영화 프래그먼트 박스 moof(416), mdat 박스(418), 및 선택적으로 mfra 박스(420)가, moof 및 mdat 박스들의 한 세트가 미디어 파일의 요청 부분을 포함하는 다수의 프래그먼트 각각에 제공되면서 반복적으로 제공될 수 있다. 모든 프래그먼트, 즉, 모든 moof 및 mdat 박스들의 제공에 이어, mfra 박스(418)가 선택적으로 제공될 수 있다.
도 3의 동작(306)에 도시된 바와 같이 파일 프레픽스에 대한 콘텐츠 소비 디바이스(102)에 의한 요청과 관련하여, 콘텐츠 소비 디바이스(102)는, 예를 들면, ftyp 및 moov 박스(402 및 404)를 포함하는 파일 프레픽스에 대한 질의를 서버(104)에 발행할 수 있다. 파일 프레픽스를 검색하기 위해 콘텐츠 소비 디바이스(102)에 의해 서버(104)에 발행될 수 있는 질의 한 예는 GET http://www.nokia.com/httpstreaming.php?content=www.nokia.com/content/example.3gp&type=prefix HTTP/1.1이거나, 또는 다른 예는 GET http:/www.nokia.com/httpstreaming.php/example.3gp/prefix HTTP/1.1이다.
전술한 질의 중 첫 번째에서, 질의 파라미터 "content"는 원하는 콘텐츠를 지칭하는데 이용될 수 있고, 전형적으로 상기에 제공된 예와 같이 오리지널 HTTP URL에 이미 포함되어 있다. 부가하여, 질의 파라미터 "type"은 요청의 유형을 나타내는데 사용된다. 프레픽스가 요청되고 있다는 이 맥락에서, 유형 파라미터의 값은 "prefix"로 설정된다. 일 실시예에서, 유형 파라미터는 ABNF(augmented backus-naur format) 신택스를 다음과 같이 이용할 수 있다: Type="type="["prefix"|"media"|"description"]. 이 실시예에서, 값 "media"는 요청될 미디어 데이터가 영화 프래그먼트의 형태라는 것을 나타내는 한편, 값 "desription"은 SPD 파일과 같은 섹션 설명이 요청된다는 것을 나타내는데 이용된다. 다른 실시예에서 유형 파라미터에 대한 다른 값들이 대안으로 이용될 수 있다.
URL 예 "GET http://www.nokia.com/httpstreaming.php/example.3gp/prefix HTTP/1.1"인 또 다른 실시예에서, 유형 파라미터는 콘텐츠 파라미터 바로 다음에 "/" 문자로 분리되어 이어질 수 있다. 이 예에서, "type=" 같은 식별자는, URL이 알려진 패터(patter)에 이어 구성되고 서버(104)는 요청 URL로부터 유형 표시를 추출할 수 있기 때문에 필요가 없다.
프레픽스에 대한 요청 및 서버(104)에 의한 프레픽스의 전달에 이어, 콘텐츠 소비 디바이스(102)는 미디어 파일의 부분에 대한 전송 프로토콜 요청을 발행할 수 있다. 도 3의 동작(308, 310 및 312)의 응답으로 그리고 그에 도시된 바와 같이, 서버(104)는, 미디어 파일의 요청된 부분 전체가 전달될 때까지 또는 그렇지 않으면 사용자가 스트리밍을 중단할 때까지, 요청된 미디어 파일을 포함하는 프래그먼트를 스트리밍할 수 있다.
전송 프로토콜 요청에서, 콘텐츠 소비 디바이스(102)는 미디어 파일의 요청된 부분의 다운로드동안 이용될 스트리밍 프로토콜을 나타낼 수 있다. 예를 들면, 전송 프로토콜 요청은 미디어 파일의 선택된 부분이 HTTP을 통해 스트리밍될 것을 요청할 수 있다. 전송 프로토콜 요청이 서버(104)로부터 스트리밍될 미디어 파일의 부분을 식별하더라도, 전송 프로토콜 요청은 단일 프래그먼트를 식별 및 요청하지 않는다. 그 대신, 전송 프로토콜 요청은 복수의 프래그먼트를 포함하거나, 또는 복수의 프래그먼트를 포함하도록 포맷될 수 있는 미디어 파일의 부분을 식별한다.
콘텐츠 소비 디바이스(102)에 의해 발행되는 전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을 다양한 방식으로 식별할 수 있다. 일 실시예에서, 전송 프로토콜 요청이 시작시간 및 종료시간을 식별한 다음, 서버(104)는 전형적으로 복수의 프래그먼트를 포함하는 미디어 파일의 부분을 시작시간부터 종료시간까지 연장하여 스트리밍한다. 대안으로, 전송 프로토콜 요청이 시작시간 및 지속 기간을 식별한 다음, 서버(104)는 미디어 콘텐츠의 그 부분을 시작시간에서 시작하여 그 후 지속기간까지 식별되는 시간 길이 동안 계속해서 스트리밍하도록 구성된다. 콘텐츠 소비 디바이스(102)는, 예를 들면, 프레임 및/또는 장면이 일반적으로 복수의 프래그먼트를 포함하면서, 스트리밍될 다수의 프레임 및/또는 다수의 장면을 포함하는 전송 프로토콜 요청을 포함하는 다른 방식으로 스트리밍될 미디어 파일의 부분을 식별하도록 구성될 수 있다. 또한, 일 실시예의 콘텐츠 소비 디바이스(102)에 의해 발행된 전송 프로토콜 요청은, 그 요청이 수신되는 시간에 미디어 파일의 부분이 이용가능하게 되는 것으로 서버(104)에 의해 해석되는 미디어 파일의 다음 조각(piece) 또는 부분을 요청할 수 있다. 예를 들면, 미디어 파일은 그 미디어 파일의 다음 조각에 대해 클라이언트 소비 디바이스(102)가 발행한 전송 프로토콜 요청이, 그 요청이 서버(104)에 의해 수신되는 시간까지 기록된 라이브 방송의 부분의 스트리밍을 트리거할 수 있도록 하는 라이브 이벤트의 기록일 수 있다. 콘텐츠 소비 디바이스(102)가 서버(104)로부터 콘텐츤 소비 디바이스(102)로 스트리밍될 미디어 파일의 부분을 식별하는 방식의 다양한 예가 설명되었지만, 콘텐츠 소비 디바이스(102)는 스트리밍될 미디어 파일의 부분을 다른 방식으로 식별할 수 있다.
일 예에서, 콘텐츠 소비 디바이스(102)는 파일 프레픽스를 검색하는데 이용되는 전술한 GET 요청과 유사한 GET 요청을 발행할 수 있지만, 유형 파라미터를 "media"로 설정한다. 일 실시예에서, 콘텐츠 소비 디바이스(102)는 또한, 전송 프로토콜 요청이 복수의 상이한 유형의 트랙과 같은 요청된 트랙 각각의 스트리밍을 요청하면서, 스트리밍에 대한 이용가능한 트랙의 서브세트를 식별할 수 있다. 전술한 예에 비해, 콘텐츠 소비 디바이스(102)는 300 kbps의 영어 오디오 및 비디오 데이터에만 관심이 있을 수 있고, 그 결과 트랙 1 및 트랙 7을 포함하는 이용가능한 트랙의 서브세트를 선택하게 된다. 아래에 제공되는 예에서 설명되는 바와 같이, "tracks" 파라미터는 요청된 트랙을 식별하기 위해 GET 요청에 포함될 수 있다. GET 요청이 스트리밍될 특정 프래그먼트를 식별하지 않더라도, 일 실시예의 콘텐츠 소비 디바이스(102)는 서버(104)로부터 콘텐츠 소비 디바이스(102)로 스트리밍될 미디어 파일의 부분의 시간 프레임을 나타낼 수 있다. 일 실시예에서, 예를 들면, 스트리밍될 미디어 파일의 부분을 정의하는 시작시간 및 지속기간이 제공된다. 그러나, 전술한 바와 같이, 스트리밍되도록 요청되는 미디어 파일의 부분은 다른 방식으로 식별될 수 있다. 예를 들면, 제한적인 것은 아니지만, 미디어 데이터에 대해 콘텐츠 소비 디바이스에 의해 발행되는 HTTP 질의의 일 예는 다음과 같다: GET
Figure pct00005
또는 GET
Figure pct00006
유형 파라미터를 "media"로 설정하고 스트리밍될 트랙 1 및 7을 식별하는 것에 부가하여, GET 질의는 서버(104)에 의해 콘텐츠 소비 디바이스(102)로 스트리밍될 제1 프래그먼트의 시간 스탬프/재생 시간에 대응하는 시작시간, 예를 들면, 23.234의 "st"를 포함한다. 이 예의 GET 질의는 서버(104)로부터 스트리밍될 미디어 파일의 부분의 미디어 시간에서의 총 지속기간을 나타내는 5의 지속기간을 또한 포함한다. 다수의 프래그먼트를 포함하는 지속기간을 정의함으로써, 콘텐츠 소비 디바이스(102)에 의해 발행되고 서버(104)가 응답해야 하는 요청의 수가 감소될 수 있고, 이에 의해 요청 오버헤드를 줄일 수 있고 스트리밍 프로세스의 효율을 증가시킬 수 있다. 대체 실시예에서, GET 질의는 지속기간 파라미터를 포함하지 않지만, 그 대신, 미디어 파일의 요청된 부분이 스트리밍될 시간의 윈도우를 정의하는데 시작시간과 종료시간이 협업하면서, 종료시간 "et"를 포함할 수 있다. 전술한 예에서 또한 나타낸 바와 같이, 희망하는 프래그먼트 지속기간 "fd" 또한 GET 질의에 의해 제공될 수 있다. 일 예에서, 프래그먼트 지속기간은 프래그먼트가 독립적으로 재생가능하고, 이에 따라, 초기 재생 지연을 제한하는데 합리적인 지속기간을 가질 수 있고 합리적인 레벨로 오버헤드를 유지할 수 있기 때문에, 1초 이상의 범위, 예를들면, 전술한 예에서는 1초이다. 더욱이, GET 질의는 랜덤 액세스 포인트 "RAP" 파라미터를 포함할 수 있다. 랜덤 액세스 포인트 파라미터를 1로 설정하면, 그 결과의 질의는 콘텐츠 소비 디바이스(102)가, 응답의 제1 프래그먼트가 랜덤 액세스 포인트에서 시작하는 것을 요청하고 있다는 것을 나타낼 수 있는데, 그 경우 실제 시작시간은 요청된 시작시간과 상이할 수 있다. 대안으로, 랜덤 액세스 포인트 파라미터가 전술한 예에서와 같이 1로 설정되는 경우, 응답의 제1 프래그먼트는 랜덤 액세스 포인트에서 시작할 필요가 없고, 그 대신, 질의가 전술한 예에서와 같이 요청된 시작시간을 갖는다면, 그 요청된 시작시간에 시작할 수 있다.
GET 요청에 기초하여, 서버(104)는 미디어 파일의 요청된 부분을 포함하는 프래그먼트를 식별할 수 있고, 그 프래그먼트를 콘텐츠 소비 디바이스(102)로 스트리밍할 수 있다. 서버(104)는 준비된 프래그먼트를 갖는 저장된 파일 또는 파일 세트로부터. 준비된 프래그먼트가 없는 저장된 파일 또는 파일세트로부터, 예를 들면, 3GP 파일 또는 또 다른 파일 포맷, 또는 라이브 소스로부터 프래그먼트를 식별하고 검색할 수 있다. 콘텐츠 소비 디바이스(102)가 서버(104)에 의해 이전에 제공된 인덱스 파일에 기초하여 프래그먼트별로 콘텐츠의 스트리밍을 요청하지 않지만, 그 대신, 다수의 프래그먼트를 포함할 수 있는 미디어 파일의 부분의 스트리밍을 요청하기 때문에, 서버(104)는 콘텐츠 소비 디바이스(102)로부터 요청의 수신 전에 미디어 파일을 프래그먼트화하기 위해 제한될 필요가 없을 수 있다. 그 대신, 서버(104)는 콘텐츠 소비 디바이스(102)로부터의 요청에 응답하여 진행중인(on the fly) 미디어 파일을 프래그먼트화할 수 있다. 서버(104)가 콘텐츠 소비 디바이스(102)로부터의 요청의 수신에 응답하여 미디어 파일의 요청된 부분을 프래그먼트화함으로써, 서버(104)는 라이브 기록 또는 이벤트가 미리 프래그먼트화될 수 없기 때문에 라이브 기록 또는 이벤트로 구성되는 미디어 파일의 부분을 용이하게 스트리밍할 수 있다. 더욱이, 서버(104)가 진행중인 미디어 파일을 프래그먼트화함으로써, 서버(104)는 생성되고 모든 가능한 트랙 대체물이 아닌 프래그먼트의 저장남을 요구함으로써 자신의 저장 요구 조건을 감소시킬 수 있다.
도 3과 관련하여, 예를 들면, 서버(104)는 콘텐츠 소비 디바이스(102)로부터의 요청의 수신에 응답하여 미디어 파일의 요청된 부분을 프래그먼트화한 다음, 콘텐츠를, moof 및 mdat 박스(416 및 418) 및 선택적으로 mfra 박스(420)의 시퀀스를 반복적으로 제공하는 등에 의해 콘텐츠 소비 디바이스(102)로 스트리밍할 수 있다. 이와 관련하여, mfra 박스(420)는 각각이 요청 끝에, 각각의 프래그먼트 후에 한번 전달되거나 또는 전혀 전달되지 않을 수 있다. 전달된다면, mfra 박스(420)는 프래그먼트내에 샘플의 시간 위치를 나타내는 정보를 포함하고, 그에 따라, 미디어 파일의 요청된 부분의 재생을 용이하게 할 수 있다.
상기 예에 의해 설명된 바와 같이, 콘텐츠 소비 디바이스(102)에 의한 단일 요청은, 오디오 트랙, 비디오 트랙, 서브타이틀 트랙 등과 같은 상이한 유형의 트랙에 대한 요청을 포함할 수 있다. 단일 요청이 요청이 상이한 유형의 트랙을 포함할 수 있게 함으로써, 콘텐츠 소비 디바이스(102)에 의해 발행되고 서버(104)에 의해 개별적으로 응답되어야 하는 요청의 수가 더 감소될 수 있기 때문에, 요청 오버헤드를 줄일 수 있고 스트리밍 프로세스의 효율을 증가시킬 수 있다.
더욱이, 미디어 파일의 요청된 부분이 일반적으로 다수의 프래그먼트를 포함하고, 따라서 단일 프래그먼트에 대한 종래의 요청보다 더 긴 시간 구간에 걸쳐 연장된다. 그에 따라, 콘텐츠 소비 디바이스(102)는, 콘텐츠 소비 디바이스(102)에 대해 이용가능한 대역폭과 같은 현재의 네트워크 조건을 결정하기 위한 더 큰 샘플링 윈도우를 가질 수 있고, 그에 따라, 미디어 파일의 요청된 부분에 대해 대응하는 비트 레이트를 보다 정확하게 결정할 수 있다. 전술한 예에 비해, 다양한 다른 비디오 트랙이 상이한 비트 레이트로 서버(104)에 의해 가능해졌다. 콘텐츠 소비 디바이스(102)에 의해 결정되는 네트워크 조건에 기초하여, 콘텐츠 소비 디바이스(102)는 현재의 네트워크 조건에 대응하는 특정 비트레이트를 갖는 비디오 트랙을 요청할 수 있다. 미디어 파일의 요청된 부분이 다수의 프래그먼트를 포함하기 때문에, 콘텐츠 소비 디바이스는 프래그먼트별로 이루어진 결정 전에 보다 더 신뢰성이 있는 네트워크 조건을 결정할 수 있을 뿐만 아니라, 스트리밍되는 비디오의 비트 레이트에서의 변화가, 예를 들면, 미디어 파일의 요청된 부분의 증가된 길이에 대해 덜 빈번하게 변하게 되어, 그 결과 사용자에게 미디어 파일의 디스플레이는 비트 레이트에서 당황스런 변화가 더 적어짐에 따라 더 완만하게 나타날 것이다.
대체 실시예에서, 콘텐츠 소비 디바이스(102) 및서버(104)는, 콘텐츠 소비 디바이스(102)가, 질의에 지속기간 또는 종료시간 파라미터를 생략하는 등에 의해, 미디어 파일의 개방 종료(open-ended) 범위를 요청할 수 있는 청크 모드(chunked mode)를 이용할 수 있다. 이 실시예에서, 서버(104)는 청크 모드를 채용하여, 사전에 미디어 파일의 요청된 부분 전체를 준비할 필요없이 개별 청크에서 각각의 프래그먼트를 캡슐화(encapsulate)할 수 있다. 환언하면, 이 실시예의 콘텐츠 소비 디바이스(102)는 그들의 응답의 스트리밍을 개시할 때 응답 보디의 크기를 나타낼 필요가 없다. 청크 모드는 또한 서버(104)에 의해 더 많은 광범위한 프로세싱을 요구하고 잠재적으로 미디어 파일의 요청된 부분의 스트리밍을 지연시키는 상대적으로 긴 지속기간을 갖는 미디어 파일의 요청된 부분에 적합할 수 있다.
서버(104)로부터의 상대적으로 긴 스트리밍 응답은 파이프라인 HTTP 요청에 의해 콘텐츠 소비 디바이스(102)에 의해 중단될 수 있다. 이 상황에서, 서버(104)에 의해 후속 요청을 이용하여, 새로운 요청에 대해 응답을 시작하기 전에 이전 응답을 종료한다. 이와 관련하여, 서버(104)는 HTTP 쿠키를 이용하는 등에 의해 세션 정보를 유지할 필요가 없을 수 있다. 세션 정보를 유지함으로서, 서버(104)는 파이프라인이 연관되어 있다는 것을 식별할 수 있다.
도 5는 본 발명의 예시적 실시예에 따라 미디어 파일의 동적 스트리밍을 위한 예시적인 방법에 따른 흐름도를 도시한다. 이와 관련하여, 도 5는 서버(104)에서 수행될 수 있는 동작을 도시한다. 도 5에 도시되고 그와 관련하여 설명된 동작은, 예를 들면, 미디어 스트리밍 회로(128)에 의해 또는 그의 제어 하에서 수행될 수 있다. 동작(500)은 미디어 파일이 적어도 일부에 대한 전송 프로토콜 요청을 수신하는 단계를 포함한다. 다음에, 동작(502)에 따라, 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스(102)로 전송될 복수의 프래그먼트가 결정된다. 다음에, 동작(504)는 전송 프로토콜 요청에 응답하여 복수의 프래그먼트의 콘텐츠 소비 디바이스(102)로의 전송을 제공한다.
도 6은 본 발명의 예시적인 실시예에 따라 미디어 파일의 동적 스트리밍을 위한 예시적인 방법에 따른 흐름도를 도시한다. 이와 관련하여, 도 6은 서버(104)에 의해 수행될 수 있는 동작을 도시한다. 프로세서(120), 메모리(122), 통신 인터페이스(124), 사용자 인터페이스(126), 또는 스트리밍 회로(128) 중 하나 이상은, 예를 들면, 서버(104)로 하여금 도 6에 도시되고 그에 대해 설명된 각각의 동작을 수행하게 한다. 동작(600)은 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하는 단계를 포함한다. 동작(602)에 따라, 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스(102)로 전송될 복수의 프래그먼트가 결정된다. 다음에, 동작(604)는 전송 프로토콜 요청에 응답하여 복수의 프래그먼트를 콘텐츠 소비 디바이스(102)로 전송한다.
도 7은 본 발명의 예시적인 실시예에 따라 미디어 파일의 동적 스트리밍을 위한 예시적인 방법에 따른 흐름도를 도시한다. 이와 관련하여, 도 7은 콘텐츠 소비 디바이스(102)에서 수행될 수 있는 동작을 도시한다. 도 7에 도시되고 그와 관련하여 설명된 동작은, 예를 들면, 미디어 재생 회로(118)에 의해 또는 그의 제어 하에서 수행될 수 있다. 동작(700)은 미디어 파일이 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하는 단계를 포함한다. 그 후, 동작(702)에 따라, 전송 프로토콜 요청에 응답하여 서버(104)로부터 복수의 프래그먼트가 수신된다.
도 8은 본 발명의 예시적인 실시예에 따라 미디어 파일의 동적 스트리밍을 위한 예시적인 방법에 따른 흐름도를 도시한다. 이와 관련하여, 도 8은 콘텐츠 소비 디바이스(102)에서 수행될 수 있는 동작을 도시한다. 프로세서(110), 메모리(112), 통신 인터페이스(114), 사용자 인터페이스(116), 또는 미디어 재생 회로(118) 중 하나 이상은, 예를 들면, 콘텐츠 소비 디바이스(102)로 하여금 도 8에 도시되고 그에 대해 설명된 각각의 동작을 수행하게 한다. 동작(800)은 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 전송하는 단계를 포함한다. 그 후, 동작(802)에서, 전송 프로토콜 요청에 응답하여 서버(104)로부터 복수의 프래그먼트가 수신된다.
도 3 및 도 5 내지 도 8은 본 발명의 예시적인 실시예에 따른 시스템, 방법, 및 컴퓨터 프로그램 제품의 흐름도이다. 흐름도의 각각의 블록, 흐름도 내의 블록들의 조합은 하드웨어 및/또는 컴퓨터 판독가능 프로그램 명령어를 저장한 하나 이상의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품과 같은 다양한 수단에 의해 구현될 수 있다는 것이 이해될 것이다. 예를 들면, 여기서 설명된 하나 이상의 절차들은 컴퓨터 프로그램 제품의 컴퓨터 프로그램 명령어에 의해 구체화될 수 있다. 이와 관련하여, 여기서 설명된 절차들을 구체화하는 컴퓨터 프로그램 제품(들)은 모바일 단말기, 서버 또는 다른 컴퓨팅 디바이스의 하나 이상의 메모리 디바이스에 의해 저장되고 그 컴퓨팅 디바이스 내의 프로세서(예를 들면, 프로세서(110) 또는 프로세서(120))에 의해 실행될 수 있다. 몇몇의 실시예에서, 상기에서 설명된 절차들을 구체화하는 컴퓨터 프로그램 제품(들)을 포함하는 컴퓨터 프로그램 명령어는 복수의 컴퓨팅 디바이스들의 메모리 디바이스에 의해 저장될 수 있다. 이해될 수 있는 바와 같이, 임의의 그러한 컴퓨터 프로그램 제품은 컴퓨터나 다른 프로그래밍가능 장치상으로 로딩되어 머신을 생성할 수 있고, 따라서 컴퓨터 또는 다른 프로그래밍 가능한 장치상에서 실행되는 명령어를 포함하는 컴퓨터 프로그램 제품이 흐름도 블록(들)에서 규정된 기능을 구현하기 위한 수단을 생성하도록 한다. 또한, 컴퓨터 프로그램 제품은 컴퓨터 프로그램 명령어가 저장될 수 있는 하나 이상의 컴퓨터 판독가능 메모리를 포함하여, 하나 이상의 컴퓨터 판독가능 메모리가 컴퓨터 또는 다른 프로그래밍가능 장치들이 특별한 방식으로 기능하도록 지시할 수 있으며, 따라서 컴퓨터 프로그램 제품이 흐름도 블록(들)에서 규정된 기능을 구현하는 제품을 포함하도록 한다. 하나 이상의 컴퓨터 프로그램 제품의 컴퓨터 프로그램 명령어는 컴퓨터 또는 다른 프로그래밍가능 장치(예를 들면, 콘텐츠 소비 디바이스(102) 및/또는 서버(104))상에 또한 로딩되어, 그 컴퓨터 또는 다른 프로그래밍가능 장치상에서 수행되는 일련의 명령으로 하여금 컴퓨터 구현 프로세스를 생성하도록 하여, 컴퓨터 또는 다른 프로그래밍가능 장치상에서 실행되는 명령어가 흐름도 블록(들)에서 규정된 기능들을 구현하도록 한다.
따라서, 흐름도의 블록들은 규정된 기능을 수행하기 위한 수단의 조합을 지원한다. 흐름도의 하나 이상의 블록들 그리고 그 흐름도의 블록들의 조합이 규정된 기능을 수행하는 특수 목적의 하드웨어-기반의 컴퓨터 시스템 또는 특수 목적 하드웨어와 컴퓨터 프로그램 제품(들)의 조합에 의해 구현될 수 있을 것이라는 것 또한 이해될 것이다.
상기에서 설명된 기능은 많은 방식으로 수행될 수 있다. 예를 들면, 상기에서 설명된 기능 각각을 수행하기 위한 임의의 적합한 수단은 본 발명의 실시예를 수행하기 위해서 채용될 수 있다. 일 실시예에서, 적합하게 구성된 프로세서는 본 발명의 구성 요소들의 모두 또는 일부를 제공할 수 있다. 다른 실시예에서, 본 발명의 구성 요소들의 모두 또는 일부는 컴퓨터 프로그램 제품에 의해 구성되고 그 컴퓨터 프로그램 제품의 제어 하에 동작할 수 있다. 본 발명의 실시예의 방법을 수행하기 위한 컴퓨터 프로그램 제품은 비휘발성 저장 매체와 같은 컴퓨터 판독가능 저장 매체, 그리고 컴퓨터 판독가능 저장 매체에 구체화된 일련의 컴퓨터 명령어와 같은 컴퓨터 판독가능 프로그램 코드 부분을 포함한다.
제1 실시예에서, 미디어 파일의 적어도 일부가 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하는 단계를 포함하는 방법이 제공된다. 이 실시예의 방법은 또한 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정한 다음, 그 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로의 복수의 프래그먼트의 전송을 제공한다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일 실시예에서, 전송 프로토콜 요청은, 이 실시예의 방법이, 예를 들면, 각각의 상이한 유형의 트랙으로부터 멀티플렉싱된 미디어 데이터를 포함할 수 있는 복수의 프래그먼트의 전송을 제공하도록, 상이한 유형의 트랙을 식별할 수 있다. 일 실시예의 방법은 또한 전송 프로토콜 요청에 응답하여 미디어 파일의 적어도 일부를 복수의 프래그먼트로 포맷하는 등에 의해 복수의 프래그먼트를 생성하고, 이에 의해 동적 미디어 파일 스트리밍을 지원하고 전송 프로토콜 요청의 미디어 파일을 미리 프래그먼트화하는 요구 사항을 피할 수 있다. 대안으로, 또 다른 실시예의 방법은 전송 프로토콜 요청에 응답하여 복수의 미리정의된 프래그먼트들 중에서 복수의 프래그먼트를 식별한다.
제2의 예시적 실시예에서 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 프로그램 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함한다. 이 실시예의 컴퓨터 판독가능 프로그램 명령어는, 프로세서에 의해 실행될 때, 미디어 파일의 적어도 일부가 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하도록 구성되는 프로그램 명령어를 포함할 수 있다. 이 실시예의 컴퓨터 판독가능 프로그램 명령어는 또한, 프로세서에 의해 실행될 때, 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정한 다음, 그 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로의 복수의 프래그먼트의 전송을 제공하도록 구성된다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일 실시예에서, 전송 프로토콜 요청은, 이 실시예의 방법이, 예를 들면, 각각의 상이한 유형의 트랙으로부터 멀티플렉싱된 미디어 데이터를 포함하는 복수의 프래그먼트의 전송을 제공하도록, 상이한 유형의 트랙을 식별할 수 있다. 일 실시예의 컴퓨터 판독가능 프로그램 명령어는 또한, 프로세서에 의해 실행될 때, 전송 프로토콜 요청에 응답하여 미디어 파일의 적어도 일부를 복수의 프래그먼트로 포맷하는 등에 의해 복수의 프래그먼트를 생성하고, 이에 의해 동적 미디어 파일 스트리밍을 지원하고 전송 프로토콜 요청의 미디어 파일을 미리 프래그먼트화하는 요구 사항을 피할 수 있다. 대안으로, 또 다른 실시예의 컴퓨터 판독가능 프로그램 명령어는, 프로세서에 의해 실행될 때, 전송 프로토콜 요청에 응답하여 복수의 미리정의된 프래그먼트들 중에서 복수의 프래그먼트를 식별한다.
제3의 예시적인 실시예에서, 장치가 제공된다. 이 실시예의 장치는 적어도 하나의 프로세서, 및 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함한다. 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리는, 적어도 하나의 프로세서와 동작하면서, 장치로 하여금, 미디어 파일의 적어도 일부가 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하게 한다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정한 다음, 그 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로의 복수의 프래그먼트의 전송을 제공하게 된다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일 실시예에서, 전송 프로토콜 요청은, 이 실시예의 방법이, 예를 들면, 각각의 상이한 유형의 트랙으로부터 멀티플렉싱된 미디어 데이터를 포함하는 복수의 프래그먼트의 전송을 제공하도록, 상이한 유형의 트랙을 식별할 수 있다. 일 실시예의 장치는 또한, 전송 프로토콜 요청에 응답하여 미디어 파일의 적어도 일부를 복수의 프래그먼트로 포맷하는 등에 의해 복수의 프래그먼트를 생성하고, 이에 의해 동적 미디어 파일 스트리밍을 지원하고 전송 프로토콜 요청의 미디어 파일을 미리 프래그먼트화하는 요구 사항을 피할 수 있다. 대안으로, 또 다른 실시예의 장치는 전송 프로토콜 요청에 응답하여 복수의 미리정의된 프래그먼트들 중에서 복수의 프래그먼트를 식별하도록 구성된다.
이 실시예의 장치는 단말기로서 구체화되거나 또는 단말기 상에 구체화될 수 있다. 이 실시예의 장치는 사용자 인터페이스 회로, 및 적어도 하나의 메모리의 하나 이상에 저장된 사용자 인터페이스를 더 포함하는 모바일 전화를 포함할 수 있다. 사용자 인터페이스 회로 및 사용자 인터페이스 소프트웨어는 디스플레이의 사용을 통해 모바일 전화의 적어도 몇몇 기능의 사용자 제어를 용이하게 하도록 구성될 수 있다. 사용자 인터페이스 회로 및 사용자 인터페이스 소프트웨어는 또한 적어도 모바일 전화의 사용자 인터페이스의 일부가 디스플레이 상에 디스플레이되도록 구성되어 모바일 전화의 적어도 몇몇 기능의 사용자 제어를 용이하게 할 수 있다.
제4의 예시적인 실시예에서, 미디어 파일의 적어도 일부가 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하는 수단을 포함하는 장치가 제공된다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정하는 수단, 및 그 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로의 복수의 프래그먼트의 전송을 제공하는 수단을 포함한다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일 실시예에서, 전송 프로토콜 요청은, 이 실시예의 방법이, 예를 들면, 각각의 상이한 유형의 트랙으로부터 멀티플렉싱된 미디어 데이터를 포함하는 복수의 프래그먼트의 전송을 제공하도록, 상이한 유형의 트랙을 식별할 수 있다. 일 실시예의 장치는 또한, 전송 프로토콜 요청에 응답하여 미디어 파일의 적어도 일부를 복수의 프래그먼트로 포맷하는 등에 의해 복수의 프래그먼트를 생성하는 수단을 포함하고, 이에 의해 동적 미디어 파일 스트리밍을 지원하고 전송 프로토콜 요청의 미디어 파일을 미리 프래그먼트화하는 요구 사항을 피할 수 있다. 대안으로, 또 다른 실시예의 장치는 전송 프로토콜 요청에 응답하여 복수의 미리정의된 프래그먼트들 중에서 복수의 프래그먼트를 식별하는 수단을 포함한다.
제5의 예시적인 실시예에서, 미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하는 단계를 포함하는 방법이 제공된다. 이 실시예의 방법은 또한 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신한다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일실시예에서, 전송 프로토콜 요청의 발행은 스트리밍될 상이한 유형의 트랙의 식별을 포함한다. 이에 따라, 이 실시예에서, 복수의 프래그먼트의 수신은 상이한 유형의 트랙 각각의 복수의 프래그먼트를 수신하는 단계를 포함할 것이다.
제6의 예시적인 실시예에서, 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 프로그램 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함한다. 이 실시예의 컴퓨터 판독가능 프로그램 명령어는, 프로세서에 의해 실행될 때, 미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하도록 구성되는 프로그램 명령어를 포함할 수 있다. 이 실시예의 컴퓨터 판독가능 프로그램 명령어는 또한, 프로세서에 의해 실행될 때, 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하도록 구성된다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일실시예에서, 전송 프로토콜 요청의 발행은 스트리밍될 상이한 유형의 트랙의 식별을 포함한다. 이에 따라, 이 실시예에서, 복수의 프래그먼트의 수신은 상이한 유형의 트랙 각각의 복수의 프래그먼트를 수신하는 단계를 포함할 것이다.
제7의 예시적인 실시예에서, 장치가 제공된다. 이 실시예이 장치는 적어도 하나의 프로세서, 및 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함한다. 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리는, 적어도 하나의 프로세서와 동작하면서, 장치로 하여금, 미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하게 구성된다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하도록 야기된다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일실시예에서, 전송 프로토콜 요청의 발행은 스트리밍될 상이한 유형의 트랙의 식별을 포함한다. 이에 따라, 이 실시예에서, 복수의 프래그먼트의 수신은 상이한 유형의 트랙 각각의 복수의 프래그먼트를 수신하는 단계를 포함할 것이다.
이 실시예의 장치는 단말기로서 구체화되거나 또는 단말기 상에 구체화될 수 있다. 이 실시예의 장치는 사용자 인터페이스 회로, 및 적어도 하나의 메모리의 하나 이상에 저장된 사용자 인터페이스를 더 포함하는 모바일 전화를 포함할 수 있다. 사용자 인터페이스 회로 및 사용자 인터페이스 소프트웨어는 디스플레이의 사용을 통해 모바일 전화의 적어도 몇몇 기능의 사용자 제어를 용이하게 하도록 구성될 수 있다. 사용자 인터페이스 회로 및 사용자 인터페이스 소프트웨어는 또한 적어도 모바일 전화의 사용자 인터페이스의 일부가 디스플레이 상에 디스플레이되도록 구성되어 모바일 전화의 적어도 몇몇 기능의 사용자 제어를 용이하게 할 수 있다.
제8의 예시적인 실시예에서, 미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하는 수단을 포함하는 장치가 제공된다. 이 실시예의 장치는 또한 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하는 수단을 포함한다.
전송 프로토콜 요청은 스트리밍될 미디어 파일의 부분을, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것과 같이 다양한 방식으로 식별할 수 있다. 일실시예에서, 전송 프로토콜 요청의 발행은 스트리밍될 상이한 유형의 트랙의 식별을 포함한다. 이에 따라, 이 실시예에서, 복수의 프래그먼트의 수신은 상이한 유형의 트랙 각각의 복수의 프래그먼트를 수신하는 단계를 포함할 것이다.
또 다른 실시예에서, 서버로부터 콘텐츠 소비 디바이스로의 미디어 파일 스트리밍을 지원하도록 구성된 서버와 콘텐츠 소비 디바이스를 포함하는 시스템이 제공된다. 이 실시예에서, 콘텐츠 소비 디바이스는 미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜의 발행을 지시하고, 그 전송 프로토콜 요청에 응답하여 서버로부터 복수의 프래그먼트를 수신하도록 구성된다. 부가하여, 이 실시예에서의 서버는 미디어 파일의 적어도 일부가 그 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는, 미디어 파일의 적어도 일부에 대한 전송 프로토콜을 수신하도록 구성된다. 이 실시예이 서버는 또한, 전송 프로토콜 요청에 기초하여 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정하고, 다음에, 그 전송 프로토콜 요청에 응답하여 콘텐츠 소비 디바이스로의 복수의 프래그먼트의 전송을 제공하도록 야기된다.
전술한 설명들 및 연관된 도면들에서 제시된 본 발명의 교시의 이점을 갖는 본 발명이 속한 기술분야에 통상의 지식을 가진 자에게는 여기서 제시된 본 발명의 많은 수정들 및 다른 실시예가 상정될 것이다. 따라서, 본 발명의 실시예는 개시된 특정 실시예로 한정되는 것이 아니며 그러한 수정 및 다른 실시예는 본 발명의 범위 내에 있는 것으로 의도된 것이라는 것이 이해될 것이다. 더욱이, 전술한 설명들 및 연관된 도면들이 임의의 예시적인 구성 요소 및/또는 기능의 조합의 맥락에서 예시적인 실시예를 설명하지만, 구성 요소 및/또는 기능의 상이한 조합이 본 발명의 범위를 벗어나지 않으면서 대체 실시예에 의해 제공될 수 있다는 것이 이해되어야 한다. 이와 관련하여, 예를 들면, 상기에 명시적으로 설명된 것과는 다른 구성 요소 및/또는 기능의 상이한 조합이 본 발명의 범위 내에서 상정된다. 여기서는 특정 용어가 채용되었지만, 그들 용어는 일반적인 것이며 단지 설명하는 것으로 제한의 목적을 위한 것은 아니다.

Claims (22)

  1. 미디어 파일의 적어도 일부가 상기 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는 상기 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하는 단계와,
    프로세서를 통해, 상기 전송 프로토콜 요청에 기초하여 상기 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정하는 단계와,
    상기 전송 프로토콜 요청에 응답하여 상기 콘텐츠 소비 디바이스로의 복수의 프래그먼트의 전송을 제공하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 전송 프로토콜 요청을 수신하는 단계는, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것 중 적어도 하나에 의해 스트리밍될 상기 미디어 파일의 일부를 식별하는 전송 프로토콜 요청을 수신하는 단계를 포함하는
    방법.

  3. 제1항에 있어서,
    상기 전송 프로토콜 요청을 수신하는 단계는 상이한 유형의 트랙을 식별하는 상기 전송 프로토콜 요청을 수신하는 단계를 포함하고, 상기 복수의 프래그먼트의 전송을 제공하는 단계는 상기 상이한 유형의 트랙 각각의 복수의 프래그먼트를 전송하는 것을 제공하는 단계를 포함하는
    방법.
  4. 제3항에 있어서,
    상기 복수의 프래그먼트의 전송을 제공하는 단계는, 상기 상이한 유형의 트랙의 각각으로부터 멀티플렉싱된 미디어 데이터를 포함하는 복수의 프래그먼트의 전송을 제공하는 단계를 포함하는
    방법.
  5. 제1항에 있어서,
    상기 전송 프로토콜 요청에 응답하여 상기 미디어 파일의 적어도 일부를 복수의 프래그먼트로 포맷하는 단계를 더 포함하는
    방법.
  6. 프로세서에 의해 실행될 때, 제1항의 방법이 실행되도록 하는 컴퓨터 실행가능 프로그램 코드 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함하는
    컴퓨터 프로그램 제품.
  7. 적어도 하나의 프로세서와 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    미디어 파일의 적어도 일부가 상기 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는 상기 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하고,
    상기 전송 프로토콜 요청에 기초하여 상기 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정하며,
    상기 전송 프로토콜 요청에 응답하여 상기 콘텐츠 소비 디바이스로의 복수의 프래그먼트의 전송을 제공하도록 하는
    장치.
  8. 제7항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것 중 적어도 하나에 의해 스트리밍될 상기 미디어 파일의 일부를 식별하는 상기 전송 프로토콜 요청을 수신함으로써 상기 전송 프로토콜 요청을 수신하도록 하는
    장치.
  9. 제7항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    상이한 유형의 트랙을 식별하는 상기 전송 프로토콜 요청을 수신함으로써 상기 전송 프로토콜을 수신하고, 상기 상이한 유형의 트랙 각각의 복수의 프래그먼트의 전송을 제공함으로써 상기 복수의 프래그먼트의 전송을 제공하도록 하는
    장치.

  10. 제9항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    상기 상이한 유형의 각각의 트랙으로부터 멀티플렉싱된 미디어 데이터를 포함하는 복수의 프래그먼트의 전송을 제공함으로써 상기 복수의 프래그먼트의 전송을 제공하도록 하는
    장치.
  11. 제7항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    상기 전송 프로토콜 요청에 응답하여 상기 미디어 파일의 적어도 일부를 복수의 프래그먼트로 포맷하도록 하는
    장치.
  12. 프로세서를 통해, 미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는 상기 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하는 단계와,
    상기 전송 프로토콜 요청에 응답하여 상기 서버로부터 복수의 프래그먼트를 수신하는 단계를 포함하는
    방법.
  13. 제12항에 있어서,
    상기 전송 프로토콜 요청의 발행을 지시하는 단계는, 시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나 또는 복수의 프레임을 식별하는 것 중 적어도 하나에 의해 스트리밍될 상기 미디어 파일의 일부를 식별하는 상기 전송 프로토콜 요청의 발행을 지시하는 단계를 포함하는
    방법.
  14. 제12항에 있어서,
    상기 전송 프로토콜 요청의 발행을 지시하는 단계는, 스트리밍될 상이한 유형의 트랙의 식별자를 포함하는 상기 전송 프로토콜 요청의 발행을 지시하는 단계를 포함하고, 상기 복수의 프래그먼트를 수신하는 단계는 상기 상이한 유형의 트랙 각각의 복수의 프래그먼트를 수신하는 단계를 포함하는
    방법.
  15. 제12항에 있어서,
    상기 전송 프로토콜 요청의 발행을 지시하는 단계는, 상기 미디어 파일이 스트리밍될 프로토콜의 식별자를 포함하는 상기 전송 프로토콜 요청의 발행을 지시하는 단계를 포함하는
    방법.
  16. 프로세서에 의해 실행될 때, 제12항의 방법이 실행되도록 하는 컴퓨터 실행가능 프로그램 코드 명령어가 저장된 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함하는
    컴퓨터 프로그램 제품.
  17. 적어도 하나의 프로세서와 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는 상기 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하고,
    상기 전송 프로토콜 요청에 응답하여 상기 서버로부터 복수의 프래그먼트를 수신하도록 하는
    장치.
  18. 제17항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    시간 간격을 식별하거나, 적어도 하나의 장면을 식별하거나, 또는 복수의 프레임을 식별하는 것 중 적어도 하나에 의해 스트리밍될 상기 미디어 파일의 일부를 식별하는 상기 전송 프로토콜 요청의 발행을 지시함으로써 상기 전송 프로토콜 요청의 발행을 지시하도록 하는
    장치.
  19. 제17항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    스트리밍될 상이한 유형의 트랙의 식별자를 포함하는 상기 전송 프로토콜 요청의 발행을 지시함으로써 상기 전송 프로토콜 요청의 발행을 지시하고, 상기 상이한 유형의 트랙 각각의 복수의 프래그먼트를 수신함으로써 상기 복수의 프래그먼트를 수신하도록 하는
    장치.
  20. 제17항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금,
    상기 미디어 파일이 스트리밍될 프로토콜의 식별자를 포함하는 상기 전송 프로토콜의 발행을 지시함으로써 상기 전송 프로토콜 요청의 발행을 지시하도록 하는
    장치.
  21. 미디어 파일의 적어도 일부가 상기 미디어 파일을 요청하는 콘텐츠 소비 디바이스로 스트리밍될 것이라는 것을 나타내는 상기 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청을 수신하는 수단과,
    상기 전송 프로토콜 요청에 기초하여, 상기 콘텐츠 소비 디바이스로 전송될 복수의 프래그먼트를 결정하는 수단과,
    상기 전송 프로토콜 요청에 응답하여 상기 콘텐츠 소비 디바이스로의 상기 복수의 프래그먼트의 전송을 제공하는 수단을 포함하는
    장치.
  22. 미디어 파일의 적어도 일부가 서버로부터 스트리밍될 것이라는 것을 나타내는 상기 미디어 파일의 적어도 일부에 대한 전송 프로토콜 요청의 발행을 지시하는 수단과,
    상기 전송 프로토콜 요청에 응답하여 상기 서버로부터 복수의 프래그먼트를 수신하는 수단을 포함하는
    장치.
KR1020127010859A 2009-09-29 2010-09-29 다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치 KR20120080214A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US24684609P 2009-09-29 2009-09-29
US61/246,846 2009-09-29

Publications (1)

Publication Number Publication Date
KR20120080214A true KR20120080214A (ko) 2012-07-16

Family

ID=43825632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127010859A KR20120080214A (ko) 2009-09-29 2010-09-29 다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치

Country Status (6)

Country Link
US (1) US20110246659A1 (ko)
EP (1) EP2484090A1 (ko)
KR (1) KR20120080214A (ko)
CN (1) CN102577309A (ko)
TW (1) TW201123795A (ko)
WO (1) WO2011039617A1 (ko)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
WO2009065137A1 (en) 2007-11-16 2009-05-22 Divx, Inc. Hierarchical and reduced index structures for multimedia files
US8997161B2 (en) 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
CN101420317B (zh) * 2008-11-21 2011-10-26 华为终端有限公司 媒体文件录制错误的修复方法、录制终端、服务器和系统
AU2010203605B2 (en) 2009-01-07 2015-05-14 Divx, Llc Singular, collective and automated creation of a media guide for online content
US10003851B2 (en) * 2009-11-24 2018-06-19 Imagine Communications Corp. Managed multiplexing of video in an adaptive bit rate environment
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US8959183B2 (en) 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8516063B2 (en) 2010-02-12 2013-08-20 Mary Anne Fletcher Mobile device streaming media application
KR101777348B1 (ko) * 2010-02-23 2017-09-11 삼성전자주식회사 데이터 전송 방법 및 장치와 데이터 수신 방법 및 장치
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US9253548B2 (en) * 2010-05-27 2016-02-02 Adobe Systems Incorporated Optimizing caches for media streaming
KR101705813B1 (ko) * 2010-06-23 2017-02-10 삼성전자주식회사 무선 통신 시스템에서 멀티미디어 컨텐츠의 랜덤 액세스 방법 및 장치
US8954540B2 (en) 2010-06-30 2015-02-10 Albert John McGowan Dynamic audio track selection for media streaming
US8301733B2 (en) 2010-06-30 2012-10-30 Unicorn Media, Inc. Dynamic chunking for delivery instances
US9838450B2 (en) 2010-06-30 2017-12-05 Brightcove, Inc. Dynamic chunking for delivery instances
AU2010202741B1 (en) 2010-06-30 2010-12-23 Brightcove Inc. Dynamic chunking for media streaming
US9762639B2 (en) 2010-06-30 2017-09-12 Brightcove Inc. Dynamic manifest generation based on client identity
US8782106B2 (en) 2010-07-02 2014-07-15 Code Systems Corporation Method and system for managing execution of virtual applications
KR20130042544A (ko) * 2010-07-09 2013-04-26 엘지전자 주식회사 상호공존 방식에서 대표 기기 선출 방법
WO2012032502A1 (en) * 2010-09-10 2012-03-15 Nokia Corporation A method and apparatus for adaptive streaming
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
US9420022B2 (en) * 2010-12-17 2016-08-16 Microsoft Technology Licensing, Llc Media requests to counter latency and minimize network bursts
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
AU2011201404B1 (en) 2011-03-28 2012-01-12 Brightcove Inc. Transcodeless on-the-fly ad insertion
TWI492148B (zh) * 2011-07-08 2015-07-11 Tpv Display Technology Xiamen Wireless Playback System and Its Method
US9219981B2 (en) * 2011-08-15 2015-12-22 Connectquest Llc Distributed data in a close proximity notification system
US9219990B2 (en) 2011-08-15 2015-12-22 Connectquest Llc Real time data feeds in a close proximity notification system
US9219980B2 (en) 2011-08-15 2015-12-22 Connectquest Llc Campus security in a close proximity notification system
US8831642B2 (en) 2011-08-15 2014-09-09 Connectquest Llc Close proximity notification system
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
CN108989847B (zh) 2011-08-30 2021-03-09 帝威视有限公司 用于编码和流处理视频的系统和方法
US8953016B2 (en) * 2011-09-01 2015-02-10 Mediatek Inc. Apparatus and method for generating polarized video stream according to multi-view video stream and motion information derived from multi-view video stream
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
CN103002272A (zh) * 2011-09-15 2013-03-27 上海聚力传媒技术有限公司 一种切换音视频信息的码率的方法、装置和设备
US9338474B2 (en) * 2011-09-23 2016-05-10 Qualcomm Incorporated Reference picture list construction for video coding
US8239546B1 (en) 2011-09-26 2012-08-07 Unicorn Media, Inc. Global access control for segmented streaming delivery
US8625789B2 (en) 2011-09-26 2014-01-07 Unicorn Media, Inc. Dynamic encryption
US8165343B1 (en) 2011-09-28 2012-04-24 Unicorn Media, Inc. Forensic watermarking
US9843844B2 (en) * 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
CN103095517B (zh) * 2011-11-04 2016-12-07 华为技术有限公司 流媒体传输质量评估和信息获取方法及相关设备和系统
US8977704B2 (en) * 2011-12-29 2015-03-10 Nokia Corporation Method and apparatus for flexible caching of delivered media
US8918908B2 (en) 2012-01-06 2014-12-23 Sonic Ip, Inc. Systems and methods for accessing digital content using electronic tickets and ticket tokens
CA2866472C (en) * 2012-03-26 2021-06-01 Cacti Acquisition Llc Dynamic audio track selection for media streaming
US8762563B2 (en) 2012-04-16 2014-06-24 Adobe Systems Incorporated Method and apparatus for improving the adaptive bit rate behavior of a streaming media player
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
EP2875417B1 (en) 2012-07-18 2020-01-01 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
CN103581698B (zh) * 2012-07-31 2017-05-24 联想(北京)有限公司 终端设备以及视频数据发布方法
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US20140115032A1 (en) * 2012-10-23 2014-04-24 General Instrument Corporation Preserving a consumption context for a user session
EP3148290B1 (en) * 2012-10-26 2023-08-30 Apple Inc. Multimedia adaptation based on video orientation
KR101843328B1 (ko) 2012-10-26 2018-03-28 인텔 코포레이션 비디오 방향 조정(cvo)를 갖는 스트리밍
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
CN103152607B (zh) * 2013-01-10 2016-10-12 上海思华科技股份有限公司 视频超快速粗编方法
US9112939B2 (en) 2013-02-12 2015-08-18 Brightcove, Inc. Cloud-based video delivery
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9710469B2 (en) 2013-03-15 2017-07-18 Comcast Cable Communications, Llc Efficient data distribution to multiple devices
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
WO2015027413A1 (en) * 2013-08-28 2015-03-05 Nokia Corporation Method and apparatus for sharing content consumption sessions at different devices
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
WO2015166817A1 (ja) * 2014-04-30 2015-11-05 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム
US10375439B2 (en) 2014-05-30 2019-08-06 Sony Corporation Information processing apparatus and information processing method
WO2016003915A1 (en) * 2014-07-03 2016-01-07 Huawei Technologies Co., Ltd. Signaling and handling of forensic marking for adaptive streaming
US9521212B2 (en) * 2014-09-30 2016-12-13 Sonos, Inc. Service provider user accounts
TWI555406B (zh) * 2014-11-20 2016-10-21 聯詠科技股份有限公司 儲存方法及其處理裝置與錄影系統
US9917882B2 (en) * 2014-11-30 2018-03-13 Sonicwall Inc. Transparent deferred spooling store and forward based on standard network system and client interface
US9813526B2 (en) 2015-05-26 2017-11-07 Sonicwall Inc. Reducing transmission pathway lengths within a distributed network
US9888052B2 (en) 2015-09-21 2018-02-06 Imagine Communications Corp. ABR allocation for statistical multiplexing
US10972519B2 (en) * 2015-09-24 2021-04-06 Flir Commercial Systems, Inc. Real-time video streaming to client video element
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
GB2550604A (en) * 2016-05-24 2017-11-29 Canon Kk Method, device, and computer program for encapsulating and parsing timed media data
US20170344523A1 (en) * 2016-05-25 2017-11-30 Samsung Electronics Co., Ltd Method and apparatus for presentation customization and interactivity
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
CN107920262A (zh) * 2016-10-08 2018-04-17 北京优朋普乐科技有限公司 一种媒体文件发布方法及装置
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10819907B2 (en) * 2017-03-30 2020-10-27 Mediatek Inc. Method and apparatus for signaling spherical region information in ISOBMFF
US20210289015A1 (en) * 2018-07-10 2021-09-16 Nokia Technologies Oy Dynamic multiple endpoint generation
CN110995572B (zh) * 2019-11-29 2022-01-14 广州市百果园信息技术有限公司 信息发布方法、装置、系统及计算机存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015584B2 (en) * 2002-10-18 2011-09-06 Seachange International, Inc. Delivering interactive content to a remote subscriber
US7941553B2 (en) * 2002-10-18 2011-05-10 International Business Machines Corporation Method and device for streaming a media file over a distributed information system
US20130097302A9 (en) * 2003-10-01 2013-04-18 Robert Khedouri Audio visual player apparatus and system and method of content distribution using the same
JP2007065928A (ja) * 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
CN101490670A (zh) * 2006-07-20 2009-07-22 桑迪士克股份有限公司 内容分布系统
US7783773B2 (en) * 2006-07-24 2010-08-24 Microsoft Corporation Glitch-free media streaming
US7865571B2 (en) * 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US20080256255A1 (en) * 2007-04-11 2008-10-16 Metro Enterprises, Inc. Process for streaming media data in a peer-to-peer network
EP2215842A2 (en) * 2007-12-03 2010-08-11 Nokia Corporation Systems and methods for storage of notification messages in iso base media file format
US8099476B2 (en) * 2008-12-31 2012-01-17 Apple Inc. Updatable real-time or near real-time streaming
US8909806B2 (en) * 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations

Also Published As

Publication number Publication date
TW201123795A (en) 2011-07-01
WO2011039617A1 (en) 2011-04-07
US20110246659A1 (en) 2011-10-06
CN102577309A (zh) 2012-07-11
EP2484090A1 (en) 2012-08-08

Similar Documents

Publication Publication Date Title
KR20120080214A (ko) 다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치
US8510375B2 (en) Apparatus and methods for time mapping media segments in streaming media files
US8966106B2 (en) System and method for media content streaming
US20100262711A1 (en) Systems, methods, and apparatuses for media file streaming
US20110246660A1 (en) Systems, Methods, and Apparatuses for Media File Streaming
KR102303582B1 (ko) 웹 콘텐츠에 대한 파일 트랙들을 사용하여 미디어 데이터를 프로세싱
EP2437465A1 (en) Method, system and network equipment for implementing http-based streaming media service
KR102499231B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
TWI577186B (zh) 第二內容串流在第二裝置上描繪時間之控制方法及控制裝置
MX2015004794A (es) Fragmentacion de audio de multiples pistas para transmision continua de tasa de bits adaptable.
US20210306703A1 (en) Determination of availability of chunks of data for network streaming media data
KR101710452B1 (ko) 멀티미디어 전송 시스템에서 서비스 발견 정보를 송수신하는 방법 및 장치와 이를 위한 파일 구조
CN113364728A (zh) 媒体内容接收方法、装置、存储介质和计算机设备
KR20200018890A (ko) 무선 스트리밍 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application