TWI451279B - 即時或接近即時串流傳輸之內容存取控制 - Google Patents

即時或接近即時串流傳輸之內容存取控制 Download PDF

Info

Publication number
TWI451279B
TWI451279B TW100112082A TW100112082A TWI451279B TW I451279 B TWI451279 B TW I451279B TW 100112082 A TW100112082 A TW 100112082A TW 100112082 A TW100112082 A TW 100112082A TW I451279 B TWI451279 B TW I451279B
Authority
TW
Taiwan
Prior art keywords
media
playlist
file
user application
server
Prior art date
Application number
TW100112082A
Other languages
English (en)
Other versions
TW201202975A (en
Inventor
Roger Pantos
Alan Tseng
William May Jr
James David Batson
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of TW201202975A publication Critical patent/TW201202975A/zh
Application granted granted Critical
Publication of TWI451279B publication Critical patent/TWI451279B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results
    • G06F16/4387Presentation of query results by the use of playlists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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
    • 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
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

即時或接近即時串流傳輸之內容存取控制
本發明之實施例係關於資料傳輸技術。更特定言之,本發明之實施例係關於允許使用非串流傳輸協定(諸如,超文字傳送協定(HTTP))串流傳輸資料之技術。
本申請案主張以下美國臨時申請案之申請日期之權利:2010年4月7日申請之美國臨時申請案第61/321,767號(檔案號碼P7437Z8)及2010年6月4日申請之美國臨時申請案第61/351,824號(檔案號碼P7437Z9),且本申請案特此以引用之方式併有彼等臨時申請案。本申請案亦與以下專利申請案相關:
(1) 2008年12月31日申請之申請案第61/142,110號(檔案號碼P7437Z);
(2) 2009年3月16日申請之申請案第61/160,693號(檔案號碼P7437Z2);
(3) 2009年3月17日申請之申請案第61/161,036號(檔案號碼P7437Z3);
(4) 2009年4月7日申請之申請案第61/167,524號(檔案號碼P7437Z4);
(5) 2009年9月8日申請之申請案第61/240,648號(檔案號碼P7437Z5);
(6) 2009年12月21日申請之申請案第61/288,828號(檔案號碼P7437Z6);及
(7) 2010年4月1日申請之申請案第61/320,213號(檔案號碼P7437Z7)。所有此等美國臨時申請案係在其符合本發明之意義上以引用方式併入本文中。
本美國專利申請案係關於以下美國專利申請案,該等美國專利申請案中之每一者係在其符合本發明之意義上以引用方式併入本文中:
(1) 2009年6月5日申請之題為「即時或接近即時串流傳輸(REAL-TIME OR NEAR REAL-TIME STREAMING)」之申請案第12/479,690號(檔案號碼P7437US1);
(2) 2009年6月5日申請之題為「即時或接近即時串流傳輸之變體串流(VARIANT STREAMS FOR REAL-TIME OR NEAR REAL-TIME STREAMING)」之申請案第12/479,698號(檔案號碼P7437US2);
(3) 2009年6月5日申請之題為「可更新即時或接近即時串流傳輸(UPDATABLE REAL-TIME OR NEAR REAL-TIME STREAMING)」之申請案第12/479,732號(檔案號碼P7437US3);
(4) 2009年6月5日申請之題為「用於即時或接近即時串流傳輸之播放清單(PLAYLISTS FOR REAL-TIME OR NEAR REAL-TIME STREAMING)」之申請案第12/479,735號(檔案號碼P7437US4);
(5) 2010年9月8日申請之題為「用以提供容錯移轉保護之即時或接近即時串流傳輸之變體串流(VARIANT STREAMS FOR REAL-TIME OR NEAR REAL-TIME STREAMING TO PROVIDE FAILOVER PROTECTION)」之申請案第12/878,002號(檔案號碼P7437X);及
(6) 2010年12月14日申請之題為「具有壓縮播放清單之即時或接近即時串流傳輸(REAL-TIME OR NEAR REAL-TIME STREAMING WITH COMPRESSED PLAYLIST)」之申請案第12/968,202號(檔案號碼P7437X2)。
內容之串流傳輸通常指代經常地自伺服器裝置傳輸且由用戶端裝置接收之多媒體內容。內容常常在其正由串流傳輸伺服器傳遞時向最終使用者呈現。名稱指代媒體之傳遞方法而不是指代媒體本身。
當前串流傳輸服務通常需要專門的伺服器以將「實況」內容散佈至最終使用者。在任何大規模部署中,此可造成巨大成本,且需要專門的技藝來設置及執行。此導致不盡如人意的可用於串流傳輸之內容庫。
在一實施例中,一系統可基於日期及時間來搜尋內容。舉例而言,在一實施中,建立有時間戳記之標籤,且該等有時間戳記之標籤中之每一者可與一特定媒體檔案相關聯。有時間戳記之標籤中之時間戳記指示該相關聯媒體檔案之開始日期及時間。請注意,該媒體檔案可含有其自身之內部時間戳記。可用一或多個有時間戳記之標籤建立一播放清單檔案。可散佈該播放清單檔案且使其可用於使用有時間戳記之標籤中之日期及時間來按日期及時間進行搜尋。在一實施例中,有時間戳記之標籤可使用被稱為ID3之格式。
在一實施例中,一方法可在一用戶端裝置上執行一使用者應用程式以呈現媒體檔案及控制媒體檔案之呈現。該方法可進一步在該用戶端裝置上執行一媒體伺服處理程序以擷取規定該等媒體檔案之一播放清單及可在其中得到該等媒體檔案之一媒體源,自該媒體源擷取該等媒體檔案,及解碼擷取之該等媒體檔案。即使該媒體伺服處理程序未經組態以處理一自訂URL或自訂協定,該使用者應用程式亦可經組態以經由該自訂URL或自訂協定或該兩者與一或多個伺服器通信。該自訂URL或自訂協定可規定或提供用於解密該等媒體檔案中之加密內容之一解密密鑰。
一些實施例在一環境中包括一或多個應用程式設計介面(API),其中呼叫程式碼經由該一或多個介面而與被呼叫之其他程式碼互動。可經由該等API在呼叫程式與被呼叫程式碼之間傳送可進一步包括各種類別之參數的各種函式呼叫、訊息或其他類型之調用。另外,API可為呼叫程式碼提供使用在API中定義且實施於被呼叫程式碼中之資料類型或類別之能力。
至少特定實施例包括一呼叫軟體組件經由一API與一被呼叫軟體組件互動之一環境。一種用於在此環境中經由一API進行操作之方法包括經由該API傳送一或多個函式呼叫、訊息、其他類型之調用或參數。
本文中描述其他方法,且本文中描述用於執行此等方法之系統,且本文中亦描述儲存在執行時可使一資料處理系統執行此等方法中之任一者之可執行指令的機器可讀非暫時性儲存媒體。
在隨附圖式之圖中藉由實例且非限制性地說明本發明,在該等圖中,類似參考數字指代類似元件。
在以下描述中,闡述眾多特定細節。然而,可在不具此等特定細節之情況下實踐本發明之實施例。在其他例子中,未詳細展示熟知電路、結構及技術以便不使對此描述之理解含糊不清。
本描述包括受版權保護之材料,諸如,圖形使用者介面影像之說明。版權之所有者(包括本發明之受讓人)特此保留對此等材料之權利(包括版權)。版權所有者不反對傳真複製專利文件或專利揭示案中之任一者(當其出現在專利及商標局檔案或記錄中時),但無論如何另外保留全部版權。版權Apple Inc. 2009。
在一實施例中,本文中所描述之技術及組件可包括用以使用非串流傳輸協定(例如,HTTP)及其他技術(例如,動畫專家組(MPEG)串流傳輸)傳遞串流傳輸體驗之機制。舉例而言,可使用HTTP廣播「實況」音樂或體育事件、實況新聞、網路攝影機饋送等來提供接近即時串流傳輸體驗。在一實施例中,一協定可將傳入媒體資料分段成多個媒體檔案且將彼等分段媒體檔案儲存於伺服器上。該協定亦可建置包括將用戶端引導至儲存於一伺服器上之分段媒體檔案之統一資源識別符(URI)的一播放清單檔案。當根據播放清單檔案播放該等分段媒體檔案時,用戶端可為使用者提供「實況」事件之接近即時廣播。可以類似方式提供預先記錄之內容。
在一實施例中,伺服器可以動態方式將補充或替代媒體內容(例如,廣告、與體育事件相關之統計資料、至主要呈現之額外媒體內容)引入至廣播事件中。舉例而言,在媒體事件之用戶端播放期間,伺服器可將額外URI添加至播放清單檔案,URI可識別一位置,用戶端可自該位置下載補充媒體檔案。用戶端可受指示而週期性地自伺服器擷取一或多個經更新之播放清單檔案以便存取伺服器已引入之任何補充或額外媒體內容(或其兩者)。
在一實施例中,伺服器可以累積模式或以滾動模式操作。在累積模式中,伺服器可建立一播放清單檔案且將媒體檔案識別符附加至該播放清單檔案之最後。用戶端接著在下載後可存取來自單一播放清單檔案之串流之所有部分(例如,使用者可從表演之中間開始)。在滾動模式中,伺服器可能藉由以滾動為基礎自播放清單檔案之開頭移除媒體檔案識別符來限制媒體檔案之可用性,藉此提供用戶端裝置可存取之媒體內容之滑動窗。伺服器亦可將媒體檔案識別符添加至播放清單,且在滾動模式中,伺服器可將媒體檔案之可用性限於最近已添加至播放清單之彼等媒體檔案。用戶端接著重複地下載播放清單檔案之經更新複本以繼續觀看。當內容在時間上潛在地無限制(例如,來自連續操作之網路攝影機之內容)時,播放清單下載之滾動基礎可為有用的。用戶端可繼續以滾動模式重複地請求播放清單,直至其在播放清單中找到結束標籤。
在一實施例中,該機制藉由提供相同呈現之變體串流來支援位元速率切換。舉例而言,待伺服之呈現之若干版本可儲存於伺服器上。每一版本可具有實質上相同之內容,但係以不同位元速率編碼。此可允許用戶端裝置取決於(例如)對可用頻寬之偵測而在位元速率之間切換,而不危害播放之連續性。
在一實施例中,可提供保護特徵以保護內容以防止未授權使用。舉例而言,非順序媒體檔案編號可用以防止預測。可使用媒體檔案之加密。可使用部分媒體檔案清單。亦可提供額外及/或不同保護特徵。
圖1為可發送及接收即時或接近即時內容之伺服器及用戶端之一實施例的方塊圖。圖1之實例提供簡單的伺服器-用戶端連接,其中兩個用戶端經由網路而與伺服器耦接。利用本文中所描述之技術及機制可支援任何數目個用戶端。此外,多個伺服器可提供內容及/或可一起操作以根據本文中所描述之技術及機制來提供內容。舉例而言,一個伺服器可建立內容、建立播放清單且建立多個媒體(例如,檔案),且其他伺服器儲存並傳輸建立之內容。
網路110可為任何類型之網路,無論是有線、無線(例如,IEEE 802.11、802.16)抑或其任何組合。舉例而言,網路100可為網際網路或企業內部網路。作為另一實例,網路110可為蜂巢式網路(例如,3G、CDMA)。在一實施例中,用戶端裝置150及180可能能夠經由多個網路類型通信(例如,每一裝置可經由WiFi無線LAN通信且亦可經由無線蜂巢式電話網路通信)。舉例而言,用戶端裝置150及180可為可經由蜂巢式無線電話網路以及資料網路通信之智慧電話或具備蜂巢式電話功能之個人數位助理。此等裝置可能能夠在任一類型之網路上利用本文中所描述之串流傳輸機制或甚至按需要在網路之間切換。
伺服器120可以此項技術中已知之任何方式像HTTP伺服器一樣操作。亦即,伺服器120包括使用HTTP協定提供內容之HTTP伺服器代理145。雖然圖1之實例係依據HTTP描述,但可以類似方式利用其他協定。分段器130及索引器135為駐留於伺服器120(或多個伺服器)上的用以藉由播放清單檔案提供媒體檔案中之內容的代理,如本文中所描述。可經由使用HTTP協定之HTTP伺服器代理145(或經由其他伺服器)經由網路110提供此等媒體檔案及播放清單檔案。本文中所論述之代理可實施為硬體、軟體、韌體或其組合。
分段器130可用以將媒體資料之串流劃分成可經由HTTP協定傳輸之多個媒體檔案。索引器135可用以建立對應於分段媒體檔案之播放清單檔案,使得用戶端裝置可重新組譯媒體檔案以提供由伺服器120提供之內容之即時或接近即時傳輸。回應於來自用戶端裝置之一或多個請求,HTTP伺服器代理145(或其他伺服器)可傳輸由索引器135產生之一或多個播放清單檔案及由分段器130產生之內容之媒體檔案。伺服器120可進一步包括提供本文中所論述之安全功能(例如,加密)中之一或多者之可選安全代理140。伺服器120亦可包括圖1中未說明之額外組件。
用戶端裝置150及180可經由網路110自伺服器120接收播放清單檔案及媒體檔案。用戶端裝置可為任何類型之能夠經由網路接收資料且利用經由網路接收之資料產生輸出之電子裝置,例如,無線行動裝置、PDA、娛樂裝置、消費型電子裝置等。輸出可為任何媒體類型或媒體類型之組合,包括(例如)音訊、視訊或其任何組合。
用戶端裝置150可包括組譯器代理160及輸出產生器代理165。類似地,用戶端裝置180可包括組譯器代理190及輸出產生器代理195。組譯器代理160及180接收來自伺服器120之播放清單檔案且使用該等播放清單檔案存取來自伺服器120之媒體檔案及自伺服器120下載媒體檔案。輸出產生器代理165及195使用下載之媒體檔案產生分別自用戶端裝置150及160之輸出。輸出可由一或多個揚聲器、一或多個顯示幕、揚聲器與顯示幕之組合或任何其他輸入或輸出裝置提供。用戶端裝置亦可包括記憶體(例如,快閃記憶體或DRAM等)以充當用以在接收媒體檔案時儲存其(例如,壓縮之媒體檔案或解壓縮之媒體檔案)之緩衝器;緩衝器可提供超出當前正在呈現之內容之時間許多秒的量的可呈現內容,使得可稍後顯示經緩衝之內容,與此同時下載新內容。此緩衝器可在用戶端裝置正嘗試經由一間歇性緩慢之網路連接擷取內容時提供可呈現內容,且因此緩衝器可隱藏網路延時或連接問題。
用戶端裝置150及180可分別進一步包括可選安全代理170及185,該等安全代理提供本文中所論述之安全功能中之一或多者。用戶端裝置150及180亦可包括圖1中未說明之額外組件。
在一實施例中,本申請案中所描述之技術可用以經由非串流傳輸協定(例如,HTTP)來傳輸多媒體資料之無限制串流。實施例亦可包括加密媒體資料及/或提供串流之替代版本(例如,提供替代位元速率)。因為媒體資料可在建立之後不久傳輸,所以可以接近即時之方式接收資料。提供檔案之實例資料格式以及多媒體資料之串流之伺服器(發送者)及用戶端(接收器)將採取之動作;然而,亦可支援其他格式。
可作為模擬即時串流(或接近即時串流)傳輸之媒體呈現係由指示播放清單檔案之通用資源指示符(URI)規定。在一實施例中,播放清單檔案為額外URI之有序清單。播放清單檔案中之每一URI指代為一串流之一區段之媒體檔案,該串流可為用於特定節目之媒體資料之單一連續串流。
為了播放媒體資料之串流,用戶端裝置自伺服器獲取播放清單檔案。用戶端亦獲取且播放由播放清單檔案指示之每一媒體資料檔案。在一實施例中,用戶端可以動態方式或重複地重新載入播放清單檔案以發現額外及/或不同媒體區段。
播放清單檔案可為(例如)擴展M3U播放清單檔案。在一實施例中,使用有效地擴展M3U格式之額外標籤。M3U指代動畫專家組音訊層3統一資源定位器(MP3 URL)且為用以儲存多媒體播放清單之格式。M3U檔案為含有供媒體播放器播放之一或多個媒體檔案之位置的文字檔案。
在一實施例中,播放清單檔案為由個別行組成的擴展M3U格式之文字檔案。該等行可以單一LF字元或以繼之以LF字元之CR字元終止。每一行可為URI、空白行或以註解字元(例如,「#」)開始。URI識別待播放之媒體檔案。空白行可忽略。
以註解字元開始之行可為註解或標籤。標籤可以#EXT開始,而註解行可以#開始。註解行通常被伺服器及用戶端忽略。在一實施例中,播放清單檔案係以UTF-8格式編碼。UTF-8(8位元統一碼變換格式)為可變長度字元編碼格式。在替代實施例中,可使用其他字元編碼格式。
在以下實例中,利用包括兩個標籤:EXTM3U及EXTINF之擴展M3U格式。可藉由包括「#EXTM3U」之第一行而將擴展M3U檔案區別於基本M3U檔案。
EXTINF為描述由該標籤之後的URI識別的媒體檔案之記錄標記。在一實施例中,每一媒體檔案URI之前存在一EXTINF標籤,例如:
#EXTINF:<持續時間>,<標題>
其中「持續時間」規定媒體檔案之持續時間且「標題」為目標媒體檔案之標題。
在一實施例中,以下標籤可用以管理媒體檔案之傳送及播放:
EXT-X-TARGETDURATION
EXT-X-MEDIA-SEQUENCE
EXT-X-KEY
EXT-X-PROGRAM-DATE-TIME
EXT-X-ALLOW-CACHE
EXT-X-STREA M-INF
EXT-X-ENDLIST
EXT-X-DISCONTINUITY
EXT-X-VERSION
下文將分別更詳細地描述此等標籤。儘管關於每一新標籤描述了特定格式及屬性,但亦可支援具有不同屬性、名稱、格式等之替代實施例。
在一實施例中,EXT-X-TARGETDURATION標籤可指示將添加至呈現之下一個媒體檔案之近似持續時間。該標籤可包括於播放檔案中且格式可為:
#EXT-X-TARGETDURATION:<秒>
其中「秒」指示媒體檔案之持續時間。在一實施例中,實際持續時間可稍微不同於該標籤所指示之目標持續時間。在一實施例中,指示一區段之每個URI將與該區段之近似持續時間相關聯;舉例而言,一區段之URI可以一指示該區段之近似持續時間之標籤作為前置詞。在另一實施例中,EXT-X-TARGETDURATION標籤可規定最大媒體檔案持續時間;播放清單檔案中之每一媒體檔案之EXTINF持續時間應小於或等於目標持續時間,且此標籤(其規定最大媒體檔案持續時間)可僅在播放清單檔案中規定一次,且該標籤適用於播放清單檔案中之所有媒體檔案,且該標籤之格式可為:
#EXT-X-TARGETDURATION:<s>
其中「s」為指示以秒計之目標持續時間之整數。
播放清單檔案中之每一媒體檔案URI可具有唯一序號。在一實施例中,URI之序號(若存在)等於在其之前的URI之序號加上1。EXT-X-MEDIA-SEQUENCE標籤可指示出現在播放清單檔案中之第一URI之序號,且格式可為:
#EXT-X-MEDIA-SEQUENCE:<數字>
其中「數字」為URI之序號。若播放清單檔案不包括#EXT-X-MEDTA-SEQUENCE標籤,則可將播放清單中之第一URI之序號視為1。在一實施例中,不需要媒體檔案之序號出現在其URI中,且在一實施例中,播放清單可僅含有一個EXT-X-MEDIA-SEQUENCE標籤。在一實施例中,序列編號可為非順序的;舉例而言,非順序之序列編號(諸如,1、5、7、17等)可使得難以預測序列中之下一個數字且此可幫助保護內容不被盜版。幫助保護內容之另一選項為在任何給定時間僅顯露播放清單之部分。
一些媒體檔案可能經加密。EXT-X-KEY標籤提供可用以解密在其之後的媒體檔案之資訊,且格式可為:
#EXT-X-KEY:METHOD=<方法>[,URI="<URI>"][,IV=<IV>]方法參數規定加密方法,且URI參數(若存在)規定如何獲取密鑰,且IV(初始化向量)(若存在)規定加密方法中所使用之初始化向量(例如,具有密鑰)。
NONE之加密方法指示未加密,且若指示NONE,則在一實施例中,URI參數及IV參數不應存在。可使用各種加密方法,例如AES-128,其指示使用利用128位元密鑰及PKCS7填補之進階加密標準加密(參見RFC3852)的加密。新EXT-X-KEY標籤取代任何先前EXT-X-KEY標籤。
具有URI參數之EXT-X-KEY標籤識別密鑰檔案。密鑰檔案可含有將用以解密播放清單檔案中所列出之後續媒體檔案之編密密鑰。舉例而言,AES-128加密方法使用16-八位元密鑰。密鑰檔案之格式可為二進位格式之16個八位元之封裝陣列。
AES-128之使用通常需要在加密及解密時供應相同的16-八位元初始化向量(IV)。改變IV可用以增加密碼之強度。當使用AES-128加密時,媒體檔案之序號可在加密或解密媒體檔案時用作為IV。
EXT-X-PROGRAM-DATE-TIME標籤可使下一個媒體檔案之開頭與絕對日期及/或時間相關聯,且可包括或指示時區。在一實施例中,日期/時間表示為ISO/IEC 8601:2004。此標籤中之日期及時間之值可提供媒體之時刻表至適當時鐘時間之資訊映射,該值可用作為用於基於日期及時間尋找用於播放之內容、用於顯示用於播放之內容或用於其他目的之基礎。在一實施例中,若伺服器提供此映射,則伺服器應將EXT-X-PROGRAM-DATE-TIME標籤置放於播放清單檔案中之每個EXT-X-DISCONTINUITY標籤之後。標籤格式可為:
EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>
EXT-X-ALLOW-CACHE標籤可用以指示用戶端是否可快取所下載之媒體檔案以用於稍後播放。在一實施例中,此標籤可出現在播放清單檔案中之任何處,但在一實施例中,此標籤應僅在播放清單檔案中出現一次。標籤格式可為:
EXT-X-ALLOW-CACHE:<是|否>
在一實施例中,EXT-X-ENDLIST標籤指示沒有更多媒體檔案將添加至播放清單檔案。標籤格式可為:
EXT-X-ENDLIST
在一實施例中,若播放清單含有最後區段或媒體檔案,則播放清單將具有EXT-X-ENDLIST標籤。在一實施例中,此標籤可出現在播放清單檔案中之任何處,且在一實施例中,此標籤可僅在播放清單檔案中出現一次。
EXT-X-STREAM-INF標籤可用以指示播放清單檔案中之下一個URI識別另一播放清單檔案。在一實施例中,標籤格式可為:
EXT-X-STREAM-INF:[attribute=value][,attribute=value]*<URI>
其中可使用以下屬性。在此標籤的一實施例中,相同類型之屬性在同一標籤中不應出現一次以上。屬性BANDWIDTH=<n>為表示為每秒位元數之串流位元速率之近似上限。在一實施例中,屬性BANDWIDTH可為每一媒體檔案之總位元速率之上限,其經計算以包括出現或將出現在播放清單中之容器附加項。屬性PROGRAM-ID=<i>為在播放清單檔案之範疇內唯一地識別特定呈現之數字。播放清單檔案可包括具有相同PROGRAM-ID之多個EXT-X-STREAM-INF URI以描述相同呈現之變體串流,且此等變體播放清單可含有額外EXT-X-STREAM-INF標籤。將在本發明中進一步描述變體串流及變體播放清單(例如,參見圖9A至圖9D)。屬性CODECS="[格式][,格式]*"可用以規定存在於播放清單檔案中之媒體檔案中之媒體樣本類型,其中每一格式規定一媒體樣本類型;在一實施例中,有效格式識別符可為由RFC 4281定義之ISO檔案格式名稱空間中之彼等識別符。屬性RESOLUTION=<N>×<M>可規定串流內之視訊之解析度,其中N為串流內之視訊之近似編碼水平解析度,其可表示為像素之數目,且M為近似編碼垂直解析度。
EXT-X-DISCONTINUITY標籤指示在該標籤之後的媒體檔案與在該標籤之前的媒體檔案之間的編碼不連續性。可變化之特性之集合為:
‧檔案格式
‧播放軌之數目及類型
‧編碼參數
‧編碼序列
‧時間戳記序列
該標籤之格式為:
#EXT-X-DISCONTINUITY
EXT-X-VERSION標籤指示播放清單檔案之相容性版本。在一實施例中,播放清單檔案、其相關聯媒體及其伺服器應遵守描述標籤值所指示之協定版本的此文件之最近版本之所有條款。
該標籤之格式為:
#EXT-X-VERSION:<n>
其中「n」為指示協定版本之整數。
在一實施例中,播放清單檔案可含有不多於一個的EXT-X-VERSION標籤。在一實施例中,不含有EXT-X-VERSION標籤之播放清單檔案應遵守此協定之版本1。若播放清單檔案具有此標籤,則在一實施例中,此標籤之值應為伺服器、播放清單檔案及相關聯媒體檔案全部遵守的最低協定版本。
前述標籤及屬性可由伺服器裝置使用以組織、傳輸且處理代表原始媒體內容之媒體檔案。用戶端裝置使用此資訊以按將即時或接近即時串流傳輸體驗(例如,諸如音樂或體育事件之實況廣播之觀看)提供至用戶端裝置之使用者的方式重新組譯且呈現媒體檔案。
播放清單檔案中之每一媒體檔案URI識別為原始呈現(亦即,原始媒體內容)之一區段之媒體檔案。在一實施例中,每一媒體檔案經格式化為MPEG-2輸送串流、MPEG-2節目串流或MPEG-2音訊基本串流。格式可藉由規定CODEC來規定,且播放清單可藉由規定CODEC來規定格式。在一實施例中,呈現中之所有媒體檔案具有相同格式;然而,在其他實施例中,可支援多個格式。在一實施例中,輸送串流檔案應含有單一MPEG-2節目,且在每一檔案開始時應存在節目關聯表及節目映射表。含有視訊之檔案應具有至少一關鍵圖框及足以完全初始化視訊解碼器之資訊。播放清單中之媒體檔案必須為解碼串流的在具有先前序號之媒體檔案之結尾處之繼續,除非該媒體檔案為出現在播放清單檔案中之第一媒體檔案或在該媒體檔案之前有一EXT-X-DISCONTINUITY標籤之情況下。用戶端應準備好藉由選擇一合理子集來處置特定類型(例如,音訊或視訊)之多個播放軌。在一實施例中,用戶端應忽略輸送串流內之其不能辨識之專用串流。用於媒體檔案內之串流內及跨多個媒體檔案之對應串流之間的樣本之編碼參數應保持一致。然而,用戶端應在遇到編碼變化時處理該等編碼變化,例如,藉由縮放視訊內容以適應解析度變化。
圖2A為用於一或多個伺服器裝置的用以使用非串流傳輸協定支援媒體內容之技術之一實施例的流程圖。圖2A之實例係依據HTTP提供;然而,可以類似方式利用其他非串流傳輸協定。圖2A之實例係依據執行特定任務之單一伺服器提供。然而,可利用任何數目個伺服器。舉例而言,將媒體檔案提供至用戶端裝置之伺服器可為不同於將內容分段成多個媒體檔案之伺服器的裝置。
在操作200中,伺服器裝置接收待提供之內容。該內容可代表實況音訊及/或視訊(例如,體育事件、實況新聞、網路攝影機饋送)。該內容亦可代表預先記錄之內容(例如,已記錄之音樂會、訓練講座等)。該內容可由伺服器根據此項技術中已知之任何格式及協定(串流傳輸或未串流傳輸)接收。在一實施例中,內容係以MPEG-2串流之形式由伺服器接收;然而,亦可支援其他格式。
在操作210中,伺服器可接著暫時儲存該內容之至少部分。該內容或該內容之至少部分可暫時儲存於儲存裝置(例如,儲存區域網路中之硬碟等)上或記憶體中。或者,可經由儲存媒體(例如,緊密光碟、隨身碟)接收該內容,該內容可自該儲存媒體傳送至儲存裝置或記憶體。在一實施例中,伺服器具有在必要時將該內容轉換成一或多個串流(例如,MPEG-2)之編碼器。此轉換可在不永久儲存接收之內容的情況下發生,且在一些實施例中,可能省略儲存操作210,或在其他實施例中,儲存操作210可能為一較長期儲存(例如,存檔儲存)。
在操作220中,將待提供之內容分段成多個媒體檔案。在一實施例中,伺服器將串流轉換成可使用標準網路伺服器散佈之分離且相異之媒體檔案(亦即,區段)。在一實施例中,伺服器在支援個別媒體檔案之有效解碼之點(例如,在諸如PES封包邊界及i圖框邊界的封包及關鍵圖框邊界上)將媒體串流分段。該等媒體檔案可為原始串流之具有近似相等持續時間之部分。伺服器亦為每一媒體檔案建立URI。此等URI允許用戶端裝置存取該等媒體檔案。
因為區段係使用固有地傳遞整個檔案之HTTP伺服器伺服,所以在可將媒體檔案伺服至用戶端之前,伺服器應具有可用的完整之分段媒體檔案。因此,用戶端(在時間上)可延滯於廣播至少一媒體檔案長度。在一實施例中,媒體檔案大小係基於延滯時間與具有過多檔案之間的平衡。
在一實施例中,支援兩個作業階段類型(實況作業階段及事件作業階段)。對於實況作業階段,僅保留串流之固定大小部分。在一實施例中,自節目播放清單檔案移除過時的內容媒體檔案,且可自伺服器移除過時的內容媒體檔案。第二類型之作業階段為事件作業階段,其中用戶端可調諧至廣播中之任一點(例如,自開頭開始、自中點開始)。此類型之作業階段可用於(例如)重播。
在操作230中,將媒體檔案儲存於伺服器記憶體中。在操作230中之儲存檔案之前,媒體檔案可由安全特徵(諸如,加密)保護。將媒體檔案儲存為準備好使用由伺服器裝置上之網路伺服器應用程式支援(或由進行傳輸之另一裝置支援)之網路協定(例如,HTTP或HTTPS)傳輸之檔案。
在操作240中,產生一或多個播放清單檔案以指示應藉以組譯媒體檔案以重新建立原始內容之次序。播放清單檔案可利用擴展M3U標籤及本文中所描述之標籤來為用戶端裝置提供資訊以存取並重新組譯媒體檔案以在用戶端裝置上提供串流傳輸體驗。每一媒體檔案之URI係以將用以播放媒體檔案之次序包括於播放清單檔案中。伺服器亦可為播放清單檔案建立一或多個URI以允許用戶端裝置存取播放清單檔案。
在操作250中,可將播放清單檔案儲存於伺服器上。儘管在圖2A中以特定次序呈現媒體檔案及播放清單檔案之建立及儲存,但亦可能使用不同次序。舉例而言,可在建立或儲存媒體檔案之前建立播放清單檔案。作為另一實例,可在儲存播放清單檔案及媒體檔案之任一者之前建立播放清單檔案及媒體檔案。
若媒體檔案待加密,則播放清單檔案可定義一URI,其允許經授權用戶端裝置獲取含有用以解密媒體檔案之加密密鑰之密鑰檔案。加密密鑰可使用安全連接(例如,HTTPS)傳輸。作為另一實例,播放清單檔案可使用HTTPS傳輸。作為又一實例,媒體檔案可以不可預測之次序配置,使得用戶端在無播放清單檔案之情況下不能重新建立串流。
若加密方法為AES-128,則可將(例如)AES-128 CBC加密應用於個別媒體檔案。在一實施例中,加密整個檔案。在一實施例中,通常不跨媒體檔案應用密碼區塊鏈結。媒體檔案之序號可用作為IV,或如上所述,IV可為EXT-X-KEY標籤之IV屬性之值。在一實施例中,伺服器將具有密鑰URI之EXT-X-KEY標籤添加至播放清單檔案之最後。伺服器接著用該密鑰加密所有後續媒體檔案,直至作出加密組態之變化為止。
為了切換至新加密密鑰,伺服器可經由相異於呈現中所使用之所有先前密鑰URI的新URI來使新密鑰可用。伺服器亦將具有新密鑰URI之EXT-X-KEY標籤添加至播放清單檔案之最後且用新密鑰加密所有後續媒體檔案。
為了結束加密,伺服器可在播放清單檔案之最後添加具有加密方法NONE之EXT-X-KEY標籤。在一實施例中,該標籤(以「NONE」作為方法)不包括URI參數。如上所述,在作出加密組態之變化之前,不加密所有後續媒體檔案。若一播放清單檔案含有至用該密鑰加密之媒體檔案之URI,則伺服器不自該播放清單檔案移除EXT-X-KEY標籤。在操作270中,伺服器可回應於用戶端請求經由網路傳輸播放清單檔案及媒體檔案,如關於圖3A更詳細描述。
在一實施例中,伺服器回應於接收來自用戶端裝置之對播放清單檔案之請求而將播放清單檔案傳輸至用戶端裝置。用戶端裝置可使用已提供至用戶端裝置之URI來存取/請求播放清單檔案。URI指示播放清單檔案在伺服器上之位置。作為回應,伺服器可將播放清單檔案提供至用戶端裝置。用戶端裝置可利用播放清單檔案中之標籤及URI(或其他識別符)存取多個媒體檔案。
在一實施例中,伺服器可將媒體檔案之可用性限於最近已添加至播放清單檔案之彼等媒體檔案。為了如此限制,每一播放清單檔案可包括僅一個EXT-X-MEDIA-SEQUENCE標籤,且值可針對自播放清單檔案移除之每個媒體檔案URI而遞增1。可以添加媒體檔案URI之次序自播放清單檔案移除媒體檔案URI。在一實施例中,當伺服器自播放清單檔案移除媒體檔案URI時,媒體檔案在一等於媒體檔案之持續時間加上該媒體檔案已出現於之最長播放清單檔案之持續時間的時間段內保持可供用戶端使用。
一播放清單檔案之持續時間為該播放清單檔案內之媒體檔案之持續時間之總和。亦可使用其他持續時間。在一實施例中,除非EXT-X-ENDLIST標籤存在,否則伺服器可一直在播放清單中維持至少三個主要呈現媒體檔案。
圖2B為用於一或多個伺服器裝置的用以以動態方式將經更新之播放清單提供至一或多個用戶端裝置之技術之一實施例的流程圖。可使用本文中所描述之累積模式或滾動模式中之任一者來更新播放清單。圖2B之實例係依據HTTP提供;然而,可以類似方式利用其他非串流傳輸協定(例如,HTTPS等)。圖2B之實例係依據執行特定任務之伺服器提供。然而,可利用任何數目個伺服器。舉例而言,將媒體檔案提供至用戶端裝置之伺服器可為不同於將內容分段成多個媒體檔案之伺服器的裝置。
在操作205中,伺服器裝置接收待提供之內容。在操作215中,伺服器可接著暫時儲存該內容之至少部分。操作215可類似於圖2A中之操作210。在操作225中,將待提供之內容分段成多個媒體檔案。在操作235中,可將媒體檔案儲存於伺服器記憶體中。在操作235中之儲存檔案之前,媒體檔案可由安全特徵(諸如,加密)保護。
在操作245中,產生一或多個播放清單檔案以指示應藉以組譯媒體檔案以重新建立原始內容之次序。在操作255中,可將播放清單檔案儲存於伺服器上。儘管在圖2B中以特定次序呈現媒體檔案及播放清單檔案之建立及儲存,但亦可能使用不同次序。
在操作275中,伺服器(或另一伺服器)可回應於用戶端請求經由網路傳輸播放清單檔案及媒體檔案,如關於圖3A至圖3B所更詳細描述。
可出於各種原因由伺服器更新播放清單檔案。在操作285中,伺服器可接收待提供至用戶端裝置之額外資料。可在操作255中儲存播放清單檔案之後接收額外資料。額外資料可為(例如)實況呈現之額外部分或用於現有呈現之額外資訊。額外資料可包括廣告或統計資料(例如,與體育事件相關之分數或資料)。額外資料可覆疊(經由半透明性)在呈現上或呈現於側邊列使用者介面中。可以與最初接收之資料相同的方式將額外資料分段。若額外資料組成廣告或待插入至播放清單所代表之節目中之其他內容,則額外資料可在操作215中被儲存(至少暫時地)、在操作225中被分段且在操作235中被儲存;在儲存分段額外資料之前,可加密額外資料之區段。接著,在操作245中,將產生含有節目及額外資料的經更新之播放清單。在操作255中,基於額外資料更新播放清單且再次儲存播放清單。自用戶端裝置之觀點,播放清單檔案之變化應原子地(atomically)進行。在一實施例中,經更新之播放清單替換先前播放清單。如下文更詳細所論述,用戶端裝置可多次請求播放清單。此等請求使用戶端裝置能夠利用最新近的播放清單。在一實施例中,額外資料可為中繼資料;在此情況下,不必更新播放清單,但可更新區段以包括中繼資料。舉例而言,中繼資料可含有可與區段中之時間戳記匹配的時間戳記,且中繼資料可添加至具有匹配時間戳記之區段。
經更新之播放清單亦可導致媒體檔案之移除。在一實施例中,伺服器應以將媒體檔案添加至播放清單之次序自播放清單移除媒體檔案之URI。在一實施例中,若伺服器移除整個呈現,則伺服器使播放清單不可供用戶端裝置使用。在一實施例中,伺服器在含有待移除之媒體檔案之最長播放清單檔案之持續時間中維持媒體檔案及播放清單檔案,以允許當前用戶端裝置完成對呈現之存取。因此,播放清單檔案中之每個媒體檔案URI可以用以指示播放清單檔案所指示之媒體檔案之近似累積持續時間之EXT-X-STREAM-INF標籤作為前置詞。在替代實施例中,可立即移除媒體檔案及播放清單檔案。
來自用戶端裝置之對播放清單之後續請求導致在操作275中伺服器提供經更新之播放清單。在一實施例中,定期(例如,與目標持續時間相關之時間週期)更新播放清單。播放清單檔案之週期性更新允許伺服器為動態變化之呈現提供對伺服器之存取。
圖2C為用於一或多個伺服器裝置的用以使用多個位元速率將媒體內容提供至用戶端裝置之技術之一實施例的流程圖,該實施例為替代串流之使用之一形式。圖2C之實例係依據HTTP提供;然而,可以類似方式利用其他非串流傳輸協定。圖2C之實例係依據執行特定任務之伺服器提供。然而,可利用任何數目個伺服器。舉例而言,將媒體檔案提供至用戶端裝置之伺服器可為不同於將內容分段成多個媒體檔案之伺服器的裝置。
在一實施例中,伺服器可提供多個播放清單檔案或單一播放清單檔案(在該單一播放清單檔案中有多個媒體檔案清單)以提供相同呈現之不同編碼。若提供不同編碼,則播放清單檔案可包括提供不同位元速率之每一變體串流以允許用戶端裝置動態地在編碼之間切換(此將結合圖9A至圖9D進一步描述)。具有變體串流之播放清單檔案可包括用於每一變體串流之EXT-X-STREAM-INF標籤。用於相同呈現之每一EXT-X-STREAM-INF標籤可具有相同PROGRAM-ID屬性值。用於每一呈現之PROGRAM-ID值在變體串流內為唯一的。
在一實施例中,伺服器在產生變體串流時滿足以下約束。每一變體串流可由包括不為主要呈現之部分之可選內容之相同內容組成。伺服器可在所有變體串流之最小目標持續時間之準確度範圍內使相同時段之內容可供所有變體串流使用。在一實施例中,變體串流之媒體檔案為具有匹配所有變體串流中之對應內容之樣本時間戳記的MPEG-2輸送串流或MPEG-2節目串流。又,在一實施例中,所有變體串流應含有相同音訊編碼。此允許用戶端裝置在變體串流之間切換而不丟失內容。
參看圖2C,在操作202中,伺服器裝置接收待提供之內容。在操作212中,伺服器可接著至少暫時儲存該內容。在操作222中,將待提供之內容分段成多個媒體檔案。在操作232中,針對選定位元速率(或其他編碼參數之選定值)編碼每一媒體檔案且將每一媒體檔案儲存於伺服器上。舉例而言,媒體檔案可以高、中及低頻寬連接為目標。可在儲存之前加密媒體檔案。可選擇以各種類型之連接為目標之媒體檔案之編碼以在目標頻寬層級提供串流傳輸體驗。
在一實施例中,在操作242中,產生具有本文中所描述之指示各種編碼層級之標籤的變體播放清單。該等標籤可包括(例如)用於每一編碼層級之具有至對應媒體播放清單檔案之URI之EXT-X-STREAM-INF標籤。
此變體播放清單可包括至用於各種編碼層級之媒體播放清單檔案之URI。因此,用戶端裝置可自指示編碼層級之變體播放清單中所提供之替代者中選擇一目標位元速率且擷取對應播放清單檔案。在一實施例中,用戶端裝置可在播放期間在位元速率之間變化(例如,如關於圖9A至圖9D所描述)。在操作252中,將指示各種編碼層級之變體播放清單儲存於伺服器上。在操作242中,亦可產生變體播放清單中所參考之播放清單中之每一者,且接著在操作252中儲存該等播放清單中之每一者。
在操作272中,回應於來自用戶端裝置之請求,伺服器可傳輸指示各種編碼層級之變體播放清單。在操作282中,伺服器可接收對變體播放清單中所規定之媒體播放清單中之一對應於選定位元速率之媒體播放清單的請求。在操作292中,回應於該請求,伺服器傳輸對應於來自用戶端裝置之請求的媒體播放清單檔案。用戶端裝置接著可使用該媒體播放清單向該伺服器請求媒體檔案。在操作297中,伺服器回應於請求將該等媒體檔案提供至用戶端裝置。
圖3A為用於用戶端裝置的用以使用非串流傳輸協定支援內容之串流傳輸之技術之一實施例的流程圖。圖3A之實例係依據HTTP提供;然而,可以類似方式利用其他非串流傳輸協定。圖3A至圖3B所示之方法可由一個用戶端裝置或由若干分離之用戶端裝置執行。舉例而言,在此等方法中之任一者的情況下,單一用戶端裝置可能執行所有該等操作(例如,請求一播放清單檔案、使用該播放清單檔案中之URI請求媒體檔案、組譯該等媒體檔案以產生及提供一呈現/輸出),或若干相異用戶端裝置可執行該等操作中之一些而非全部(例如,第一用戶端裝置可請求一播放清單檔案且使用該播放清單檔案中之URI請求媒體檔案且可儲存彼等媒體檔案以供第二用戶端裝置使用,該第二用戶端裝置可處理該等媒體檔案以產生及提供一呈現/輸出)。
在操作300中,用戶端裝置可向伺服器請求播放清單檔案。在一實施例中,該請求係根據符合HTTP之協定作出。該請求利用至儲存於伺服器上之初始播放清單檔案之URI。在替代實施例中,可支援其他非串流傳輸協定。回應於該請求,伺服器將經由網路將對應播放清單檔案傳輸至用戶端。如上文所論述,網路可為有線或無線的,且可為有線網路或無線網路之任何組合。此外,網路可為資料網路(例如,IEEE 802.11、IEEE 802.16)或蜂巢式電話網路(例如,3G)。
在操作310中,用戶端裝置可接收播放清單檔案。在操作320中,可將播放清單檔案儲存於用戶端裝置之記憶體中。該記憶體可為(例如)硬碟、快閃記憶體、隨機存取記憶體。在一實施例中,每當自播放清單URI載入或重新載入一播放清單檔案時,用戶端檢查以判定該播放清單檔案以#EXTM3U標籤開始且在缺少該標籤的情況下不繼續。如上文所論述,該播放清單檔案包括一或多個標籤以及至媒體檔案之一或多個URI。
用戶端裝置可包括一組譯器代理,其藉由在操作330中請求該播放清單檔案中之該等URI所指示之媒體檔案來使用該播放清單檔案重新組譯原始內容。在一實施例中,該組譯器代理為一外掛程式模組,其為標準網頁瀏覽器應用程式之部分。在另一實施例中,該組譯器代理可為獨立應用程式,其與網頁瀏覽器互動以使用播放清單檔案接收且組譯媒體檔案。作為又一實例,該組譯器代理可為嵌入於用戶端裝置中之專用硬體或韌體組件。
組譯器可使來自該播放清單檔案之媒體檔案得以自該等URI所指示之伺服器下載。若該播放清單檔案含有EXT-X-ENDLIST標籤,則可首先播放該播放清單檔案所指示之任何媒體檔案。若EXT-X-ENDLIST標籤不存在,則可首先播放除了最後一個及倒數第二個媒體檔案之外的任何媒體檔案。一旦已選擇了要播放之第一媒體檔案,在一實施例中,就以媒體檔案出現在播放清單檔案中之次序載入該播放清單檔案中之後續媒體檔案(否則,內容將無序地呈現)。在一實施例中,用戶端裝置嘗試在需要媒體檔案之前載入媒體檔案(且將其儲存於緩衝器中)以提供不中斷之播放且補償網路延時及輸送量之暫時變化。
在操作340中,可將下載之媒體檔案儲存於用戶端裝置上之記憶體中。記憶體(內容可儲存於其中)可為用戶端裝置上之任何類型之記憶體,例如,隨機存取記憶體、硬碟或視訊緩衝器。儲存可為暫時的以允許播放,或可為永久的。若播放清單檔案含有EXT-X-ALLOW-CACHE標籤且標籤之值為NO,則用戶端在下載之媒體檔案已播放之後不儲存該等下載之媒體檔案。若播放清單含有EXT-X-ALLOW-CACHE標籤且該標籤之值為YES,則用戶端裝置可無限期地儲存媒體檔案以供稍後重放。用戶端裝置可使用EXT-X-PROGRAM-DATE-TIME標籤之值以向使用者顯示節目起源時間。在一實施例中,用戶端可緩衝多個媒體檔案以使得其較不易受網路抖動影響,以便提供較佳使用者體驗。
在一實施例中,若解密方法為AES-128,則將AES-128 CBC解密應用於個別媒體檔案。解密整個檔案。在一實施例中,不跨媒體檔案應用密碼區塊鏈結。如上所述,可使用媒體檔案之序號作為初始化向量。
在操作350中,可將來自記憶體之內容自用戶端裝置輸出。輸出或呈現可為(例如)經由內建揚聲器或頭戴式耳機之音訊輸出。輸出可包括經由螢幕輸出或自用戶端裝置投射之視訊。可利用此項技術中已知之任何類型之輸出。在操作351中,用戶端裝置判定儲存之當前播放清單中是否還存在尚未播放或以其它方式呈現之媒體檔案。若此等媒體檔案存在(且若尚未請求此等媒體檔案),則處理返回請求一或多個媒體檔案之操作330且處理程序重複。若不存在此等媒體檔案(亦即,當前播放清單中之所有媒體檔案已播放),則處理進行至判定播放清單檔案是否包括一結束標籤之操作352。
若在操作352中,播放清單包括一結束標籤(例如,EXT-X-ENDLIST),則播放在已播放了播放清單檔案所指示之媒體檔案時中止。若結束標籤不在播放清單中,則用戶端裝置再次向伺服器請求播放清單且回復到操作300以獲取節目之另一或經更新之播放清單。
如關於圖2B更詳細論述,伺服器可更新播放清單檔案以引入補充內容(例如,對應於實況廣播中之額外媒體內容之額外媒體檔案識別符)或額外內容(例如,串流中更後面之內容)。為了存取補充內容或額外內容,用戶端可重新載入來自伺服器的經更新之播放清單。此可提供可藉以動態地更新播放清單檔案之機制,即使在與播放清單檔案相關聯之媒體內容之播放期間亦然。用戶端可基於觸發器之數目來請求播放清單檔案之重新載入。沒有結束標籤為一個此種觸發器。
在一實施例中,除非播放清單檔案含有EXT-X-ENDLIST標籤,否則用戶端裝置週期性地重新載入播放清單檔案。當用戶端裝置第一次載入一播放清單檔案,或重新載入一播放清單檔案且發現該播放清單檔案自其上次載入以來已變化時,用戶端在嘗試再次重新載入該播放清單檔案之前可等待一段時間。將此時段稱為初始最小重新載入延遲。自用戶端開始載入播放清單檔案之時間起量測此初始最小重新載入延遲。
在一實施例中,初始最小重新載入延遲為播放清單檔案中之上一個媒體檔案之持續時間或目標持續時間的三倍中的較小者。媒體檔案持續時間係由EXTINF標籤規定。若用戶端重新載入一播放清單檔案且發現該播放清單檔案尚未變化,則用戶端可在重試之前等待一段時間。在一實施例中,最小延遲為目標持續時間的三倍或初始最小重新載入延遲的倍數中的較小者。在一實施例中,此倍數對第一嘗試為0.5、對第二嘗試為1.5且對後續嘗試為3.0;然而,可使用其他倍數。
每當載入或重新載入一播放清單檔案時,用戶端裝置檢查該播放清單檔案以判定要載入的下一個媒體檔案。如上所述,要載入的第一檔案為經選定首先播放之媒體檔案。若已載入待播放之第一媒體檔案且播放清單檔案不含有EXT-X-MEDIA-SEQUENCE標籤,則用戶端可驗證:當前播放清單檔案在最初發現上一次載入之媒體檔案之位移處含有上一次載入之媒體檔案之URI,在未發現該檔案之情況下暫停播放。要載入之下一個媒體檔案可為播放清單檔案中之在上一次載入之URI之後的第一媒體檔案URI。
若待播放之第一檔案已被載入且播放清單檔案含有EXT-X-MEDIA-SEQUENCE標籤,則要載入之下一個媒體檔案可為具有大於載入之上一個媒體檔案之序號之最小序號的媒體檔案。若播放清單檔案含有規定密鑰檔案URI之EXT-X-KEY標籤,則用戶端裝置獲取密鑰檔案且使用密鑰檔案內之密鑰解密EXT-X-KEY標籤之後的媒體檔案,直至遇到另一EXT-X-KEY標籤。
在一實施例中,用戶端裝置利用與先前用以下載播放清單檔案之URI相同的URI。因此,若已對播放清單檔案進行變化,則用戶端裝置可使用經更新之播放清單檔案來擷取媒體檔案且基於該等媒體檔案提供輸出。
對播放清單檔案之變化可包括:(例如)至媒體檔案之URI之刪除、至新媒體檔案之URI之添加、至替換媒體檔案之URI之替換。當對播放清單檔案進行變化時,可更新一或多個標籤以反映該(該等)變化。舉例而言,若對媒體檔案之變化導致對播放清單檔案所指示之媒體檔案之播放之持續時間的變化,則可更新持續時間標籤。
圖3B為用於用戶端裝置的用以使用多個位元速率(其為替代串流之一形式)支援內容之串流傳輸之技術之一實施例的流程圖。圖3B之實例係依據HTTP提供;然而,可以類似方式利用其他非串流傳輸協定。
在操作370中,用戶端裝置可請求播放清單檔案。如上文所論述,可利用提供至用戶端裝置之URI來擷取播放清單檔案。在一實施例中,播放清單檔案包括媒體檔案之變體串流之列表以按不同位元速率提供相同內容;換言之,單一播放清單檔案包括用於變體串流中之每一者之媒體檔案的URI。圖3B所示之實例使用此實施例。在另一實施例中,變體串流可由分離地提供至用戶端之各自按不同位元速率提供相同內容之多個相異播放清單檔案表示,且變體播放清單可提供用於相異播放清單檔案中之每一者之URI。此允許用戶端裝置基於用戶端條件來選擇位元速率。在操作375中,可由用戶端裝置擷取播放清單檔案。在操作380中,可將播放清單檔案儲存於用戶端裝置記憶體中。用戶端裝置可基於當前網路連接速度在操作385中選擇待使用之位元速率。在操作390中,利用包括於對應於選定位元速率之播放清單檔案中之URI向伺服器請求媒體檔案。可將擷取之媒體檔案儲存於用戶端裝置記憶體中。在操作394中,由用戶端裝置利用媒體檔案提供輸出,且用戶端裝置判定是否改變位元速率。
在一實施例中,用戶端裝置最初選擇最低可用位元速率。當播放媒體時,用戶端裝置可監視可用頻寬(例如,當前網路連接位元速率)以判定可用頻寬是否可支援將較高位元速率用於播放。若支援,則用戶端裝置可選擇一較高位元速率且存取較高位元速率媒體播放清單檔案所指示之媒體檔案。亦可支援相反情況。若播放消耗過多頻寬,則用戶端裝置可選擇一較低位元速率且存取較低位元速率媒體播放清單檔案所指示之媒體檔案。
若在操作394中,用戶端裝置(例如)回應於可用頻寬之變化或回應於使用者輸入而改變位元速率,則在操作385中,用戶端裝置可選擇一不同位元速率。在一實施例中,為了選擇一不同位元速率,用戶端裝置可利用包括於對應於新選定位元速率之播放清單檔案中之URI之不同清單。在一實施例中,用戶端裝置可在存取播放清單內之媒體檔案期間改變位元速率。若在操作394中不改變位元速率,則用戶端裝置判定當前播放清單中是否還存在未播放之尚未擷取且呈現之媒體檔案。若此等媒體檔案存在,則處理返回至操作390,且使用用於播放清單中之彼等檔案之URI擷取一或多個媒體檔案。若不存在此等媒體檔案(亦即,當前播放清單中之所有媒體檔案已播放),則處理進行至判定播放清單是否包括一結束標籤之操作396。若播放清單包括結束標籤,則節目之播放已結束且處理程序已完成;若播放清單不包括結束標籤,則處理回到操作370,且用戶端裝置請求重新載入節目之播放清單,且處理程序經由圖3B中所示之方法重複。
圖4為伺服器串流代理之一實施例的方塊圖。將理解,伺服器串流代理400之元件可跨越若干伺服器裝置而分散。舉例而言,一第一伺服器裝置可包括分段器430、索引器440及安全性450,但不包括檔案伺服器460,且一第二伺服器裝置可包括檔案伺服器460,但不包括分段器430、索引器440及安全性450。在此實例中,該第一伺服器裝置會準備播放清單及媒體檔案,但不會將該等播放清單及媒體檔案傳輸至用戶端裝置,而一或多個第二伺服器裝置會接收且視情況儲存該等播放清單及媒體檔案且會將該等播放清單及媒體檔案傳輸至用戶端裝置。伺服器串流代理400包括:控制邏輯410,其實施用以引導伺服器串流代理400之操作的邏輯功能控制;及與引導伺服器串流代理400之操作相關聯之硬體。邏輯可能為硬體邏輯電路或軟體常式或韌體。在一實施例中,伺服器串流代理400包括一或多個應用程式412,該一或多個應用程式代表將指令提供至控制邏輯410之碼序列及/或程式。
伺服器串流代理400包括記憶體414,其代表記憶體裝置或對用於儲存資料或指令之記憶體資源之存取。記憶體414可包括在伺服器串流代理400本端之記憶體,以及或替代性地包括駐留有伺服器串流代理400之主機系統之記憶體。伺服器串流代理400亦包括一或多個介面416,該一或多個介面代表關於在伺服器串流代理400外部之實體(電子的或人類的)之至/自伺服器串流代理400之存取介面(一輸入/輸出介面)。
伺服器串流代理400亦可包括伺服器串流引擎420,其代表使伺服器串流代理400能夠如本文中所描述地提供即時或接近即時串流傳輸之一或多個功能。圖4之實例提供可能包括於伺服器串流引擎420中之若干組件;然而,亦可能包括不同或額外組件。提供串流傳輸環境的過程中可能涉及之實例組件包括分段器430、索引器440、安全性450及檔案伺服器460。此等組件中之每一者可進一步包括其他組件以提供其他功能。如本文中所使用,無論是以硬體、軟體、韌體抑或其某一組合來實施,組件指代常式、子系統等。
分段器430將待提供之內容劃分成可使用一網路伺服器協定(例如,HTTP)作為檔案傳輸之媒體檔案。舉例而言,分段器430可將內容劃分成預定檔案格式之資料之預定、固定大小區塊。索引器440可提供將一位址或URI提供至由分段器430建立之媒體檔案的一或多個播放清單檔案。索引器440可(例如)建立具有對應於由分段器430建立之每一檔案之識別符之次序的列表之一或多個檔案。該等識別符可由分段器430或索引器440建立或指派。索引器440亦可將一或多個標籤包括於播放清單檔案中以支援對媒體檔案之存取及/或利用。安全性450可提供安全特徵(例如,加密),諸如上文所論述之彼等安全特徵。網路伺服器460可提供與將儲存於主機系統上之檔案提供至遠端用戶端裝置相關之網路伺服器功能性。網路伺服器460可支援(例如)符合HTTP之協定。
圖5為用戶端串流代理之一實施例的方塊圖。將理解,用戶端串流代理之元件可跨越若干用戶端裝置而分散。舉例而言,一第一用戶端裝置可包括組譯器530及安全性550且可將媒體檔案之經解密串流提供至一第二用戶端裝置,該第二用戶端裝置包括輸出產生器540(但不包括組譯器530及安全性550)。在另一實例中,一主要用戶端裝置可擷取播放清單且將該等播放清單提供至一次要用戶端裝置,該次要用戶端裝置擷取播放清單中所規定之媒體檔案且產生一輸出以呈現此等媒體檔案。用戶端串流代理500包括:控制邏輯510,其實施用以引導用戶端串流代理500之操作的邏輯功能控制;及與引導用戶端串流代理500之操作相關聯之硬體。邏輯可能為硬體邏輯電路或軟體常式或韌體。在一實施例中,用戶端串流代理500包括一或多個應用程式512,該一或多個應用程式代表將指令提供至控制邏輯510之碼序列或程式。用戶端串流代理500包括記憶體514,其代表記憶體裝置或對用於儲存資料及/或指令之記憶體資源之存取。記憶體514可包括在用戶端串流代理500本端之記憶體,以及替代性地包括駐留有用戶端串流代理500之主機系統之記憶體。用戶端串流代理500亦包括一或多個介面516,該一或多個介面代表關於在用戶端串流代理500外部之實體(電子的或人類的)之至/自用戶端串流代理500之存取介面(一輸入/輸出介面)。
用戶端串流代理500亦可包括用戶端串流引擎520,其代表使用戶端串流代理500能夠如本文中所描述地提供即時或接近即時串流傳輸之一或多個功能。圖5之實例提供可能包括於用戶端串流引擎520中之若干組件;然而,亦可能包括不同或額外組件。提供串流傳輸環境之過程中可能涉及之實例組件包括組譯器530、輸出產生器540及安全性550。此等組件中之每一者可進一步包括其他組件以提供其他功能。如本文中所使用,無論是以硬體、軟體、韌體抑或其某一組合來實施,組件指代常式、子系統等。
組譯器530可利用自伺服器接收之播放清單檔案而經由網路伺服器協定(例如,HTTP)自伺服器存取媒體檔案。在一實施例中,組譯器530可使播放清單檔案中之URI所指示之媒體檔案得以下載。組譯器530可能回應於包括於播放清單檔案中之標籤。輸出產生器540可能提供接收之媒體檔案作為主機系統上之音訊或視覺輸出(或音訊及視覺兩者)。輸出產生器540可能(例如)使音訊輸出至一或多個揚聲器且使視訊輸出至一顯示裝置。安全性550可提供諸如上文所論述之彼等安全特徵的安全特徵。圖6說明具有多個標籤之播放清單檔案之一實施例。圖6之實例播放清單包括特定數目及次序之標籤。僅為描述目的提供此播放清單。一些播放清單檔案可能包括標籤之更多、更少或不同組合,且可以不同於圖6所示之次序來配置該等標籤。
開始標籤610可指示一播放清單檔案之開始。在一實施例中,開始標籤610為#EXTM3U標籤。持續時間標籤620可指示該播放清單之持續時間。亦即,播放清單600所指示的媒體檔案之播放之持續時間。在一實施例中,持續時間標籤620為EXT-X-TARGETDURATION標籤;然而,亦可使用其他標籤。
日期/時間標籤625可提供與由播放清單600指示之媒體檔案所提供的內容之日期及時間相關之資訊。在一實施例中,日期/時間標籤625為EXT-X-PROGRAM-DATE-TIME標籤;然而,亦可使用其他標籤。序列標籤630可指示播放清單之一序列中的播放清單檔案600之順序。在一實施例中,序列標籤630為EXT-X-MEDIA-SEQUENCE標籤;然而,亦可使用其他標籤。安全性標籤640可提供與應用於播放清單檔案600所指示之媒體檔案的安全性及/或加密相關之資訊。舉例而言,安全性標籤640可規定一解密密鑰以解密該等媒體檔案指示符所規定之檔案。在一實施例中,安全性標籤640為EXT-X-KEY標籤;然而,亦可使用其他標籤。變體清單標籤645可指示變體串流是否由播放清單600以及與該等變體串流相關之資訊(例如,串流數目、位元速率)提供。在一實施例中,變體清單標籤645為EXT-X-STREAM-INF標籤。
媒體檔案指示符650可提供與待播放之媒體檔案相關之資訊。在一實施例中,媒體檔案指示符650包括至待播放之多個媒體檔案之URI。在一實施例中,播放清單600中之URI之次序對應於應用以存取及/或播放媒體檔案之次序。後續播放清單指示符660可提供與將在播放檔案600之後使用的一或多個播放檔案相關之資訊。在一實施例中,後續播放清單指示符660可包括至將在已播放播放清單600之媒體檔案之後使用的一或多個播放清單檔案之URI。
記憶體標籤670可指示在媒體檔案內容之播放之後用戶端裝置是否可儲存媒體檔案及/或可儲存多久。在一實施例中,記憶體標籤670為EXT-X-ALLOW-CACHE標籤。結束標籤680指示播放清單檔案600是否為要呈現之最後一個播放清單檔案。在一實施例中,結束標籤680為EXT-X-ENDLIST標籤。
以下章節(section)含有根據一實施例之若干實例播放清單檔案。
圖7為本文中所描述的用於經組譯串流之播放技術之一實施例的流程圖。在一實施例中,接收之媒體檔案之播放可由使用者控制以開始、停止、倒轉等。在操作700中,由用戶端裝置接收播放清單檔案。在操作710中,擷取由播放清單檔案指示之媒體檔案。在操作720中,基於擷取之媒體檔案產生輸出。可如上所述地完成接收及基於媒體檔案產生輸出。
若在操作730中偵測到控制輸入,則在操作740中,用戶端裝置可判定該輸入是否指示停止。若該輸入為停止,則該處理程序終止(conclude)且播放停止。若在操作750中該輸入指示倒轉或快轉請求,則在操作760中,用戶端裝置可基於仍儲存於記憶體中的先前播放之媒體檔案而產生輸出。若此等檔案不再存在於快取記憶體中,則處理回復到用以擷取媒體檔案之操作710且重複該處理程序。在一替代實施例中,播放可支援暫停特徵,其在不終止播放(如同停止輸入之情況一樣)之情況下停住播放。
將參看圖9A至圖9D進一步描述用於自一個串流轉變(transition)至另一串流之方法。一個用戶端裝置可執行此等方法中之每一者,或此等方法中之每一者之操作可跨越多個用戶端裝置而分散,如本文中所描述;舉例而言,在分散式情況下,一個用戶端裝置可擷取變體播放清單及兩個媒體播放清單且將彼等播放清單提供至另一用戶端裝置,該另一用戶端裝置擷取由該兩個媒體播放清單規定之媒體檔案且在由擷取之媒體檔案提供的兩個串流之間切換。亦將理解,在替代實施例中,所展示的操作之次序可經修改,或可存在比此等圖中所示之操作更多或更少的操作。該等方法可使用一變體播放清單來選擇不同串流。在操作901中,可擷取且處理一變體播放清單以判定用於一節目(例如,一體育事件)之可用串流。操作901可由用戶端裝置進行。在操作903中,可自該變體播放清單選擇一第一串流,且一用戶端裝置接著可擷取用於該第一串流之一媒體播放清單。該用戶端裝置可在操作905中處理用於該第一串流之該媒體播放清單且亦可在操作907中量測或以其他方式判定用於該第一串流之網路連接之位元速率。將瞭解,操作之順序可以不同於圖9A所示之一次序的次序來執行;舉例而言,操作907可在操作903期間進行等。在操作911中,該用戶端裝置基於來自操作907的量測之位元速率而自該變體播放清單選擇一替代媒體播放清單;此替代媒體播放清單可在高於該第一串流之一現有位元速率的第二位元速率下。此通常意謂著替代串流將具有高於該第一串流之一解析度。若基於當前條件(例如,在操作907中量測之位元速率),該替代媒體播放清單為一優於用於該第一串流之當前播放清單之匹配,則可選擇該替代媒體播放清單。在操作913中,擷取且處理用於一替代串流之替代媒體播放清單。此通常意謂著用戶端裝置可正在接收及處理該第一串流及該替代串流兩者,使得該兩者皆可用於呈現;一個串流被呈現而另一串流準備被呈現。該用戶端裝置接著在操作915中選擇一轉變點以在該等串流之版本之間切換,且停止呈現該第一串流且開始呈現該替代串流。結合圖9B至圖9D提供如何完成此切換之實例。在一些實施例中,該用戶端裝置可在進行此切換之前停止接收該第一串流。
圖9B展示用戶端裝置在操作921及923中擷取、儲存且呈現由第一媒體播放清單規定之內容(例如,該第一串流),且儘管正在呈現由第一播放清單規定之內容,但用戶端裝置在操作925中亦擷取且儲存由第二媒體播放清單規定之內容(例如,該第二串流)。當呈現自第一媒體播放清單獲取之內容時,由第二媒體播放清單規定之內容之擷取及儲存(例如,在一暫時緩衝器中)建立了節目之內容的在時間上的重疊955(圖9D所示),其允許用戶端裝置在節目之版本之間切換而不實質中斷該節目。以此方式,可在許多情況下達成節目之版本之間的切換而使用者未注意切換已發生(雖然在一些情況下,在切換之後使用者可注意到較高解析度影像)或無節目之呈現之實質中斷。在操作927中,用戶端裝置判定從由第一媒體播放清單規定之內容切換至由第二媒體播放清單規定之內容的一轉變點;轉變點(轉變點959)之一實例展示於圖9D中。接著在切換之後在操作931中呈現由第二媒體播放清單規定之內容。
圖9C及圖9D中所展示之方法代表用於判定轉變點之一實施例;此實施例依靠來自兩個串流951及953之音訊樣本之型樣匹配來判定轉變點。將瞭解,替代實施例可使用視訊樣本之型樣匹配或可使用兩個串流中之時間戳記等來判定轉變點。該方法可包括在操作941中將由第一媒體播放清單規定之內容(例如,串流951)儲存於一緩衝器中;該緩衝器可用於內容之呈現且亦可用於型樣匹配操作。串流951包括音訊樣本951A及視訊樣本951B兩者。視訊樣本可使用依靠i圖框或關鍵圖框(其具有用以顯示單一視訊圖框的所有必要內容)之壓縮技術。串流951中之內容可包括規定一時間(例如,自節目開始起經過的時間)之時間戳記,且此等時間戳記可標記樣本中之每一者之開始(例如,音訊樣本951A中之每一者之開始及視訊樣本951B中之每一者之開始)。在一些情況下,兩個串流之間的時間戳記之比較在判定轉變點上可能沒用,因為該等時間戳記可能不夠精確或因為兩個串流中之樣本之邊界之差別;然而,時間戳記範圍之比較可用以驗證(verify)在兩個串流之間存在時間上的重疊955。在操作943中,用戶端裝置將由第二媒體播放清單規定之內容儲存於一緩衝器中;此內容係關於與自第一媒體播放清單獲取之內容相同的節目且其亦可包括時間戳記。在一實施例中,可將時間戳記(若不存在於串流中)添加至用於一串流之一播放清單;舉例而言,在一實施例中,可將包括一或多個時間戳記之ID3標籤添加至一播放清單(諸如,一變體播放清單或一媒體播放清單)中之一輸入項。該輸入項可(例如)在用於一音訊串流之一第一樣本之一URI中。圖9D展示自第二媒體播放清單獲取之內容953之一實例,且此內容包括音訊樣本953A及視訊樣本953B。在操作945中,用戶端裝置可執行兩個串流951及953中之音訊樣本之型樣匹配以自重疊955選擇轉變點959,在一實施例中,轉變點可為在匹配之音訊區段(例如,區段957)之後的下一個自含視訊圖框(例如,i圖框961)。從i圖框961(及其相關聯音訊樣本)開始,節目之呈現使用自第二媒體播放清單獲取之第二串流。在一實施例中,前述方法可用於自較慢位元速率變化至較快位元速率及自較快位元速率變化至較慢位元速率兩者,但在另一實施例中,該方法僅可用於自較慢位元速率變化至較快位元速率,且另一方法(例如,不嘗試定位一轉變點,而是嘗試儲存且儘可能快地呈現來自較慢位元速率串流之內容)可用於自較快位元變化至較慢位元。
圖10為用於提供使用替代串流將播放清單或媒體內容或其兩者提供至用戶端裝置之多個冗餘位置之技術之一實施例的流程圖。若一播放清單含有替代串流(如上文所論述),則替代串流不僅可在頻寬或裝置交替時操作,而且可在失敗後降(failure fallback)時操作。舉例而言,若用戶端不能夠重新載入一串流之播放清單檔案(例如,歸因於404錯誤或網路連接錯誤),則用戶端可嘗試切換至一替代串流。參看圖10,為了實施容錯移轉保護,一第一伺服器裝置或第一內容散佈服務經組態以在操作1002中建立一串流或多個替代頻寬串流,如結合圖2C之描述所論述。在操作1004中,該第一伺服器裝置或第一內容散佈服務根據操作1002中所產生之該(該等)串流產生播放清單檔案。一第二伺服器裝置或第二內容散佈服務可建立一並列串流或串流之一集合(在操作1006中)且亦可建立一播放清單。可將此等並列串流視為備用串流。接下來,在操作1008中將備用串流之清單添加至該(該等)播放清單檔案,使得每一頻寬下之備用串流係在主要串流之後列出。舉例而言,若主要串流來自伺服器ALPHA且備用串流在伺服器BETA上,則一播放清單可能如下:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=200000http://ALPHA.mycompany.com/low/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=200000http://BETA.mycompany.com/low/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=500000http://ALPHA.mycompany.com/mid/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=500000http://BETA.mycompany.com/mid/prog_index. m3u8
請注意,備用串流在播放清單中與主要串流互混,且每一頻寬下之備用串流係在該頻寬之主要串流之後列出。用戶端並不限於單一備用串流集合。在以上實例中,ALPHA及BETA可繼之以(例如)GAMMA。類似地,不必提供串流之完整並列集合。舉例而言,可在備用伺服器上提供單一低頻寬串流。
在操作1010中,用戶端嘗試使用與該第一伺服器裝置或該第一內容散佈服務相關聯之一第一串流自一第一URL下載播放清單檔案。圖11說明一網路,其中根據一實施例用戶端1102與一或多個URL、伺服器裝置或內容散佈服務雙向通信。在操作1012中,可將播放清單檔案自第一URL、伺服器裝置或內容散佈服務傳輸至用戶端1102。若一用戶端不能夠自第一URL、伺服器裝置或內容散佈服務下載播放清單檔案(例如,歸因於重新載入一串流之索引檔案時之錯誤),則該用戶端嘗試切換至一替代串流。如果在一個串流上發生失敗(例如,索引載入失敗)(例如,操作1010),則在操作1014中,用戶端選擇網路連接支援之最高頻寬的替代串流。若在相同頻寬下存在多個替代者,則用戶端按播放清單中所列出之次序在該多個替代者中進行選擇。舉例而言,若用戶端1102不能夠自URL 1成功下載,則其可自URL 2或另一URL下載,在此情況下,播放清單檔案係自替代URL傳輸至用戶端。即使在發生嚴重本端故障(諸如,伺服器崩潰或內容散佈器節點關機)的情況下,此特徵亦提供將允許媒體達到用戶端之冗餘串流。
容錯移轉保護提供了提供多個冗餘位置之能力,用戶端可自該多個冗餘位置擷取播放清單及媒體檔案。因此,若用戶端不能自第一位置擷取串流,則其可嘗試自第二、第三等位置存取串流。在一實施例中,為了指示額外位置(用戶端可自該等額外位置擷取播放清單),相同的變體播放清單標籤將具備相同頻寬,但具備冗餘位置之新URI。用戶端最初可嘗試存取與所要頻寬相關聯之第一URL。若用戶端不能自第一URL下載播放清單,則該用戶端接著可嘗試存取為該頻寬呈現的下一個URL等,直至該用戶端已用盡所有可能性。以下實例包括用於2560000頻寬的1個冗餘位置及用於7680000頻寬的2個冗餘位置。
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000http://example1.com/mid-redundant2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000http://example2.com/hi-redudant2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000http://example3.com/hi-redudant3.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"http://example.com/audio-only.m3u8
請注意,在此實例中,檔案名稱(例如,mid-redundant2.m3u8)及實際URL(例如,http://example2.com <http://example2.com/ >、http://example3.com <http://example3.com/ >)均變化。然而,在一實施例中,冗餘位置可為僅檔案名稱之變化或僅網站之變化。
在一實施例中,播放清單可由伺服器裝置壓縮且以壓縮形式發送至用戶端裝置。壓縮之播放清單通常需要比未壓縮之播放清單少的位元來代表播放清單,且因此,壓縮之播放清單在傳輸或接收時使用網路(諸如,無線蜂巢式電話網路)之較少可用頻寬。在一實施例中,播放清單可由網路伺服器根據由網路伺服器使用之內建壓縮技術或設施(其符合或相容於諸如HTTP 1.1標準協定之傳送協定)壓縮;此壓縮技術或設施之一實例為HTTP 1.1之deflate或gzip壓縮設施。在其他實施例中,可使用為基於標準之傳送協定之部分的其他基於標準之壓縮設施。在一實施例中,壓縮之播放清單之使用可為伺服器裝置及用戶端裝置之可選特徵。在一實施例中,播放清單可為文字內容(例如,文字檔案)且可由基於標準之網路伺服器利用deflate或gzip有效地壓縮且接著由用戶端裝置自動解壓縮。Gzip壓縮設施之版本之描述可在www.ietf.org/rfc/rfc1952.txt 找到;deflate壓縮設施之版本可在www.ietf.org/rfc/rfc1951.txt 找到。許多網路伺服器及用戶端裝置上之許多網頁瀏覽器可自動支援deflate設施或gzip設施。
在一實施例中,一用戶端裝置可週期性地請求更新之播放清單;舉例而言,該用戶端裝置可每隔幾秒鐘(例如,每隔10秒、20秒或30秒或某一其他時間段)向一伺服器請求一更新之播放清單。漸增的播放清單(諸如,用於進行中的實況棒球比賽之播放清單,其允許用戶端在實況比賽期間在任何時間自實況比賽之開頭開始觀看)可變得足夠大以使得壓縮之使用可限制對網路之頻寬之消耗,因為漸增的播放清單係重複地經由網路發送。
在一實施例中,一用戶端裝置可在其請求一播放清單(諸如,一更新之播放清單)時視情況規定其可支援哪些壓縮技術(諸如,deflate或gzip);對此等技術之支援意謂著該用戶端裝置可解壓縮或解碼經壓縮或編碼之內容。該用戶端裝置對播放清單之請求(具有對壓縮技術之可選規定)由一網路伺服器接收,在一實施例中,不需要該網路伺服器支援用於播放清單之壓縮技術,而是可發送未壓縮之播放請求。網路伺服器可藉由將一未壓縮播放清單或使用用戶端裝置對播放清單之請求中所規定的壓縮技術中之一者壓縮之一播放清單發送至用戶端裝置來回應於用戶端裝置之請求。用戶端裝置接收播放清單且如本文中所描述地使用該播放清單;若播放清單經壓縮,則使用用戶端裝置上之解碼器(諸如,用戶端裝置上之網頁瀏覽器中之解碼器)來解碼該播放清單。
圖12A及圖12B展示當將添加額外媒體檔案時(例如,當正在傳輸中的當前播放清單不含有EXT-X-ENDLIST標籤時)用於後續播放清單之傳輸的伺服器時序模型之一實施例。若當前播放清單不含有呈現之最終媒體檔案,則資料處理系統或伺服器可產生播放清單之新版本,其含有至少一新媒體檔案URI。圖12A及圖12B展示用於確保具有新媒體檔案URI之新播放清單將可以與播放清單之先前版本連續之方式用於至用戶端裝置之傳輸的伺服器時序模型之一實施例。此模型可(例如)在允許播放清單中所規定之媒體檔案在持續時間上為短(例如,僅幾秒鐘長)時使用。在一實施例中,藉由設定每一媒體檔案之最大媒體檔案持續時間及藉由基於最大媒體檔案持續時間設定播放清單持續時間之最小量,伺服器或其他資料處理系統可確保內容至用戶端裝置之連續散佈或傳輸,即使每一媒體檔案在持續時間上僅為幾秒鐘亦然。
現參看圖12A,若如在操作1200中判定,結束清單標籤不存在於下一個播放清單檔案中,則操作1201可用以建立一目標持續時間以作為播放清單中之每一媒體檔案之最大媒體檔案持續時間。操作1201可由一資料處理系統執行,該資料處理系統正在將資料之串流劃分成多個媒體檔案且將彼等多個媒體檔案儲存為個別檔案。劃分串流之處理程序可利用目標持續時間(例如,當前播放清單檔案之目標持續時間)來確保播放清單檔案中所規定之每一媒體檔案小於目標持續時間(或小於目標持續時間加上或減去小的時間段)。產生播放清單之資料處理系統亦可確保播放清單檔案之持續時間至少可為目標持續時間之倍數,如操作1203中所展示。在一實施例中,倍數可為用作播放清單持續時間之最小值的三個目標持續時間(或目標持續時間之某一其他倍數),其中播放清單之持續時間係由播放清單內所規定之媒體檔案之累積持續時間定義。產生播放清單之系統(例如,伺服器)可藉由確保每一播放清單至少規定足夠數目個媒體檔案以滿足最小持續時間來遵守播放清單之最小持續時間;舉例而言,若最小持續時間為3個目標持續時間,則每一播放清單應包括至少3個目標持續時間。
操作1205亦可用作用以確保可自資料處理系統(諸如,傳輸媒體檔案之伺服器)得到一致且連續之串流之另一機制。此另一機制可減少用戶端裝置為了判定是否存在播放清單之變化而進行的輪詢或提取(pulling)之量。在操作1205中,可設置伺服器,以使得存在供伺服器傳輸下一個播放清單檔案之最早時間及最晚時間。最早時間及最晚時間可用作一時間窗,該時間窗基於或關於可得到先前播放清單檔案(其緊接在新播放清單檔案之前)的時間。最早時間可(例如)基於緊接在前的播放清單第一次可用於自伺服器傳輸(但未必已傳輸)的時間。最晚時間亦可(例如)基於緊接在前的播放清單第一次可用於自伺服器傳輸(但未必已傳輸)的時間。舉例而言,在一實施例中,可能將最早時間規定為不早於自先前播放清單檔案第一次可用於傳輸時起目標持續時間(例如,在操作1201中設定之目標持續時間)之第一預定百分比(例如,一半)之時間,且可將最晚時間設定為不遲於自緊接在前的播放清單檔案第一次可用於自伺服器傳輸時起目標持續時間之第二預定百分比(例如,1.5倍)。在一實施例中,播放清單檔案第一次可用於傳輸的時間可為播放清單檔案之建立時間(該時間由伺服器上的檔案系統記錄)。在圖12B中展示此實例,其包括時刻表1211。目標持續時間1213為播放清單持續時間1215之一部分,該播放清單持續時間代表在時間1209第一次可由一或多個伺服器使用之緊接在前的播放清單之持續時間,時間1209為先前播放清單檔案第一次可用於傳輸的時間。該播放清單中所規定之媒體檔案可在接近時間1209時開始其傳輸。根據圖12B所示之伺服器時序模型,伺服器在最早時間1217(其為在時間1209之後的目標持續時間之一半)之前不應傳輸下一個播放清單檔案,且伺服器在遲於時間1219(其在圖12B所示之實例中已規定為在時間1209之後的目標持續時間之1.5倍)之任何時間不應使下一個播放清單檔案可用。此伺服器時序模型可用以確保播放清單檔案可供用戶端裝置使用以為用戶端裝置提供足以擷取播放清單中所規定之媒體檔案且接著一致且連續地呈現彼等媒體檔案而在播放期間無內容之呈現中之暫停的時間。在一實施例中,當內容為一實況事件之傳輸,且來自該實況事件之資料之串流正被劃分成多個媒體檔案且接著以相對於該實況事件接近即時之方式將彼等多個媒體檔案傳輸至用戶端裝置(該等用戶端裝置在從實況事件(諸如,棒球比賽等)之資料之串流中劃分出多個媒體檔案之後不久接收該多個媒體檔案)時,可使用此等伺服器時序模型。
圖13展示尤其當用戶端裝置以接近即時之方式呈現實況事件時且當用戶端裝置正在呈現接近實況事件之當前結尾(在時間上最近的)之內容時可用以避免用戶端裝置處之播放中之暫停的方法之實施例。舉例而言,若實況事件為棒球比賽,則用戶端裝置之使用者可能更偏好僅觀看比賽中之最近事件而不是自比賽之最開頭開始觀看比賽。若使用者希望僅觀看在進行中之比賽之最近事件,則使用者可設法將播放設定為從距可用媒體串流之結束的最近10或15秒開始之點開始。網路中之問題或延遲可突然使資料變得不可得且可阻止新資料變得可用,且因此,當使用者將用戶端裝置設定為以此模式操作時,用戶端裝置可在非常短的時間段中用完呈現之內容。可使用圖13之方法,以便藉由在用戶端裝置處強制執行播放要求從至少在當前播放清單檔案結束之前一時間段(例如,30秒)之開始點開始的規則來減少此發生的機會。舉例而言,若播放清單檔案具有規定於其中之5個媒體檔案(每一媒體檔案為10秒長),則此規則之一實施可為強制起始點為不遲於播放清單中所規定之五個媒體檔案之序列中之第三個媒體檔案。現參看圖13,操作1301可用以判定結束清單標籤或標記是否存在於播放清單中。若此結束清單標籤存在,則圖13之方法可由於無新內容將添加至播放清單而停止,因此在一實施例中,在操作1303中不必強制執行規則。另一方面,若無結束清單標籤存在於播放清單中,則可在用戶端裝置處強制執行規則,其要求起始點為至少在播放清單檔案之結束之前一時間段。可基於媒體檔案之目標持續時間來規定該時間段。舉例而言,在一實施例中,可要求用戶端裝置從距播放清單檔案之結束達三個以上目標持續時間之媒體檔案開始。
本發明之另一態樣係關於當在來自兩個播放清單之串流(例如,兩個變體串流)之間切換或在媒體檔案之兩個集合之間其他切換時可使用之方法。已結合圖9A、圖9B、圖9C及圖9D提供了用於在來自兩個不同播放清單的串流之間切換之方法之實例。在該方法中,兩個串流之間的時間上之重疊可用以確保一致且連續之播放,以使得串流之間的切換或轉變可為順暢的。如圖9D所示,重疊955代表一時間段,在該時間段中,來自兩個串流之媒體內容被儲存於用戶端裝置處且能夠在用戶端裝置處播放,藉此允許該兩個串流之間的順暢切換。在一實施例中,該重疊可為從不改變且在用戶端裝置內設定之最小數目。儘管此實施例可良好地工作,但可存在重疊可不必要地過長之時間。換言之,即使裝置準備好進行轉變,重疊亦可阻止切換或轉變發生。舉例而言,當自較低解析度切換至較高解析度時,不必要之長重疊可迫使使用者在較高解析度呈現已可用且準備呈現的時段中觀看較低解析度呈現。較高速度連接可(例如)提供快速地產生可比一較低速度連接或連接類型所需之重疊短的重疊之能力。在根據圖14A之實施例中,用戶端裝置可根據連接速度或連接類型進行調適且基於連接速度或連接類型來修改所需之最小重疊。舉例而言,若連接速度或類型為快,則可相對於較低連接速度或連接類型所需之最小重疊減少最小重疊。當條件變化(例如,用戶端裝置失去3G連接且必須依靠2G或較慢連接)時,就可變化最小重疊。因此,用戶端裝置可基於連接速度或類型來調適最小重疊。現參看圖14A,在操作1401中,用戶端裝置可判定連接之速度或類型。返回參看圖9D,可見,來自一第二播放清單之資料之一第二串流為一新資料源,在用戶端裝置亦接收來自一第一播放清單之串流之同時正在接收該第二串流。此時,用戶端裝置可判定連接之速度或連接之類型,以便在操作1403中基於當前連接速度或連接類型來判定所需之重疊之最小量。當條件變化時,可基於變化之條件(諸如,至蜂巢式電話塔、WiFi基地台等之無線連接)來調適此最小重疊。此在用戶端裝置正在移動通過無線蜂巢式電話網路或其他資料網路時可能尤其有利。在確定當前條件之最小重疊存在之後,用戶端裝置接著可在操作1405中自來自第一播放清單或舊源之串流切換或轉變至新源,其可為來自第二播放清單之串流。已關於與圖9A至圖9D相關聯之描述提供此轉變之實例。
圖14B、圖14C及圖14D展示兩個串流之間的重疊(諸如,結合圖9A至圖9D描述且展示之重疊,或結合圖14A描述之重疊)如何之另一態樣。圖14B、圖14C及圖14D所示之方法可用適應性導出之重疊(其結合圖14A描述)實施,或此方法可與不變化之固定重疊一起使用。圖14B至圖14D中所描繪之方法可從自「舊串流」1410(例如,其可為以在位元速率上慢於新串流1414之未來下載之一第二速度之一第一速度下載的較低解析度視訊)下載媒體檔案開始。舊串流1410已被下載(如雜湊標記1411所指示)且其目前正在(例如,播放頭位置所在之)播放點1412處在用戶端裝置上向使用者呈現;舊串流1410中之超出當前播放點1412的已下載之內容為在連接出故障的情況下可用之緩衝內容。用戶端裝置可接著讀取新串流1414之播放清單檔案且甚至在下載內容「區塊」(諸如,區塊1416及1415)之內容之前根據該播放清單檔案判定彼等區塊;舉例而言,新串流之播放清單檔案可至少近似地指示內容區塊1416及1415在時間上相對於舊串流1410之位置。此判定可允許用戶端裝置保守地決定藉由請求及擷取區塊1415之一或多個媒體檔案來下載新串流1414之第一區塊1415,且圖14C展示該下載之結果(區塊1415A具有雜湊標記以展示此區塊已被下載)。播放位置已在時間上前進至新位置(仍在舊串流1410之最左邊區塊內)。在此情況下,區塊1415之下載足夠快以使得播放位置未離開舊串流1410之最左邊區塊。在下載耗時較長的情況下保守地選擇區塊1415,使得播放可至少圍繞區塊1415A切換。在圖14C中所描繪之點處,用戶端裝置可檢查由區塊1415A提供之重疊與當前播放點(由圖14C中之1412展示)之間剩餘多少時間。若在給定連接速度之情況下存在足夠時間,則用戶端裝置可下載為先於當前重疊之區塊的區塊或區段1416,然後用戶端裝置可重複該檢查以判定由剛下載之區塊1416A提供之重疊(在圖14D中展示,在區塊已下載之後,如雜湊標記所指示)與當前播放點(由圖14D中之1412展示)之間剩餘多少時間。若如在圖14D所示之實例之情況下,1416A之下載快速發生,則用戶端裝置可在時間上向回移動重疊點,從而減少在串流之間切換耗費的時間(且因此允許區塊1416A內之切換);另一方面,若下載1416A中存在延遲以使得切換不能在區塊1416A內發生,則用戶端裝置可使用區塊1415A作為可用以使切換在區塊1415A內發生之重疊。
本發明之另一態樣可利用定義影像之解析度之屬性。此屬性可允許用戶端裝置基於該屬性決定:用戶端裝置不應切換解析度或以其它方式切換串流。舉例而言,用戶端裝置可決定:用戶端裝置已播放其可顯示之最大解析度,且沒有必要下載裝置可經由一資料網路得到之較高解析度。
圖15展示一實施例中的用於利用此屬性之方法之實例。在操作1501中,可由一用戶端裝置接收一播放清單檔案,且在操作1503中,該用戶端裝置可根據該播放清單檔案判定一屬性存在於該播放清單檔案內,該屬性定義該用戶端裝置可用之影像之解析度。在操作1505中,基於該屬性,用戶端裝置可判定是擷取另一播放清單檔案抑或擷取與該屬性相關聯之一媒體檔案。藉由提供解析度屬性,用戶端裝置可智慧地決定如何處理播放清單中之資料。此外,用戶端裝置可關於資料之擷取做出可防止不必要的下載之決策,且進而可最小化網路上的資料訊務之量。
本發明之一實施例可允許一系統基於日期及時間搜尋內容。舉例而言,使用者可能想要看到在2009年4月9日大約下午5點擊出之全壘打或可能想要看到在一日期及近似時間之另一事件。本發明之實施例可藉由經由使用與對應媒體檔案之開頭相關聯之EXT-X-PROGRAM-DATE-TIME標籤進行時間戳記來提供此能力;可藉由使該標籤在播放清單檔案中出現在該媒體檔案之前而使該標籤與其對應媒體檔案相關聯。諸如伺服器之系統可儲存可由用戶端裝置擷取(例如,下載)且用以搜尋日期及時間以找到所要媒體檔案之一或多個播放清單;或者,用戶端裝置可請求(例如,經由一日期及時間搜尋請求)伺服器在該一或多個播放清單中搜尋以識別匹配該日期及時間搜尋請求之一或多個媒體檔案,且伺服器可藉由識別該一或多個媒體檔案來回應。在一實施例中,標籤指示媒體檔案之實質上精確之開頭,且媒體檔案內之時間戳記可用以找到具有時間上的較精細粒度之播放點。舉例而言,一標籤之時間戳記可指示媒體檔案在2009年4月9日下午5:03開始,且一媒體檔案內之時間戳記(或時間之其他指示符)可規定在下午5:03之後以分鐘或秒等遞增之時間,以允許裝置在(例如)下午5:06或下午5:05:30處開始播放(經由選擇播放起始點)。
圖16A展示描繪根據一實施例的用於使用有時間戳記之標籤建立播放清單檔案之方法的流程圖。該方法可由實施有處理邏輯(包括軟體、硬體、韌體或上述任何者之組合)之伺服器執行。在一些實例中,伺服器由一媒體提供者(諸如,MLB)提供。在方塊1610,處理邏輯建立有時間戳記之標籤且使該等有時間戳記之標籤中之每一者與一個媒體檔案相關聯。有時間戳記之標籤中之時間戳記指示相關聯媒體檔案之開始日期及時間。上文已論述了有時間戳記之標籤之一些實施例之細節。
在方塊1620,處理邏輯用一或多個有時間戳記之標籤(例如,EXT-X-PROGRAM-DATE-TIME標籤)建立一播放清單檔案,該一或多個有時間戳記之標籤中之每一者與一特定媒體檔案相關聯。請注意,媒體檔案本身亦具有內部時間戳記。在方塊1630,處理邏輯可散佈播放清單,使得播放清單檔案可用於使用有時間戳記之標籤中之日期及時間的按日期及時間搜尋。在一些實施例中,播放清單係儲存於一存放庫中,用戶端裝置可自該存放庫下載播放清單。
圖16B展示描繪根據一實施例的用於使用利用有時間戳記之標籤建立之播放清單檔案之方法的流程圖。該方法可由實施有處理邏輯(包括軟體、硬體、韌體或上述任何者之組合)之用戶端裝置執行。用戶端裝置可由與播放清單檔案相關聯之媒體之個別消費者、用戶或觀看者使用以存取及播放媒體。在方塊1650,處理邏輯接收對一節目之在一特定日期及時間開始之一區段的一使用者請求。舉例而言,使用者可能請求在2010年4月6日下午8:15開始之棒球比賽的第四局,而不是完整的棒球比賽。回應於使用者請求,在區塊1652,處理邏輯自媒體伺服器下載與該節目相關聯之一或多個播放清單檔案。在區塊1654,處理邏輯使用播放清單檔案內的時間戳記標籤中之日期及時間在下載之播放清單檔案中搜尋最接近所請求之區段之日期及時間的日期及時間戳記。接著在區塊1656,處理邏輯自所請求之區段之日期及時間減去其日期及時間。此減法產生一持續時間。在區塊1657,處理邏輯接著向前推進播放清單檔案中之後續媒體檔案持續時間,直至處理邏輯定位了在有日期戳記之媒體檔案之後有大約那麼多持續時間之一目標媒體檔案。在區塊1658,處理邏輯接著下載此目標媒體檔案,因為該目標媒體檔案為關於哪個檔案含有所請求之區段之最佳推測。
在一些實施例中,有日期戳記之媒體檔案與目標媒體檔案之間的所有媒體檔案為單一編碼之部分,亦即,其間沒有不連續性標籤。若該等媒體檔案為連續的,則處理邏輯可自目標檔案中之媒體檔案時間戳記減去有日期戳記之檔案中之媒體檔案時間戳記以獲得精確持續時間,此允許精確地定位所請求之日期及時間。
透過使用播放清單檔案中之有時間戳記之標籤中之日期及時間,處理邏輯不必下載整個節目之所有媒體檔案以便在該等媒體檔案中搜尋以找到所請求之區段。因為當使用者未請求整個節目時,用戶端裝置不必下載整個節目之所有媒體檔案,所以可達成頻寬之顯著節約。此外,許多典型媒體檔案僅含有經常從零開始之任意時間戳記。因此,上文所論述之有時間戳記之標籤之日期及時間可使媒體檔案中之任意時間戳記與真實日期及/或時間相關聯。透過使用有時間戳記之標籤,用戶端裝置可比對每一媒體檔案進行掃描有效率地定位含有特定日期及/或時間之播放清單元件。
本發明之一實施例允許將定時中繼資料以ID3格式插入至媒體串流中。媒體串流可能包括以預定格式編碼之視訊及/或音訊資料。舉例而言,媒體串流可能包括以由運動圖象專家組(Moving Pictures Expert Group,MPEG)開發之MPEG-2(其為國際標準ISO/IEC 13818)編碼的視訊及音訊資料。一般言之,中繼資料包括關於媒體串流中之資料的資訊,及參考與特定時間(例如,進球得分之時間)相關聯之中繼資料的定時中繼資料。請注意,定時中繼資料可隨時間變化。定時中繼資料可以用於儲存中繼資料之預定格式(諸如,ID3格式)插入至媒體串流中。在一些實施例中,可將視訊資料劃分成圖框之一序列。亦可將視訊資料的定時中繼資料劃分成與圖框之序列相關聯之容器。每一容器可儲存一對應圖框的定時中繼資料及與該對應圖框相關聯之時間兩者。或者,每一容器可儲存一對應圖框之定時中繼資料及該對應圖框之圖框號兩者。在一些實施例中,一圖框之定時中繼資料可包括該圖框之預定資訊之一集合。舉例而言,定時中繼資料可包括記錄視訊資料之對應圖框所在的位置之位置資訊(例如,全球定位系統(GPS)資料)。
在一實施例中,以下內容描述可如何攜載ID3中繼資料以作為MPEG-2輸送串流中之定時中繼資料(參見ISO/IEC 13818-1:2007 Information Technology-Generic Coding of Moving Pictures and associated audio information: systems,其在下文中被稱為「MPEG-2標準」),如本文中所描述之HTTP實況串流傳輸協定所使用。根據MPEG-2標準之章節2.12,中繼資料可攜載於輸送串流中。中繼資料可攜載於基本串流(PES)中,而非攜載於(例如)輪播(carousel)中。ID3中繼資料為自描述的且不需要組態資訊,因此不必使用關於中繼資料解碼器組態資料之條款。中繼資料串流可處在與主要節目材料(亦即,音訊/視訊內容)相同的節目中。
表S1、S2、S3及S4提供可使用之語法(syntax)之一實施例。在以下語法表中,語法結構(左邊的欄)經展示為僅具有有效的大綱及欄位之名稱。此意謂著,為清楚起見,將省略條件為假的「if」區塊。可諮詢MPEG-2標準以瞭解完整語法、欄位大小及可接受之值。右邊的欄指示在此上下文中需要之值(在具有每一欄位名稱之行中),或含有該行之解釋。
所使用之碼點之概述
ID3定義格式及語義兩者,且因此相同的註冊format_identifier可用於metadata_format_identifier及metadata_application_format_identifier兩者。在註冊授權單位SMPTE註冊授權單位(參見http://www.smpte-ra.org )處此等識別符之註冊值為「ID3」(I D 3空間,或0x49 0x44 0x33 0x20)(指派待定)。為了指示註冊值被使用,欄位metadata_format及metadata_application_format可分別取值0xff及0xffff。在一實施例中,此中繼資料可攜載於專用串流中,而非格式化為如MPEG-2標準之12.4中所定義的中繼資料存取單元(MAU)之串流中。用於串流之stream_id值因此為private_stream_id_1,0xbd,如MPEG-2標準之2.12.3中所規定。將stream_type設定為0x15,其指示將中繼資料攜載於PES串流中,如MPEG-2標準之2.12.9.1中所規定。由於通常僅攜載一個中繼資料串流,故通常將metadata_service_id設定為0;然而,任何合適值可用以區別此中繼資料串流與其他中繼資料串流(若需要)。
所使用之描述符
中繼資料描述符之格式及內容記載於MPEG-2標準之章節2.6.58至2.6.61中。
節目之PMT之描述符迴圈
為了宣告中繼資料串流之存在,可將metadata_pointer_descriptor(MPEG-2標準之2.6.58)置於PMT中、節目之program_info迴圈中。中繼資料可處在與主要節目(音訊/視訊)內容相同的節目中。在一實施例中,不支援將此描述符用以參考另一節目。
亦可在基本串流之迴圈中、在節目映射中宣告基本串流(MPEG-2標準之章節2.4.4.8)。
基本串流之PMT之描述符迴圈
為了宣告中繼資料串流之格式,可將metadata_descriptor(MPEG-2標準之2.6.60)置於PMT中、基本串流之es_info迴圈中。
PES串流格式
ID3中繼資料可作為一完整ID3v4圖框儲存於包括完整ID3標頭串流之PES封包中。ID3標籤可在PES標頭之後立即開始;此PES標頭可含有PTS(PTS_DTS_flags至「10」)。PTS可在與音訊圖框及視訊圖框相同的時刻表上。可將data_alignment位元設定為1。PES標頭可含有非零之PES_packet_length。若ID3標籤長於65535位元組,則ID3標籤可具有1個以上PES標頭。第二及隨後PES標頭可具有設定為0之data_alignment及設定為「00」之PTS_DTS_flags(且因此無PTS)。可如MPEG-2標準之2.4.3.7中記載地格式化PES標頭。
中繼資料串流可以與音訊或視訊相同的方式併入至輸送串流中。舉例而言,此意謂著,在transport_packet()(參見MPEG-2標準之2.4.3.2)中,僅當PES標頭跟在後面時,才可將payload_unit_start_indicator設定為1。(PES標頭又可指示ID3資料之開始是否跟在後面,或ID3資料是否已劃分成多個PES封包,如先前段落中所說明)。
在本發明之一實施例中,媒體檔案之處理(例如,播放清單之擷取及播放清單中所規定之媒體檔案之擷取,及媒體檔案中之內容之解碼)可獨立於呈現媒體且控制正被呈現之媒體的使用者介面進行。舉例而言,使用者應用程式(諸如,用於觀看實況事件之應用程式)(例如,用於觀看棒球比賽之美國職棒大聯盟(MLB)應用程式)或其他串流可提供用於呈現及控制(例如,接收媒體檔案之選擇)呈現之使用者介面,同時另一軟體處理程序(例如,伺服媒體之軟體處理程序,諸如用於伺服媒體之精靈協助程式,其可被稱為「媒體伺服」)可擷取播放清單且擷取並解碼媒體檔案。在一些情況下,可加密媒體檔案,且加密可由使用者應用程式(例如,MLB應用程式)控制;舉例而言,使用者應用程式可將用戶端憑證(例如,用以提供鑑認及信任鏈及可撤銷性之X.509憑證)安裝至其密鑰鏈(keychain)(持續地或僅在記憶體中)中,該用戶端憑證可用以在進行HTTP安全保護通訊槽層(SSL)連接以下載可用以解密媒體內容的密鑰時回答伺服器挑戰。在其他情況下,播放清單可含有一或多個密鑰之URL,該等URL使用由使用者應用程式或與使用者應用程式互動之伺服器使用之自訂URL配置(URL scheme);在此情況下,使用者應用程式可註冊可經調用以獲取密鑰(諸如,新密鑰)的用於此等自訂URL配置之URL協定處理常式,且此可允許使用者應用程式在頻帶外輸送密鑰(例如,隱藏在其應用程式二進位中),或使用專用協定(其為使用者應用程式及與使用者應用程式互動之伺服器兩者所理解,但不為其他系統所理解)自伺服器獲取密鑰。
圖17A展示允許媒體伺服精靈協助程式與使用者應用程式互動之軟體架構之一實施例。該架構包括媒體伺服精靈協助程式(「媒體伺服」)1710及例示性使用者應用程式-事件媒體提供者(EMP)應用程式1720,該兩者皆可在執行於用戶端裝置(諸如,智慧電話、個人數位助理、桌上型電腦、膝上型電腦、平板裝置等)上之處理程序中執行。用戶端裝置之一實施例可使用圖8所示之電子系統800來實施。在一些實施例中,媒體伺服1710及EMP應用程式1720共用關於記憶體控制、記憶體空間、記憶體分配、檔案系統控制及網路控制的相同特殊權限。因而,媒體伺服1710可存取EMP應用程式1720可存取之資料。同樣地,禁止媒體伺服1710存取EMP應用程式1720不能存取之資料。
在一些實施例中,EMP應用程式1720進一步包括核心媒體堆疊1721,其為用於存取網路連接堆疊1723之自訂軟體堆疊,網路連接堆疊1723又存取URL協定處理常式-EMP處理常式1725。EMP應用程式1720可註冊用於自訂URL配置之EMP處理常式1725,可調用該EMP處理常式1725以獲取一或多個密鑰。因此,EMP應用程式1720可在頻帶外輸送密鑰(例如,隱藏在應用程式二進位中)。
一般而言,媒體伺服1710與EMP應用程式1720可彼此互動以下載並播放來自內容提供者之應用程式(在當前實例中,其為EMP)之實況串流傳輸內容的媒體檔案。播放可在用戶端裝置上在媒體伺服1710中進行。在一些實施例中,媒體伺服1710可下載密鑰以用於解密媒體檔案,且若此下載失敗,則媒體伺服1710可要求EMP應用程式1720自內容提供者伺服器(在當前實例中,其為EMP伺服器1730)下載密鑰。在用戶端裝置上執行之EMP應用程式1720可簽約以獲得一或多個密鑰。在一實施例中,EMP應用程式1720可能在下載媒體檔案之前已註冊並獲取密鑰。在下文論述媒體伺服1710與EMP應用程式1720之間的互動之一些實施例之細節以進一步說明該概念。
參看圖17A,在一實施例中,EMP應用程式1720將具有至少一URL及一密鑰之播放清單發送至媒體伺服1710(1)。使用該密鑰,媒體伺服1710嘗試在該URL處存取由EMP提供之一媒體源且自該媒體源下載該播放清單中所規定之媒體檔案。該等媒體檔案可能經編碼或加密以防止對該等媒體檔案之內容的未經授權觀看。若媒體伺服1710未能下載該等媒體檔案或其未能解碼或解密下載之媒體檔案(2),則媒體伺服1710將失敗報告至EMP應用程式1720(3)。
回應於來自媒體伺服1710之失敗報告,EMP應用程式1720使用其核心媒體堆疊1721來存取網路連接堆疊1723以便請求一新密鑰(4),該網路連接堆疊又為了該新密碼而存取EMP處理常式1725(5)。EMP處理常式1725經由網路(例如,網際網路)連接至EMP伺服器1730以向EMP伺服器1730請求該新密鑰(6)。回應於該請求,EMP伺服器1730將該新密鑰發送至EMP處理常式1725(7)。接著,EMP處理常式1725將該新密鑰傳遞至核心媒體堆疊1721(8),該核心媒體堆疊接著將該新密鑰傳遞至媒體伺服1710(9)。
當媒體伺服1710自核心媒體堆疊1721接收到該新密鑰時,媒體伺服1710可試著使用該新密鑰再次下載檔案媒體且接著使用該新密鑰解碼下載之媒體檔案(10)。或者,若媒體檔案先前已被成功下載,但媒體伺服1710未能解密媒體檔案,則媒體伺服1710可試著使用該新密鑰解密先前被下載之媒體檔案。若媒體伺服1710使用該新密鑰成功下載且解碼媒體檔案,則EMP應用程式1720可在用戶端裝置上呈現解碼之媒體檔案。
圖17B及圖17C展示另一實施例,其中媒體檔案之處理(例如,播放清單之擷取及播放清單中所識別之媒體檔案之擷取,及加密媒體檔案之解碼)可由與呈現且控制呈現來自經處理媒體檔案之內容的使用者介面之使用者應用程式(例如,「AppX」)分離的播放器服務進行。媒體檔案之處理與使用者介面之控制之間的分離允許內容提供者建立一唯一使用者介面且經由由內容提供者建立或為內容提供者建立之應用程式呈現該使用者介面,且該分離亦允許內容提供者使用可被隱藏或難以反向工程之自訂URL或自訂協定,以便保護內容。自訂URL或自訂協定可由內容提供者之應用程式(例如,「AppX」)及由與內容提供者之應用程式互動之系統(例如,由內容提供者或內容提供者之代理控制之伺服器)來控制。圖17B展示用戶端裝置1750(諸如,智慧電話、個人數位助理、桌上型電腦、膝上型電腦、平板裝置、娛樂系統或消費型電子裝置等)上之軟體架構之一實例。用戶端裝置可為(例如)圖8所示之系統。用戶端裝置1750可經由網路1752(例如,網際網路或電話網路等)而與一或多個伺服器1753互動且通信。該一或多個伺服器可儲存且傳輸播放清單(例如,播放清單1754)及播放清單中所參考之媒體檔案,且此等伺服器可由提供應用程式(例如,AppX)之內容提供者來控制,使得應用程式及伺服器經設計以使用自訂協定一起工作以確保內容受保護或在控制內容之散佈等方面提供較大靈活性。
用戶端裝置1750包括可包括播放器服務1757之作業系統(OS)1756,雖然在另一實施例中,可獨立於OS提供播放器服務。OS 1756可維護可用以儲存由應用程式(諸如,AppX)註冊之資訊之登錄檔(registry)1755;儲存於登錄檔中之此資訊可包括展示介於自訂URL與使用彼自訂URL之應用程式之間的關係之資訊,使得播放器服務或OS可呼叫使用彼自訂URL之應用程式,以便自彼自訂URL獲取物件(例如,解密密鑰)。換言之,該登錄檔允許OS或播放器服務藉由使用在播放清單中找到的自訂URL而在登錄檔中查找相關聯應用程式(其可由與應用程式相關聯之識別符來識別)來識別要呼叫的應用程式。在一實施例中,自訂URL可由EXT-X-KEY標籤規定,且播放器服務可經組態以接受被規定為下列各者中之一者的URL作為該標籤之參數:http;https;及註冊識別符(諸如,已在諸如登錄檔1755之登錄檔中註冊的識別符)。用戶端裝置1750可包括一或多個使用者應用程式,諸如AppX 1751(或,例如,美國職棒大聯盟(MLB)應用程式,或提供用於串流傳輸自一或多個播放清單(諸如,本文中所描述之播放清單)獲取之內容之使用者介面的其他應用程式)。此等應用程式可由提供內容之實體提供(例如,MLB提供串流傳輸至用戶端且在用戶端裝置上執行的MLB之應用程式之使用者介面中呈現的內容:棒球比賽),或此等應用程式可由建立通用於由其他開發者建立之內容的播放器之使用者介面的應用程式開發者提供。
用戶端裝置1750及該一或多個伺服器1753可根據圖17C所示之方法操作以解析未由播放器服務(諸如,播放器服務1757)辨識之自訂URL。在圖17C中之操作1761中,諸如AppX 1751之應用程式可在安裝時或稍後使自訂URL註冊於登錄檔(諸如,登錄檔1755)中。在一實施例中,作為應用程式之安裝之部分,應用程式可對OS 1756進行呼叫以使其一或多個自訂URL與使此等一或多個自訂URL與應用程式相關聯之識別符一起儲存於登錄檔1755中。在安裝之後,應用程式可由使用者啟動且使用,此可在使用者在應用程式中進行選擇以使應用程式呈現選定HTTP串流時在操作1763中發生。回應於此輸入,在操作1765中,應用程式呼叫(在圖17B之呼叫2中)播放器伺服器1757以呈現(例如,顯示)HTTP串流。在操作1767中,播放器服務擷取(呼叫3)由使用者之輸入規定之播放清單且判定播放清單包括未由播放器服務辨識或支援之自訂URL;在圖17B之情況下,自訂URL用於由播放器服務使用以解密播放清單中所參考之媒體檔案的解密密鑰;一旦判定播放清單包括自訂URL,播放器服務就呼叫OS 1756(呼叫4)以使登錄檔1755被檢查以判定應被請求以解析或使用該自訂URL之應用程式。在操作1769中,OS 1756判定播放清單中之自訂URL將由AppX 1751解析且OS 1756又呼叫(呼叫5)AppX 1751以使AppX使用該自訂URL來擷取物件(在此情況下,解密密鑰將用以解密內容以由AppX呈現)。在操作1771中,AppX 1751可接收來自OS 1756之呼叫且作為回應可判定要使用之URL且可呼叫OS(呼叫6)以使用由AppX 1751判定之URL來擷取物件(在此情況下,解密密鑰)。接著,在操作1773中,OS 1756接收物件且將該物件傳遞至AppX 1751,AppX 1751又將該物件傳遞至播放器服務1757以允許該播放器服務使用該物件處理播放清單或媒體檔案或其兩者(如在操作1775中)。在操作1773之替代實施例中,OS 1756可在一接收到該物件後就將該物件直接傳遞至播放器服務1757。
圖17D展示可由應用程式(諸如,AppX)執行以便使用自訂URL之方法之一實例。此方法可與圖17A所示之軟體架構一起使用。在操作1780中,應用程式(諸如,AppX)可註冊其一或多個自訂URL;此註冊可在應用程式之安裝時或在第一次啟動應用程式時進行。在已啟動應用程式之後,該應用程式可接收諸如HTTP串流之選擇的使用者輸入(在操作1781中),且作為回應,該應用程式可呼叫(例如,經由API)播放器服務以導致呈現HTTP串流。若該HTTP串流之播放清單包括未經辨識或不能由播放器服務處理之自訂URL,則該應用程式可接收來自播放器服務或作業系統之呼叫(在操作1783中)以使該應用程式解析由該應用程式註冊之自訂URL(例如,appx://appx.com/key)。在操作1784中,該應用程式可接著回應於操作1783中之呼叫而解析自訂URL;解析可涉及預定之專屬(於應用程式之)配置,該配置可涉及基於(例如)應用程式之特殊權限(例如,應用程式之防護等級或費用)、所尋找的內容、觀看內容之請求的日期及時間等來判定合法URL。在解析自訂URL之後,應用程式可呼叫OS或網路堆疊以向耦接至網路(例如,網際網路)之遠端伺服器請求自訂URL所代表之物件(例如,解密密鑰)。OS或網路堆疊可獲取物件(例如,藉由將解析之URL發送至以物件進行回應之伺服器),且使該物件傳遞至播放器服務(直接地或經由應用程式);若物件被直接傳遞至播放器服務,則操作1785可由不同於應用程式的其他組件執行。
圖17E展示可由播放器服務及裝置上之OS中之一者或兩者執行以便使用自訂URL的方法之一實例。此方法可與圖17A所示之軟體架構一起使用。在操作1790中,播放器服務可接收來自應用程式(例如,AppX)之呼叫以呈現HTTP串流,且作為回應,在操作1791中,播放器服務可使用請求中所規定之資料來擷取一播放清單,如本申請案中所描述。接著,在操作1792中,播放器服務可判定該播放清單包括自訂URL,且可接著在操作1793中呼叫OS以使OS檢查登錄檔(諸如,登錄檔1755)以判定自訂URL是否已註冊;或者,播放器服務本身可呼叫一服務以檢查登錄檔。檢查登錄檔之結果可判定註冊該自訂URL之應用程式(或可判定不存在此註冊,在該情況下,播放器服務可呈現HTTP串流不可用之錯誤訊息)。若在登錄檔中針對自訂URL識別了應用程式,則在操作1794中,播放器服務或OS呼叫該應用程式且將自訂URL傳遞至該應用程式以使該應用程式解析自訂URL。在應用程式解析自訂URL之後,其使物件(例如,解密密鑰)被獲取,且在操作1795中,播放器服務接收物件(經由應用程式或經由網路堆疊或OS組件)。在接收物件之後,在操作1796中,播放器服務可藉由(例如)擷取媒體檔案中之每一者及使用該物件解碼該等媒體檔案並呈現該等媒體檔案來處理播放清單中所參考之媒體檔案。
本發明之另一實施例可使用分散式系統,其使用至少兩個裝置來提供使用本文中所描述之播放清單及串流傳輸技術之播放。圖20、圖21、圖22A及圖22B提供此分散式系統之一實例,在此分散式系統中,一個裝置可起始另一裝置上之遠端播放,該另一裝置可驅動或提供輸出至TV或其他呈現裝置(諸如,立體聲系統等)。參看圖20,第一裝置2001可經組態以經由(例如)有線網路或無線網路或直接連接(諸如,有線連接)而與第二裝置2003通信。在一實施例中,第一裝置可為平板電腦或膝上型電腦或智慧電話,且第二裝置可為視訊轉換器或音訊/視覺控制器,諸如來自Cupertino,California之Apple Inc.的Apple TV。在一實施例中,第一裝置可為來自Cupertino,California之Apple Inc.的iPad。裝置2001及2003中之每一者可為電子系統(諸如,結合圖8所描述之電子系統)且可包括一或多個處理器及記憶體及周邊裝置,諸如輸入或輸出或輸入/輸出介面。在一實施例中,裝置2001及2003中之每一者可包括允許裝置參與WiFi無線網路之無線網路介面。在一實施例中,連接2005可為至WiFi網路之連接,且在其他實施例中,其他無線連接或有線連接可用以將該兩個裝置2001及2003耦接在一起。裝置2003包括至呈現裝置(諸如,TV或立體聲系統)之輸出端,且此輸出端提供媒體之遠端呈現,可藉由經由app或應用程式(諸如,裝置2001上之app 2007)選擇媒體來起始該遠端呈現。
裝置2001可包括複數個軟體組件,該複數個軟體組件包括(例如)應用程式或app 2007,該應用程式或app 2007可為(例如)一應用程式,諸如,用以在裝置2001上呈現棒球比賽之美國職棒大聯盟(Major League Baseball)app,或用以經由本文中所描述之串流傳輸技術呈現電影或其他內容之Netflix應用程式或app。裝置2001亦包括媒體伺服器2009,其可類似於圖17B所示之播放器服務1757或圖17A所示之媒體伺服器精靈協助程式1710。裝置2001亦可包括遠端播放服務2011,其為提供第一裝置與第二裝置之間的介面以用於允許經由第二裝置遠端播放在第一裝置處選擇或起始之內容之軟體組件,該第二裝置接著將內容輸出至可耦接至第二裝置2003之輸出端的呈現裝置(諸如,TV)。遠端播放服務可由第一裝置之使用者啟動或選擇以使該第一裝置與第二裝置通信以導致經由第二裝置的在耦接至第二裝置之輸出端的呈現裝置(諸如,TV)上之遠端播放。在一實施例中,遠端播放服務可為提供於來自Apple Inc.之iPad或iPhone上的AirPlay設施之部分。裝置2001亦可包括作業系統2013,其提供作業系統之標準及已知服務以允許裝置與一或多個應用程式一起起作用,如此項技術中已知。
第二裝置亦可包括媒體伺服器2017,其可類似於媒體伺服器或播放器服務1757或可類似於圖17A中之媒體伺服器精靈協助程式1710。此外,第二裝置2003亦包括作業系統2019及遠端播放精靈協助程式2015。在一實施例中,遠端播放精靈協助程式2015為一精靈協助程式,其為後台處理程序,其在第二裝置起動時啟動且經組態以監視特定命令(諸如,「播放」URL命令或「播放」URL呼叫),且接著經組態以將該呼叫提供至一媒體伺服器(諸如,媒體伺服器2017)。該精靈協助程式可像後台處理程序一樣操作且在起動時自己啟動而無需來自第二裝置2003之使用者之任何互動。亦將理解,app 2007可類似於圖17B之app 1751。在替代實施例中,每一裝置之媒體伺服器及遠端播放部分可組合在一起,使得不需要經組合物件之間的暴露之API呼叫。
圖21展示圖20所示之軟體架構如何可與一系列呼叫及傳回一起使用以在圖20所示之分散式系統之內容脈絡中提供自訂URL之使用之一實例,在該分散式系統中播放可自第一裝置起始且可藉由第二裝置以遠端方式提供至第二裝置之輸出端至呈現裝置(諸如,TV或立體聲系統或TV與立體聲系統之組合)。將呼叫及呼叫之傳回展示為有編號之圓圈。舉例而言,第一裝置2001中之app向媒體伺服器發出播放URL之呼叫,且此呼叫被標記為圖21所示的圓圈內之「1」。現將結合圖22A及圖22B所示之方法提供軟體組件之互動及彼等組件之間的呼叫之另外論述。
現參看圖22A及圖22B,方法可在操作2025中開始,在該操作中,在兩個裝置(諸如,兩個無線網路連接裝置)之間建立連接,可設置該等裝置中之一者以允許其播放並控制第二裝置上之媒體或經由第二裝置播放並控制媒體。在一實施例中,第一裝置可為平板電腦或膝上型電腦或其他資料處理系統(其包括諸如app 2007之應用程式),使用者可使用該應用程式選擇待經由第二裝置遠端呈現之內容或待呈現於第二裝置上之內容。在一實施例中,第一裝置可包括輸出端,諸如,用以在經由第二裝置將媒體呈現於呈現裝置(諸如,TV或第二裝置之另一顯示器)上時亦顯示相同媒體之顯示器。在一實施例中,第一裝置之使用者可選擇遠端播放模式(諸如,iPad上之AirPlay模式),且從而設置第一裝置以允許其控制並播放第二裝置上之媒體;類似地,此設置亦可建立裝置之間的連接。將瞭解,操作2025及2027之順序可以顛倒,且在應用程式已啟動之後,可在選擇媒體以用於播放之後建立連接。在操作2027中,系統應使用者請求或由第一裝置自動地啟動應用程式且接收一請求以播放視訊或其他媒體。舉例而言,使用者可啟動iPad上之Netflix應用程式,且接著在Netflix應用程式內選擇要播放的特定視訊或其他內容。回應於對要播放的特定視訊或其他媒體之選擇,在操作2029中,第一裝置上之app呼叫第一裝置上之媒體伺服器以播放播放清單之URL。此展示為圖21中之呼叫1。作為回應,第一裝置上之媒體伺服器判定是否已選擇或啟用遠端播放模式。若未選擇或啟用遠端播放模式,則播放經由第一裝置以圖17A至圖17E中所描述之方式發生(若需要解析自訂URL)。另一方面,若已選擇或啟用遠端播放模式,則第一裝置上之媒體伺服器經由圖21上之呼叫2呼叫遠端播放服務。此呼叫實際上將可能為播放清單之URL或播放清單中之密鑰之URL的URL傳遞至第二裝置上之遠端播放精靈協助程式2015。此呼叫展示為圖21中之呼叫3。在操作2031中,遠端播放精靈協助程式(諸如,遠端播放精靈協助程式2015)自第一裝置接收URL且呼叫第二裝置上之媒體伺服器以播放URL;此呼叫展示為圖21中之呼叫4。作為回應,第二裝置上之媒體伺服器2017判定該URL為媒體伺服器2017不能處理之自訂URL。在一實施例中,自訂URL為並非標準URL配置(諸如,HTTP配置或HTTPS配置或檔案配置或DAV配置)之任何URL。就如何解碼或處理自訂URL以擷取由URL指向之資料或內容而言,自訂URL配置將被應用程式理解。
接著,在操作2035中,第二裝置上之媒體伺服器(諸如,媒體伺服器2017)呼叫第二裝置上的遠端播放精靈協助程式(諸如,遠端播放精靈協助程式2015)以請求自訂URL之解析。作為回應,遠端播放精靈協助程式經由圖21中之呼叫6呼叫遠端播放服務。接著,在操作2039中,遠端播放服務(諸如,第一裝置上之遠端播放服務2011)接收解析自訂URL之請求,且在呼叫7中呼叫媒體伺服器(諸如,第一裝置上之媒體伺服器2009)以解析自訂URL。接著,在操作2041中,媒體伺服器2009接收自訂URL且呼叫app(諸如,app 2007)(在一實施例中,在諮詢登錄檔以判定要呼叫的適當app之後)以便解析自訂URL。對app之呼叫展示為圖21中之呼叫8。接下來,在操作2043中,app解析URL且傳回自訂URL之內容(諸如,由自訂URL指向之密鑰或播放清單或其他內容),且此內容經傳回至第一裝置上之媒體伺服器且展示為圖21中之傳回9。接著,在操作2045中,第一裝置上之媒體伺服器將自訂URL之內容傳回至遠端播放服務(諸如,遠端播放服務2011),該服務又將URL之內容傳回至第二裝置上之遠端播放精靈協助程式,該遠端播放精靈協助程式接著將URL之內容傳回至第二裝置上之媒體伺服器。此時,在操作2049中,第二裝置上之媒體伺服器可使用URL之內容(其可為密鑰或播放清單)來處理播放處理程序,且每當媒體伺服器2017遇到自訂URL時,此處理程序可按需要重複。在該情況下,當遇到自訂URL時,媒體伺服器將藉由從圖21所示之呼叫5開始來重複該處理程序,且從圖22A中之操作2035(其將繼續經過自訂URL解析之呼叫)開始,再次以操作2047結束。
將瞭解,在操作2047中,若URL之內容為密鑰,則將使用該密鑰來解密媒體檔案,且若內容為播放清單,則第二裝置上之媒體伺服器將如本發明之剩餘部分中所描述地使用播放清單來擷取且接著解碼播放清單所規定之媒體檔案。若該播放清單內之密鑰亦由自訂URL規定,則將再次重複該處理程序,如上所述,從操作2035開始且以操作2047結束。圖8為電子系統之一實施例的方塊圖。圖8中所說明之電子系統意欲代表一系列電子系統(有線或無線),其包括(例如)桌上型電腦系統、膝上型電腦系統、蜂巢式電話、包括具備蜂巢式電話功能之PDA的個人數位助理(PDA)、視訊轉換器、娛樂系統或其他消費型電子裝置。替代電子系統可包括更多、更少及/或不同組件。圖8之電子系統可用以提供用戶端裝置及/或伺服器裝置。電子系統800包括用以傳達資訊之匯流排805或其他通信裝置,及耦接至匯流排805之可處理資訊之處理器810。雖然電子系統800經說明為具有單一處理器,但電子系統800可包括多個處理器及/或共處理器。電子系統800進一步可包括耦接至匯流排805之隨機存取記憶體(RAM)或其他動態儲存裝置820(被稱為主記憶體)且可儲存可由處理器810執行之資訊及指令。主記憶體820亦可用以在由處理器810執行指令期間儲存暫時變數或其他中間資訊。
電子系統800亦可包括耦接至匯流排805之唯唯記憶體(ROM)及/或其他靜態儲存裝置830,其可儲存用於處理器810之靜態資訊及指令。資料儲存裝置840可耦接至匯流排805以儲存資訊及指令。諸如快閃記憶體或磁碟或光碟及對應磁/光碟機之資料儲存裝置840可耦接至電子系統800。電子系統800亦可經由匯流排805耦接至顯示裝置850(諸如,陰極射線管(CRT)或液晶顯示器(LCD))以向使用者顯示資訊。電子系統800亦可包括文數字輸入裝置860(包括文數字及其他鍵),其可耦接至匯流排805以將資訊及命令選擇傳達至處理器810。另一類型之使用者輸入裝置為用以將方向資訊及命令選擇傳達至處理器810且控制顯示器850上之游標移動的游標控制870,諸如,觸控板、滑鼠、軌跡球或游標方向鍵。電子系統800進一步可包括用以提供對網路(諸如,區域網路)之存取的一或多個網路介面880。網路介面880可包括(例如)具有天線885(其可代表一或多個天線)之無線網路介面。電子系統800可包括多個無線網路介面,諸如,WiFi介面、藍芽介面及蜂巢式電話介面之組合。網路介面880亦可包括(例如)用以經由網路纜線887(其可為例如乙太網路纜線、同軸纜線、光纖纜線、串行纜線或並行纜線)而與遠端裝置通信之有線網路介面。
在一實施例中,網路介面880可(例如)藉由遵守IEEE 802.11b及/或IEEE 802.11g標準來提供對區域網路之存取,及/或無線網路介面可(例如)藉由遵守藍芽標準來提供對個人區域網路之存取。亦可支援其他無線網路介面及/或協定。
除了經由無線LAN標準通信之外,或替代經由無線LAN標準通信,網路介面880可使用(例如)分時多重存取(TDMA)協定、全球行動通信系統(GSM)協定、分碼多重存取(CDMA)協定及/或任何其他類型之無線通信協定來提供無線通信。在一些實施例中可使用一或多個應用程式設計介面(API)。API為由程式碼組件或硬體組件(在下文中為「API實施組件」)實施的介面,其允許不同程式碼組件或硬體組件(在下文中為「API呼叫組件」)存取並使用由API實施組件提供之一或多個函式、方法、程序、資料結構、類別及/或其他服務。API可定義在API呼叫組件與API實施組件之間傳遞的一或多個參數。API允許API呼叫組件之開發者(其可為第三方開發者)利用由API實施組件提供之規定特徵。可存在一個API呼叫組件,或可能存在一個以上此組件。API可為電腦系統或程式庫提供以便支援來自應用程式之對服務之請求的原始程式碼介面。作業系統(OS)可具有多個API以允許在OS上執行之應用程式呼叫彼等API中之一或多者,且服務(諸如,程式庫)可具有多個API以允許使用該服務之應用程式呼叫彼等API中之一或多者。可在建置應用程式時根據可被解譯或編譯之程式設計語言來規定API。
在一些實施例中,API實施組件可提供一個以上API,每一者提供由API實施組件實施之功能性的不同態樣之不同視圖或具有存取由API實施組件實施之功能性的不同態樣之不同態樣。舉例而言,API實施組件之一個API可提供功能之第一集合且可暴露於第三方開發者,且API實施組件之另一API可被隱藏(未暴露)且提供功能之第一集合之一子集且亦提供功能之另一集合(諸如,不在功能之第一集合中之測試或除錯功能)。在其他實施例中,API實施組件自身可經由基礎API呼叫一或多個其他組件,且因此為API呼叫組件及API實施組件兩者。
API定義API呼叫組件在存取及使用API實施組件之規定特徵時使用之語言及參數。舉例而言,API呼叫組件經由API所暴露的一或多個API呼叫或調用(例如由函式或方法呼叫體現)來存取API實施組件之規定特徵,且經由API呼叫或調用使用參數來傳遞資料及控制資訊。API實施組件可回應於來自API呼叫組件之API呼叫而經由API傳回一值。儘管API定義API呼叫之語法及結果(例如,如何調用API呼叫及API呼叫進行何操作),但API可不顯露API呼叫如何完成API呼叫所規定之功能。各種API呼叫係經由該一或多個應用程式設計介面在呼叫(API呼叫組件)與API實施組件之間傳送。傳送API呼叫可包括發佈、起始、調用、呼叫、接收、傳回或回應於函式呼叫或訊息;換言之,傳送可描述由API呼叫組件或API實施組件中之任一者進行之動作。API之函式呼叫或其他調用可經由參數清單或其他結構來發送或接收一或多個參數。參數可為常數、密鑰、資料結構、物件、物件類別、變數、資料類型、指標、陣列、函式或方法之清單或至函式或方法之指標,或用以參考待經由API傳遞之資料或其他項目之另一方式。
此外,資料類型或類別可由API提供且由API實施組件實施。因此,API呼叫組件可藉由使用API中所提供之定義來宣告變數、使用至此等類型或類別之常數值之指標、使用或具現化此等類型或類別之常數值。
一般而言,API可用以存取由API實施組件提供之服務或資料,或起始由API實施組件提供之操作或計算之執行。以實例說明,API實施組件及API呼叫組件可各自為作業系統、程式庫、裝置驅動程式、API、應用程式或其他模組中之任一者(應瞭解,API實施組件及API呼叫組件可為彼此相同或不同類型之模組)。在一些情況下,API實施組件可至少部分地以韌體、微碼或其他硬體邏輯體現。在一些實施例中,API可允許用戶端程式使用由軟體開發套件(SDK)程式庫提供之服務。在其他實施例中,應用程式或其他用戶端程式可使用由應用程式框架(Application Framework)提供之API。在此等實施例中,應用程式或用戶端程式可併有對由SDK提供及由API提供之函式或方法之呼叫,或使用定義於SDK中且由API提供之資料類型或物件。在此等實施例中,應用程式框架可提供程式之主要事件迴圈,其回應於由框架定義之各種事件。API允許應用程式使用應用程式框架來規定事件及對事件之回應。在一些實施中,API呼叫可向應用程式報告硬體裝置之能力或狀態,包括與諸如輸入能力及狀態、輸出能力及狀態、處理能力、功率狀態、儲存容量及狀態、通信能力等的態樣相關之彼等能力或狀態,且API可部分地由韌體、微碼或部分地在硬體組件上執行之其他低階邏輯實施。
API呼叫組件可為本端組件(亦即,在與API實施組件相同的資料處理系統上)或經由API經由網路與API實施組件通信之遠端組件(亦即,在不同於API實施組件的資料處理系統上)。應理解,API實施組件亦可充當API呼叫組件(亦即,該組件可進行對由不同API實施組件暴露之API之API呼叫),且API呼叫組件亦可藉由實施暴露於不同API呼叫組件之API來充當API實施組件。API可允許以不同程式設計語言撰寫之多個API呼叫組件與API實施組件通信(因此,API可包括用於在API實施組件與API呼叫組件之間轉譯呼叫及傳回的特徵);然而,可根據特定程式設計語言實施API。在一實施例中,API呼叫組件可呼叫來自不同提供者之API,諸如,來自OS提供者之API之一集合及來自外掛程式提供者之API之另一集合及來自另一提供者(例如,軟體程式庫之提供者)或API之另一集合之建立者的API之另一集合。
圖18為說明可在本發明之一些實施例中使用之例示性API架構的方塊圖。如圖18所示,API架構1800包括實施API 1820之API實施組件1810(例如,作業系統、程式庫、裝置驅動程式、API、應用程式、軟體或其他模組)。API1820規定API實施組件之可由API呼叫組件1830使用之一或多個函式、方法、類別、物件、協定、資料結構、格式及/或其他特徵。API 1820可規定至少一呼叫慣例,其規定API實施組件中之函式如何自API呼叫組件接收參數及該函式如何將結果傳回至API呼叫組件。API呼叫組件1830(例如,作業系統、程式庫、裝置驅動程式、API、應用程式、軟體或其他模組)經由API 1820進行API呼叫以存取及使用API實施組件1810之由API 1820規定的特徵。API實施組件1810可回應於API呼叫而經由API 1820將一值傳回至API呼叫組件1830。
將瞭解,API實施組件1810可包括未經由API 1820規定且API呼叫組件1830不可用之額外函式、方法、類別、資料結構及/或其他特徵。應理解,API呼叫組件1830可在與API實施組件1810相同的系統上,或可遠端地定位且使用API 1820經由網路存取API實施組件1810。雖然圖18說明與API 1820互動之單一API呼叫組件1830,但應理解,可能以不同於API呼叫組件1830之語言(或相同語言)撰寫之其他API呼叫組件1830可使用API 1820。API實施組件1810、API 1820及API呼叫組件1830可儲存於機器可讀非暫時性儲存媒體中,該儲存媒體包括用於儲存呈機器(例如,電腦或其他資料處理系統)可讀形式之資訊的任何機構。舉例而言,機器可讀媒體包括磁碟、光碟、隨機存取記憶體;唯讀記憶體、快閃記憶體裝置等。
在圖19(「軟體堆疊」)的例示性實施例中,應用程式可使用若干服務API進行對服務1或2之呼叫且使用若干OS API進行對作業系統(OS)之呼叫。服務1及2可使用若干OS API對OS進行呼叫。
請注意,服務2具有兩個API,其中之一者(服務2 API 1)接收來自應用程式1之呼叫且將值傳回至應用程式1,且其中之另一者(服務2 API 2)接收來自應用程式2之服務且將值傳回至應用程式2。服務1(其可為例如軟體程式庫)進行對OS API 1的呼叫且接收來自OS API 1之傳回值,且服務2(其可為例如軟體程式庫)進行對OS API 1及OS API 2兩者的呼叫且接收來自OS API 1及OS API 2兩者之傳回值。應用程式2進行對OS API 2的呼叫且接收來自OS API 2之傳回值。說明書中對「一實施例」之參考意謂著關於該實施例所描述之特定特徵、結構或特性包括於本發明之至少一實施例中。片語「在一實施例中」出現於說明書中各處時未必全部指代同一實施例。在前述說明書中,已參考本發明之特定實施例描述了本發明。然而,很顯然,可在不脫離本發明之更廣泛精神及範疇的情況下作出各種修改及變化。因此,應將說明書及圖式視為說明性意義而非限制性意義的。
附錄
以下附錄為根據本發明之一特定實施例之協定之草案說明書。將理解,特定關鍵詞(例如,必須、不得、應該、不應該等)在此附錄中之使用適用於此特定實施例,但不適用於本發明中所描述之其他實施例。
摘要
本文件描述用於傳送多媒體資料之無限制串流之協定。本文件規定檔案之資料格式及串流之伺服器(發送者)及用戶端(接收器)將採取之動作。本文件描述此協定之版本2。
目錄
1. 介紹
2. 概述
3. 播放清單檔案
3.1. 介紹
3.2. 新標籤
3.2.1. EXT-X-TARGETDURATION
3.2.2. EXT-X-MEDIA-SEQUENCE
3.2.3. EXT-X-KEY
3.2.4. EXT-X-PROGRAM-DATE-TIME
3.2.5. EXT-X-ALLOW-CACHE
3.2.6. EXT-X-ENDLIST
3.2.7. EXT-X-STREAM-INF
3.2.8. EXT-X-DISCONTINUITY
3.2.9 EXT-X-VERSION
4. 媒體檔案
5. 密鑰檔案
5.1. 介紹
5.2. 用於AES-128之IV
6. 用戶端/伺服器動作
6.1. 介紹
6.2. 伺服器處理程序
6.2.1. 介紹
6.2.2. 滑動窗播放清單
6.2.3. 加密媒體檔案
6.2.4. 提供變體串流
6.3. 用戶端處理程序
6.3.1. 介紹
6.3.2. 載入播放清單檔案
6.3.3. 播放播放清單檔案
6.3.4. 重新載入播放清單檔案
6.3.5. 判定要載入之下一個檔案
6.3.6. 解密加密的媒體檔案
7. 協定版本相容性
8. 實例
8.1. 介紹
8.2. 簡單播放清單檔案
8.3. 滑動窗播放清單,使用HTTPS
8.4. 具有加密媒體檔案之播放清單檔案
8.5. 變體播放清單檔案
9. 安全考慮
10. 參考文獻
標準性參考文獻
資訊性參考文獻
1. 介紹
本文件描述用於傳送多媒體資料之無限制串流之協定。該協定支援加密媒體資料及提供串流之替代版本(例如,位元速率)。媒體資料可在其建立之後不久被傳送,從而允許媒體資料以接近即時之方式播放。資料通常經由HTTP[RFC2616]攜載。
描述諸如HTTP之相關標準之外部參考文獻列出於章節11中。
2. 概述
多媒體呈現由URI[RFC3986]在播放清單檔案中規定,播放清單檔案為媒體URI及資訊標記之有序清單。每一媒體URI參考為單一連續串流之一區段的一媒體檔案。
為了播放串流,用戶端首先獲取播放清單檔案且接著獲取並播放播放清單中之每一媒體檔案。如本文件中所描述,用戶端重新載入播放清單檔案以發現額外區段。
應如RFC 2119[RFC2119]中所描述地解譯本文件中之關鍵詞「必須」、「不得」、「需要」、「應該」、「不應該」、「應」、「不應」、「推薦」、「可」及「可選」。
3. 播放清單檔案 3.1. 介紹
播放清單必須為擴展M3U播放清單檔案[M3U]。本文件藉由定義額外標籤來擴展M3U檔案格式。
M3U播放清單為由個別行組成之文字檔案。行以單一LF字元或繼之以LF字元之CR字元終止。每一行為URI、空白的或以註解字元「#」開始。忽略空白行。除了明確規定有空白區域之元素之外,空白區域不得存在。
URI行識別媒體檔案或變體播放清單檔案(參見章節3.2.7)。
URI可為相對的。相對的URI必須對照含有其之播放清單檔案之URI來解析。
以註解字元「#」開始之行為註解或標籤。標籤以#EXT開始。以「#」開始之所有其他行為註解且應忽略。
一播放清單檔案之持續時間為該播放清單檔案內之媒體檔案之持續時間之總和。
名稱以.m3u8結尾及/或具有HTTP內容-類型「application/vnd.apple.mpegurl」之M3U播放清單檔案係以UTF-8[RFC3629]編碼。名稱以.m3u結尾及/或具有HTTP內容-類型[RFC2616]「audio/mpegurl」之檔案係以US-ASCII[US_ASCII]編碼。
播放清單檔案必須具有以.m3u8結尾之名稱及/或具有內容-類型「application/vnd.apple.mpegurl」(若經由HTTP傳送),或具有以.m3u結尾之名稱及/或具有HTTP內容-類型類型「audio/mpegurl」(出於相容性)。
擴展M3U檔案格式定義兩個標籤:EXTM3U及EXTINF。擴展M3U檔案憑其必須為「#EXTM3U」之第一行而區別於基本M3U檔案。
EXTINF為描述由其後之URI識別的媒體檔案之記錄標記。每一媒體檔案URI之前必須有一EXTINF標籤。其格式為:
#EXTINF:<持續時間>,<標題>
「持續時間」為規定媒體檔案之以秒計之持續時間之整數。持續時間應捨位至最接近的整數。該行的在逗號之後的剩餘部分為媒體檔案之標題,其為媒體區段之可選人類可讀之資訊標題。
本文件定義以下新標籤:EXT-X-TARGETDURATION、EXT-X-MEDIA-SEQUENCE、EXT-X-KEY、EXT-X-PROGRAM-DATE-TIME、EXT-X-ALLOW-CACHE、EXT-X-STREAM-INF、EXT-X-ENDLIST、EXT-X-DISCONTINUITY及EXT-X-VERSION。
3.2. 新標籤 3.2.1. EXT-X-TARGETDURATION
EXT-X-TARGETDURATION標籤規定最大媒體檔案持續時間。播放清單檔案中之每一媒體檔案之EXTINF持續時間必須小於或等於目標持續時間。此標籤在播放清單檔案中必須出現一次。該標籤之格式為:
#EXT-X-TARGETDURATION:<s>
其中s為指示以秒計之目標持續時間之整數。
3.2.2. EXT-X-MEDIA-SEQUENCE
播放清單中之每一媒體檔案URI具有唯一序號。URI之序號等於在其之前的URI之序號加上1。EXT-X-MEDIA-SEQUENCE標籤指示出現在播放清單檔案中之第一個URI之序號。該標籤之格式為:
#EXT-X-MEDIA-SEQUENCE:<數字>
播放清單檔案不得含有一個以上之EXT-X-MEDIA-SEQUENCE標籤。若播放清單檔案不含有EXT-X-MEDIA-SEQUENCE標籤,則應該將播放清單中之第一個URI之序號視為0。
媒體檔案之序號不需要出現在其URI中。
參見章節6.3.2及章節6.3.5以獲取關於處置EXT-X-MEDIA-SEQUENCE標籤之資訊。
3.2.3. EXT-X-KEY
可加密媒體檔案。EXT-X-KEY標籤提供解密其後之媒體檔案所需之資訊。該標籤之格式為:
#EXT-X-KEY:METHOD=<方法>[,URI="<URI>"][,IV=<IV>]
方法屬性規定加密方法。定義兩個加密方法:NONE及AES-128。
加密方法NONE意謂著不加密媒體檔案。若加密方法為NONE,則URI及IV屬性不得存在。
加密方法AES-128意謂著使用利用128位元密鑰及PKCS7填補[RFC5652]之進階加密標準[AES_128]加密媒體檔案。若加密方法為AES-128,則URI屬性必須存在。IV屬性可存在;參見章節5.2。
URI屬性(若存在)規定如何獲取密鑰。IV屬性(若存在)規定將與密鑰一起使用的初始化向量。IV屬性出現在協定版本2中。
新EXT-X-KEY取代任何先前EXT-X-KEY。
若播放清單檔案不含有EXT-X-KEY標籤,則不加密媒體檔案。
參見章節5以獲取密鑰檔案之格式,且參見章節5.2、章節6.2.3及章節6.3.6以獲取關於媒體檔案加密之額外資訊。
3.2.4. EXT-X-PROGRAM-DATE-TIME
EXT-X-PROGRAM-DATE-TIME標籤使下一個媒體檔案之開頭與絕對日期及/或時間相關聯。日期/時間表示為ISO/IEC 8601:2004[ISO_8601]且應指示時區。舉例而言:
#EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>
參見章節6.2.1及章節6.3.3以獲取關於EXT-X-PROGRAM-DATE-TIME標籤之更多資訊。
3.2.5. EXT-X-ALLOW-CACHE
EXT-X-ALLOW-CACHE標籤指示用戶端是否可或不得快取下載之媒體檔案以供稍後重放。該標籤可出現在播放清單檔案中之任何處;該標籤不得出現一次以上。該標籤之格式為:
#EXT-X-ALLOW-CACHE:<是∣否>
參見章節6.3.3以獲取關於EXT-X-ALLOW-CACHE標籤之更多資訊。
3.2.6. EXT-X-ENDLIST
EXT-X-ENDLIST標籤指示沒有更多媒體檔案將添加至播放清單檔案。該標籤可出現在播放清單檔案中之任何處;該標籤不得出現一次以上。該標籤之格式為:
#EXT-X-ENDLIST
3.2.7. EXT-X-STREAM-INF
EXT-X-STREAM-INF標籤指示播放清單檔案中之下一個URI識別另一播放清單檔案。該標籤之格式為:
#EXT-X-STREAM-INF:[attribute=value][,attribute=value]*<URI>
屬性在同一EXT-X-STREAM-INF標籤中不得出現一次以上。定義以下屬性:
BANDWIDTH=<n>
其中n為每秒之位元之數目。該屬性必須為每一媒體檔案之總位元速率之上限,其經計算以包括出現或將出現在播放清單中之容器附加項。
PROGRAM-ID=<i>
其中i為在播放清單檔案之範疇內唯一地識別特定呈現之數字。
播放清單檔案可含有具有相同PROGRAM-ID之多個EXT-X-STREAM-INF標籤以識別相同呈現之不同編碼。此等變體播放清單可含有額外EXT-X-STREAM-INF標籤。
CODECS="[格式][,格式]*"
其中每一格式規定存在於播放清單檔案中之媒體檔案中之媒體樣本類型。
有效格式識別符為由RFC 4281[RFC4281]定義之ISO檔案格式名稱空間中之彼等識別符。
RESOLUTION=<N>×<M>
其中N為串流內之視訊之近似編碼水平解析度(表示為像素之數目),且M為近似編碼垂直解析度。
3.2.8. EXT-X-DISCONTINUITY
EXT-X-DISCONTINUITY標籤指示該標籤之後的媒體檔案與在該標籤之前的媒體檔案之間的編碼不連續性。可變化之特性之集合為:
o 檔案格式
o 播放軌之數目及類型
o 編碼參數
o 編碼序列
o 時間戳記序列
該標籤之格式為:
#EXT-X-DISCONTINUITY
參見章節4、章節6.2.1及章節6.3.3以獲取關於EXT-X-DISCONTINUITY標籤之更多資訊。
3.2.9. EXT-X-VERSION
EXT-X-VERSION標籤指示播放清單檔案之相容性版本。播放清單檔案、其相關聯媒體及其伺服器必須遵守描述標籤值所指示之協定版本的此文件之最新近版本之所有條款。
該標籤之格式為:
#EXT-X-VERSION:<n>
其中n為指示協定版本之整數。
播放清單檔案不得含有一個以上之EXT-X-VERSION標籤。不含有EXT-X-VERSION標籤之播放清單檔案必須遵守此協定之版本1。
4. 媒體檔案
播放清單檔案中之每一媒體檔案URI必須識別為全部呈現之區段的媒體檔案。每一媒體檔案必須格式化為MPEG-2輸送串流或MPEG-2音訊基本串流[ISO_13818]。
輸送串流檔案必須含有單一MPEG-2節目。在每一檔案之開頭處應存在節目關聯表及節目映射表。含有視訊之檔案應具有至少一關鍵圖框及足以完全初始化視訊解碼器之資訊。
播放清單中之媒體檔案必須為在具有先前序號之媒體檔案之結尾處之經編碼串流的繼續,除非該媒體檔案為出現在播放清單檔案中之第一媒體檔案或在該媒體檔案之前有一EXT-X-DISCONTINUITY標籤之情況下。
用戶端應準備好處置特定類型(例如,音訊或視訊)之多個播放軌。不具有其他偏好之用戶端應選擇其可播放之具有最低數字PID之播放軌。用戶端必須忽略輸送串流內之其未辨識之專用串流。
用於媒體檔案內之串流內及跨多個媒體檔案之對應串流之間的樣本之編碼參數應保持一致。然而,用戶端應在遇到編碼變化時(例如)藉由縮放視訊內容以適應解析度變化來處理編碼變化。
5. 密鑰檔案 5.1. 介紹
具有URI屬性之EXT-X-KEY標籤識別密鑰檔案。密鑰檔案含有必須用以解密播放清單中之後續媒體檔案之編密密鑰。
AES-128加密方法使用16-八位元密鑰。密鑰檔案之格式簡單地為二進位格式之此等16個八位元之封裝陣列。
5.2. 用於AES-128之IV
128位元AES需要在加密及解密時供應相同的16-八位元初始化向量(IV)。改變此IV增加了密碼之強度。
若EXT-X-KEY標籤具有IV屬性,則實施在用彼密鑰加密或解密時必須使用該屬性值作為IV。該值必須解譯為128位元十六進位數且必須以0x或0X作為前置詞。
若EXT-X-KEY標籤不具有IV屬性,則實施在加密或解密媒體檔案時必須使用彼媒體檔案之序號作為IV。序號之位元組由大到小(big-endian)二進位表示應該置於16-八位元緩衝器中且以零填補(在左側)。
6. 用戶端/伺服器動作 6.1. 介紹
此章節描述伺服器如何產生播放清單及媒體檔案,及用戶端應如何下載並播放該等檔案。
6.2. 伺服器處理程序 6.2.1. 介紹
MPEG-2串流之產生不在本文件之範疇內,本文件簡單地假定含有呈現之連續串流之源。
伺服器必須將串流劃分成持續時間近似相等之個別媒體檔案。伺服器應嘗試在支援個別媒體檔案之有效解碼之點(例如,在封包邊界及關鍵圖框邊界上)劃分串流。
伺服器必須為每一媒體檔案建立URI,其將允許伺服器之用戶端獲取該檔案。
伺服器必須建立播放清單檔案。播放清單檔案必須符合章節3中所描述之格式。伺服器希望使之可用之每一媒體檔案之URI必須以媒體檔案將播放之次序出現在播放清單中。若媒體檔案之URI在播放清單檔案中,則整個媒體檔案必須可供用戶端使用。
播放清單檔案必須含有EXT-X-TARGETDURATION標籤。該標籤必須指示添加至播放清單檔案之任何媒體檔案之最大EXTINF值。該標籤之值對整個呈現而言必須保持恆定。典型目標持續時間為10秒。
播放清單檔案應含有一個EXT-X-VERSION標籤,其指示串流之相容性版本。該標籤之值應為伺服器、播放清單檔案及相關聯的媒體檔案皆遵守之最低協定版本。
伺服器必須為播放清單檔案建立URI,其將允許伺服器之用戶端獲取該檔案。
若播放清單檔案係藉由HTTP散佈,則伺服器應支援使用「gzip」內容編碼之用戶端請求。
自用戶端之觀點而言,對播放清單檔案之變化必須原子地進行。
播放清單中之每個媒體檔案URI必須以指示媒體檔案之捨位持續時間之EXTINF標籤作為前置詞。
伺服器可藉由以EXT-X-PROGRAM-DATE-TIME標籤作為其URI之前置詞而使絕對日期及時間與媒體檔案相關聯。日期及時間之值提供媒體之時刻表至適當時鐘時間之資訊映射,其可用作為用於尋找、用於顯示或用於其他目的之基礎。若伺服器提供此映射,則伺服器應將EXT-X-PROGRAM-DATE-TIME標籤置放於播放清單檔案中之每個EXT-X-DISCONTINUITY標籤之後。
若播放清單含有呈現之最後媒體檔案,則播放清單檔案必須含有EXT-X-ENDLIST標籤。
若播放清單不含有EXT-X-ENDLIST標籤,則伺服器必須使含有至少一新媒體檔案URI的播放清單檔案之新版本可用。必須相對於播放清單檔案之先前版本可用之時間而使新版本可用:不早於在該時間之後的目標持續時間之一半,且不遲於在該時間之後的目標持續時間之1.5倍。
若伺服器希望移除整個呈現,則其必須使播放清單檔案不可供用戶端使用。伺服器應確保播放清單檔案中之所有媒體檔案在移除時在至少播放清單檔案之持續時間中保持可供用戶端使用。
6.2.2. 滑動窗播放清單
伺服器可將媒體檔案之可用性限於最近已添加至播放清單之彼等媒體檔案。為此,播放清單檔案必須始終含有正好一個EXT-X-MEDIA-SEQUENCE標籤。該標籤之值必須針對自播放清單檔案移除之每個媒體檔案URI而遞增1。
必須以添加媒體檔案URI之次序自播放清單檔案移除媒體檔案URI。
當伺服器自播放清單移除媒體檔案URI時,媒體檔案應在一等於該媒體檔案之持續時間加上該媒體檔案已出現於之最長播放清單檔案之持續時間的時間段中保持可供用戶端使用。
若伺服器計劃在經由HTTP將媒體檔案傳遞至用戶端之後移除媒體檔案,則伺服器應確保HTTP回應含有一反映所計劃的存留時間之逾期標頭。
不含有EXT-X-ENDLIST標籤之播放清單檔案之持續時間必須為目標持續時間之至少三倍。
6.2.3. 加密媒體檔案
若將加密媒體檔案,則伺服器必須定義允許經授權用戶端獲取含有解密密鑰之密鑰檔案之URI。密鑰檔案必須符合章節5中所描述之格式。
伺服器可設定密鑰回應中之HTTP逾期標頭以指示密鑰可被快取。
若加密方法為AES-128,則應該將AES-128 CBC加密應用於個別媒體檔案。必須加密整個檔案。不得跨媒體檔案應用密碼區塊鏈結。用於加密之IV必須為媒體檔案之序號或EXT-X-KEY標籤之IV屬性之值,如章節5.2中所描述。
伺服器必須使用由播放清單檔案中之緊接在媒體檔案URI之前之EXT-X-KEY標籤規定的方法及其他屬性加密播放清單中之每個媒體檔案。不得加密前面有METHOD為NONE之EXT-X-KEY標籤或前面沒有任何EXT-X-KEY標籤之媒體檔案。
若播放清單檔案含有至用該密鑰加密之媒體檔案之URI,則伺服器不得自播放清單檔案移除EXT-X-KEY標籤。
6.2.4. 提供變體串流
伺服器可供給多個播放清單檔案以提供相同呈現之不同編碼。若伺服器供給多個播放清單檔案,則伺服器應提供列出每一變體串流之變體播放清單檔案以允許用戶端在編碼之間動態地切換。
變體播放清單必須含有每一變體串流之EXT-X-STREAM-INF標籤。相同呈現之每一EXT-X-STREAM-INF標籤必須具有相同PROGRAM-ID屬性值。每一呈現之PROGRAM-ID值在變體播放清單內必須為唯一的。
若EXT-X-STREAM-INF標籤含有CODECS屬性,則該屬性值必須包括存在於出現或將出現在播放清單檔案中之任何媒體檔案中的由[RFC4281]定義之每個格式。
當產生變體串流時,伺服器必須滿足以下約束:每一變體串流必須呈現相同內容,包括串流不連續性。
每一變體播放清單檔案必須具有相同目標持續時間。
出現在一個變體播放清單檔案中,但不出現在另一變體播放清單檔案中之內容必須出現在播放清單檔案之開頭或結尾處且不得比目標持續時間長。
變體串流中之匹配內容必須具有匹配之時間戳記。此允許用戶端將串流同步。
基本音訊串流檔案必須藉由在前面加上(prepend)具有所有者識別符「com.apple.streaming.transportStreamTimestamp」之ID3 PRIV標籤[ID3]而傳訊檔案中之第一樣本之時間戳記。二進位資料必須為表示為位元組由大到小的8-八位元數之33位元MPEG-2節目基本串流時間戳記。
另外,所有變體串流應含有相同的經編碼音訊位元串流。此允許用戶端在串流之間切換而無聲訊故障。
6.3.用戶端處理程序 6.3.1.介紹
用戶端如何獲取至播放清單檔案之URI不在本文件之範疇內;假定已獲取播放清單檔案。
用戶端必須根據URI獲取播放清單檔案。若如此獲取之播放清單檔案為變體播放清單,則用戶端必須自變體播放清單獲取播放清單檔案。
本文件未規定用戶端對變體串流之處理。
6.3.2. 載入播放清單檔案
每當自播放清單URI載入或重新載入播放清單檔案時:
用戶端必須確保播放清單檔案以EXTM3U標籤開始且EXT-X-VERSION標籤(若存在)規定用戶端所支援之協定版本;若否,則用戶端不得嘗試使用該播放清單。
用戶端應忽略其未辨識之任何標籤及屬性。
用戶端必須判定要載入之下一個媒體檔案,如章節6.3.5中所描述。
若播放清單含有EXT-X-MEDIA-SEQUENCE標籤,則用戶端應假設:播放清單中之每一媒體檔案在載入播放清單檔案時以及在播放清單檔案之持續時間中將變得不可用。播放清單檔案之持續時間為該播放清單檔案內之媒體檔案之持續時間之總和。
6.3.3. 播放播放清單檔案
當開始播放時,用戶端應該自播放清單選擇要首先播放哪個媒體檔案。若EXT-X-ENDLIST標籤不存在且用戶端意欲有規則地播放媒體(亦即,在標稱播放速率下按播放清單次序),則用戶端不應選擇開始時間距播放清單檔案之結尾小於三個目標持續時間之檔案。選擇此檔案可觸發播放暫停。
為了達成規則播放,媒體檔案必須按媒體檔案出現在播放清單檔案中之次序播放。用戶端可以其希望之任何方式呈現可用媒體,包括規則播放、隨機存取及竅門模式(trick mode)。
用戶端在播放前面有EXT-X-DISCONTINUITY標籤之媒體檔案之前必須準備好重設其剖析器及解碼器。用戶端應嘗試在需要媒體檔案以實現無中斷播放之前載入媒體檔案以補償延時及輸送量之暫時變化。
若播放清單檔案含有EXT-X-ALLOW-CACHE標籤且標籤之值為NO,則用戶端不得在已下載之媒體檔案已播放之後快取該等下載之媒體檔案。否則,用戶端可無限期地快取下載之媒體檔案以供稍後重放。
用戶端可使用EXT-X-PROGRAM-DATE-TIME標籤之值向使用者顯示節目起源時間。若值包括時區資訊,則用戶端應該考慮其,但若該值不包括時區資訊,則用戶端不得推斷起源時區。
用戶端不得取決於EXT-X-PROGRAM-DATE-TIME標籤之值之正確性或一致性。
6.3.4. 重新載入播放清單檔案
除非播放清單檔案含有EXT-X-ENDLIST標籤,否則用戶端必須週期性地重新載入播放清單檔案。
然而,用戶端不得嘗試比此章節所規定的頻繁度更頻繁地重新載入播放清單檔案。
當用戶端第一次載入播放清單檔案,或重新載入播放清單檔案且發現該播放清單檔案自其上次載入以來已變化時,用戶端在嘗試再次重新載入該播放清單檔案之前必須等待一段時間。將此時段稱為初始最小重新載入延遲。自用戶端開始載入播放清單檔案之時間起量測該延遲。
初始最小重新載入延遲為播放清單中之上一個媒體檔案之持續時間。媒體檔案持續時間係由EXTINF標籤規定。
若用戶端重新載入播放清單檔案且發現該播放清單檔案未變化,則用戶端必須在重試之前等待一段時間。最小延遲為目標持續時間的倍數。此倍數對第一嘗試為0.5、對第二嘗試為1.5且對此後之嘗試為3.0。
6.3.5. 判定要載入之下一個檔案
每當載入或重新載入播放清單檔案時,用戶端必須檢查播放清單檔案以判定要載入之下一個媒體檔案。
要載入之第一檔案必須為用戶端已選擇以首先播放之檔案,如章節6.3.3中所描述。
若已載入待播放之第一檔案且播放清單檔案不含有EXT-X-MEDIA-SEQUENCE標籤,則用戶端必須驗證:當前播放清單檔案在最初發現上一次載入之媒體檔案之位移處含有上一次載入之媒體檔案之URI,在未發現該URI之情況下暫停播放。要載入之下一個媒體檔案必須為播放清單中之在上一次載入之URI之後的第一媒體檔案URI。
若待播放之第一檔案已被載入且播放清單檔案含有EXT-X-MEDIA-SEQUENCE標籤,則要載入之下一個媒體檔案應該為具有大於所載入之上一個媒體檔案之序號之最小序號的媒體檔案。
6.3.6. 解密加密的媒體檔案
若播放清單檔案含有規定密鑰檔案URI之EXT-X-KEY標籤,則用戶端裝置必須獲取該密鑰檔案且使用該密鑰檔案內之密鑰解密EXT-X-KEY標籤之後的所有媒體檔案,直至遇到另一EXT-X-KEY標籤為止。
若加密方法為AES-128,則應該將AES-128 CBC解密應用於個別媒體檔案。必須解密整個檔案。不得跨媒體檔案應用密碼區塊鏈結。用於解密之IV必須為媒體檔案之序號或EXT-X-KEY標籤之IV屬性之值,如章節5.2中所描述。
若加密方法為NONE,則用戶端必須將EXT-X-KEY標籤之後的所有媒體檔案視為純文字(未加密),直至遇到另一EXT-X-KEY標籤為止。
7. 協定版本相容性
用戶端及伺服器必須實施協定版本2或更高版本以使用:
o EXT-X-KEY標籤之IV屬性。
8. 實例 8.1. 介紹
此章節含有若干實例播放清單檔案。
8.2. 簡單播放清單檔案
#EXTM3U
#EXT-X-TARGETDURATION:5220
#EXTINF:5220,http://media.example.com/entire.ts
#EXT-X-ENDLIST
8.3. 滑動窗播放清單,使用HTTPS
#EXTM3U
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:2680
#EXTINF:8,https://priv.example.com/fileSequence2680.ts
#EXTINF:8,https://priv.example.com/fileSequence2681.ts
#EXTINF:8,https://priv.example.com/fileSequence2682.ts
8.4. 具有加密媒體檔案之播放清單檔案
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"#EXTINF:15,http://media.example.com/fileSequence52-1.ts
#EXTINF:15,http://media.example.com/fileSequence52-2.ts
#EXTINF:15,http://media.example.com/fileSequence52-3.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"
#EXTINF:15,http://media.example.com/fileSequence53-1.ts
8.5. 變體播放清單檔案
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000 http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000 http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"http://example.com/audio-only.m3u8
9. 安全考慮
由於協定通常使用HTTP來傳送資料,故大多數相同安全考慮都適用。參見RFC 2616[RFC2616]之章節15。
媒體檔案剖析器通常遭受「模糊(fuzzing)」攻擊。用戶端在剖析自伺服器接收之檔案時應注意拒絕不符合要求的檔案。
播放清單檔案含有URI,用戶端將使用該等URI進行對任意實體之網路請求。用戶端應對回應作範圍檢查以防止緩衝器溢位。亦參見RFC 3986[RFC3986]之安全考慮章節。
用戶端應延遲地載入由URI識別之資源以避免促成拒絕服務的攻擊。
HTTP請求經常包括作業階段狀態(「小型文字檔案(cookie)」),其可含有專用使用者資料。實施必須遵循由RFC 2965[RFC2965]規定之期滿規則及cookie限制。亦參見RFC 2965之安全考慮章節及RFC 2964[RFC2964]。
加密密鑰係由URI規定。此等密鑰之傳遞應受諸如TLS[RFC5246](以前的SSL)上之HTTP之機制結合安全領域或作業階段cookie保護。
10. 參考文獻
標準性參考文獻
[AES_128] 美國商務部/國家標準技術局,「Advanced Encryption Standard(AES),FIPS PUB 197」,2001年11月,<http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf<http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf>>。
[ISO_13818]國際標準化組織,「ISO/IEC International Standard 13818;Generic coding of moving pictures and associated audio information」,2007年10月,<http://www.iso.org/iso/catalogue_detail?csnumber=44169>。
[ISO_8601]國際標準化組織,「ISO/IEC International Standard 8601:2004;Data elements and interchange formats--Information interchange --Representation of dates and times」,2004年12月,<http://www.iso.org/iso/catalogue_detail?csnumber=40874>。
[RFC2046] Freed,N.及N. Borenstein之「Multipurpose Internet Mail Extensions(MIME) Part Two: Media Types」,RFC 2046,1996年11月。
[RFC2119] Bradner,S.之「Key words for use in RFCs to Indicate Requirement Levels」,BCP 14,RFC 2119,1997年3月。
[RFC2616] Fielding,R.、Gettys,J.、Mogul,J.、Frystyk,H.、Masinter,L.、Leach,P.及T. Berners-Lee之「Hypertext Transfer Protocol--HTTP/1.1」,RFC 2616,1999年6月。
[RFC2964] Moore,K.及N. Freed之「Use of HTTP State Management」,BCP 44,RFC 2964,2000年10月。
[RFC2965] Kristol,D.及L. Montulli之「HTTP State Management Mechanism」,RFC 2965,2000年10月。
[RFC3629] Yergeau,F.之「UTF-8,a transformation format of ISO 10646」,STD 63,RFC 3629,2003年11月。
[RFC3986] Berners-Lee,T.、Fielding,R.及L. Masinter之「Uniform Resource Identifier(URI): Generic Syntax」,STD 66,RFC 3986,2005年1月。
[RFC4281] Gellens,R.、Singer,D.及P. Frojdh之「The Codecs Parameter for "Bucket" Media Types」,RFC 4281,2005年11月。
[RFC5246] Dierks,T.及E. Rescorla之「The Transport Layer Security(TLS) Protocol Version 1.2」,RFC 5246,2008年8月。
[RFC5652] Housley,R.之「Cryptographic Message Syntax(CMS)」,RFC 5652,2009年9月。
[US_ASCII]美國國家標準局,「ANSI X3.4-1986,Information Systems--Coded Character Sets 7-Bit American National Standard Code for Information Interchange(7-Bit ASCII)」,1986年12月。
12.2. 資訊性參考文獻
[ID3] ID3.org<http://ID3.org>,「The ID3 audio file data tagging format」,<http://www.id3.org/Developer_Information>。
[M3U] Nullsoft,Inc.,「The M3U Playlist format,originally invented for the Winamp media player」,<http://wikipedia.org/wiki/M3U>。
110...網路
120...伺服器
130...分段器
135...索引器
140...安全代理
145...超文字傳送協定(HTTP)伺服器代理
150...用戶端裝置
160...組譯器代理
165...輸出產生器代理
170...安全代理
180...用戶端裝置
185...安全代理
190...組譯器代理
195...輸出產生器代理
400...伺服器串流代理
410...控制邏輯
412...應用程式
414...記憶體
416...介面
420...伺服器串流引擎
430...分段器
440...索引器
450...安全性
460...檔案伺服器
500...用戶端串流代理
510...控制邏輯
512...應用程式
514...記憶體
516...介面
520...用戶端串流引擎
530...組譯器
540...輸出產生器
550...安全性
600...播放清單檔案
610...開始標籤
620...持續時間標籤
625...日期/時間標籤
630...序列標籤
640...安全性標籤
645...變體清單標籤
650...媒體檔案指示符
660...後續播放清單指示符
670...記憶體標籤
680...結束標籤
800...電子系統
805...匯流排
810...處理器
820...隨機存取記憶體(RAM)或其他動態儲存裝置
830...唯讀記憶體(ROM)及/或其他靜態儲存裝置
840...資料儲存裝置
850...顯示裝置
860...文數字輸入裝置
870...游標控制
880...網路介面
885...天線
887...網路纜線
951...串流
951A...音訊樣本
951B...視訊樣本
953...串流
953A...音訊樣本
953B...視訊樣本
955...重疊
957...區段
959...轉變點
961...i圖框
1102...用戶端
1209...時間
1211...時刻表
1213...目標持續時間
1215...播放清單持續時間
1217...時間
1219...時間
1410...舊串流
1411...雜湊標記
1412...播放點
1414...新串流
1415...區塊
1415A...區塊
1416...區塊
1416A...下載之區塊
1710...媒體伺服精靈協助程式
1720...事件媒體提供者(EMP)應用程式
1721...核心媒體堆疊
1723...網路連接堆疊
1725...事件媒體提供者(EMP)處理常式
1730...事件媒體提供者(EMP)伺服器
1750...用戶端裝置
1751...使用者應用程式(AppX)
1752...網路
1753...伺服器
1754...播放清單
1755...登錄檔
1756...作業系統(OS)
1757...播放器服務
1800...應用程式設計介面(API)架構
1810...應用程式設計介面(API)實施組件
1820...應用程式設計介面(API)
1830...應用程式設計介面(API)呼叫組件
2001...第一裝置
2003...第二裝置
2005...連接
2007...應用程式
2009...媒體伺服器
2011...遠端播放服務
2013...作業系統
2015...遠端播放精靈協助程式
2017...媒體伺服器
2019...作業系統
圖1為可發送及接收即時或接近即時內容之伺服器及用戶端之一實施例的方塊圖。
圖2A為用於一或多個伺服器裝置的使用非串流傳輸協定支援媒體內容之技術之一實施例的流程圖。
圖2B為用於一或多個伺服器裝置的以動態方式將經更新之播放清單提供至一或多個用戶端裝置之技術之一實施例的流程圖。
圖2C為用於一或多個伺服器裝置的使用多個位元速率將媒體內容提供至用戶端裝置之技術之一實施例的流程圖。
圖3A為用於用戶端裝置的使用非串流傳輸協定支援內容之串流之技術之一實施例的流程圖。
圖3B為用於用戶端裝置的用以使用多個位元速率支援內容之串流之技術之一實施例的流程圖。
圖4為伺服器串流代理之一實施例的方塊圖。
圖5為用戶端串流代理之一實施例的方塊圖。
圖6說明具有多個標籤之播放清單檔案之一實施例。
圖7為如本文中所描述的用於經組譯串流之播放技術之一實施例的流程圖。
圖8為電子系統之一實施例的方塊圖。
圖9A為展示用戶端裝置如何可在變體播放清單中之替代內容之間切換之一實例的流程圖。
圖9B為展示用戶端裝置如何可在兩個播放清單中之內容之間切換的另一流程圖。
圖9C為展示用戶端裝置如何可使用音訊型樣匹配在內容之間切換之一實例的另一流程圖。
圖9D圖示地展示如何利用音訊型樣匹配來實施圖9C之方法。
圖10為用於提供使用替代串流將媒體內容提供至用戶端裝置之多個冗餘位置之技術之一實施例的流程圖。
圖11說明一網路,其中根據一實施例用戶端1102與一或多個URL雙向通信。
圖12A為描繪根據本發明之一實施例的用於控制播放清單之建立及散佈之方法的流程圖。
圖12B展示在一實施例中可如何使用(例如)圖12A所示之方法傳輸或以其他方式散佈播放清單的時刻表。
圖13為根據本發明之一實施例的用於控制用戶端裝置處之播放之方法。
圖14A展示描繪在一實施例中用於基於連接速度或連接類型而適應性地判定最小重疊之量之方法的流程圖。圖14B、圖14C及圖14D展示使用重疊以用於在串流之間切換之實施例的另一態樣。
圖15為描繪根據本發明之一實施例的另一方法之流程圖。
圖16A展示描繪根據一實施例的用於使用有時間戳記之標籤建立播放清單檔案之方法的流程圖。
圖16B展示描繪根據一實施例的用於使用播放清單檔案中之有時間戳記之標籤來搜尋媒體檔案之方法的流程圖。
圖17A展示允許媒體伺服精靈協助程式與使用者應用程式互動之軟體架構之一實例。圖17B展示可使用自訂URL技術之軟體架構之一實例,且圖17C為展示用以使用自訂URL技術之方法之一實例的流程圖。圖17D展示提供由使用自訂URL技術之應用程式執行之方法之一實例的流程圖;且圖17E為展示由播放器服務或作業系統或其兩者執行之方法之一實例的流程圖。
圖18說明可在本發明之一些實施例中使用之例示性API架構的方塊圖。
圖19展示可在本發明之一些實施例中使用之軟體堆疊的例示性實施例。
圖20展示用於允許一個裝置控制或起始媒體在另一裝置上之播放的軟體架構之一實例。
圖21展示使用圖20及圖21中所示之兩個不同裝置上之軟體架構中的不同軟體組件之間的呼叫之軟體架構之一實例。
圖22A及圖22B展示根據本發明之一實施例的方法之一實例,該方法可用以允許兩個裝置(諸如,圖20中所示之彼等裝置)互動且在一個裝置上提供由另一裝置起始之遠端播放。
(無元件符號說明)

Claims (27)

  1. 一種機器可讀非暫時性儲存媒體,其儲存當由一資料處理系統執行時使該系統執行包含以下步驟之一方法的可執行指令:在一用戶端裝置上執行一使用者應用程式以呈現媒體檔案且控制對於由該使用者應用程式呈現之該等媒體檔案之存取,其中該使用者應用程式與一媒體源(media source)互動;及在該用戶端裝置上執行與該使用者應用程式分離之一媒體伺服處理程序(media serving process),以擷取(retrieve)規定該等媒體檔案之一播放清單及可在其中得到該等媒體檔案之該媒體源、自該媒體源擷取該等媒體檔案及解碼所擷取之該等媒體檔案及將來自該等媒體檔案之解碼內容提供至該使用者應用程式,其中對於該等媒體檔案之存取係由一密鑰所控制,該密鑰係經該使用者應用程式處理或經該使用者應用程式擷取並處理,且經傳輸至該媒體伺服處理程序。
  2. 如請求項1之媒體,其中該媒體伺服處理程序及該使用者應用程式共用關於記憶體控制、記憶體空間、記憶體分配、檔案系統控制及網路控制的相同特殊權限。
  3. 如請求項2之媒體,其中該使用者應用程式提供用以控制該呈現之一使用者介面且經由一應用程式設計介面(API)與該媒體伺服處理程序通信,且其中該使用者應用程式及該媒體伺服處理程序為不同的軟體處理程序。
  4. 如請求項2之媒體,其中該媒體伺服處理程序利用經該使用者應用程式處理或經該使用者應用程式擷取及處理且經傳輸至該媒體伺服處理程序之該密鑰來擷取及解碼該等媒體檔案。
  5. 如請求項2之媒體,其中控制對於該等媒體檔案之存取包括解密(decrypting)該等媒體檔案,且該使用者應用程式安裝用以當進行一連接以自該媒體源下載一解密密鑰時回答一伺服器挑戰之一用戶端憑證。
  6. 如請求項1之媒體,其中該播放清單含有使用一自訂URL配置之解密密鑰之URL。
  7. 如請求項3之媒體,其中在該媒體伺服處理程序不能載入或解碼一媒體檔案時,該媒體伺服處理程序經由該API呼叫該使用者應用程式,使得該使用者應用程式擷取被傳回至該媒體伺服處理程序之一或多個密鑰。
  8. 如請求項3之媒體,其中該媒體伺服處理程序擷取使用由該使用者應用程式處理或由該使用者應用程式擷取並處理之一密鑰解碼之媒體檔案。
  9. 如請求項8之媒體,其中控制對於該等媒體檔案之存取包括解密該等媒體檔案,且該使用者應用程式安裝用以當進行一連接以自該媒體源下載一解密密鑰時回答一伺服器挑戰之一用戶端憑證。
  10. 如請求項9之媒體,其中該播放清單含有使用一自訂URL配置之解密密鑰之URL。
  11. 一種由一資料處理系統執行之機器實施方法,該方法包 含:在一用戶端裝置上執行一使用者應用程式以呈現媒體檔案且控制對於由該使用者應用程式呈現之該等媒體檔案之存取,其中該使用者應用程式與一媒體源互動;及在該用戶端裝置上執行與該使用者應用程式分離之一媒體伺服處理程序,以擷取規定該等媒體檔案之一播放清單及可在其中得到該等媒體檔案之該媒體源、自該媒體源擷取該等媒體檔案及解碼所擷取之該等媒體檔案及將來自該等媒體檔案之解碼內容提供至該使用者應用程式,其中該媒體伺服處理程序及該使用者應用程式共用關於記憶體控制、記憶體空間、記憶體分配、檔案系統控制及網路控制的相同特殊權限,且其中該使用者應用程式及該媒體伺服處理程序經由一API通信,且其中該使用者應用程式及該媒體伺服處理程序為不同的軟體處理程序,且其中該媒體伺服處理程序擷取該等媒體檔案,對於該等媒體檔案之存取係由一密鑰所控制,該密鑰係經該使用者應用程式處理或經該使用者應用程式擷取並處理且經傳輸至該媒體伺服處理程序,且其中該使用者應用程式安裝用以當進行一連接以下載一解密密鑰時回答一伺服器挑戰之一用戶端憑證,且其中該播放清單含有使用一自訂URL配置之解密密鑰之URL。
  12. 一種資料處理系統,其包含:用於在一用戶端裝置上執行一使用者應用程式以呈現媒體檔案且控制對於由該使用者應用程式呈現之該等媒 體檔案之存取之構件,其中該使用者應用程式與一媒體源互動;及用於在該用戶端裝置上執行與該使用者應用程式分離之一媒體伺服處理程序,以擷取規定該等媒體檔案之一播放清單及可在其中得到該等媒體檔案之該媒體源、自該媒體源擷取該等媒體檔案及解碼所擷取之該等媒體檔案及將來自該等媒體檔案之解碼內容提供至該使用者應用程式之構件,其中對於該等媒體檔案之存取係由一密鑰所控制,該密鑰係經該使用者應用程式處理或經該使用者應用程式擷取並處理,且經傳輸至該媒體伺服處理程序。
  13. 一種機器可讀非暫時性儲存媒體,其儲存當由一資料處理系統執行時使該系統執行包含以下步驟之一方法的可執行指令:在一用戶端裝置上執行一使用者應用程式以呈現媒體檔案且控制對於由該使用者應用程式呈現之該等媒體檔案之存取,其中該使用者應用程式與一媒體源互動;及在該用戶端裝置上執行與該使用者應用程式分離之一媒體伺服器處理程序,以擷取規定該等媒體檔案之一播放清單及可在其中得到該等媒體檔案之該媒體源、自該媒體源擷取該等媒體檔案及解碼所擷取之該等媒體檔案,其中對於該等媒體檔案之存取係由一密鑰所控制,該密鑰係經該使用者應用程式處理或經該使用者應用程式擷取並處理,且經傳輸至該媒體伺服處理程序; 由該媒體伺服器接收一URL,該URL參考待由該媒體伺服器使用以解碼或呈現該等媒體檔案中之至少一者的資料;由該媒體伺服器呼叫該使用者應用程式處理該URL以獲取待由該媒體伺服器使用之該資料;回應於該使用者應用程式處理該URL以獲取該資料而接收該資料;使用該資料解碼該等媒體檔案中之至少一者。
  14. 如請求項13之媒體,其中該資料為一解密密鑰。
  15. 如請求項13之媒體,其中該使用者應用程式使用一自訂URL,該自訂URL係用以控制對於經由該使用者應用程式提供之內容的存取。
  16. 如請求項15之媒體,其中一登錄檔儲存介於該自訂URL與該使用者應用程式之間的一關係,且其中在該媒體伺服器不能解碼一媒體檔案時該媒體伺服器檢查該登錄檔以呼叫該使用者應用程式。
  17. 如請求項16之媒體,其中該自訂URL由一EXT-X-KEY標籤來規定,且其中該使用者應用程式由該等媒體檔案之一提供者授權。
  18. 如請求項15之媒體,其中該使用者應用程式將介於用以擷取該等媒體檔案之一或多個解密密鑰之一自訂URL與該使用者應用程式之間的一關係安裝至一登錄檔中,且其中在該使用者應用程式被第一次安裝或第一次啟動時該使用者應用程式將該關係安裝至該登錄檔中。
  19. 如請求項18之媒體,其中該關係將該媒體伺服器指向使用該自訂URL之該使用者應用程式,且其中該媒體伺服器不支援該自訂URL。
  20. 如請求項15之媒體,其中該自訂URL被用以擷取提供至該媒體伺服器以解碼該播放清單中之該等媒體檔案的該解密密鑰。
  21. 如請求項20之媒體,其中該使用者應用程式對該自訂URL之一解析取決於下列各者中之至少一者:(a)該使用者應用程式的關於該等媒體檔案中之該內容的特殊權限等級;(b)該等媒體檔案中之該內容;或(c)呈現該等媒體檔案中之該內容之請求的一日期或時間或其兩者。
  22. 如請求項21之媒體,其中該解密密鑰係經由該使用者應用程式傳回至該媒體伺服器。
  23. 一種機器可讀非暫時性儲存媒體,其儲存當由一資料處理系統執行時使該系統執行包含以下步驟之一方法的可執行指令:在一用戶端裝置上執行一使用者應用程式,該使用者應用程式經組態以控制對於由該使用者應用程式呈現之媒體檔案之存取,其中該使用者應用程式與一媒體源互動;及在該用戶端裝置上執行與該使用者應用程式分離之一媒體伺服器處理程序,以擷取規定該等媒體檔案之一播放清單及可在其中得到該等媒體檔案之該媒體源、自該媒體源擷取該等媒體檔案及解碼所擷取之該等媒體檔 案,其中對於該等媒體檔案之存取係由一密鑰所控制,該密鑰係經該使用者應用程式處理或經該使用者應用程式擷取並處理,且經傳輸至該媒體伺服處理程序;由該媒體伺服器接收該播放清單中或用於該播放清單之一URL,該URL參考待使用以處理該等媒體檔案中之至少一者的資料;由該媒體伺服器呼叫該使用者應用程式處理該URL以獲取待由一遠端媒體伺服器使用之該資料;回應於該使用者應用程式處理該URL以獲取該資料來接收該資料;及將該資料傳輸至該遠端媒體伺服器。
  24. 如請求項23之媒體,其中該URL為該播放清單或用於該播放清單中之至少一媒體檔案之一解密密鑰中之一者的一自訂URL,且其中該使用者應用程式使用該自訂URL控制對於經由該使用者應用程式提供之內容的存取。
  25. 如請求項23之媒體,其中一登錄檔儲存介於該自訂URL與該使用者應用程式之間的一關係,且其中在該媒體伺服器不能處理該URL時,該媒體伺服器檢查該登錄檔以呼叫該使用者應用程式。
  26. 如請求項25之媒體,其中該遠端媒體伺服器為一視訊轉換器之部分且經組態以擷取並處理一播放清單且經組態以產生一訊息,該訊息經傳輸回至該媒體伺服器以請求該自訂URL之一解析,且其中該資料至該遠端媒體伺服器之該傳輸提供該自訂URL之該解析。
  27. 一種用於將一輸出提供至一呈現裝置之裝置,該裝置包含:一遠端播放組件(remote playback component),其經組態以允許該裝置經設置為由另一裝置控制;一媒體伺服器組件,該媒體伺服器組件經組態以擷取並處理規定媒體檔案之一播放清單且擷取並解碼該播放清單中所規定之媒體檔案,且該媒體伺服器組件經組態以產生一訊息以解析一自訂URL,該自訂URL代表該播放清單內用於獲得一解密密鑰(decryption key)之資料,且該遠端播放組件經組態以將該訊息傳遞至該另一裝置,以供該另一裝置上之一應用程式進行解析;一輸出端,其用以將視訊資料或音訊資料或視訊資料及音訊資料兩者提供至該呈現裝置,該輸出端經耦接至提供該視訊資料或音訊資料或其兩者之該媒體伺服器組件;耦接至該遠端播放組件之一輸入/輸出(I/O)介面,該I/O介面經組態以將該訊息自該媒體伺服器組件傳遞至該另一裝置上之該應用程式,以解析該自訂URL,且該I/O介面經組態以將該自訂URL之一解析傳遞至該媒體伺服器組件以允許該媒體伺服器組件藉由利用由該自訂URL之該解析中獲得的一解密密鑰(decryption key)解密及解碼該等媒體檔案來存取該等媒體檔案內的內容,且該I/O介面經組態以輸出由該媒體伺服器組件自該等經解密及解碼的媒體檔案產生的該視訊資料或音訊資料或兩者。
TW100112082A 2010-04-07 2011-04-07 即時或接近即時串流傳輸之內容存取控制 TWI451279B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32176710P 2010-04-07 2010-04-07
US35182410P 2010-06-04 2010-06-04

Publications (2)

Publication Number Publication Date
TW201202975A TW201202975A (en) 2012-01-16
TWI451279B true TWI451279B (zh) 2014-09-01

Family

ID=44000683

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100112082A TWI451279B (zh) 2010-04-07 2011-04-07 即時或接近即時串流傳輸之內容存取控制

Country Status (6)

Country Link
US (3) US8892691B2 (zh)
CN (2) CN102882845B (zh)
GB (1) GB2479455B (zh)
HK (1) HK1163979A1 (zh)
TW (1) TWI451279B (zh)
WO (1) WO2011127312A1 (zh)

Families Citing this family (206)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204729B2 (en) 2000-11-01 2021-12-21 Flexiworld Technologies, Inc. Internet based digital content services for pervasively providing protected digital content to smart devices based on having subscribed to the digital content service
US6947995B2 (en) 2000-11-20 2005-09-20 Flexiworld Technologies, Inc. Mobile and pervasive output server
EP1586045A1 (en) 2002-12-27 2005-10-19 Nielsen Media Research, Inc. Methods and apparatus for transcoding metadata
US10268352B2 (en) * 2004-06-05 2019-04-23 Sonos, Inc. Method and apparatus for managing a playlist by metadata
US8424041B2 (en) * 2005-09-07 2013-04-16 Sony Corporation Method and system for downloading content to a content downloader
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
US20070288985A1 (en) * 2006-06-13 2007-12-13 Candelore Brant L Method and system for uploading content to a target device
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US9154942B2 (en) * 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
WO2010080911A1 (en) 2009-01-07 2010-07-15 Divx, Inc. Singular, collective and automated creation of a media guide for online content
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US10783581B2 (en) * 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
EP2436168A2 (fr) * 2009-05-29 2012-04-04 France Telecom Technique de distribution d'un contenu vers un utilisateur
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US9253548B2 (en) * 2010-05-27 2016-02-02 Adobe Systems Incorporated Optimizing caches for media streaming
US9160978B2 (en) 2010-08-10 2015-10-13 Google Technology Holdings LLC Method and apparatus related to variable duration media segments
US9542203B2 (en) 2010-12-06 2017-01-10 Microsoft Technology Licensing, Llc Universal dock for context sensitive computing device
US8923770B2 (en) 2010-12-09 2014-12-30 Microsoft Corporation Cognitive use of multiple regulatory domains
US8792429B2 (en) * 2010-12-14 2014-07-29 Microsoft Corporation Direct connection with side channel control
US8948382B2 (en) 2010-12-16 2015-02-03 Microsoft Corporation Secure protocol for peer-to-peer network
US9294545B2 (en) 2010-12-16 2016-03-22 Microsoft Technology Licensing, Llc Fast join of peer to peer group with power saving mode
US8971841B2 (en) 2010-12-17 2015-03-03 Microsoft Corporation Operating system supporting cost aware applications
JP2012134652A (ja) * 2010-12-20 2012-07-12 Nec Access Technica Ltd 宅内機器、コンテンツ引き継ぎ方法およびコンテンツ引き継ぎプログラム
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US20120210374A1 (en) * 2011-02-14 2012-08-16 Charles Dasher Video-On-Demand (VOD)-Augmented eBook
EP2924990A1 (en) * 2011-03-16 2015-09-30 Electronics and Telecommunications Research Institute Apparatus and method for providing streaming content using representations
US9380356B2 (en) 2011-04-12 2016-06-28 The Nielsen Company (Us), Llc Methods and apparatus to generate a tag for media content
US9087060B2 (en) * 2011-06-03 2015-07-21 Apple Inc. Partial sort on a host
US8856283B2 (en) * 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US9209978B2 (en) 2012-05-15 2015-12-08 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US9210208B2 (en) 2011-06-21 2015-12-08 The Nielsen Company (Us), Llc Monitoring streaming media content
US20130290508A1 (en) * 2012-04-25 2013-10-31 Jan Besehanic Methods and apparatus to measure exposure to streaming media
US9319453B2 (en) * 2011-07-15 2016-04-19 Shmuel Ur User-controlled download duration time
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
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
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US9015857B2 (en) * 2011-11-14 2015-04-21 Wave Systems Corp. Security systems and methods for encoding and decoding digital content
US9043866B2 (en) 2011-11-14 2015-05-26 Wave Systems Corp. Security systems and methods for encoding and decoding digital content
US9047489B2 (en) 2011-11-14 2015-06-02 Wave Systems Corp. Security systems and methods for social networking
US8769524B2 (en) * 2011-12-09 2014-07-01 Disney Enterprises, Inc. HTML directed adaptive features for mobile applications
US9697297B2 (en) * 2011-12-16 2017-07-04 Microsoft Technology Licensing, Llc. Representation/invocation of actions/functions in a hypermedia-driven environment
US8983076B2 (en) * 2011-12-22 2015-03-17 Adobe Systems Incorporated Methods and apparatus for key delivery in HTTP live streaming
WO2013098319A1 (en) 2011-12-29 2013-07-04 Koninklijke Kpn N.V. Controlled streaming of segmented content
US9654821B2 (en) 2011-12-30 2017-05-16 Sonos, Inc. Systems and methods for networked music playback
CN103248611B (zh) 2012-02-07 2017-05-24 华为终端有限公司 媒体播放处理与控制方法、装置及系统
US9215065B2 (en) * 2012-02-17 2015-12-15 Cbs Interactive Inc. Media player security for full length episodes
KR101606311B1 (ko) * 2012-03-30 2016-03-24 인텔 코포레이션 표시 장치를 이용하는 미디어 콘텐츠의 소비의 모바일 장치를 이용한 보완
CN102780916B (zh) * 2012-04-12 2015-03-18 天脉聚源(北京)传媒科技有限公司 一种视频直播流汇聚分发方法
US8468563B1 (en) * 2012-04-30 2013-06-18 This Technology, Inc. Method for ingesting multiple signals of the same meaning
KR20130127211A (ko) * 2012-05-14 2013-11-22 한국전자통신연구원 다중 네트워크 환경 적응형 미디어 스트리밍 전송방법 및 그 장치
US9235867B2 (en) * 2012-06-04 2016-01-12 Microsoft Technology Licensing, Llc Concurrent media delivery
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9674587B2 (en) * 2012-06-26 2017-06-06 Sonos, Inc. Systems and methods for networked music playback including remote add to queue
US9197685B2 (en) * 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
EP2680599A1 (en) * 2012-06-29 2014-01-01 Thomson Licensing Provision of a personalized media content
DE102012212139A1 (de) * 2012-07-11 2014-01-16 Mackevision Medien Design GmbH Stuttgart Verfahren zum Betreiben eines Servers für das HLS-Streaming eines Video-Films mit mindestens einem konfigurierbaren Objekt
US9516079B2 (en) 2012-07-16 2016-12-06 Ricoh Company, Ltd. Media stream modification based on channel limitations
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
US9804668B2 (en) 2012-07-18 2017-10-31 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear TV experience using streaming content distribution
US20140074959A1 (en) * 2012-09-10 2014-03-13 Apple Inc. Client side media station generation
US20140075316A1 (en) * 2012-09-11 2014-03-13 Eric Li Method and apparatus for creating a customizable media program queue
US9930082B2 (en) 2012-11-20 2018-03-27 Nvidia Corporation Method and system for network driven automatic adaptive rendering impedance
US9537917B2 (en) 2012-11-20 2017-01-03 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
US10616086B2 (en) 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control
JP6116240B2 (ja) * 2012-12-28 2017-04-19 キヤノン株式会社 送信装置、送信方法、及びプログラム
US9313510B2 (en) 2012-12-31 2016-04-12 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
CN105228710B (zh) * 2013-01-17 2018-04-27 索尼电脑娱乐公司 信息处理设备和文件管理方法
US9313544B2 (en) 2013-02-14 2016-04-12 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
EP2962485B1 (en) * 2013-03-01 2019-08-21 Intel IP Corporation Wireless local area network (wlan) traffic offloading
US10817959B2 (en) * 2013-03-08 2020-10-27 Google Llc System for serving shared content on a video sharing web site
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
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
US9361371B2 (en) 2013-04-16 2016-06-07 Sonos, Inc. Playlist update in a media playback system
US9501533B2 (en) 2013-04-16 2016-11-22 Sonos, Inc. Private queue for a media playback system
US9247363B2 (en) 2013-04-16 2016-01-26 Sonos, Inc. Playback queue transfer in a media playback system
EP2988515A4 (en) * 2013-04-19 2016-09-14 Sony Corp SERVER DEVICE, CONTENT DISTRIBUTION METHOD, AND COMPUTER PROGRAM
US9495076B2 (en) 2013-05-29 2016-11-15 Sonos, Inc. Playlist modification
US9953179B2 (en) 2013-05-29 2018-04-24 Sonos, Inc. Private queue indicator
US9735978B2 (en) 2013-05-29 2017-08-15 Sonos, Inc. Playback queue control via a playlist on a mobile device
US9703521B2 (en) 2013-05-29 2017-07-11 Sonos, Inc. Moving a playback queue to a new zone
US9798510B2 (en) 2013-05-29 2017-10-24 Sonos, Inc. Connected state indicator
US10715973B2 (en) 2013-05-29 2020-07-14 Sonos, Inc. Playback queue control transition
US9684484B2 (en) * 2013-05-29 2017-06-20 Sonos, Inc. Playback zone silent connect
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
JP2014235531A (ja) * 2013-05-31 2014-12-15 株式会社東芝 データ転送装置、データ転送システム、およびプログラム
US9344342B2 (en) 2013-06-10 2016-05-17 International Business Machines Corporation Monitoring similar data in stream computing
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US10171528B2 (en) 2013-07-03 2019-01-01 Koninklijke Kpn N.V. Streaming of segmented content
US9836271B2 (en) * 2013-07-17 2017-12-05 Booktrack Holdings Limited Delivery of synchronised soundtracks for electronic media content
US10181040B2 (en) * 2013-07-19 2019-01-15 Disney Enterprises, Inc. Alternate content playlist for locked media content
US9160540B2 (en) * 2013-07-25 2015-10-13 Adobe Systems Incorporated Preventing playback of streaming video if ads are removed
US9819604B2 (en) 2013-07-31 2017-11-14 Nvidia Corporation Real time network adaptive low latency transport stream muxing of audio/video streams for miracast
CN103428583A (zh) * 2013-08-12 2013-12-04 深圳市同洲电子股份有限公司 一种对流媒体文件的保护方法和数字电视终端
US9411942B2 (en) * 2013-08-30 2016-08-09 D&M Holdings, Inc. Network device, system and method for rendering an interactive multimedia playlist
US8718445B1 (en) 2013-09-03 2014-05-06 Penthera Partners, Inc. Commercials on mobile devices
US9888050B2 (en) * 2013-09-24 2018-02-06 Verizon Patent And Licensing Inc. Method and apparatus for integrating various network elements and providing media processing services
US10296884B2 (en) * 2013-09-30 2019-05-21 Sonos, Inc. Personalized media playback at a discovered point-of-sale display
US20150095964A1 (en) * 2013-10-01 2015-04-02 Opentv, Inc. Bumper video carousel for digital video delivery
US9244916B2 (en) * 2013-10-01 2016-01-26 Penthera Partners, Inc. Downloading media objects
US9332035B2 (en) 2013-10-10 2016-05-03 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
KR102104498B1 (ko) * 2013-11-22 2020-04-24 삼성전자주식회사 슬라이드 쇼를 제공하는 시스템 및 방법
KR20150074542A (ko) * 2013-12-24 2015-07-02 현대자동차주식회사 미러링크 제어방법
TWI533678B (zh) * 2014-01-07 2016-05-11 緯創資通股份有限公司 即時轉播同步方法以及使用該方法的系統
JP6574426B2 (ja) * 2014-01-09 2019-09-11 サムスン エレクトロニクス カンパニー リミテッド マルチメディア伝送システムにおけるメディアデータ関連情報を送信する方法及び装置
US9661045B2 (en) * 2014-01-13 2017-05-23 Cisco Technology, Inc. System and methods for dynamic transcoder rate adaption for adaptive bit rate streaming
US9621963B2 (en) 2014-01-28 2017-04-11 Dolby Laboratories Licensing Corporation Enabling delivery and synchronization of auxiliary content associated with multimedia data using essence-and-version identifier
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold
EP3105903B1 (en) 2014-02-13 2019-08-07 Koninklijke KPN N.V. Requesting multiple chunks from a network node on the basis of a single request message
US10599706B2 (en) 2014-03-20 2020-03-24 Gracenote Digital Ventures, Llc Retrieving and playing out media content for a personalized playlist
EP2924595A1 (en) 2014-03-28 2015-09-30 Acast AB Method for associating media files with additional content
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
CN105099602A (zh) * 2014-04-25 2015-11-25 阿里巴巴集团控股有限公司 一种基于网速传输文件的方法及系统
US10250937B2 (en) * 2014-05-30 2019-04-02 Apple Inc. Item to item transitions
US10523723B2 (en) 2014-06-06 2019-12-31 Koninklijke Kpn N.V. Method, system and various components of such a system for selecting a chunk identifier
CN104093065A (zh) * 2014-06-13 2014-10-08 深圳市白板科技有限公司 一种机顶盒连接播放方法及系统
US10362094B2 (en) * 2014-07-25 2019-07-23 Gracenote Digital Ventures, Llc Retrieval and playout of media content
US10228751B2 (en) 2014-08-06 2019-03-12 Apple Inc. Low power mode
PL3180688T3 (pl) 2014-08-12 2021-10-25 Groupon, Inc. Sposób, urządzenie, i produkt w postaci programu komputerowego do sterowania rozprowadzaniem treści za pośrednictwem nadajników-odbiorników w celu wyświetlania
CN104168435B (zh) * 2014-08-15 2018-01-12 北京彩云动力教育科技有限公司 一种音频文件批量合并和播放的方法及系统
US9647489B2 (en) 2014-08-26 2017-05-09 Apple Inc. Brownout avoidance
CN104159168A (zh) * 2014-09-02 2014-11-19 尚斌 一种适用于音视频时间格式转换的计算方法
US10708391B1 (en) * 2014-09-30 2020-07-07 Apple Inc. Delivery of apps in a media stream
US10231033B1 (en) 2014-09-30 2019-03-12 Apple Inc. Synchronizing out-of-band content with a media stream
US10148713B2 (en) * 2014-10-21 2018-12-04 Adobe Systems Incorporated Live manifest update
US10728599B2 (en) * 2014-12-12 2020-07-28 Arris Enterprise, Llc Gateway server conditioned media streaming
CN105763583A (zh) * 2014-12-16 2016-07-13 博雅网络游戏开发(深圳)有限公司 与php进程通信的方法和系统
EP3038389A1 (en) * 2014-12-23 2016-06-29 Orange A method for controlling the sharing of at least one electronic content between a first user equipment and at least a second user equipment
US9858337B2 (en) * 2014-12-31 2018-01-02 Opentv, Inc. Management, categorization, contextualizing and sharing of metadata-based content for media
US20160234528A1 (en) * 2015-02-09 2016-08-11 Arris Enterprises, Inc. Carriage of video coding for browsers (vcb) video over mpeg-2 transport streams
US10440757B2 (en) * 2015-02-17 2019-10-08 Google Llc Second-screen control automatic pairing using push notifications
US10719290B2 (en) 2015-05-15 2020-07-21 Spotify Ab Methods and devices for adjustment of the energy level of a played audio stream
US10082939B2 (en) * 2015-05-15 2018-09-25 Spotify Ab Playback of media streams at social gatherings
US20160335046A1 (en) 2015-05-15 2016-11-17 Spotify Ab Methods and electronic devices for dynamic control of playlists
US9762965B2 (en) 2015-05-29 2017-09-12 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US10585727B1 (en) * 2015-06-08 2020-03-10 Google Llc API manager
JP6801657B2 (ja) * 2015-07-13 2020-12-16 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US20170041363A1 (en) * 2015-08-03 2017-02-09 Unroll, Inc. System and Method for Assembling and Playing a Composite Audiovisual Program Using Single-Action Content Selection Gestures and Content Stream Generation
US10270903B2 (en) * 2015-08-21 2019-04-23 Avaya Inc. Failover announcements
US9635431B2 (en) * 2015-08-27 2017-04-25 Kiswe Mobile Inc. Live event viewing via mixed live and on-demand streaming
US9942343B2 (en) 2015-08-27 2018-04-10 Kiswe Mobile Inc. Efficient content streaming utilizing local proxy server implemented on client device
CN105592346B (zh) * 2015-12-17 2018-07-24 天脉聚源(北京)教育科技有限公司 一种音频信号的切换方法及装置
US10740727B2 (en) * 2015-12-28 2020-08-11 Seiko Epson Corporation Techniques for determining whether employee attendance is being appropriately managed
KR101743228B1 (ko) * 2016-01-22 2017-06-05 네이버 주식회사 스트리밍 장치 및 그 방법, 이를 이용한 스트리밍 서비스 시스템 및 컴퓨터로 판독 가능한 기록매체
SG10202007904SA (en) 2016-02-23 2020-10-29 Nchain Holdings Ltd A method and system for securing computer software using a distributed hash table and a blockchain
JP6925346B2 (ja) 2016-02-23 2021-08-25 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンベースのトークナイゼーションを用いた交換
WO2017145004A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US11182782B2 (en) 2016-02-23 2021-11-23 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
ES2680851T3 (es) * 2016-02-23 2018-09-11 nChain Holdings Limited Registro y método de gestión automática para contratos inteligentes ejecutados por cadena de bloques
CN115641131A (zh) 2016-02-23 2023-01-24 区块链控股有限公司 在区块链上安全转移实体的方法和系统
GB2561729A (en) 2016-02-23 2018-10-24 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
CN117611331A (zh) 2016-02-23 2024-02-27 区块链控股有限公司 用于使用区块链在点对点分布式账簿上有效转移实体的方法及系统
AU2017223133B2 (en) 2016-02-23 2022-09-08 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
BR112018016821A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd sistema e métodos implementados por computador
EA201891829A1 (ru) 2016-02-23 2019-02-28 Нчейн Холдингс Лимитед Способ и система для эффективного перевода криптовалюты, связанной с заработной платой, в блокчейне для создания способа и системы автоматизированной выплаты заработной платы на основе смарт-контрактов
AU2017222421B2 (en) 2016-02-23 2022-09-01 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
US11606219B2 (en) 2016-02-23 2023-03-14 Nchain Licensing Ag System and method for controlling asset-related actions via a block chain
KR20180115768A (ko) 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 블록체인으로부터 데이터의 안전한 추출을 위한 암호화 방법 및 시스템
JP6833861B2 (ja) 2016-02-23 2021-02-24 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション
CN105847941B (zh) * 2016-03-17 2019-02-19 央广视讯传媒股份有限公司 一种基于hls协议的音视频流直播方法
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
CN105847897A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种提供及处理视频下载的方法及设备
US10447748B2 (en) 2016-05-12 2019-10-15 Apple Inc. Sharing media information between applications on client devices
US10432685B2 (en) * 2016-05-31 2019-10-01 Brightcove, Inc. Limiting key request rates for streaming media
WO2017209573A1 (en) * 2016-06-03 2017-12-07 Samsung Electronics Co., Ltd. Multi-point content transmission method and apparatus
CN106131610A (zh) * 2016-06-28 2016-11-16 乐视控股(北京)有限公司 在线播放视频的方法、设备及装置
CN106302745B (zh) * 2016-08-17 2020-07-14 上海交通大学 基于缓存和冗余消除的上行链路小基站内容调度方法
US11412272B2 (en) 2016-08-31 2022-08-09 Resi Media Llc System and method for converting adaptive stream to downloadable media
US9602846B1 (en) 2016-08-31 2017-03-21 Living As One, Llc System and method for asynchronous uploading of live digital multimedia with guaranteed delivery
US10511864B2 (en) 2016-08-31 2019-12-17 Living As One, Llc System and method for transcoding media stream
US10708336B2 (en) 2016-12-04 2020-07-07 Cisco Technology, Inc. System and method for announcing media changes
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
DK3370388T3 (da) * 2017-03-01 2021-06-21 Epos Group As Kommunikationssystem, der indbefatter aflytning
CN107517411B (zh) * 2017-09-04 2020-08-25 海信视像科技股份有限公司 一种基于GStreamer框架的视频播放方法
US11363133B1 (en) 2017-12-20 2022-06-14 Apple Inc. Battery health-based power management
US10817307B1 (en) 2017-12-20 2020-10-27 Apple Inc. API behavior modification based on power source health
US11509949B2 (en) * 2019-09-13 2022-11-22 Disney Enterprises, Inc. Packager for segmenter fluidity
US11792472B2 (en) * 2019-09-18 2023-10-17 Wayne Fueling Systems Llc Schedule-based uninterrupted buffering and streaming
US11223665B2 (en) * 2019-09-25 2022-01-11 Disney Enterprises, Inc. Media content system for transferring a playback marker between network-connected playback devices
CN113038245B (zh) * 2019-12-24 2023-07-21 瑞昱半导体股份有限公司 多媒体内容播放装置与多媒体内容播放方法
CN111277864B (zh) * 2020-02-18 2021-09-10 北京达佳互联信息技术有限公司 直播数据的编码方法、装置、流转系统及电子设备
US11140204B1 (en) * 2020-04-03 2021-10-05 Dish Network L.L.C. Media delivery notification data ingestion and display
US11570419B2 (en) * 2020-08-24 2023-01-31 T-Mobile Usa, Inc. Telematics and environmental data of live events in an extended reality environment
US11270666B1 (en) * 2020-10-02 2022-03-08 Dell Products L.P. Synchronizing preferences between multiple displays
US11595502B2 (en) * 2020-10-15 2023-02-28 Pensando Systems Inc. Methods and systems for layer 7 hardware assist and CPU task offloads
US11308756B1 (en) * 2020-11-23 2022-04-19 Adrenalineip Parallel streaming
TWI797626B (zh) * 2020-12-04 2023-04-01 姊弟投資股份有限公司 可應用於多媒體播放平台的多媒體系統及其方法
TWI733629B (zh) * 2020-12-04 2021-07-11 姊弟投資股份有限公司 可應用於多媒體播放平台的多媒體系統及其方法
US11520848B2 (en) * 2021-01-06 2022-12-06 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP
US20230118415A1 (en) * 2021-10-20 2023-04-20 Apple Inc. Systems and methods of using a media bit rate curve for streaming bit rate adaption
US11695815B1 (en) * 2022-12-06 2023-07-04 CodeShop, B.V. Method and system for redundant media presentation generation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW544579B (en) * 2000-12-07 2003-08-01 Sandisk Corp System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks, or other media
US20040003268A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
CN100345157C (zh) * 1999-09-17 2007-10-24 国际商业机器公司 数字内容的播放器、其识别方法及跟踪其使用的系统
US20080109888A1 (en) * 2006-09-14 2008-05-08 Shah Ullah Methods and systems for securing content projected to a nearby device
CN101218587A (zh) * 2005-07-05 2008-07-09 皇家飞利浦电子股份有限公司 用于数字内容保护的方法、系统与设备
CN101268651A (zh) * 2005-04-22 2008-09-17 微软公司 用于流式多媒体内容的权限管理系统

Family Cites Families (299)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4917390A (en) 1988-11-25 1990-04-17 Tetrafluor, Inc. Hydraulic seal assembly
US5065396A (en) 1990-01-02 1991-11-12 At&T Bell Laboratories Inverse multiplexer and demultiplexer techniques
US5719786A (en) 1993-02-03 1998-02-17 Novell, Inc. Digital media data stream network management system
US5361259A (en) 1993-02-19 1994-11-01 American Telephone And Telegraph Company Wide area network (WAN)-arrangement
EP0614317A3 (en) 1993-03-05 1995-01-25 Sony Corp Decoding video signals.
US5550982A (en) 1993-06-24 1996-08-27 Starlight Networks Video application server
US5610841A (en) 1993-09-30 1997-03-11 Matsushita Electric Industrial Co., Ltd. Video server
US5524110A (en) 1993-11-24 1996-06-04 Intel Corporation Conferencing over multiple transports
US5493514A (en) 1993-11-24 1996-02-20 Intel Corporation Process, apparatus, and system for encoding and decoding video signals
US5579239A (en) 1994-02-16 1996-11-26 Freeman; Mitchael C. Remote video transmission system
US5434860A (en) 1994-04-20 1995-07-18 Apple Computer, Inc. Flow control for real-time data streams
US5819034A (en) 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
US5583859A (en) 1994-08-30 1996-12-10 Bell Communications Research, Inc. Data labeling technique for high performance protocol processing
US5613032A (en) 1994-09-02 1997-03-18 Bell Communications Research, Inc. System and method for recording, playing back and searching multimedia events wherein video, audio and text can be searched and retrieved
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5821986A (en) 1994-11-03 1998-10-13 Picturetel Corporation Method and apparatus for visual communications in a scalable network environment
EP0720374A1 (en) 1994-12-30 1996-07-03 Daewoo Electronics Co., Ltd Apparatus for parallel decoding of digital video signals
US6181867B1 (en) 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US6138147A (en) 1995-07-14 2000-10-24 Oracle Corporation Method and apparatus for implementing seamless playback of continuous media feeds
US5778374A (en) 1995-08-03 1998-07-07 International Business Machines Corporation Compressed common file directory for mass storage systems
BR9610415A (pt) 1995-09-01 1999-09-14 Starguide Digital Networks Inc Sistema de distribuição e produção de arquivos de áudio
JPH0981497A (ja) 1995-09-12 1997-03-28 Toshiba Corp 実時間ストリームサーバ並びに実時間ストリームデータの格納方法および転送方法
IL115263A (en) 1995-09-12 1999-04-11 Vocaltec Ltd System and method for distributing multi-media presentations in a computer network
US5835495A (en) 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
US5933603A (en) 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
US5751951A (en) 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
FI99063C (fi) 1995-11-07 1997-09-25 Nokia Oy Ab Multimediavastaanotto digitaalisessa yleisradiojärjestelmässä
DE69632011T2 (de) 1995-11-10 2005-02-03 Kabushiki Kaisha Toshiba, Kawasaki Dateientransferverfahren, Verfahren für ein Dateien anforderndes Benutzergerät und Dateienanbietergerät
US5627936A (en) 1995-12-21 1997-05-06 Intel Corporation Apparatus and method for temporal indexing of multiple audio, video and data streams
US5805823A (en) 1996-01-30 1998-09-08 Wayfarer Communications, Inc. System and method for optimal multiplexed message aggregation between client applications in client-server networks
US5841432A (en) 1996-02-09 1998-11-24 Carmel; Sharon Method and system of building and transmitting a data file for real time play of multimedia, particularly animation, and a data file for real time play of multimedia applications
IL117133A (en) 1996-02-14 1999-07-14 Olivr Corp Ltd Method and system for providing on-line virtual reality movies
JP2000504906A (ja) 1996-02-14 2000-04-18 オリブル コーポレイション リミティド マルチメディアデータのプログレッシブ非同期伝送方法及びシステム
JP3258236B2 (ja) 1996-05-28 2002-02-18 株式会社日立製作所 マルチメディア情報転送システム
DE69725533T2 (de) 1996-08-30 2004-05-19 Matsushita Electric Industrial Co., Ltd., Kadoma Digitales Rundfunksystem, digitale Rundfunkvorrichtung und Empfänger dafür
US5867230A (en) 1996-09-06 1999-02-02 Motorola Inc. System, device, and method for streaming a multimedia file encoded at a variable bitrate
US5928330A (en) 1996-09-06 1999-07-27 Motorola, Inc. System, device, and method for streaming a multimedia file
US5819160A (en) 1996-09-18 1998-10-06 At&T Corp Programmable radio subscription system for receiving selectively defined information
US20030093790A1 (en) 2000-03-28 2003-05-15 Logan James D. Audio and video program recording, editing and playback systems using metadata
US5953506A (en) 1996-12-17 1999-09-14 Adaptive Media Technologies Method and apparatus that provides a scalable media delivery system
JP2001509280A (ja) 1997-01-29 2001-07-10 インシグマ テクノロジーズ リミテッド メディアファイルを通信網経由で転送する方法
JPH10229420A (ja) 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
US6292834B1 (en) 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6151632A (en) 1997-03-14 2000-11-21 Microsoft Corporation Method and apparatus for distributed transmission of real-time multimedia information
US6032193A (en) 1997-03-20 2000-02-29 Niobrara Research And Development Corporation Computer system having virtual circuit address altered by local computer to switch to different physical data link to increase data transmission bandwidth
EP1021917A4 (en) 1997-03-31 2002-05-15 Broadband Associates METHOD AND SYSTEM FOR DELIVERING A DISPLAY ON A NETWORK
US5974503A (en) 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US5892915A (en) 1997-04-25 1999-04-06 Emc Corporation System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
US6014694A (en) 1997-06-26 2000-01-11 Citrix Systems, Inc. System for adaptive video/audio transport over a network
US5999529A (en) 1997-09-16 1999-12-07 Nortel Networks Corporation Method and apparatus for interworking ATM adaptation layer formats
US5996015A (en) 1997-10-31 1999-11-30 International Business Machines Corporation Method of delivering seamless and continuous presentation of multimedia data files to a target device by assembling and concatenating multimedia segments in memory
US20020002039A1 (en) * 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
US6385596B1 (en) 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6377995B2 (en) 1998-02-19 2002-04-23 At&T Corp. Indexing multimedia communications
IL123819A (en) 1998-03-24 2001-09-13 Geo Interactive Media Group Lt Network media streaming
EP0984584A1 (en) 1998-09-04 2000-03-08 America Online, Inc. Internet multimedia broadcast system
TW463165B (en) 1998-09-07 2001-11-11 Thomson Brandt Gmbh Method for addressing a bitstream to be recorded or being recorded on a storage medium
US6847778B1 (en) 1999-03-30 2005-01-25 Tivo, Inc. Multimedia visual progress indication system
US6262724B1 (en) 1999-04-15 2001-07-17 Apple Computer, Inc. User interface for presenting media information
JP2001036423A (ja) 1999-05-20 2001-02-09 Yamaha Corp 番組再生システム及び番組再生方法
KR100655034B1 (ko) 1999-05-28 2006-12-07 마츠시타 덴끼 산교 가부시키가이샤 반도체 메모리카드, 재생장치, 기록장치, 재생방법, 기록방법
RU2272318C2 (ru) 1999-08-03 2006-03-20 Вижионартс Инк. Считываемый компьютером носитель записи, на котором записан файл изображения, устройство для изготовления носителя записи, носитель, на котором записана программа для создания файла изображения, устройство для передачи файла изображения, устройство для обработки файла изображения и носитель, на котором записана программа обработки файла изображения
JP3522635B2 (ja) 1999-08-03 2004-04-26 ヴィジョンアーツ株式会社 画像ファイルを記録したコンピュータ読み取り可能な記録媒体、この記録媒体の作成装置、画像ファイル作成プログラムを記録した媒体、画像ファイル送信装置、画像ファイル処理装置、画像ファイル処理プログラムを記録した媒体
US8341662B1 (en) 1999-09-30 2012-12-25 International Business Machine Corporation User-controlled selective overlay in a streaming media
US6625750B1 (en) 1999-11-16 2003-09-23 Emc Corporation Hardware and software failover services for a file server
WO2001038993A1 (en) 1999-11-29 2001-05-31 Binary Broadcasting Corporation Secure digital music distribution
US20020029166A1 (en) 1999-12-08 2002-03-07 Qualcomm Incorporated E-mail software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US20070038728A1 (en) 1999-12-08 2007-02-15 Jacobs Paul E A system for controlling the distribution of advertisements to informational client devices using a playlist
US20070005428A1 (en) 1999-12-08 2007-01-04 Jacobs Paul E Method for distributing advertisements to client devices having e-mail software installed including multiple advertisement operational modes
EP1113642A3 (en) 1999-12-16 2004-04-14 Actv, Inc. Enhanced video programming system and method using a local host for network communication
JP3348067B2 (ja) 2000-02-29 2002-11-20 株式会社電通 広告の再生を制御する方法および装置
US7113902B2 (en) 2000-03-02 2006-09-26 Texas Instruments Incorporated Data processing condition detector with table lookup
US6721489B1 (en) 2000-03-08 2004-04-13 Phatnoise, Inc. Play list manager
US7187947B1 (en) 2000-03-28 2007-03-06 Affinity Labs, Llc System and method for communicating selected information to an electronic device
US7725812B1 (en) 2000-03-31 2010-05-25 Avid Technology, Inc. Authoring system for combining temporal and nontemporal digital media
US7260564B1 (en) 2000-04-07 2007-08-21 Virage, Inc. Network video guide and spidering
EP1158799A1 (en) 2000-05-18 2001-11-28 Deutsche Thomson-Brandt Gmbh Method and receiver for providing subtitle data in several languages on demand
US7756743B1 (en) 2000-06-21 2010-07-13 Clubcom, Llc System and method for branding a facility
US7017189B1 (en) * 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US6925495B2 (en) 2000-07-13 2005-08-02 Vendaria Media, Inc. Method and system for delivering and monitoring an on-demand playlist over a network using a template
KR20040041082A (ko) 2000-07-24 2004-05-13 비브콤 인코포레이티드 멀티미디어 북마크와 비디오의 가상 편집을 위한 시스템및 방법
US7471834B2 (en) 2000-07-24 2008-12-30 Vmark, Inc. Rapid production of reduced-size images from compressed video streams
US7689510B2 (en) * 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US7218837B2 (en) 2000-09-25 2007-05-15 Victor Company Of Japan, Ltd. Program-signal recording and reproducing apparatus
US6834297B1 (en) 2000-10-06 2004-12-21 Redline Networks, Inc. Web resource transfer acceleration system and method
US20020046315A1 (en) 2000-10-13 2002-04-18 Interactive Objects, Inc. System and method for mapping interface functionality to codec functionality in a portable audio device
US20020083182A1 (en) 2000-12-18 2002-06-27 Alvarado Juan C. Real-time streamed data download system and method
MY147018A (en) * 2001-01-04 2012-10-15 Thomson Licensing Sa A method and apparatus for acquiring media services available from content aggregators
US20080059532A1 (en) 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
US7640320B2 (en) 2001-01-18 2009-12-29 Yahoo! Inc. Method and system for managing digital content, including streaming media
US20020147634A1 (en) 2001-01-31 2002-10-10 Ronald Jacoby System for dynamic generation of online streaming media advertisements
US7308717B2 (en) * 2001-02-23 2007-12-11 International Business Machines Corporation System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
US20030061305A1 (en) 2001-03-30 2003-03-27 Chyron Corporation System and method for enhancing streaming media delivery and reporting
US8275709B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US20090178003A1 (en) * 2001-06-20 2009-07-09 Recent Memory Incorporated Method for internet distribution of music and other streaming content
US6990497B2 (en) 2001-06-26 2006-01-24 Microsoft Corporation Dynamic streaming media management
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
KR100913844B1 (ko) 2001-09-10 2009-08-26 톰슨 라이센싱 디지털 오디오 플레이어에서 사용자 인터페이스 및네비게이션 작업을 지원하기 위한 m3u 파일 포맷의 확장
MXPA04002235A (es) 2001-09-10 2004-06-29 Thomson Licensing Sa Metodo y aparato para crear una lista de reproduccion con indice en un reproductor de datos de audio.
US7721103B2 (en) * 2001-09-18 2010-05-18 Media Rights Technologies, Inc. System and method for providing global media content delivery
US7343487B2 (en) 2001-10-10 2008-03-11 Nokia Corporation Datacast distribution system
US7334016B2 (en) 2001-11-15 2008-02-19 Globalview Software Inc. Data transfer system for providing non-buffered, real-time streaming data users
US7260555B2 (en) * 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US7039784B1 (en) 2001-12-20 2006-05-02 Info Value Computing Inc. Video distribution system using dynamic disk load balancing with variable sub-segmenting
AU2003202815A1 (en) * 2002-01-12 2003-07-24 Coretrust, Inc. Method and system for the information protection of digital content
US7159174B2 (en) 2002-01-16 2007-01-02 Microsoft Corporation Data preparation for media browsing
US7096234B2 (en) 2002-03-21 2006-08-22 Microsoft Corporation Methods and systems for providing playlists
JP2003288290A (ja) 2002-03-28 2003-10-10 Nippon Telegr & Teleph Corp <Ntt> ファイル配信方法
US20030186645A1 (en) 2002-04-02 2003-10-02 Robert Mori Method for marking a portion of a media broadcast for later use
US6868439B2 (en) 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US7020710B2 (en) 2002-06-21 2006-03-28 Thomson Licensing Streaming media delivery on multicast networks for network and server bandwidth minimization and enhanced personalization
US7272296B2 (en) 2002-07-24 2007-09-18 Thomson Licensing Navigating to a particular program or specific time increment in a personal video recorder
US7917557B2 (en) 2002-09-05 2011-03-29 Koninklijke Philips Electronics N.V. Method and devices for creating a second playlist based on a first playlist
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7668842B2 (en) 2002-10-16 2010-02-23 Microsoft Corporation Playlist structure for large playlists
US7054888B2 (en) 2002-10-16 2006-05-30 Microsoft Corporation Optimizing media player memory during rendering
JP4355659B2 (ja) 2002-10-21 2009-11-04 パナソニック株式会社 データ処理装置
US20040086120A1 (en) 2002-11-06 2004-05-06 Akins Glendon L. Selecting and downloading content to a portable player
US6812994B2 (en) 2002-12-04 2004-11-02 Eastman Kodak Company Streamlined methods and systems for scheduling and handling digital cinema content in a multi-theatre environment
KR100520115B1 (ko) 2002-12-27 2005-10-10 삼성전자주식회사 플레이리스트 관리 장치 및 방법
CA2457602A1 (en) 2003-02-19 2004-08-19 Impatica Inc. Method of synchronizing streams of real time data
US7383229B2 (en) * 2003-03-12 2008-06-03 Yahoo! Inc. Access control and metering system for streaming media
US7287083B1 (en) 2003-03-20 2007-10-23 Novell, Inc. Computing environment failover in a branch office environment
US7349663B1 (en) 2003-04-24 2008-03-25 Leave A Little Room Foundation Internet radio station and disc jockey system
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US20040250293A1 (en) 2003-06-09 2004-12-09 Sony Corporation System and method for providing alternate program services
US20040260835A1 (en) 2003-06-23 2004-12-23 Welk Douglas L. Automotive internet radio system
US20050005025A1 (en) 2003-07-04 2005-01-06 Michael Harville Method for managing a streaming media service
KR20060028483A (ko) 2003-07-04 2006-03-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 배포 네트워크를 통해 멀티미디어 컨텐트를브로드캐스팅하는 방법
US7290058B2 (en) 2003-07-26 2007-10-30 Innomedia Pte Video mail server with reduced frame loss
KR20050015937A (ko) 2003-08-05 2005-02-21 삼성전자주식회사 정보 저장 매체, 그 재생 장치 및 방법
US20130097302A9 (en) 2003-10-01 2013-04-18 Robert Khedouri Audio visual player apparatus and system and method of content distribution using the same
US7673062B2 (en) * 2003-11-18 2010-03-02 Yahoo! Inc. Method and apparatus for assisting with playback of remotely stored media files
US8544050B2 (en) 2003-12-30 2013-09-24 Aol Inc. Rule-based playlist engine
US7949726B2 (en) 2004-03-12 2011-05-24 Ocean And Coastal Environmental Sensing, Inc. System and method for delivering information on demand
US10200504B2 (en) * 2007-06-12 2019-02-05 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
WO2005091161A1 (en) 2004-03-22 2005-09-29 Nitgen Technologies Inc. A streaming based contents distribution network system and methods for splitting, merging and retrieving files
JP2005323325A (ja) 2004-03-26 2005-11-17 Nec Corp 放送映像音声データ記録方法、装置、および記録媒体
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US7720983B2 (en) 2004-05-03 2010-05-18 Microsoft Corporation Fast startup for streaming media
JP2005332274A (ja) 2004-05-20 2005-12-02 Toshiba Corp 動画像中のオブジェクトに関するメタデータストリームのデータ構造、検索方法及び再生方法
US20080288536A1 (en) 2004-07-23 2008-11-20 Commonwealth Scientific And Industrial Research Organisation Method and System for Integrating Browsing Histories with Media Playlists
US20110214061A1 (en) * 2010-03-01 2011-09-01 Ashley Edwardo King User Interface for Managing Client Devices
JP4332089B2 (ja) 2004-08-19 2009-09-16 ソニー株式会社 再生装置、再生方法および再生プログラム、ならびに、記録媒体
US20060075428A1 (en) 2004-10-04 2006-04-06 Wave7 Optics, Inc. Minimizing channel change time for IP video
JP2007065928A (ja) 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
US7412149B2 (en) 2004-10-28 2008-08-12 Bitband Technologies, Ltd. Trick mode generation in video streaming
JP2008523539A (ja) 2004-12-13 2008-07-03 ミュビー テクノロジーズ ピーティーイー エルティーディー 媒体記録を自動的に編集する方法
US7490775B2 (en) 2004-12-30 2009-02-17 Aol Llc, A Deleware Limited Liability Company Intelligent identification of multimedia content for synchronization
US7664872B2 (en) 2005-01-05 2010-02-16 Divx, Inc. Media transfer protocol
US7434154B2 (en) 2005-01-07 2008-10-07 Dell Products L.P. Systems and methods for synchronizing media rendering
US20070214182A1 (en) 2005-01-15 2007-09-13 Outland Research, Llc Establishment-based media and messaging service
KR100567157B1 (ko) 2005-02-11 2006-04-04 비디에이터 엔터프라이즈 인크 모바일 환경에서의 플레이리스트를 통한 다수 파일의 스트리밍 방법 및 그 시스템
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
JP4593618B2 (ja) * 2005-03-08 2010-12-08 パナソニック株式会社 パケット送信装置
US8176565B2 (en) 2005-04-15 2012-05-08 Sony Corporation Information processing apparatus, information processing method, and computer program
WO2006115060A1 (ja) 2005-04-22 2006-11-02 Sony Corporation 記録装置および記録方法、再生装置および再生方法、プログラム、並びに記録媒体
US8321041B2 (en) 2005-05-02 2012-11-27 Clear Channel Management Services, Inc. Playlist-based content assembly
CA2605239A1 (en) 2005-05-02 2006-11-09 University Of Virginia Patent Foundation Systems, devices, and methods for interpreting movement
US7686215B2 (en) 2005-05-21 2010-03-30 Apple Inc. Techniques and systems for supporting podcasting
JP4731214B2 (ja) 2005-06-17 2011-07-20 ソニー エリクソン モバイル コミュニケーションズ, エービー 携帯端末装置、コンテンツ配信装置、コンテンツ配信システム、及び通信プログラム
US20080005348A1 (en) 2005-06-24 2008-01-03 David Kosiba System and method for enabling playlist navigation of digital multimedia content
US7519681B2 (en) * 2005-06-30 2009-04-14 Intel Corporation Systems, methods, and media for discovering remote user interface applications over a network
GB0514492D0 (en) * 2005-07-14 2005-08-17 Ntnu Technology Transfer As Secure media streaming
CN101223778B (zh) 2005-07-18 2012-11-07 汤姆森许可贸易公司 使用元数据来处理多个视频流的方法和设备
US7680824B2 (en) 2005-08-11 2010-03-16 Microsoft Corporation Single action media playlist generation
US20070055743A1 (en) 2005-09-02 2007-03-08 Pirtle Ross M Remote control media player
US20070174147A1 (en) 2005-12-30 2007-07-26 Realnetworks System and method for updating a playlist based upon ratings
JP2007115293A (ja) 2005-10-17 2007-05-10 Toshiba Corp 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法
JP2007158414A (ja) 2005-11-30 2007-06-21 Matsushita Electric Ind Co Ltd コンテンツ配信システム及びコンテンツ仲介サーバ
TW200723081A (en) 2005-12-13 2007-06-16 Universal Scient Ind Co Ltd Circular multimedia playback progress indicator and method of indicating signals thereof
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
KR100724950B1 (ko) * 2006-03-09 2007-06-04 삼성전자주식회사 Dlna 시스템에서 ieee1394 인터페이스를 사용하는 장치 간의 콘텐츠 공유 방법
WO2007111312A1 (ja) 2006-03-28 2007-10-04 Pioneer Corporation コンテンツ配信システム、サーバ装置、コンテンツ配信方法およびプログラム
US7730420B1 (en) 2006-05-03 2010-06-01 The Weather Channel, Inc. Systems and methods for creating a playlist
US20070282905A1 (en) 2006-06-06 2007-12-06 Sony Ericsson Mobile Communications Ab Communication terminals and methods for prioritizing the playback of distributed multimedia files
WO2008094279A1 (en) 2006-06-06 2008-08-07 Cts Media A method and system for dynamic management of multiple media data streams
BRPI0621786A2 (pt) 2006-06-27 2011-12-20 Thomson Licensing solicitação de conteúdo entre parcerias com desempenho monitorado
US7917963B2 (en) * 2006-08-09 2011-03-29 Antenna Vaultus, Inc. System for providing mobile data security
US20080133603A1 (en) * 2006-08-28 2008-06-05 Lawrence Fischer System and method for media publishing
WO2008030333A2 (en) * 2006-09-01 2008-03-13 Rowe International Corporation Automatic music management methods and systems
KR20080020868A (ko) 2006-09-01 2008-03-06 삼성전자주식회사 스트리밍 컨텐츠 기록과 재생에 관한 장치 및 방법
JP4694448B2 (ja) 2006-09-13 2011-06-08 アルパイン株式会社 オーディオ装置
US20080091717A1 (en) 2006-09-27 2008-04-17 Zachary Adam Garbow Generation of Collaborative Playlist Based Upon Musical Preference Data from Multiple Digital Media Players
KR100928090B1 (ko) 2006-10-30 2009-11-23 주식회사 한랭크닷컴 웹상의 텍스트를 음악으로 재생하는 저작 시스템 및 방법
US9544259B2 (en) * 2006-11-08 2017-01-10 Open Invention Network, Llc Apparatus and method for dynamic streaming of multimedia files
WO2008058529A2 (de) 2006-11-17 2008-05-22 Faurecia Autositze Gmbh Fahrzeugsitz
US8176058B2 (en) 2006-11-30 2012-05-08 Yahoo! Inc. Method and systems for managing playlists
US9124650B2 (en) * 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US8219636B2 (en) 2006-12-18 2012-07-10 Verizon Patent And Licensing Inc. Networked media recording
WO2008081415A2 (en) 2006-12-28 2008-07-10 France Telecom Media file server
WO2008085205A2 (en) 2006-12-29 2008-07-17 Prodea Systems, Inc. System and method for providing network support services and premises gateway support infrastructure
US20080256129A1 (en) 2006-12-31 2008-10-16 Robert Salinas Method and System of Creating Media Playlists and Sending to Mobile Devices
US20080159715A1 (en) 2007-01-03 2008-07-03 Microsoft Corporation Contextual linking and out-of-band delivery of related online content
US20080209066A1 (en) 2007-01-24 2008-08-28 Spio Mary A Method and apparatus for providing continuous playback of media programs at a remote end user computer
US20100281042A1 (en) * 2007-02-09 2010-11-04 Novarra, Inc. Method and System for Transforming and Delivering Video File Content for Mobile Devices
JP4389179B2 (ja) 2007-02-27 2009-12-24 ブラザー工業株式会社 メディア接続装置、メディア接続システム、メディア接続システムの操作方法
US10382514B2 (en) 2007-03-20 2019-08-13 Apple Inc. Presentation of media in an application
JP2008251082A (ja) 2007-03-30 2008-10-16 Hitachi Ltd 録画システムおよび録画再生方法
US20080250319A1 (en) 2007-04-05 2008-10-09 Research In Motion Limited System and method for determining media playback behaviour in a media application for a portable media device
US20080271076A1 (en) 2007-04-27 2008-10-30 General Instrument Corporation Method and Apparatus for Switching Between Edge Device Resources in an SDV System
BRPI0811833B1 (pt) * 2007-07-02 2020-12-29 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V aparelho e método para armazenamento e leitura de um arquivo tendo um container de dados de mídia e um container de metadados
EP2179394A4 (en) 2007-07-03 2012-05-30 3M Innovative Properties Co SYSTEM AND METHOD FOR GIVING CONTENT CONTENT TO SCHEDULE SAMPLES FOR MEASURING EFFECTS OF THE CONTENTS PRESENTED
US7769829B1 (en) 2007-07-17 2010-08-03 Adobe Systems Inc. Media feeds and playback of content
TW200910864A (en) 2007-08-22 2009-03-01 Darling Digital Co Ltd System and method for transmitting audio/video stream in a point-to-point manner
DE102007041143B4 (de) 2007-08-30 2010-04-08 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum Analysieren von gleichzeitig übertragenen, verschlüsselten Datenströmen in IP-Netzwerken
US20120162351A1 (en) * 2007-09-19 2012-06-28 Feldman Michael R Multimedia, multiuser system and associated methods
WO2009046435A1 (en) 2007-10-05 2009-04-09 Aharon Mizrahi System and method for enabling search of content
CN101448009B (zh) 2007-11-27 2013-02-20 鸿富锦精密工业(深圳)有限公司 音乐同步播放系统、方法及音乐播放器
US9734198B2 (en) 2007-11-30 2017-08-15 Red Hat, Inc. Query processing
US8543622B2 (en) * 2007-12-07 2013-09-24 Patrick Giblin Method and system for meta-tagging media content and distribution
EP2235642A4 (en) 2007-12-13 2016-08-03 Highwinds Holdings Inc CONTENT DELIVERY NETWORK
WO2009079065A1 (en) 2007-12-14 2009-06-25 Clear Channel Management Services, L.P. Dynamic audio file and method of use
US8364296B2 (en) 2008-01-02 2013-01-29 International Business Machines Corporation Method and system for synchronizing playing of an ordered list of auditory content on multiple playback devices
US8677430B2 (en) * 2008-01-04 2014-03-18 Apple, Inc. Content rental system
WO2009097492A1 (en) 2008-01-30 2009-08-06 Azuki Systems, Inc. Media navigation system
US8776161B2 (en) * 2008-02-12 2014-07-08 Ciena Corporation Systems and methods for video processing in network edge devices
CN101990766B (zh) 2008-03-07 2013-04-03 日本胜利株式会社 服务器装置、终端装置、再生装置
US8239889B2 (en) * 2008-03-10 2012-08-07 Hulu, LLC Method and apparatus for collecting viewer survey data and for providing compensation for same
WO2012047673A1 (en) * 2010-09-27 2012-04-12 Hulu Llc Method and apparatus for providing a user-editable playlist of advertisements
US20090249222A1 (en) 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
JP2011523727A (ja) 2008-03-31 2011-08-18 パケットビデオ コーポレーション ネットワークでメディアを管理、制御及び/又はレンダリングするシステム及び方法
US20090259711A1 (en) * 2008-04-11 2009-10-15 Apple Inc. Synchronization of Media State Across Multiple Devices
US20100040349A1 (en) 2008-05-01 2010-02-18 Elliott Landy System and method for real-time synchronization of a video resource and different audio resources
US8275880B2 (en) 2008-05-06 2012-09-25 Microsoft Corporation Media content programming, delivery, and consumption
US7921222B2 (en) * 2008-05-06 2011-04-05 Vantrix Corporation Method and system for fast channel switching using standard RTSP messages
US7979570B2 (en) 2008-05-12 2011-07-12 Swarmcast, Inc. Live media delivery over a packet-based computer network
US8644675B2 (en) 2008-06-06 2014-02-04 Deluxe Digital Studios, Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
KR20100000335A (ko) 2008-06-24 2010-01-06 삼성전자주식회사 유저 인터페이스, 컨텐츠 내비게이션 방법 및 컨텐츠 재생장치와 저장 매체
US8452855B2 (en) 2008-06-27 2013-05-28 Yahoo! Inc. System and method for presentation of media related to a context
US8375137B2 (en) 2008-07-22 2013-02-12 Control4 Corporation System and method for streaming audio using a send queue
US10007668B2 (en) 2008-08-01 2018-06-26 Vantrix Corporation Method and system for triggering ingestion of remote content by a streaming server using uniform resource locator folder mapping
US8473628B2 (en) 2008-08-29 2013-06-25 Adobe Systems Incorporated Dynamically altering playlists
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
TWI395487B (zh) 2008-10-02 2013-05-01 Ind Tech Res Inst 應用於網狀點對點串流系統之播放延遲時間之調整方法及其電腦程式產品
EP2175577A3 (en) 2008-10-09 2012-03-28 MMI Broadcasting Ltd. Apparatus and methods for broadcasting
US9788043B2 (en) * 2008-11-07 2017-10-10 Digimarc Corporation Content interaction methods and systems employing portable devices
US8527877B2 (en) 2008-11-25 2013-09-03 At&T Intellectual Property I, L.P. Systems and methods to select media content
US9060187B2 (en) 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
US8099476B2 (en) 2008-12-31 2012-01-17 Apple Inc. Updatable real-time or near real-time streaming
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
MX2011006973A (es) * 2008-12-31 2011-12-06 Apple Inc Transmision de flujos de datos en tiempo real o en tiempo casi real.
CN101465861B (zh) * 2009-01-16 2012-08-29 香港应用科技研究院有限公司 用于传输和/或接收媒体流的系统、方法和计算机编程产品
US8161137B2 (en) 2009-01-16 2012-04-17 At&T Intellectual Property I., L.P. Environment delivery network
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
US8026805B1 (en) * 2009-04-09 2011-09-27 Adobe Systems Incorporated Media tracker
US8429287B2 (en) 2009-04-29 2013-04-23 Rangecast Technologies, Llc Network audio distribution system and method
US9602864B2 (en) * 2009-06-08 2017-03-21 Time Warner Cable Enterprises Llc Media bridge apparatus and methods
US9195775B2 (en) * 2009-06-26 2015-11-24 Iii Holdings 2, Llc System and method for managing and/or rendering internet multimedia content in a network
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
EP2280521A1 (en) 2009-07-30 2011-02-02 Alcatel Lucent Method of switching media content for a mobile apparatus
WO2011020088A1 (en) * 2009-08-14 2011-02-17 Azuki Systems, Inc. Method and system for unified mobile content protection
WO2011022405A2 (en) 2009-08-17 2011-02-24 Akamai Technologies, Inc. Method and system for http-based stream delivery
US20110055876A1 (en) * 2009-08-26 2011-03-03 Lewis Holly Lynn Universal Entertainment Unification System
US8392600B2 (en) 2009-09-14 2013-03-05 Adobe Systems Incorporated Dynamic stream switch control
EP2478454A4 (en) * 2009-09-15 2015-07-29 Comcast Cable Comm Llc CONTROL PLANE ARCHITECTURE FOR MULTICAST BUFFER MEMORY FILLING
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
KR20110034820A (ko) * 2009-09-29 2011-04-06 엘지전자 주식회사 대화형 프로그램 가이드를 디스플레이하는 방법, 대화형 프로그램 가이드를 디스플레이하는 사용자 장치, 통합 데이터 가이드 정보 목록을 제공하는 방법 및 통합 데이터 가이드 정보 목록 제공 장치
US9237387B2 (en) 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
EP2486491A4 (en) 2009-10-06 2013-10-23 Unwired Planet Llc MANAGING NETWORK TRAFFIC BY EDITING A MANIFEST FILE AND / OR USING A INTERMEDIATE FLOW CONTROL
US10264029B2 (en) * 2009-10-30 2019-04-16 Time Warner Cable Enterprises Llc Methods and apparatus for packetized content delivery over a content delivery network
RU2622621C2 (ru) 2009-11-04 2017-06-16 Амотек Ко., Лтд. Система и способ для потоковой передачи воспроизводимого контента
KR101750048B1 (ko) 2009-11-13 2017-07-03 삼성전자주식회사 변속 재생 서비스 제공 방법 및 장치
KR101750049B1 (ko) 2009-11-13 2017-06-22 삼성전자주식회사 적응적인 스트리밍 방법 및 장치
EP2502143B1 (en) 2009-11-16 2019-10-30 Twentieth Century Fox Film Corporation Non-destructive file based mastering for multiple languages and versions
KR20110072728A (ko) 2009-12-23 2011-06-29 삼성전자주식회사 셋탑박스간 영상 이어 보기 서비스 제공 방법 및 장치
KR101636108B1 (ko) 2010-01-18 2016-07-04 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 미디어 스트림 분배를 위한 방법과 배열
US8972541B2 (en) * 2010-02-12 2015-03-03 Alcatel Lucent Method and apparatus providing access network aware presence to applications
EP2362375A1 (en) 2010-02-26 2011-08-31 Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. Apparatus and method for modifying an audio signal using harmonic locking
US8745388B2 (en) * 2010-03-22 2014-06-03 EchoStar Technologies, L.L.C. Systems and methods for securely streaming media content
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
US9043484B2 (en) * 2010-04-02 2015-05-26 Disney Enterprises, Inc. Streaming playback and dynamic ad insertion
US8954596B2 (en) * 2010-04-02 2015-02-10 Netflix, Inc. Dynamic virtual chunking of streaming media content
US9230126B2 (en) * 2010-05-04 2016-01-05 Verimatrix, Inc. Device authentication for secure key retrieval for streaming media players
US20110289067A1 (en) * 2010-05-18 2011-11-24 Rovi Technologies Corporation User interface for content browsing and selection in a search portal of a content system
JP2013528332A (ja) * 2010-05-27 2013-07-08 エスエムエスシイ・ホールディングス・エス エイ アール エル メディアストリームのシームレスな転送
US8555163B2 (en) 2010-06-09 2013-10-08 Microsoft Corporation Smooth streaming client component
AU2010202741B1 (en) 2010-06-30 2010-12-23 Adeia Media Holdings Llc Dynamic chunking for media streaming
US20130124994A1 (en) 2010-07-20 2013-05-16 Thomson Licensing Method for content presentation during trick mode operations
US8554938B2 (en) * 2010-08-31 2013-10-08 Millind Mittal Web browser proxy-client video system and method
US20120060100A1 (en) * 2010-09-03 2012-03-08 Packetvideo Corporation System and method for transferring media content
US20120233345A1 (en) 2010-09-10 2012-09-13 Nokia Corporation Method and apparatus for adaptive streaming
US10637891B2 (en) 2010-11-02 2020-04-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for media description delivery
EP2451151B1 (en) 2010-11-08 2014-08-13 Deluxe Media Inc. Method and apparatus for use in controlling the playback of contents related with a recorded content.
US20120117588A1 (en) * 2010-11-10 2012-05-10 Sony Network Entertainment International Llc Method and device to control iptv settings from a second display
EP2638682A4 (en) 2010-11-12 2014-07-23 Realnetworks Inc TRAFFIC MANAGEMENT IN ADAPTIVE STREAMING PROTOCOLS
US9510061B2 (en) 2010-12-03 2016-11-29 Arris Enterprises, Inc. Method and apparatus for distributing video
US9800941B2 (en) * 2011-01-03 2017-10-24 Curt Evans Text-synchronized media utilization and manipulation for transcripts
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US20120297423A1 (en) * 2011-02-18 2012-11-22 Aereo, Inc. Method and system for program and stream control of video to target device
US8798777B2 (en) 2011-03-08 2014-08-05 Packetvideo Corporation System and method for using a list of audio media to create a list of audiovisual media
US8849950B2 (en) 2011-04-07 2014-09-30 Qualcomm Incorporated Network streaming of video data using byte range requests
US8510555B2 (en) 2011-04-27 2013-08-13 Morega Systems Inc Streaming video server with virtual file system and methods for use therewith
US20120284804A1 (en) * 2011-05-02 2012-11-08 Authentec, Inc. System and method for protecting digital contents with digital rights management (drm)
US8543660B2 (en) * 2011-05-27 2013-09-24 Verizon Patent And Licensing Inc. Systems and methods for bridging and managing media content associated with separate media content networks
US9462024B2 (en) 2011-06-08 2016-10-04 Futurewei Technologies, Inc. System and method of media content streaming with a multiplexed representation
US8813246B2 (en) * 2012-04-23 2014-08-19 Inside Secure Method for playing digital contents protected with a DRM (digital right management) scheme and corresponding system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100345157C (zh) * 1999-09-17 2007-10-24 国际商业机器公司 数字内容的播放器、其识别方法及跟踪其使用的系统
TW544579B (en) * 2000-12-07 2003-08-01 Sandisk Corp System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks, or other media
US20040003268A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
CN101268651A (zh) * 2005-04-22 2008-09-17 微软公司 用于流式多媒体内容的权限管理系统
CN101218587A (zh) * 2005-07-05 2008-07-09 皇家飞利浦电子股份有限公司 用于数字内容保护的方法、系统与设备
US20080109888A1 (en) * 2006-09-14 2008-05-08 Shah Ullah Methods and systems for securing content projected to a nearby device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
APPLE, HTTP live streaming, IETF, May 1, 2009, http://tools.ietf.org/html/draft-pantos-http-live-streaming-00 *

Also Published As

Publication number Publication date
US10523726B2 (en) 2019-12-31
US8892691B2 (en) 2014-11-18
GB201105900D0 (en) 2011-05-18
WO2011127312A1 (en) 2011-10-13
CN102882845A (zh) 2013-01-16
GB2479455B (en) 2014-03-05
CN102238179B (zh) 2014-12-10
GB2479455A (en) 2011-10-12
CN102882845B (zh) 2016-07-13
HK1163979A1 (zh) 2012-09-14
US20150172343A1 (en) 2015-06-18
US20170078345A1 (en) 2017-03-16
US20110252118A1 (en) 2011-10-13
TW201202975A (en) 2012-01-16
CN102238179A (zh) 2011-11-09
US9531779B2 (en) 2016-12-27

Similar Documents

Publication Publication Date Title
TWI451279B (zh) 即時或接近即時串流傳輸之內容存取控制
TWI610567B (zh) 用於組態用於媒體之即時或接近即時串流傳輸的用戶端裝置之系統、方法及機器可讀媒體
TWI519145B (zh) 即時或幾乎即時之串流傳輸
TWI461043B (zh) 用於即時或接近即時串流傳輸之播放清單
TWI505676B (zh) 用於即時或接近即時串流傳輸之播放清單
JP5296859B2 (ja) リアルタイム又はほぼリアルタイムのストリーミング
EP2633665B1 (en) Real-time or near real-time streaming with compressed playlists
US8260877B2 (en) Variant streams for real-time or near real-time streaming to provide failover protection
WO2011123821A1 (en) Real-time or near real-time streaming
GB2510766A (en) Determining earliest and latest transmission times for playlist files having plural tags and universal resource indicators (URIs)