KR101616147B1 - 디지털 미디어의 동적 단편화 - Google Patents

디지털 미디어의 동적 단편화 Download PDF

Info

Publication number
KR101616147B1
KR101616147B1 KR1020117009094A KR20117009094A KR101616147B1 KR 101616147 B1 KR101616147 B1 KR 101616147B1 KR 1020117009094 A KR1020117009094 A KR 1020117009094A KR 20117009094 A KR20117009094 A KR 20117009094A KR 101616147 B1 KR101616147 B1 KR 101616147B1
Authority
KR
South Korea
Prior art keywords
request
manifest
client
quality level
file
Prior art date
Application number
KR1020117009094A
Other languages
English (en)
Other versions
KR20110079665A (ko
Inventor
존 에이. 보차로브
게퀴앙 장
구르프라탑 비르디
비샬 수드
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20110079665A publication Critical patent/KR20110079665A/ko
Application granted granted Critical
Publication of KR101616147B1 publication Critical patent/KR101616147B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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/1066Session management
    • H04L65/1101Session protocols
    • 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/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • 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/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Tourism & Hospitality (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

미디어 단편화가 제공될 수 있다. 먼저, 매니페스트에 대한 요청이 클라이언트로부터 수신될 수 있다. 그 후, 매니페스트에 대한 수신된 요청에 응답하여, 매니페스트가 클라이언트에게 송신될 수 있다. 다음으로, 파일 단편에 대한 요청이 클라이언트로부터 수신될 수 있다. 이 요청은 파일 단편에 대응하는 시작 시간 및 종료 시간을 표시할 수 있다. 요청은 매니페스트에 의해 정의된 포맷으로 이루어질 수 있다. 그 후, 룩업 테이블은 시작 시간에 대응하는 미디어 파일의 제1 바이트 로케이션 및 종료 시간에 대응하는 미디어 파일의 제2 바이트 로케이션에 대해 질의받을 수 있다. 다음으로, 제1 바이트 로케이션과 제2 바이트 로케이션 간의 미디어 파일의 일부분이 미디어 파일로부터 추출될 수 있다. 일부분은 파일 단편을 포함할 수 있다. 파일 단편은 클라이언트에게 송신될 수 있다.

Description

디지털 미디어의 동적 단편화{DYNAMIC FRAGMENTATION OF DIGITAL MEDIA}
스트리밍 오디오는 인터넷으로부터 오디오 및/또는 비디오 파일들을 재생하는 프로세스이다. 복수의 파일들은 콘텐츠 서버로부터 이들이 도착한 순서대로 최종 사용자 클라이언트에서 재생된다. 파일들은 최종 사용자 클라이언트 상에 보존되지 않으므로, 네트워크 커넥션은 파일들을 계속해서 수신하도록 유지되어야만 한다. 다시 말해서, 스트리밍으로, 파일들이 콘텐츠 서버로부터 제공자에 의해 전달되는 동안 최종 사용자 클라이언트에 의해 파일들이 끊임없이 수신되며, 보통은 이 최종 사용자 클라이언트에게 제공된다. 스트리밍은 디스크 상의 단기간 단편들(short-duration fragments)을 포함하는 복수의 파일들로 콘텐츠 파일을 물리적으로 단편화하는 것에 좌우된다. 그러나, 이러한 단편화 프로세스는 콘텐츠 파일과 연관된 콘텐츠의 수천개의 파일들을 시간당 생성하므로, 다수의 파일들로 인해 결과적인 콘텐츠 파일 라이브러리들을 관리하기가 어렵게 된다.
본 요약은 상세한 설명에서 더 후술되는 개념들의 발췌물을 간단한 형태로 소개하기 위해 제공된다. 본 요약은 청구 대상의 주요 피처들 또는 필수적인 피처들을 나타내는 것이 아니다. 본 요약은 청구 대상의 범위를 제한하는데 사용되지도 않는다.
미디어 단편화가 제공될 수 있다. 먼저, 매니페스트(manifest)에 대한 요청이 클라이언트로부터 수신될 수 있다. 그 후, 매니페스트에 대한 수신된 요청에 응답하여, 매니페스트가 클라이언트에게 송신될 수 있다. 다음으로, 파일 단편에 대한 요청이 클라이언트로부터 수신될 수 있다. 이 요청은 파일 단편에 대응하는 시작 시간 및 종료 시간을 표시할 수 있다. 요청은 매니페스트에 의해 정의된 포맷으로 이루어질 수 있다. 그 후, 룩업 테이블은 시작 시간에 대응하는 미디어 파일의 제1 바이트 로케이션 및 종료 시간에 대응하는 미디어 파일의 제2 바이트 로케이션에 대해 질의받을 수 있다. 다음으로, 제1 바이트 로케이션과 제2 바이트 로케이션 간의 미디어 파일의 일부분이 미디어 파일로부터 추출될 수 있다. 일부분은 파일 단편을 포함할 수 있다. 파일 단편은 클라이언트에게 송신될 수 있다.
상술된 일반적인 설명 및 이하의 상세한 설명은 둘 다 일례들을 제공하며 단지 설명을 목적으로 한다. 따라서, 상술된 일반적인 설명 및 이하의 상세한 설명은 제한적인 의미로 생각되어서는 안 된다. 또한, 피처들 또는 변형들이 본 명세서에 기재된 바에 부가하여 제공될 수 있다. 예를 들어, 실시예들은 상세한 설명에 기술된 각종 피처 조합들 및 서브-조합들과 관련될 수 있다.
본 개시물의 일부에 포함되며 본 개시물의 일부를 구성하는 첨부 도면들이 본 발명의 각종 실시예들을 도시한다.
도 1은 동작 환경의 블록도이다.
도 2는 미디어 단편화를 제공하는 방법의 플로우차트이다.
도 3은 매니페스트에 대한 파일 레이아웃을 도시한다.
도 4는 컴퓨팅 디바이스를 포함하는 시스템의 블록도이다.
이하의 상세한 설명은 첨부 도면들을 참조한다. 가능한 곳이면 어디에서나, 동일한 참조 부호들이 동일하거나 유사한 요소들을 나타내기 위해 도면들 및 이하의 설명에서 사용된다. 본 발명의 실시예들이 기술되었지만, 변경들, 적응물, 및 다른 구현들이 가능하다. 예를 들어, 대체, 추가, 또는 변경이 도면들에 도시된 요소들에 대해 이루어질 수 있으며, 본 명세서에 기술된 방법들은 개시된 방법들에 대한 대체, 재정렬, 또는 추가 단계들에 의해 변경될 수 있다. 따라서, 이하의 상세한 설명은 본 발명을 제한하지 않는다. 대신, 본 발명의 적합한 범위가 첨부된 청구항들에 의해 정의된다.
예를 들어, HTTP-기반 순차 다운로드에 의한 전달을 위해 디지털 미디어의 동적 단편화가 제공될 수 있다. 본 발명의 실시예들과 일관되게, 파일 포맷, 전송 (예를 들어, 와이어) 포맷, 및 서버 로직이 디스크 상에서 물리적으로 단편화되지 않은 미디어 파일로부터 단기간 단편들을 효율적으로 전달하기 위해 제공될 수 있다. 종래의 시스템들은 디스크 상의 단기간 단편들에 포함된 물리적 단편화 파일들에 좌우된다. 그러나, 이는 시간당 콘텐츠의 수천개의 파일들을 생성해서, 결과적인 라이브러리들을 관리하기가 어렵게 된다. (예를 들어, 와이어 상의) 단기간 단편들은 데이터가 프록시들에 의해 효율적으로 캐싱될 수 있게 해주고, 스케일 아웃 전달(scale-out delivery)에 대한 로드-밸런싱(load-balancing)에 영향을 주며, 사용된 알고리즘에 대한 유연성을 제공할 수 있다.
도 1은 미디어 단편화 시스템(100)을 포함하는 동작 환경의 블록도이다. 미디어 단편화 시스템(100)은 서버(105), 클라이언트(110), 및 미디어 파일(115)을 포함할 수 있다. 미디어 파일(115)은 서버(105)에 저장될 수 있다. 미디어 파일(115)은 헤더(120), 제1 단편(125), 제2 단편(130), 제n 단편(135), 및 룩업 테이블(140)을 포함할 수 있다. 클라이언트(110)는 미디어 파일(115)에 대응하는 콘텐츠를 보기를 희망하는 사용자에 의해 동작될 수 있다. 서버(105)는 미디어 파일(115)에 대응하는 콘텐츠를 클라이언트(110)에게 제공할 수 있다. 서버(105)는 컴퓨팅 디바이스(400)를 사용하여 구현될 수 있으며, 클라이언트(110)는 도 4에서 더 상세히 후술되는 다른 컴퓨팅 디바이스들(418)을 사용하여 구현될 수 있다.
도 2는 본 발명의 실시예들과 일관되는 미디어 단편화를 제공하는 방법(200)에 포함되는 일반적인 단계들을 기재한 플로우차트이다. 방법(200)은 상술된 바와 같이 서버(105)를 사용하여 구현될 수 있다. 방법(200)의 단계들을 구현하는 방식들은 더 상세히 후술될 것이다.
방법(200)은 개시 블록(205)에서 개시되며, 단계(210)로 진행할 수 있는데, 여기서 서버(105)는 도 3과 관련하여 기술된 바와 같이 매니페스트(300)에 대한 요청을 클라이언트(110)로부터 수신할 수 있다. 예를 들어, 매니페스트(300)는 미디어 파일(115)에 대응하는 콘텐츠가 스트리밍될 수 있는 상이한 품질 레벨들(310)(예를 들어, 총체적인 비트 레이트)을 지정할 수 있다. 또한, 매니페스트(300)는 각각의 품질 레벨이 대응할 수 있는 트랙들(315)을 지정할 수 있다. 품질 레벨들(310)은 다음의 비트 레이트들: 1500 Kbps; 1000 Kbps; 또는 300 Kbps로 단편들을 제공하는 것을 포함할 수 있지만, 이로만 제한되지는 않는다. 또한, 트랙들(315)은 오디오, 비디오, 및 클로즈드 캡셔닝(closed captioning)을 포함할 수 있지만, 이들로만 제한되지는 않는다. 또한, 매니페스트(300)는 규정(convention), 예를 들어, URL(Uniform Resource Locator) 규정을 기술할 수 있다. 클라이언트(110)는 미디어 파일(115)에 대응하는 파일 단편들을 서버(105)에게 요청할 때 이 규정을 사용할 수 있다. 도 3은 매니페스트(300)에 대한 파일 레이아웃의 일례를 도시한다.
서버(105)가 매니페스트(300)에 대한 요청을 수신하는 단계(210)로부터, 방법(200)은 단계(220)로 진행할 수 있으며, 이 단계(220)에서, 서버(105)는 수신된 요청에 응답하여 매니페스트(300)를 클라이언트(110)에 송신할 수 있다. 예를 들어, 상술된 바와 같이, 매니페스트(300)는 클라이언트(110)가 이용가능한 각종 품질 레벨들을 기술할 수 있다. 따라서, 서버(105)는, 서버(105)에서 이용가능한 정보(예를 들어, 미디어 파일(115)) 및 클라이언트(110)가 이 정보를 획득할 수 있는 방법을 기술하는 매니페스트(300)를 클라이언트(110)에게 송신할 수 있다.
일단 서버(105)가 단계(220)에서 클라이언트(110)에게 매니페스트(300)를 송신하면, 방법(200)은 계속해서 단계(230)로 진행하는데, 여기서 서버(105)는 파일 단편에 대한 요청을 클라이언트(110)로부터 수신할 수 있다. 이 요청은 매니페스트에 의해 정의된 포맷으로 이루어질 수 있다. 이 요청을 생성할 때, 클라이언트(110)는 매니페스트(300)에 의해 기술된 규정을 고려할 수 있다. 예를 들어, 클라이언트(110)는 URL 포맷으로 이 요청을 구성할 수 있다. 이 요청은, 최고 레벨에서, 사용자가 보기를 희망하는 콘텐츠의 명칭(예를 들어, 영화 명칭)을 가질 수 있다. 다음 레벨에서, 이 요청은 희망 비트 레이트/품질 레벨(예를 들어, 1500 Kbps)을 표시할 수 있다. 그리고, 후속 레벨에서, 이 요청은 트랙(예를 들어, 비디오)을 표시할 수 있다. 그 다음 레벨에서, 이 요청은, 예를 들어, 요청에서 명명된 콘텐츠와 연관된 파일 단편에 대응하는 시작 시간 및 종료 시간을 표시할 수 있다.
클라이언트(110)는 콘텐츠의 시간에서의 연속 부분들에 대응하는 연속 요청들을 생성할 수 있다. 또한, 클라이언트(110)는 클라이언트(110)를 서버(105)에 접속시키는 네트워크(도시되지 않음) 상에서 클라이언트(110)가 이용가능한 대역폭을 평가할 수 있다. 대역폭 평가에 기초하여, 클라이언트(110)는 요청들에서의 비트 레이트/품질 레벨을 증가 또는 감소시킬 수 있다. 예를 들어, 클라이언트(110)는 영화의 0초부터 2초까지 초당 1.5 메가비트로 비디오를 요청하는 요청을 구성할 수 있다. 그 후, 클라이언트(110)는 영화의 2초부터 4초까지 초당 1.5 메가비트로 비디오를 요청하는 다음 요청을 구성할 수 있다. 클라이언트(110)를 서버(105)에 접속시키는 네트워크 상에 병목 현상이 존재한다고 결정된 후에, 클라이언트(110)는 4초부터 6초까지 초당 500 킬로비트로 비디오를 요청하는 후속 요청을 구성할 수 있다. 비트 레이트/품질 레벨은 결정된 병목 현상으로 인해 감소될 수 있다.
서버(105)가 단계(230)에서 파일 단편에 대한 요청을 수신한 후에, 방법(200)은, 서버(105)가 시작 시간에 대응하는 미디어 파일(115)의 제1 바이트 로케이션 및 종료 시간에 대응하는 미디어 파일(115)의 제2 바이트 로케이션에 대해 룩업 테이블(140)에 질의할 수 있는 단계(240)로 진행할 수 있다. 예를 들어, 서버(105)는 특정 영화의 0초부터 2초까지 초당 1.5 메가비트로 비디오를 요청하는 요청을 수신할 수 있다. 헤더(120)로부터, 서버(105)는 이 요청이 미디어 파일(115)에 대응한다고 결정할 수 있다. 그 후, 서버(105)는 서버(105)의 메모리에 룩업 테이블(140)을 캐싱할 수 있다. 서버(105)는 그 후 시작 시간(예를 들어, 0초) 및 종료 시간(예를 들어, 2초)으로 룩업 테이블(140)에 질의할 수 있다. 이 질의에 응답하여, 룩업 테이블(140)은 제1 단편(125)의 미디어 파일(115)의 제1 바이트 로케이션(예를 들어, 바이트 위치 30000) 및 제1 단편(125)의 미디어 파일(115)의 제2 바이트 로케이션(예를 들어, 바이트 위치 60000)을 대응하여 리턴할 수 있다.
일단 서버(105)가 단계(240)에서 룩업 테이블(140)에 질의하면, 방법(200)은 계속해서 단계(250)로 진행하는데, 여기서 서버(105)는 제1 바이트 로케이션과 제2 바이트 로케이션 간의 미디어 파일(115)의 일부분을 미디어 파일(115)로부터 추출할 수 있다. 일부분은 제1 단편(125)을 포함할 수 있다. 예를 들어, 제1 단편(125), 제2 단편(130), 및 제n 단편(135)에 대응하는 데이터를 서버(105) 상에서 완전히 개별적인 파일들로서 유지하기보다는, 서버(105)는 연속 미디어 파일(115)에서의 이러한 단편들의 로케이션을 검색한 후 요청에 대하여 미디어 파일(115)로부터의 단편들에 대응하는 데이터를 추출할 수 있다.
서버(105)가 단계(250)에서 미디어 파일(115)의 일부분을 추출한 후에, 방법(200)은 단계(260)로 진행하는데, 여기서 서버(105)가 제1 단편(125)에 대응하는 추출된 데이터를 클라이언트(110)에 송신할 수 있다. 또한, 클라이언트(110)로부터의 후속 요청들에 대해, 서버(105)는 연속 미디어 파일(115)에서의 후속 요청들에 대응하는 단편들의 로케이션들을 검색한 후 후속 요청들에 대한 미디어 파일(115)로부터의 대응 단편들에 대응하는 데이터를 추출할 수 있다. 일단 서버(105)가 단계(260)에서 파일 단편을 클라이언트(110)에게 송신하면, 방법(200)은 단계(270)에서 종료할 수 있다.
본 발명과 일관되는 실시예는 미디어 단편화를 제공하는 시스템을 포함할 수 있다. 이 시스템은 메모리 스토리지 및 메모리 스토리지에 연결된 프로세싱 유닛을 포함할 수 있다. 프로세싱 유닛은, 클라이언트로부터 매니페스트에 대한 요청을 수신하며, 매니페스트에 대한 수신된 요청에 응답하여, 매니페스트를 클라이언트에 송신하도록 동작할 수 있다. 또한, 프로세싱 유닛은 파일 단편에 대한 요청을 클라이언트로부터 수신하도록 동작할 수 있다. 이 요청은 파일 단편에 대응하는 시작 시간 및 종료 시간을 표시할 수 있다. 이 요청은 매니페스트에 의해 정의된 포맷으로 이루어질 수 있다. 또한, 프로세싱 유닛은, 시작 시간에 대응하는 미디어 파일의 제1 바이트 로케이션 및 종료 시간에 대응하는 미디어 파일의 제2 바이트 로케이션에 대해 룩업 테이블에 질의하도록 동작할 수 있다. 또한, 프로세싱 유닛은 제1 바이트 로케이션과 제2 바이트 로케이션 간의 미디어 파일의 일부분을 미디어 파일로부터 추출하도록 동작할 수 있다. 일부분은 파일 단편을 포함할 수 있다. 또한, 프로세싱 유닛은 파일 단편을 클라이언트에게 송신하도록 동작할 수 있다.
본 발명과 일관되는 다른 실시예는 미디어 단편화를 제공하는 시스템을 포함할 수 있다. 이 시스템은 메모리 스토리지 및 메모리 스토리지에 연결된 프로세싱 유닛을 포함할 수 있다. 프로세싱 유닛은 파일 단편에 대한 요청을 수신하도록 동작할 수 있다. 이 요청은 파일 단편에 대응하는 시작 시간 및 종료 시간을 표시할 수 있다. 이 요청은 매니페스트에 의해 정의된 포맷으로 이루어질 수 있다. 매니페스트는 이용가능한 품질 레벨들에 대응하는 이용가능한 트랙들을 기술할 수 있다. 프로세싱 유닛은 서버의 메모리 스토리지에 룩업 테이블을 캐싱하도록 더 동작할 수 있다. 또한, 프로세싱 유닛은, 시작 시간에 대응하는 미디어 파일의 제1 바이트 로케이션 및 종료 시간에 대응하는 미디어 파일의 제2 바이트 로케이션에 대해 캐싱된 룩업 테이블에 질의하도록 동작할 수 있다. 또한, 프로세싱 유닛은 제1 바이트 로케이션과 제2 바이트 로케이션 간의 미디어 파일의 일부분을 미디어 파일로부터 추출하도록 동작할 수 있다. 일부분은 파일 단편을 포함할 수 있다.
본 발명과 일관되는 또 다른 실시예는 미디어 단편화를 제공하는 시스템을 포함할 수 있다. 이 시스템은 메모리 스토리지 및 메모리 스토리지에 연결된 프로세싱 유닛을 포함할 수 있다. 프로세싱 유닛은, 클라이언트로부터 매니페스트에 대한 요청을 수신하며, 매니페스트에 대한 수신된 요청에 응답하여, 매니페스트를 클라이언트에 송신하도록 동작할 수 있다. 매니페스트는 이용가능한 품질 레벨들에 대응하는 이용가능한 트랙들 및 포맷을 기술할 수 있다. 또한, 프로세싱 유닛은 파일 단편에 대한 요청을 클라이언트로부터 수신하도록 동작할 수 있다. 이 요청은 파일 단편에 대응하는 시작 시간 및 종료 시간을 표시할 수 있다. 이 요청은 매니페스트에 의해 정의된 포맷으로 이루어질 수 있다. 이 요청은 파일 단편에 대응하는 품질 레벨 및 트랙을 표시할 수 있다. 또한, 프로세싱 유닛은, 메모리 스토리지에 룩업 테이블을 캐싱하며, 시작 시간에 대응하는 미디어 파일의 제1 바이트 로케이션 및 종료 시간에 대응하는 미디어 파일의 제2 바이트 로케이션에 대해 캐싱된 룩업 테이블에 질의하도록 동작할 수 있다. 또한, 프로세싱 유닛은 제1 바이트 로케이션과 제2 바이트 로케이션 간의 미디어 파일의 일부분을 미디어 파일로부터 추출하도록 동작할 수 있다. 일부분은 표시된 트랙 및 품질 레벨에 대응하는 파일 단편을 포함할 수 있다. 또한, 프로세싱 유닛은 파일 단편을 클라이언트에게 송신하도록 동작할 수 있다.
도 4는 컴퓨팅 디바이스(400)를 포함하는 시스템의 블록도이다. 본 발명의 일 실시예와 일관되게, 상술된 메모리 스토리지 및 프로세싱 유닛은 도 4의 컴퓨팅 디바이스(400)와 같은 컴퓨팅 디바이스에서 구현될 수 있다. 하드웨어, 소프트웨어 또는 펌웨어의 임의의 적합한 조합이 메모리 스토리지 및 프로세싱 유닛을 구현하는데 사용될 수 있다. 예를 들어, 메모리 스토리지 및 프로세싱 유닛은, 컴퓨팅 디바이스(400)와 함께, 또는 컴퓨팅 디바이스(400)와 조합하여, 임의의 다른 컴퓨팅 디바이스들(418)(예를 들어, 클라이언트(110))과 함께 구현될 수 있다. 상술된 시스템, 디바이스 및 프로세서들은 일례들이며, 다른 시스템들, 디바이스들 및 프로세서들이 본 발명의 실시예들과 일관되는 상술된 메모리 스토리지 및 프로세싱 유닛을 포함할 수 있다. 또한, 컴퓨팅 디바이스(400)는 상술된 바와 같이 시스템(100)을 위한 동작 환경을 포함할 수 있다. 시스템(100)은 다른 환경들에서 동작할 수 있으며, 컴퓨팅 디바이스(400)로만 제한되지 않는다.
도 4를 참조하면, 본 발명의 일 실시예와 일관되는 시스템이 컴퓨팅 디바이스(400)와 같은 컴퓨팅 디바이스를 포함할 수 있다. 기본 구성에서, 컴퓨팅 디바이스(400)는 적어도 하나의 프로세싱 유닛(402) 및 시스템 메모리(404)를 포함할 수 있다. 컴퓨팅 디바이스의 구성 및 타입에 따라, 시스템 메모리(404)는 휘발성(예를 들어, RAM(random access memory)), 비휘발성(예를 들어, ROM(read-only memory)), 플래시 메모리 또는 임의의 조합을 포함할 수 있지만, 이들로만 제한되지는 않는다. 시스템 메모리(404)는 운영 체제(405), 하나 이상의 프로그래밍 모듈들(406)을 포함할 수 있으며, 프로그램 데이터(407) 및 미디어 파일(115)을 포함할 수 있다. 운영 체제(405)는, 예를 들어, 컴퓨팅 디바이스(400)의 동작을 제어하기에 적합할 수 있다. 일 실시예에서, 프로그래밍 모듈들(406)은, 예를 들어, 단편화 애플리케이션(420)을 포함할 수 있다. 또한, 본 발명의 실시예들은 그래픽 라이브러리, 다른 운영 체제들 또는 임의의 다른 애플리케이션 프로그램과 관련하여 실시될 수 있으며, 임의의 특정 애플리케이션 또는 시스템으로 제한되지 않는다. 이러한 기본 구성은 도 4에서 파선(408) 내의 컴포넌트들로 도시된다.
컴퓨팅 디바이스(400)는 추가의 피처들 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 디바이스(400)는, 예를 들어, 자기 디스크들, 광 디스크들 또는 테이프와 같은 추가 데이터 스토리지 디바이스들(착탈식 및/또는 비착탈식)을 또한 포함할 수 있다. 이러한 추가 스토리지는 도 4에서 착탈식 스토리지(409) 및 비착탈식 스토리지(410)로 도시된다. 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함할 수 있다. 시스템 메모리(404), 착탈식 스토리지(409) 및 비착탈식 스토리지(410)는 모두 컴퓨터 저장 매체 일례들(즉, 메모리 스토리지)이다. 컴퓨터 저장 매체는 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 정보를 저장하는데 사용될 수 있으며 컴퓨팅 디바이스(400)에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이들로만 제한되지는 않는다. 임의의 이러한 컴퓨터 저장 매체는 디바이스(400)의 일부일 수 있다. 컴퓨팅 디바이스(400)는 또한 키보드, 마우스, 펜, 사운드 입력 디바이스, 터치 입력 디바이스 등과 같은 입력 디바이스(들)(412)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(들)(414)가 또한 포함될 수 있다. 상술된 디바이스들은 일례들이며 다른 디바이스들이 사용될 수도 있다.
컴퓨팅 디바이스(400)는 또한 분산 컴퓨팅 환경에서의 네트워크, 예를 들어, 인트라넷 또는 인터넷을 통하는 것과 같이, 디바이스(400)를 다른 컴퓨팅 디바이스들(418)과 통신할 수 있게 해주는 통신 커넥션(416)을 포함할 수 있다. 통신 커넥션(416)은 통신 매체의 일례이다. 통신 매체는 통상 반송파나 다른 전송 메커니즘과 같이 변조된 데이터 신호로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터에 의해 구현될 수 있으며, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는, 하나 이상의 특성 세트를 갖거나 또는 신호로 정보를 인코딩하는 방식으로 변경된 신호를 기술할 수 있다. 제한이 아니라 예로서, 통신 매체는 유선 네트워크 또는 다이렉트 와이어드 커넥션(direct-wired connection)과 같은 유선 매체, 및 음향, RF(radio frequency), 적외선 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있다. 본 명세서에서 사용된 용어 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체 둘 다를 포함할 수 있다.
상술된 바와 같이, 다수의 프로그램 모듈들 및 데이터 파일들은 운영 체제(405)를 포함하여 시스템 메모리(404)에 저장될 수 있다. 프로세싱 유닛(402) 상에서 실행될 때, 프로그래밍 모듈들(406)(예를 들어, 단편화 애플리케이션(420))은, 예를 들어, 상술된 바와 같은 방법(200)의 하나 이상의 단계들을 포함하는 프로세스들을 수행할 수 있다. 상술된 프로세스는 일례이며, 프로세싱 유닛(402)은 다른 프로세스들을 수행할 수 있다. 본 발명의 실시예들에 따라 사용될 수 있는 다른 프로그래밍 모듈들은 전자 메일 및 접촉 애플리케이션들, 워드 프로세싱 애플리케이션들, 스프레드시트 애플리케이션들, 데이터베이스 애플리케이션들, 슬라이드 프리젠테이션 애플리케이션들, 드로잉 또는 컴퓨터-지원 애플리케이션 프로그램들 등을 포함할 수 있다.
일반적으로, 본 발명의 실시예들과 일관되게, 프로그램 모듈들은 루틴들, 프로그램들, 컴포넌트들, 데이터 구조들, 및 특정 태스크들을 수행할 수 있거나 특정 추상 데이터 타입들을 구현할 수 있는 다른 타입들의 구조들을 포함할 수 있다. 또한, 본 발명의 실시예들은, 핸드헬드 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서-기반 또는 프로그래머블 컨슈머 일렉트로닉스, 미니컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는 다른 컴퓨터 시스템 구성들로 실시될 수 있다. 본 발명의 실시예들은 또한 통신 네트워크를 통해 링크되는 원격 프로세싱 디바이스들에 의해 태스크들이 수행되는 분산 컴퓨팅 환경들에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 스토리지 디바이스들 둘 다에 위치할 수 있다.
또한, 본 발명의 실시예들은 이산 전자 요소들을 포함하는 전기 회로, 논리 게이트들을 포함하는 패키지화되거나 집적된 전자 칩들, 마이크로프로세서를 사용하는 회로, 또는 전자 요소들 또는 마이크로프로세서들을 포함하는 단일 칩에서 실시될 수 있다. 본 발명의 실시예들은, 또한, 기계적 기술, 광학적 기술, 유체 공학적 기술, 및 양자 기술(quantum technology)을 포함하지만 이들로만 제한되지 않는, 예를 들어, AND, OR 및 NOT과 같은 논리 연산들을 수행할 수 있는 다른 기술들을 이용하여 실시될 수 있다. 또한, 본 발명의 실시예들은 범용 컴퓨터 내에서 또는 임의의 다른 회로들이나 시스템들에서 실시될 수 있다.
본 발명의 실시예들은, 예를 들어, 컴퓨터 프로세스(방법), 컴퓨팅 시스템, 또는 컴퓨터 프로그램 제품이나 컴퓨터 판독가능 매체와 같은 제조물로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하며 컴퓨터 프로세스를 실행하기 위한 명령들의 컴퓨팅 프로그램을 인코딩하는 컴퓨팅 저장 매체일 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨팅 시스템에 의해 판독가능하며 컴퓨터 프로세스를 실행하기 위한 명령들의 컴퓨터 프로그램을 인코딩하는 캐리어 상의 전파 신호일 수 있다. 따라서, 본 발명은 하드웨어 및/또는 소프트웨어(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함)로 구현될 수 있다. 다시 말해서, 본 발명의 실시예들은 명령 실행 시스템에 의해 또는 이 명령 실행 시스템과 관련하여 사용되기 위해 매체에 구현된 컴퓨터 사용가능 또는 컴퓨터 판독가능 프로그램 코드를 갖는 컴퓨터 사용가능 또는 컴퓨터 판독가능 저장 매체 상의 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 이 명령 실행 시스템, 장치 또는 디바이스와 관련하여 사용되기 위해 프로그램을 포함하거나, 저장하거나, 통신하거나, 전파하거나 또는 전송할 수 있는 임의의 매체일 수 있다.
컴퓨터 사용가능 또는 컴퓨터 판독가능 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스 또는 전파 매체일 수 있지만, 이들로만 제한되지는 않는다. 더 구체적인 컴퓨터 판독가능 매체의 일례들로서(모든 것을 망라하지는 않은 리스트), 컴퓨터 판독가능 매체는, 하나 이상의 와이어들을 갖는 전기 커넥션, 휴대용 컴퓨터 디스켓, RAM, ROM, EPROM(erasable programmable read-only memory) 또는 플래시 메모리, 광섬유 및 휴대용 CD-ROM(compact disc read-only memory)을 포함할 수 있다. 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체는, 프로그램이, 예를 들어, 종이 또는 다른 매체의 광 스캐닝을 통해, 전자적으로 캡처된 후에, 필요한 경우, 적합한 방식으로 컴파일되거나, 해석되거나 또는 다른 방식으로 처리될 수 있기 때문에, 프로그램이 인쇄된 후 컴퓨터 메모리에 저장되는 종이 또는 다른 적합한 매체일 수 있음을 주지하라.
본 발명의 실시예들은, 예를 들어, 본 발명의 실시예들에 따른 방법들, 시스템들 및 컴퓨터 프로그램 제품들의 블록도들 및/또는 동작 설명들을 참조하여 상술된 바와 같다. 블록들에 나타난 기능/액션들은 임의의 플로우차트에서 도시된 순서 외의 순서로 발생할 수 있다. 예를 들어, 수반된 기능/액션들에 따라, 연속하여 도시된 2개의 블록들이 사실상 실질적으로 동시에 실행될 수도 있으며, 또는 블록들이 때때로 역 순서로 실행될 수도 있다.
본 발명의 특정 실시예들이 기술되었지만, 다른 실시예들이 존재할 수 있다. 또한, 본 발명의 실시예들이 메모리 및 다른 저장 매체들에 저장된 데이터와 연관된 것으로 기술되었지만, 데이터는 또한 하드 디스크들, 플로피 디스크들, 또는 CD-ROM과 같은 부차적인 스토리지 디바이스들, 인터넷으로부터의 반송파, 또는 다른 형태들의 RAM이나 ROM과 같은 다른 타입들의 컴퓨터 판독가능 매체 상에 저장되거나 또는 이 컴퓨터 판독가능 매체로부터 판독될 수 있다. 또한, 개시된 방법들의 단계들은, 본 발명으로부터 벗어나지 않으면서, 단계들의 재정렬 및/또는 단계들의 삽입이나 삭제를 포함하는 임의의 방식으로 변경될 수 있다.
본 명세서에서 포함된 코드의 저작권을 포함하는 모든 권리들이 본 출원인에게 부여되며 본 출원인의 소유이다. 본 출원인은 본 명세서에서 포함된 코드의 모든 권리들을 보유 및 보존하며, 다른 목적이 아닌 오직 승인된 특허의 복제(reproduction)와 관련하여서만 본 자료를 복제할 것을 허락한다.
본 명세서가 일례들을 포함하지만, 본 발명의 범위는 이하의 청구항들에 의해 표시된다. 또한, 본 명세서는 구조적인 피처들 및/또는 방법론적인 액션들에 특정한 언어로 기술되었지만, 청구항들은 상술된 피처들 또는 액션들에만 제한되지 않는다. 도리어, 상술된 특정 피처들 및 액션들은 본 발명의 실시예들에 대한 일례로서 기술된다.

Claims (20)

  1. 미디어 단편화를 제공하는 방법으로서,
    서버에서 클라이언트로부터 매니페스트(manifest)에 대한 제1 요청을 수신하는 단계와,
    상기 매니페스트에 대한 상기 수신된 제1 요청에 응답하여, 상기 클라이언트로 상기 매니페스트를 송신하는 단계 - 상기 매니페스트는 미디어 파일에 대응하는 파일 단편의 적어도 하나의 품질 레벨의 기술(description), 상기 미디어 파일의 기술 및 상기 서버로부터 상기 미디어 파일을 요청하기 위한 클라이언트 명령들을 포함하고, 상기 명령들은 상기 서버로부터 상기 미디어 파일을 요청하는 데 사용되는 URL(Uniform Resource Locator)을 구조화하기 위한 규정(convention)을 정의하고, 상기 URL은 구조화됨 - 와,
    상기 클라이언트로부터 상기 파일 단편에 대한 제2 요청을 수신하는 단계 - 상기 제2 요청은 상기 매니페스트에 의해 정의된 상기 규정에 따라 제공되고, 상기 제2 요청은 상기 파일 단편에 대한 상기 적어도 하나의 품질 레벨을 표시함 - 와,
    상기 파일 단편에 대한 상기 제2 요청을 수신하는 것에 응답하여, 상기 클라이언트가 이용가능한 대역폭에 적어도 부분적으로 기초하여 상기 적어도 하나의 품질 레벨의 이용가능성을 판정하는 단계와,
    상기 적어도 하나의 품질 레벨의 이용가능성을 판정하는 것에 응답하여, 상기 파일 단편에 대한 상기 적어도 하나의 품질 레벨 - 상기 적어도 하나의 품질 레벨은 상기 클라이언트가 이용가능한 대역폭과 상이함 - 을 이용가능한 품질 레벨로 조정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 매니페스트를 송신하는 단계는 상기 클라이언트가 이용가능한 미디어를 기술하는 매니페스트를 송신하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 매니페스트를 송신하는 단계는 상기 클라이언트가 이용가능한 미디어에 대응하는 복수의 타이틀들을 표시하는 매니페스트를 송신하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 매니페스트를 송신하는 단계는, 1500 Kbps, 1000 Kbps 및 300 Kbps 중 하나의 비트 레이트로 상기 단편을 제공하도록 구성된 파일 단편의 적어도 하나의 이용가능한 품질 레벨을 기술하는 매니페스트를 송신하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 매니페스트를 송신하는 단계는 상기 이용가능한 품질 레벨에 대응하는 이용가능한 트랙을 기술하는 매니페스트를 송신하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 매니페스트를 송신하는 단계는 이용가능한 품질 레벨에 대응하는 이용가능한 트랙을 기술하는 매니페스트를 송신하는 단계를 포함하며, 상기 이용가능한 트랙은 오디오, 비디오 및 클로즈드 캡셔닝(closed captioning) 중 적어도 하나를 포함하는 방법.
  7. 제1항에 있어서,
    상기 제2 요청에 의해 표시된 상기 품질 레벨은 상기 단편을 1500 Kbps, 1000 Kbps 및 300 Kbps 중 하나의 비트 레이트로 상기 단편을 제공하도록 구성되는 방법.
  8. 제1항에 있어서,
    상기 제2 요청은 상기 파일 단편의 트랙을 표시하는 방법.
  9. 제1항에 있어서,
    상기 제2 요청은 상기 파일 단편의 트랙을 표시하고, 상기 트랙은 오디오, 비디오 및 클로즈드 캡셔닝 중 하나를 포함하는 방법.
  10. 제1항에 있어서,
    서버의 메모리에 룩업 테이블을 캐싱하는 단계와, 상기 캐싱된 룩업 테이블에 질의하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 서버로부터 상기 미디어 파일을 요청하기 위한 포맷을 정의하는 단계를 포함하되, 상기 서버로부터 상기 미디어 파일을 요청하기 위한 상기 포맷을 정의하는 단계는 요청된 콘텐츠의 이름, 상기 요청된 콘텐츠의 품질 레벨 및 상기 요청된 콘텐츠와 연관된 트랙의 타입을 명시하는 포맷을 정의하는 단계를 포함하는 방법.
  12. 실행되는 경우 미디어 단편화를 제공하는 방법을 수행하는 명령들의 세트를 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들의 세트에 의해 실행되는 상기 방법은,
    클라이언트로부터 매니페이스에 대한 요청을 수신하는 단계와,
    상기 매니페스트에 대한 상기 수신된 요청에 응답하여, 상기 클라이언트로 상기 매니페스트를 송신하는 단계 - 상기 매니페스트는 미디어 파일에 대응하는 파일 단편의 적어도 하나의 이용가능한 품질 레벨의 기술(description), 상기 미디어 파일의 기술 및 상기 서버로부터 상기 미디어 파일을 요청하기 위한 클라이언트 명령들을 포함하고, 상기 명령들은 상기 서버로부터 상기 미디어 파일을 요청하는 데 사용되는 URL(Uniform Resource Locator)을 구조화하기 위한 규정(convention)을 정의하고, 상기 URL은 상기 규정에 따라 상기 파일 단편 및 상기 파일 단편의 상기 품질 레벨을 반영하도록 구조화됨 - 와,
    미디어 파일의 파일 단편에 대한 요청을 수신하는 단계 - 상기 요청은 매니페스트에 의해 규정된 포맷으로 구성됨 - 와,
    상기 파일 단편에 대한 요청을 수신하는 것에 응답하여, 상기 클라이언트가 이용가능한 대역폭에 적어도 부분적으로 기초하여 상기 적어도 하나의 품질 레벨의 이용가능성을 판정하는 단계와,
    상기 적어도 하나의 품질 레벨의 이용가능성을 판정하는 것에 응답하여, 상기 파일 단편에 대한 상기 적어도 하나의 품질 레벨 - 상기 적어도 하나의 품질 레벨은 상기 클라이언트가 이용가능한 대역폭과 상이함 - 을 이용가능한 품질 레벨로 조정하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서,
    상기 미디어 파일의 파일 단편에 대한 요청을 수신하는 단계는 상기 파일 단편에 대한 트랙을 표시하는 요청을 수신하는 단계를 포함하고, 상기 트랙은 오디오, 비디오 및 클로즈드 캡셔닝 중 하나를 포함하고, 상기 파일 단편에 대한 요청은 상기 파일 단편에 대한 품질 레벨을 표시하고, 상기 품질 레벨은 1500 Kbps, 1000 Kbps 및 300 Kbps 중 하나의 비트 레이트로 상기 단편을 제공하도록 구성되는 컴퓨터 판독가능 저장 매체.
  14. 제12항에 있어서,
    상기 방법은 상기 파일 단편을 요청한 클라이언트에게 상기 파일 단편을 송신하는 단계를 더 포함하는 컴퓨터 판독가능 저장 매체.
  15. 제12항에 있어서,
    상기 파일 단편에 대한 요청을 수신하는 단계는 상기 요청된 파일 단편과 연관된 콘텐츠의 이름 및 상기 요청된 파일 단편과 연관된 트랙의 타입을 표시하는 요청을 수신하는 단계를 더 포함하는 컴퓨터 판독가능 저장 매체.
  16. 미디어 단편화를 제공하는 시스템으로서,
    메모리 스토리지와,
    상기 메모리 스토리지에 연결된 프로세싱 유닛
    을 포함하고,
    상기 프로세싱 유닛은,
    클라이언트로부터 매니페스트에 대한 제1 요청을 수신하고,
    상기 매니페스트에 대한 상기 수신된 제1 요청에 응답하여, 상기 클라이언트로 상기 매니페스트를 송신하고 - 상기 매니페스트는 미디어 파일에 대응하는 파일 단편의 적어도 하나의 이용가능한 품질 레벨의 기술(description), 상기 미디어 파일의 기술 및 상기 서버로부터 미디어 파일을 요청하기 위한 클라이언트 명령들을 포함하고, 상기 명령들은 파일 단편을 요청하기 위한 URL(Uniform Resource Locator) 포맷을 기술하고, 상기 URL 포맷은 상기 파일 단편의 요청된 품질 레벨 및 상기 파일 단편과 연관된 트랙의 타입을 명시함 -,
    상기 클라이언트로부터 파일 단편에 대한 제2 요청을 수신하고 - 상기 제2 요청은 상기 파일 단편에 대응하는 시작 시간 및 종료 시간을 표시하고, 상기 제2 요청은 상기 매니페스트에 의해 정의된 포맷으로 구성되며, 상기 제2 요청은 상기 파일 단편에 대응하는 트랙 및 품질 레벨을 표시함 -,
    상기 파일 단편에 대한 상기 제2 요청에 응답하여, 상기 클라이언트가 이용가능한 대역폭에 적어도 부분적으로 기초하여 상기 적어도 하나의 품질 레벨의 이용가능성을 판정하고,
    상기 적어도 하나의 품질 레벨의 이용가능성을 판정하는 것에 응답하여, 상기 파일 단편에 대한 상기 적어도 하나의 품질 레벨 - 상기 적어도 하나의 품질 레벨은 상기 클라이언트가 이용가능한 대역폭과 상이함 - 을 이용가능한 품질 레벨로 조정하도록 동작하는
    미디어 단편화를 제공하는 시스템.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020117009094A 2008-10-31 2009-10-16 디지털 미디어의 동적 단편화 KR101616147B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/262,593 2008-10-31
US12/262,593 US8996547B2 (en) 2008-10-31 2008-10-31 Dynamic fragmentation of digital media

Publications (2)

Publication Number Publication Date
KR20110079665A KR20110079665A (ko) 2011-07-07
KR101616147B1 true KR101616147B1 (ko) 2016-04-28

Family

ID=42129508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117009094A KR101616147B1 (ko) 2008-10-31 2009-10-16 디지털 미디어의 동적 단편화

Country Status (9)

Country Link
US (1) US8996547B2 (ko)
EP (1) EP2350858A4 (ko)
JP (1) JP2012507940A (ko)
KR (1) KR101616147B1 (ko)
CN (1) CN102203761B (ko)
AU (1) AU2009309089B2 (ko)
CA (1) CA2737108C (ko)
MX (1) MX2011004153A (ko)
WO (1) WO2010051169A2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
US8838824B2 (en) * 2009-03-16 2014-09-16 Onmobile Global Limited Method and apparatus for delivery of adapted media
EP2417743B1 (en) * 2009-04-09 2019-06-05 Telefonaktiebolaget LM Ericsson (publ) Methods and arrangements for creating and handling media files
US10410222B2 (en) 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
US9002881B2 (en) * 2009-10-29 2015-04-07 Microsoft Technology Licensing, Llc Assembling streamed content for on-demand presentation
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US9185439B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
KR20120114016A (ko) * 2011-04-06 2012-10-16 삼성전자주식회사 사용자 컨텐츠를 외부 단말기에서 네트워크 적응적으로 스트리밍하는 방법 및 장치
EP3340575A1 (en) 2011-12-06 2018-06-27 EchoStar Technologies L.L.C. Remote storage digital video recorder and related operating methods
US9049484B2 (en) 2011-12-06 2015-06-02 Echostar Technologies L.L.C. Efficient assignment of program copies in a network digital video recorder
US8627387B2 (en) 2011-12-22 2014-01-07 Telefonaktiebolaget L M Ericsson (Publ) Distributed method of indexing time and file size alignment
EP2842311B1 (en) * 2012-04-25 2016-10-26 Huawei Technologies Co., Ltd. Systems and methods for segment integrity and authenticity for adaptive streaming
EP2680527A1 (en) * 2012-06-28 2014-01-01 Alcatel-Lucent Adaptive streaming aware node, encoder and client enabling smooth quality transition
JP6175749B2 (ja) * 2012-09-19 2017-08-09 沖電気工業株式会社 コンテンツ送信装置、プログラム及びコンテンツ送信方法
US8904457B2 (en) 2012-12-28 2014-12-02 Microsoft Corporation Archiving a live media presentation
WO2014106206A1 (en) 2012-12-28 2014-07-03 DISH Digital L.L.C. Adaptive multicast delivery of media streams
US9344472B2 (en) 2012-12-28 2016-05-17 Microsoft Technology Licensing, Llc Seamlessly playing a composite media presentation
US10051025B2 (en) 2012-12-31 2018-08-14 DISH Technologies L.L.C. Method and apparatus for estimating packet loss
US10104141B2 (en) 2012-12-31 2018-10-16 DISH Technologies L.L.C. Methods and apparatus for proactive multi-path routing
US10708319B2 (en) 2012-12-31 2020-07-07 Dish Technologies Llc Methods and apparatus for providing social viewing of media content
US10284908B2 (en) * 2013-02-26 2019-05-07 Comcast Cable Communications, Llc Providing multiple data transmissions
US8869218B2 (en) * 2013-03-15 2014-10-21 Wowza Media Systems, LLC On the fly transcoding of video on demand content for adaptive streaming
US9270721B2 (en) * 2013-10-08 2016-02-23 Qualcomm Incorporated Switching between adaptation sets during media streaming
ES2613978T3 (es) * 2013-12-26 2017-05-29 Telefonica Digital España, S.L.U. Un método y un sistema para la transmisión por secuencias suave de contenidos de medios en una red de entrega de contenidos distribuida
KR101560727B1 (ko) * 2014-04-07 2015-10-15 네이버 주식회사 멀티트랙 비디오 컨텐츠의 제공을 위한 멀티트랙 비디오 컨텐츠 서비스 방법 및 시스템
US9940333B2 (en) * 2015-03-27 2018-04-10 Airwatch Llc File format bundling
CN105451032A (zh) * 2015-11-19 2016-03-30 北京奇虎科技有限公司 下载视频的方法与装置
WO2017117264A1 (en) 2015-12-29 2017-07-06 Echostar Technologies L.L.C Remote storage digital video recorder streaming and related methods
US10432690B1 (en) * 2016-06-03 2019-10-01 Amazon Technologies, Inc. Manifest partitioning
US10116719B1 (en) 2016-06-03 2018-10-30 Amazon Technologies, Inc. Customized dash manifest
US10104143B1 (en) * 2016-06-03 2018-10-16 Amazon Technologies, Inc. Manifest segmentation
US10937460B2 (en) * 2016-06-09 2021-03-02 Apple Inc. Media files and protocols supporting runtime dependent tracks
US10405054B2 (en) * 2016-08-17 2019-09-03 Nuovo Solutions Llc System and method of remotely determining QoE
US10965966B1 (en) * 2018-07-17 2021-03-30 Amazon Technologies, Inc. Dynamic content insertion
US20200089779A1 (en) * 2018-09-19 2020-03-19 Twitter, Inc. Progressive API Responses
CN109819306B (zh) * 2018-12-29 2022-11-04 花瓣云科技有限公司 一种媒体文件裁剪的方法、电子设备和服务器
CN112765377A (zh) * 2019-11-01 2021-05-07 微软技术许可有限责任公司 媒体流中的时段定位

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020107968A1 (en) * 2000-12-08 2002-08-08 Gavin Horn Methods and apparatus for scheduling, serving, receiving media-on-demand for clients, servers arranged according to constraints on resources
US20060159109A1 (en) * 2000-09-07 2006-07-20 Sonic Solutions Methods and systems for use in network management of content

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6130720A (en) 1997-02-10 2000-10-10 Matsushita Electric Industrial Co., Ltd. Method and apparatus for providing a variety of information from an information server
US6574625B1 (en) * 2000-09-12 2003-06-03 International Business Machines Corporation Real-time bookmarks
ATE464740T1 (de) * 2000-12-15 2010-04-15 British Telecomm Übertagung von ton- und/oder bildmaterial
US7337231B1 (en) * 2000-12-18 2008-02-26 Nortel Networks Limited Providing media on demand
US7043637B2 (en) * 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US7373406B2 (en) * 2001-12-12 2008-05-13 Valve Corporation Method and system for effectively communicating file properties and directory structures in a distributed file system
KR20060082014A (ko) * 2005-01-11 2006-07-14 삼성전자주식회사 매니페스트 파일 자료구조, 이를 이용한 컨텐츠 다운로드방법 및 그 재생장치
US20070073878A1 (en) * 2005-09-23 2007-03-29 Qurio Holdings, Inc. System and method for lowering proxy bandwidth utilization
KR100724899B1 (ko) * 2005-11-22 2007-06-04 삼성전자주식회사 호환성있는(compatible) 프로그레시브 다운로드방법 및 그 시스템
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
JP4944484B2 (ja) * 2006-04-20 2012-05-30 キヤノン株式会社 再生装置、再生方法及びプログラム
US8504709B2 (en) * 2006-05-03 2013-08-06 Sony Corporation Adaptive streaming buffering
US20080126357A1 (en) * 2006-05-04 2008-05-29 Wambo, Inc. Distributed file storage and transmission system
WO2007130695A2 (en) * 2006-05-05 2007-11-15 Globstream, Inc. Method and apparatus for streaming media to a plurality of adaptive client devices
EP2835951B1 (en) * 2007-01-17 2018-08-22 Intertrust Technologies Corporation Methods, systems, and apparatus for fragmented file sharing
US8914529B2 (en) * 2007-01-22 2014-12-16 Microsoft Corporation Dynamically adapting media content streaming and playback parameters for existing streaming and playback conditions
KR100815618B1 (ko) 2007-05-10 2008-03-24 주식회사 씬멀티미디어 이동통신 단말기에서 외부저장매체의 동영상 파일 재생장치및 방법
CN101083568A (zh) 2007-07-06 2007-12-05 中国人民解放军国防科学技术大学 一种流媒体服务器服务能力评测方法
US20090164034A1 (en) * 2007-12-19 2009-06-25 Dopetracks, Llc Web-based performance collaborations based on multimedia-content sharing
CN101217638B (zh) 2007-12-28 2012-10-24 深圳市迅雷网络技术有限公司 视频文件分段下载的方法、系统及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060159109A1 (en) * 2000-09-07 2006-07-20 Sonic Solutions Methods and systems for use in network management of content
US20020107968A1 (en) * 2000-12-08 2002-08-08 Gavin Horn Methods and apparatus for scheduling, serving, receiving media-on-demand for clients, servers arranged according to constraints on resources

Also Published As

Publication number Publication date
CA2737108C (en) 2016-09-13
EP2350858A2 (en) 2011-08-03
AU2009309089A1 (en) 2010-05-06
WO2010051169A3 (en) 2010-07-22
US8996547B2 (en) 2015-03-31
CN102203761B (zh) 2013-10-23
US20100114921A1 (en) 2010-05-06
JP2012507940A (ja) 2012-03-29
AU2009309089B2 (en) 2014-05-15
CN102203761A (zh) 2011-09-28
CA2737108A1 (en) 2010-05-06
WO2010051169A2 (en) 2010-05-06
EP2350858A4 (en) 2013-06-05
MX2011004153A (es) 2011-05-23
KR20110079665A (ko) 2011-07-07

Similar Documents

Publication Publication Date Title
KR101616147B1 (ko) 디지털 미디어의 동적 단편화
US7941554B2 (en) Sparse caching for streaming media
US9667682B2 (en) Media content streaming using stream message fragments
US8327013B2 (en) Dynamic index file creation for media streaming
US8850054B2 (en) Hypertext transfer protocol live streaming
KR102047495B1 (ko) 클라이언트에서 캐시를 이용하여 서버의 멀티 미디어 컨텐트를 스트리밍 재생하는 방법 및 이를 위한 장치
EP2890075B1 (en) A method and a system for smooth streaming of media content in a distributed content delivery network
US20120005313A1 (en) Dynamic indexing for ad insertion in media streaming
US20070260615A1 (en) Media with Pluggable Codec
JP2007535860A (ja) セッション記述メッセージ拡張子
US9680686B2 (en) Media with pluggable codec methods
WO2013148003A1 (en) Dynamic audio track selection for media streaming
US7886068B1 (en) Management of streaming media playlists
US20180352287A1 (en) Persistent ID for Offline Access to Streamed Media
US20170140443A1 (en) Dynamic manifest generation for delivery instances
CN116567304A (zh) 一种基于音视频流的广告插入方法、装置及设备

Legal Events

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