TW201301832A - 用於即時或接近即時串流傳輸之播放清單 - Google Patents

用於即時或接近即時串流傳輸之播放清單 Download PDF

Info

Publication number
TW201301832A
TW201301832A TW101119861A TW101119861A TW201301832A TW 201301832 A TW201301832 A TW 201301832A TW 101119861 A TW101119861 A TW 101119861A TW 101119861 A TW101119861 A TW 101119861A TW 201301832 A TW201301832 A TW 201301832A
Authority
TW
Taiwan
Prior art keywords
playlist
audio
file
program
media
Prior art date
Application number
TW101119861A
Other languages
English (en)
Other versions
TWI461043B (zh
Inventor
Roger Pantos
David Biderman
William May
christopher Flick
John Samuel Bushell
John Kevin Calhoun
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 TW201301832A publication Critical patent/TW201301832A/zh
Application granted granted Critical
Publication of TWI461043B publication Critical patent/TWI461043B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4856End-user interface for client configuration for language selection, e.g. for the menu or subtitles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks

Abstract

一內容串流傳輸系統(諸如一HTTP串流傳輸系統)可使用一變體音訊播放清單,該變體音訊播放清單識別不同音訊播放清單,諸如同一節目(諸如,由可與該變體音訊播放清單分開之一視訊播放清單規定之一視訊節目)之一個英語播放清單及一個西班牙語播放清單。一用戶端可使用該變體音訊播放清單選擇同一節目之一特定音訊內容,且可由該變體音訊播放清單中之用於替代音訊內容之替代URL之一集合之中的該變體音訊播放清單中之一個URL參照至該特定音訊內容。

Description

用於即時或接近即時串流傳輸之播放清單
本發明之實施例係關於資料傳輸技術。更特定言之,本發明之實施例係關於允許使用非串流傳輸協定(諸如,超文字傳送協定(HTTP))串流傳輸資料之技術。
本申請案依據35 U.S.C.§ 119(e)主張2011年6月3日申請之美國臨時申請案第61/493,324號之申請日期之權利。本美國專利申請案亦係關於各自以引用方式併入本文中之以下美國專利申請案:(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)。
內容之串流傳輸通常指代經常地自伺服器裝置傳輸且由用戶端裝置接收之多媒體內容。內容常常在其正由串流傳輸伺服器傳遞時向終端使用者呈現。名稱指代媒體之傳遞方法而不是指代媒體本身。
當前串流傳輸服務通常需要專門的伺服器以將「實況」內容散佈至終端使用者。在任何大規模部署中,此可造成巨大成本,且需要專門的技藝來設置及執行。此導致不盡如人意的可用於串流傳輸之內容庫。
在一實施例中,一HTTP串流傳輸系統可使用一變體播放清單,該變體播放清單識別用於亦具有用於視訊內容之播放清單之同一視訊節目之一不同音訊播放清單(諸如,英語之播放清單及西班牙語之另一播放清單以及中文之另一播放清單)。舉例而言,一實況體育事件(諸如一棒球比賽)可具有一自一伺服器傳輸至一用戶端之視訊播放清單,且同一實況體育事件可具有一變體音訊播放清單,該變體音訊播放清單規定對應於不同語言或者不同涵蓋觀點(coverage perspective)(諸如,廣播比賽之地方廣播台對廣播比賽之全國廣播台)之不同音訊播放清單。一用戶端裝置可自一伺服器下載一視訊播放清單且亦可下載該變體音訊播放清單,且接著,該用戶端裝置可自該變體音訊播放清單選擇適當音訊節目且下載對應於該選定適當音訊節目之適當音訊播放清單。在下載了該視訊播放清單及該選定 音訊播放清單兩者後,用戶端可開始同時(且在一實施例中,獨立地)處理兩個播放清單以在用戶端裝置處建立並呈現視訊及音訊。
在一實施例中,一用戶端裝置處之一方法可包括以下操作:接收一節目之一變體音訊播放清單,其中該變體音訊播放清單含有用於該節目之不同音訊內容之URL之一集合且URL之該集合中之該等URL中之每一者參照至對應於該節目之不同音訊內容中之一者之一音訊播放清單;選擇URL之該集合中之一第一URL以獲得不同音訊內容中之一者,該第一URL參照至一第一播放清單;傳輸參照至該第一播放清單之該第一URL;接收該第一播放清單;及處理該第一播放清單以擷取該節目之音訊內容。在一實施例中,該方法可進一步包括判定一音訊偏好,且此音訊偏好可由一使用者設定,諸如一使用者偏好中之一設定,且此音訊偏好可導致在該方法中選擇該第一URL。在一實施例中,該方法可進一步包括接收該節目之一視訊播放清單;該視訊播放清單可含有用於該節目之視訊內容之URL,且用於該視訊內容之該等URL中之每一者係與該視訊內容之一時間部分相關聯或參照至該視訊內容之一時間部分。此時間部分匹配由用戶端裝置在處理視訊播放清單時同時處理之音訊播放清單之時間部分。該方法亦可包括藉由使用該變體音訊播放清單選擇一不同音訊播放清單而在用於音訊內容之URL之間切換;在一實施例中,在該變體音訊播放清單中之音訊播放清單之間的該切換可獨立於該視訊播 放清單之播放執行。在一實施例中,該方法可進一步包括同時且獨立地處理該音訊播放清單及該視訊播放清單;例如,一為一音訊播放器之第一軟體組件可獨立於一處理該視訊播放清單之第二軟體組件處理該音訊播放清單。此外,在一實施例中,當一視訊下載模組可單獨地下載並處理視訊內容時,一音訊下載模組可獨立地下載並處理音訊內容。在一實施例中,經由該音訊播放清單擷取之音訊內容中之時間戳記及經由該視訊播放清單擷取之視訊內容中之時間戳記規定相同時間段。此外,參照至不同音訊內容之URL之該集合中之該等URL中之每一者包括規定相同時間段之時間戳記。
在本發明之一實施例中,一種由一伺服器裝置執行之方法可包括:回應於來自一裝置之一請求而傳輸含有用於一所請求之節目之不同音訊內容之URL之一集合的一變體音訊播放清單,其中URL之該集合中之該等URL中之每一者參照至對應於該節目之一不同音訊內容中之一者之一音訊播放清單。該方法可進一步包括自該裝置接收URL之該集合中之一第一URL且回應於接收到該第一URL將一第一音訊播放清單傳輸至該裝置,其中該第一URL參照至該第一音訊播放清單。
在本文中描述其他方法,且在本文中亦描述機器可讀非暫時性儲存媒體,且在本文中亦描述執行此等方法之系統。
在隨附圖式之圖中藉由實例且無限制地說明本發明,在該等圖中,類似參考標號指示類似元件。
在隨附圖式之圖中藉由實例且無限制地說明本發明,在該等圖中,類似參考標號指示類似元件。
在以下描述中,闡述眾多特定細節。然而,可在不具此等特定細節之情況下實踐本發明之實施例。在其他例子中,未詳細展示熟知電路、結構及技術以便不使對此描述之理解含糊不清。
本描述包括受版權保護之材料,諸如,圖形使用者介面影像之說明。版權之所有者(包括本發明之受讓人)特此保留對此等材料之權利(包括版權)。版權所有者不反對傳真複製專利文件或專利揭示案中之任一者(當其出現在專利及商標局檔案或記錄中時),但無論如何另外保留全部版權。版權Apple Inc.2009。
在一實施例中,本文中所描述之技術及組件可包括用以使用非串流傳輸協定(例如,HTTP)及其他技術(例如,動畫專家組(MPEG)串流)傳遞串流傳輸體驗之機制。舉例而言,可使用HTTP廣播「實況」音樂或體育事件、實況新聞、網路攝影機饋送等來提供接近即時串流傳輸體驗。在一實施例中,一協定可將傳入媒體資料分段成多個媒體檔案且將彼等分段媒體檔案儲存於伺服器上。該協定亦可建置一播放清單檔案,該播放清單檔案包括將用戶端引導至儲存於伺服器上之分段媒體檔案之統一資源識別符(URI)。當根據播放清單檔案播放該等分段媒體檔案時, 用戶端可為使用者提供「實況」事件之接近即時廣播。可以類似方式提供預先記錄之內容。
本描述之一態樣係關於使用提供一選定節目之音訊之變體的音訊播放清單;例如,一音訊播放清單可提供用於亦具有用於視訊內容之一播放清單之同一視訊節目的不同語言之不同播放清單,其中該視訊播放清單與不同語言之該等音訊播放清單分離。將在結合圖1圖9D提供某些背景資訊之後結合圖10圖15來描述此等態樣。
在一實施例中,伺服器可以動態方式將補充或替代媒體內容(例如,廣告、與體育事件相關之統計資料、在主要呈現外之額外媒體內容)引入至廣播事件中。舉例而言,在媒體事件之用戶端播放期間,伺服器可將額外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-STREAM-INF
EXT-X-ENDLIST下文將更詳細地分別描述此等標籤。儘管關於每一新標籤描述了特定格式及屬性,但亦可支援具有不同屬性、名稱、格式等之替代實施例。
EXT-X-TARGETDURATION標籤可指示將被添加至呈現之下一個媒體檔案之近似持續時間。該標籤可包括於播放檔案中且格式可為:#EXT-X-TARGETDURATION:<秒>其中「秒」指示媒體檔案之持續時間。在一實施例中,實際持續時間可稍微不同於該標籤所指示之目標持續時間。在一實施例中,指示區段之每個URI將與該區段之近 似持續時間相關聯;舉例而言,一區段之URI可以一指示該區段之近似持續時間之標籤作為前置碼。
播放清單檔案中之每一媒體檔案URI可具有唯一序號。在一實施例中,URI之序號(若存在)等於在其之前的URI之序號加上1。EXT-X-MEDIA-SEQUENCE標籤可指示出現在播放清單檔案中之第一URI之序號,且格式可為:#EXT-X-MEDIA-SEQUENCE:<數字>其中「數字」為URI之序號。若播放清單檔案不包括#EXT-X-MEDIA-SEQUENCE標籤,則可將播放清單中之第一URI之序號視為1。在一實施例中,序列編號可為非順序的;舉例而言,非順序之序列編號(諸如,1、5、7、17等)可使得難以預測序列中之下一個數字且此可幫助保護內容不被盜版。幫助保護內容之另一選項為在任何給定時間僅顯露播放清單之部分。
一些媒體檔案可能經加密。EXT-X-KEY標籤提供可用以解密在其之後的媒體檔案之資訊,且格式可為:#EXT-X-KEY:METHOD=<方法>[,URI=「<URI>」]方法參數規定加密方法,且URI參數(若存在)規定如何獲取密鑰。
NONE之加密方法指示未加密。可使用各種加密方法,例如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:<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:[屬性=值][,屬性=值]<URI>其中可使用以下屬性。屬性BANDWIDTH=<n>為表示為每秒位元數之串流位元速率之近似上限。屬性PROGRAM-ID=<i>為在播放清單檔案之範疇內唯一地識別特定呈現之數字。播放清單檔案可包括具有相同PROGRAM-ID之多個EXT-X-STREAM-INF URI以描述相同呈現之變體串流。將在本發明中進一步描述變體串流及變體播放清單(例如,參見圖9A至圖9D)。
前述標籤及屬性可由伺服器裝置使用以組織、傳輸且處理代表原始媒體內容之媒體檔案。用戶端裝置使用此資訊以按將即時或接近即時串流傳輸體驗(例如,觀看諸如音樂或體育事件之實況廣播)提供至用戶端裝置之使用者的方式重新組譯且呈現媒體檔案。
播放清單檔案中之每一媒體檔案URI識別為原始呈現(亦即,原始媒體內容)之一區段之媒體檔案。在一實施例中,每一媒體檔案經格式化為MPEG-2輸送串流、MPEG-2節目串流或MPEG-2音訊基本串流。可藉由規定CODEC來規定格式,且播放清單可藉由規定CODEC來規定格式。在一實施例中,呈現中之所有媒體檔案具有相同格式;然而,在其他實施例中,可支援多個格式。在一實施例中,輸送串流檔案應含有單一MPEG-2節目,且在每一檔案開始處應存在節目關聯表及節目映射表。含有視訊之檔案應具有至少一關鍵圖框及足以完全初始化視訊解碼器之資 訊。用戶端應準備好藉由選擇一合理子集來處置特定類型(例如,音訊或視訊)之多個播放軌。在一實施例中,用戶端應忽略輸送串流內之其不能辨識之私用串流。用於媒體檔案內之串流內及跨多個媒體檔案之對應串流之間的樣本之編碼參數應保持一致。然而,用戶端應在遇到編碼變更時處理該等編碼變更,例如,藉由縮放視訊內容以適應解析度變更。
圖2A為用於一或多個伺服器裝置的用以使用非串流傳輸協定支援媒體內容之技術之一實施例的流程圖。圖2A之實例係依據HTTP提供;然而,可以類似方式利用其他非串流傳輸協定。圖2A之實例係依據執行特定任務之單一伺服器提供。然而,可利用任何數目個伺服器。舉例而言,將媒體檔案提供至用戶端裝置之伺服器可為不同於將內容分段成多個媒體檔案之伺服器的裝置。
在操作200中,伺服器裝置接收待提供之內容。該內容可代表實況音訊及/或視訊(例如,體育事件、實況新聞、網路攝影機饋送)。該內容亦可代表預先記錄之內容(例如,已記錄之音樂會、訓練講座等)。可由伺服器根據此項技術中已知之任何格式及協定(串流傳輸或未串流傳輸)接收該內容。在一實施例中,內容係以MPEG-2串流之形式由伺服器接收;然而,亦可支援其他格式。
在操作210中,伺服器可接著暫時儲存該內容之至少部分。該內容或該內容之至少部分可暫時儲存於儲存裝置(例如,儲存區域網路中之硬碟等)上或記憶體中。或者, 可經由儲存媒體(例如,緊密光碟、隨身碟)接收內容,可自該儲存媒體將該內容傳送至儲存裝置或記憶體。在一實施例中,伺服器具有在必要時將該內容轉換成一或多個串流(例如,MPEG-2)之編碼器。此轉換可在不永久儲存接收之內容的情況下發生,且在一些實施例中,可能省略儲存操作210,或在其他實施例中,儲存操作210可能為一較長期儲存(例如,存檔儲存)。
在操作220中,將待提供之內容分段成多個媒體檔案。在一實施例中,伺服器將串流轉換成可使用標準網路伺服器散佈之分離且相異之媒體檔案(亦即,區段)。在一實施例中,伺服器在支援個別媒體檔案之有效解碼之點(例如,在諸如PES封包邊界及i圖框邊界的封包及關鍵圖框邊界上)將媒體串流分段。該等媒體檔案可為原始串流之具有近似相等持續時間之部分。伺服器亦為每一媒體檔案建立URI。此等URI允許用戶端裝置存取該等媒體檔案。
因為區段係使用固有地傳遞整個檔案之HTTP伺服器伺服,所以在可將媒體檔案伺服至用戶端之前,伺服器應具有可用的完整之分段媒體檔案。因此,用戶端可(在時間上)落後於廣播至少一媒體檔案長度。在一實施例中,媒體檔案大小係基於在落後時間與具有過多檔案之間的平衡。
在一實施例中,支援兩個作業階段類型(實況作業階段及事件作業階段)。對於實況作業階段,僅保留串流之固定大小部分。在一實施例中,自節目播放清單檔案移除過 時的內容媒體檔案,且可自伺服器移除過時的內容媒體檔案。第二類型之作業階段為事件作業階段,其中用戶端可調諧至廣播中之任一點(例如,自開頭開始、自中點開始)。此類型之作業階段可用於(例如)轉播(rebroadcast)。
在操作230中,將媒體檔案儲存於伺服器記憶體中。在操作230中之儲存檔案之前,媒體檔案可由安全特徵(諸如,加密)保護。將媒體檔案儲存為準備好使用由伺服器裝置上之網路伺服器應用程式支援(或由進行傳輸之另一裝置支援)之網路協定(例如,HTTP或HTTPS)傳輸之檔案。
在操作240中,產生一或多個播放清單檔案以指示應藉以組譯媒體檔案以重新建立原始內容之次序。播放清單檔案可利用擴展M3U標籤及本文中所描述之標籤來為用戶端裝置提供資訊以存取並重新組譯媒體檔案以在用戶端裝置上提供串流傳輸體驗。每一媒體檔案之URI係以將用以播放媒體檔案之次序包括於播放清單檔案中。伺服器亦可為播放清單檔案建立一或多個URI以允許用戶端裝置存取播放清單檔案。
在操作250中,可將播放清單檔案儲存於伺服器上。儘管在圖2A中按特定次序呈現媒體檔案及播放清單檔案之建立及儲存,但亦可能使用不同次序。舉例而言,可在建立或儲存媒體檔案之前建立播放清單檔案。作為另一實例,可在儲存播放清單檔案及媒體檔案之任一者之前建立播放清單檔案及媒體檔案。
若媒體檔案將被加密,則播放清單檔案可定義一URI,其允許經授權用戶端裝置獲取含有用以解密媒體檔案之加密密鑰之密鑰檔案。可使用安全連接(例如,HTTPS)傳輸加密密鑰。作為另一實例,可使用HTTPS傳輸播放清單檔案。作為又一實例,可按不可預測之次序配置媒體檔案,使得用戶端無法在無播放清單檔案之情況下重新建立串流。
若加密方法為AES-128,則可將(例如)AES-128 CBC加密應用於個別媒體檔案。在一實施例中,加密整個檔案。在一實施例中,通常不跨媒體檔案應用密碼區塊鏈結。如上所述,使用媒體檔案之序列作為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-128CBC解密應用於個別媒體檔案。解密整個檔案。在一實施例中,不跨媒體檔案應用密碼區塊鏈結。如上所述,可使用媒體檔案之序號作為初始化向量。
在操作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來擷取播放清單檔案。在一實施例中,播放清單檔案包括媒體檔案之變體串流之列表(listing)以按不同位元速率提供相同內容;換言之,單一播放清單檔案包括變體串流中之每一者之媒體檔案的URI。圖3B所示之實例使用此實施例。在另一實施例中,變體串流可由分離地提供至用戶端之各自按不同位元速率提供相同內容之多個相異播放清單檔案表示,且 變體播放清單可提供相異播放清單檔案中之每一者之URI。此允許用戶端裝置基於用戶端條件來選擇位元速率。
在操作375中,可由用戶端裝置擷取播放清單檔案。在操作380中,可將播放清單檔案儲存於用戶端裝置記憶體中。用戶端裝置可基於當前網路連接速度在操作385中選擇待使用之位元速率。在操作390中,利用包括於對應於選定位元速率之播放清單檔案中之URI向伺服器請求媒體檔案。可將擷取之媒體檔案儲存於用戶端裝置記憶體中。在操作394中,由用戶端裝置利用媒體檔案提供輸出,且用戶端裝置判定是否改變位元速率。
在一實施例中,用戶端裝置最初選擇最低可用位元速率。當播放媒體時,用戶端裝置可監視可用頻寬(例如,當前網路連接位元速率)以判定可用頻寬是否可支援將較高位元速率用於播放。若支援,則用戶端裝置可選擇一較高位元速率且存取較高位元速率媒體播放清單檔案所指示之媒體檔案。亦可支援相反情況。若播放消耗過多頻寬,則用戶端裝置可選擇一較低位元速率且存取較低位元速率媒體播放清單檔案所指示之媒體檔案。
若在操作394中,用戶端裝置(例如)回應於可用頻寬之變更或回應於使用者輸入而改變位元速率,則在操作385中,用戶端裝置可選擇一不同位元速率。在一實施例中,為了選擇一不同位元速率,用戶端裝置可利用包括於對應於新選定位元速率之播放清單檔案中之URI之不同清單。 在一實施例中,用戶端裝置可在存取播放清單內之媒體檔案期間改變位元速率。
若在操作394中位元速率不改變,則用戶端裝置判定當前播放清單中是否還存在未播放之尚未擷取且呈現之媒體檔案。若此等媒體檔案存在,則處理返回至操作390,且使用播放清單中之用於一或多個檔案之URI擷取彼等媒體檔案。若不存在此等媒體檔案(亦即,當前播放清單中之所有媒體檔案已播放),則處理進行至判定播放清單是否包括一結束標籤之操作396。若播放清單包括結束標籤,則節目之播放已結束且處理程序已完成;若播放清單不包括結束標籤,則處理回到操作370,且用戶端裝置請求重新載入節目之播放清單,且處理程序經由圖3B中所示之方法重複。
圖4為伺服器串流代理之一實施例的方塊圖。將理解,伺服器串流代理400之元件可分散於若干伺服器裝置中。舉例而言,一第一伺服器裝置可包括分段器430、索引器440及安全性450,但不包括檔案伺服器460,且一第二伺服器裝置可包括檔案伺服器450,但不包括分段器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)含有根據一實施例之若干實例播放清單檔案。
簡單播放清單檔案
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:5220,http://media.example.com/entire.ts
#EXT-X-ENDLIST
滑動窗播放清單,使用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
具有加密媒體檔案之播放清單檔案
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/kev.php?r=52"
#EXTINF:15,http://media.example.com/fileSequence7794.ts
#EXTINF:15,http://media.example.com/fileSequence7795.ts
#EXTINF:15,http://media.example.com/fileSequence7796.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"
#EXTINF:15,http://media.example.com/fileSequence7797.ts
變體播放清單檔案
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://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
圖7為如本文中所描述的經組譯串流之播放技術之一實施例的流程圖。在一實施例中,接收之媒體檔案之播放可由使用者控制以開始、停止、倒帶等。在操作700中,由用戶端裝置接收播放清單檔案。在操作710中,擷取由播放清單檔案指示之媒體檔案。在操作720中,基於接收之媒體檔案產生輸出。可如上所述地完成接收及基於媒體檔案產生輸出。
若在操作730中偵測到控制輸入,則在操作740中,用戶端裝置可判定該輸入是否指示停止。若該輸入為停止,則該處理程序終止(conclude)且播放停止。若在操作750中該輸入指示倒帶或快進請求,則在操作760中,用戶端裝置可基於仍儲存於記憶體中的先前播放之媒體檔案而產生輸出。若此等檔案不再存在於快取記憶體中,則處理回復到用以擷取媒體檔案之操作710且重複該處理程序。在一替代實施例中,播放可支援暫停特徵,其在不終止播放(如同停止輸入之情況一樣)之情況下停住播放。
將參看圖9A至圖9D進一步描述用於自一個串流轉變(transition)至另一串流之方法。一個用戶端裝置可執行此等方法中之每一者,或此等方法中之每一者之操作可分散於多個用戶端裝置中,如本文中所描述;舉例而言,在分散式情況下,一個用戶端裝置可擷取變體播放清單及兩個媒體播放清單且將彼等播放清單提供至另一用戶端裝置,該另一用戶端裝置擷取由該兩個媒體播放清單規定之媒體檔案且在由擷取之媒體檔案提供的兩個串流之間切換。亦將理解,在替代實施例中,所展示的操作之次序可經修改,或可存在比此等圖中所示之操作更多或更少的操作。該等方法可使用一變體播放清單來選擇不同串流。在操作901中,可擷取且處理一變體播放清單以判定一節目(例如,一體育事件)之可用串流。操作901可由用戶端裝置進行。在操作903中,可自該變體播放清單選擇一第一串流,且一用戶端裝置接著可擷取用於該第一串流之一媒體播放清單。該用戶端裝置可在操作905中處理用於該第一串流之該媒體播放清單且亦可在操作907中量測或以其他方式判定用於該第一串流之網路連接之位元速率。將瞭解,該操作序列可按不同於圖9A所示之次序的次序來執行;舉例而言,可在操作903期間執行操作907等。在操作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圖15描述關於變體音訊播放清單及該等播放清單結合HTTP實況串流傳輸系統之使用的本發明之一態樣。在圖10中展示變體播放清單1001,且該變體播放清單可包括用於同一節目(諸如,同一實況體育事件或隨選視訊或電影等)之對應複數個不同音訊內容的複數個 URL。此外,變體播放清單1001亦可包括用於視訊內容的複數個URL,其中此等播放清單中之每一者係針對同一節目,但針對不同頻寬或品質位準。用於視訊內容之該等URL亦可包括音訊內容,且若一用戶端裝置自該變體音訊播放清單選擇一替代音訊內容,則該選定替代內容將替代(override)自該視訊播放清單擷取或可自該視訊播放清單擷取之任何音訊之呈現。使用變體播放清單或變體音訊播放清單允許內容提供者給予用戶端裝置自可替代主要呈現之多種不同音訊內容進行選擇之選項。在一實施例中,用戶端裝置可僅播放來自一選自變體音訊播放清單之選定音訊播放清單之音訊且將抑制來自其他播放清單(諸如,可用以自含有在內容之檔案中已多工在一起之音訊及視訊兩者之一檔案擷取音訊的視訊播放清單)之任何音訊。此允許該呈現提供音訊之多個版本,而不需要內容提供者儲存含有替代音訊內容之複製音訊或不需要用戶端在其僅需要一個音訊變體時下載所有音訊變體。此亦允許隨後在不重新製作原始內容之母版的情況下提供額外音訊。
可見,圖10中之變體播放清單1001包括用於視訊播放清單之兩個URL(諸如,URL 1003及1005),且亦包括用於由視訊播放清單1003及1005提供之節目之音訊內容之三個不同音訊版本的三個URL(1007、1009及1011)。在圖10所示之實例中,變體播放清單1001包括用於視訊內容之URL以及用於替代音訊內容之URL;亦將瞭解,在其他實施例中,可將兩個單獨變體播放清單提供至一用戶端裝置,一 個變體播放清單含有用於視訊內容之URL且另一單獨變體播放清單含有變體音訊播放清單URL而不是具有包括如圖10所示之兩種URL之一單一變體播放清單。在一實施例中,每一唯音訊播放清單為滿足附加之附錄中之規範之章節6.2.4之所有約束的獨立播放清單。
在另一實施例中,為可提供替代音訊(諸如,同一節目之不同語言)或替代視訊(諸如,同一節目之不同攝影機角度或位置)或替代音訊與替代視訊之組合的一變體播放清單定義一新標籤。在此實施例中,該新標籤可具有以下語法:#EXT-X-MEDIA:TYPE=<類型>,GROUP-ID=<群組id>,NAME=<名稱>[,LANGUAGE=<語言標籤>],[,AUTOSELECT=<是或否>][,DEFAULT=<是或否>],URI=<url>其中類型為AUDIO或VIDEO,GROUP-ID為一定義「群組」之字串,且其中名稱為一描述字串,語言標籤為一rfc 4646語言標籤,AUTOSELECT向用戶端指示串流是否將被自動選擇,DEFAULT用以選擇一群組中之初始輸入項(例如,一替代音訊群組中之初始輸入項或一替代視訊群組中之初始輸入項),且URI為播放清單(諸如,一替代音訊播放清單或一替代視訊播放清單)之URI。一使用此類型之新標籤的變體播放清單之實例為:#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME= "English",AUTOSELECT=YES,DEFAULT=YES,URI="OCEANS11_20min_English_Stereo/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="Commentary1",AUTOSELECT=NO,DEFAULT=NO,URI="OCEANS11_20min_Commentary1_Stereo/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="Commentary2",AUTOSELECT=NO,DEFAULT=NO,URI="OCEANS11_20min_Commentay2_Stereo/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="fre",NAME="French",AUTOSELECT=YES,DEFAULT=NO,URI="OCEANS11_20min_French_Stereo/prog_index.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1233110,CODECS="mp4a.40.2,avc1.4d401e",AUDIO="aac"
OCEANS11_20min_Audio_Video_500Kbs/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2027440,CODECS="mp4a.40.2,avc1.4d4014",AUDIO="aac"
OCEANS11_20min_Audio_Video_1Mbs/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5334235,CODECS="mp4a.40.2,avc1.4d401e",AUDIO="aac"
OCEANS11_20min_Audio_Video_3Mbs/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=9451601,CODECS="mp4a.40.2,avc1.4d401e",AUDIO="aac"
OCEANS11_20min_Audio_Video_6Mbs/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=16090967,CODECS="mp4a.40.2,avc1.64001e",AUDIO="aac"
OCEANS11_20min_Audio_Video_12Mbs/prog_index.m3u8
EXT-X-STREAMINF之新屬性為AUDIO=<群組id>或VIDEO=<群組id>之<類型>值;將瞭解,可規定其他媒體類型(諸如,字幕(subtitle))。在此實施例中,類型值及名稱值形成元組(tuple)。若需要,則可存在多個群組以允許編碼解碼器或位元速率之變更,且在此實施例中,改變群組id以提供多個群組;具有不同群組ID(以考慮到多個群組)之變體播放清單之實例為:#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="OCEANS11_20min_English_Stereo/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="Commentary1",AUTOSELECT=NO,DEFAULT=NO,URI="OCEANS11_20min_Commentary1_Stereo/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="Commentay2",AUTOSELECT=NO,DEFAULT=NO,URI="OCEANS11_20min_Commentary2_Stereo/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="fre",NAME="French",AUTOSELECT=YES,DEFAULT=NO,URI="OCEANS11_20min_ French_Stereo/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="AC3",LANGUAGE="eng",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="OCEANS11_20min_English_AC3/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="AC3",LANGUAGE="eng",NAME="Commentary1",AUTOSELECT=NO,DEFAULT=NO,URI="OCEANS11_20min_Commentary1_AC3/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="AC3",LANGUAGE="eng",NAME="Commentary2",AUTOSELECT=NO,DEFAULT=NO,URI="OCEANS11_20min_Commentary2_AC3/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="AC3",LANGUAGE="fre",NAME="French",AUTOSELECT=YES,DEFAULT=NO,URI="OCEANS11_20min_French_AC3/prog_index.m3u8"
此處為一變體視訊播放清單(具有同一節目(其為Rolling Stones視訊)之不同攝影機角度)之實例:#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="4Mbs",NAME="Angle1-Mick",AUTOSELECT=YES,DEFAULT=NO,URI="Mick-4Mbs/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="4Mbs",NAME="Angle2-Keith",AUTOSELECT=YES,DEFAULT=NO,URI="Keith-4Mbs/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="4Mbs",NAME="Angle3-Ronnie",AUTOSELECT=YES,DEFAULT=NO,URI="Ronnie-4Mbs/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="4Mbs",NAME="Angle4-Charlie", AUTOSELECT=YES,DEFAULT=NO,URI="Charlie-4Mbs/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="4Mbs",NAME="Angle5-All",AUTOSELECT=YES,DEFAULT=YES
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="English AAC",AUTOSELECT=YES,DEFAULT=YES,URI="Stones_Angie_Audio_AAC_140kbs/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="AC3",LANGUAGE="eng",NAME="English AC3",AUTOSELECT=YES,DEFAULT=YES,URI="Stones_Angie_Audio_AC3_640kbs/prog_index.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4742970,CODECS="mp4a.40.2,avc1.4d401e",VIDEO="4Mbs",AUDIO="aac"
All-4Mbs/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5215970,CODECS="ac-3,avc1.4d401e",VIDEO="4Mbs",AUDIO="AC3"
All-4Mbs/prog_index.m3u8
儘管此變體視訊播放清單僅具有一個位元速率,但可將具有更多位元速率之更多變體添加至此播放清單。
圖11展示可由用戶端裝置執行之處理一變體音訊播放清單(諸如,圖10中之變體播放清單1001或上文所描述之該等變體播放清單)之方法之實例。在一實施例中,執行圖11之方法之用戶端裝置可為諸如圖8所示之硬體裝置的硬 體裝置,且可包括諸如圖12所示之軟體架構的軟體架構。在操作1101中,用戶端裝置可請求一節目,諸如隨選視訊節目或實況體育事件,或記錄之體育事件或電影,或具有音訊內容之其他內容。對一特定節目之請求可經過一使用者應用程式(諸如使用者應用程式1203),在一實施例中,該使用者應用程式可為來自Netflix之一應用程式或來自美國職棒聯盟之一應用程式或經設計以允許一使用者瀏覽一內容目錄且選擇來自該內容目錄之節目中之一者的其他應用程式。回應於操作1101中之該請求,在操作1103中,用戶端裝置可接收包括用於音訊內容之一變體之一或多個URL且視情況亦包括用於視訊內容之變體之一或多個URL的變體播放清單。在操作1103中接收之變體播放清單可為變體播放清單1205(儲存於裝置1201中之記憶體中),該變體播放清單可由使用者應用程式1203處理以便向使用者呈現一使用者介面,從而允許使用者自可用之音訊節目之變體選擇一特定音訊節目。在另一實施例中,由一使用者設定之一使用者偏好可設定一預設語言(諸如,作為預設之英語或作為預設之中文或作為預設之西班牙語等),且該選擇可在使用者應用程式處理變體播放清單時自動地使用以選擇該特定音訊播放清單。接著,在操作1105中,用戶端系統可自變體音訊播放清單選擇一特定音訊播放清單且視情況亦(自同一播放清單或另一變體播放清單)選擇一特定視訊播放清單;此等選擇可經由使用者與用戶端裝置之使用者介面之互動或經由用戶端裝置在無使用者輸入的情 況下透過預設設置或由使用者先前設定之使用者偏好之操作等而發生。接著,在操作1107中,若在操作1105中選擇了選定音訊播放清單之URL及選定視訊播放清單之URL,則用戶端裝置可傳輸選定之URL。回應於此等傳輸之URL,在操作1109中,用戶端裝置接收並處理選定音訊播放清單;音訊播放清單之處理可以類似於根據現有HTTP實況串流傳輸協定之其他音訊播放清單之處理的方式執行。若在操作1107中亦選擇了選定視訊播放清單之URL,則在操作1111中,用戶端裝置將接收並處理選定視訊播放清單。在一實施例中,音訊播放清單之處理係單獨的且不同於視訊播放清單之處理,但音訊播放清單之處理及視訊播放清單之處理係同時執行。在一實施例中,用於音訊播放清單之一軟體下載模組可與用於視訊播放清單之一視訊下載模組分離,如圖12之架構所示。在一實施例中,視訊播放清單將參照至一亦包括音訊之媒體檔案,且該音訊可為節目之預設或主要呈現音訊,在此情況下,用戶端裝置將抑制該預設音訊之播放。在一實施例中,可藉由不下載音訊(若該音訊為檔案之一單獨部分)或藉由不處理下載之音訊(若音訊之下載不可避免)來執行抑制由視訊播放清單參照之該預設音訊之播放。
圖12展示可實施圖11所示之方法或結合變體音訊播放清單描述之其他方法之用戶端裝置的架構之實例。用戶端裝置1201中所展示之組件可為軟體組件(在諸如圖8所示之系統之資料處理系統上執行)或硬體組件或軟體組件與硬體 組件之組合。在一實施例中,使用者應用程式1203為由使用者執行以顯示電影或棒球比賽或收聽無線電節目(radio show)等之軟體應用程式。舉例而言,在一實施例中,使用者應用程式可為由Netflix提供以觀看電影之應用程式或由美國職棒聯盟(major league baseball)提供以觀看實況棒球比賽或記錄之棒球比賽之應用程式。使用者應用程式1203可處理變體播放清單1205以向使用者呈現一使用者介面以允許使用者自變體音訊播放清單所規定之各種不同音訊內容進行選擇;或者,使用者應用程式1203可基於一先前建立之使用者偏好藉由搜尋整個變體音訊播放清單(諸如,變體播放清單1205)以選擇並定義適當音訊內容而自動地(無需使用者互動)選擇一特定音訊內容。使用者應用程式1203可與音訊播放器1207及視訊播放器1209互動以便自此等播放器中之每一者接收內容並呈現該內容。音訊播放器1207可獨立於處理視訊播放清單1213之視訊播放器1209之處理而處理音訊播放清單1211。視訊播放清單1213可為如本文中所描述之習知視訊播放清單,而音訊播放清單1211為一提供唯音訊內容(audio only content)之播放清單。若視訊播放清單1213包括含有音訊資料之URL,則視訊播放器1209應藉由不下載音訊資料或藉由捨棄已下載之音訊資料來抑制來自視訊播放清單之音訊。在一實施例中,音訊播放器1207及視訊播放器1209各自具有自己的資料緩衝器,且在一實施例中,每一播放器具有自己的下載模組。詳言之,音訊播放器1207係耦接至音訊資料緩衝器 1215,該緩衝器又耦接至音訊下載模組1219。音訊下載模組1219可為一軟體模組,經由一API,該軟體模組導致經由用戶端裝置中之一或多個網路介面1223(例如,蜂巢式電話數據機或WiFi無線電等)下載音訊資料。該一或多個網路介面1223又耦接至一或多個網路1225(諸如,亦耦接至儲存並提供播放清單及內容之一或多個伺服器1227之網際網路)。經由網路1225下載之音訊資料係儲存於音訊資料緩衝器1215中且接著作為輸出經由揚聲器或其他轉換器(transducer)提供至使用者。視訊下載模組1221導致經由該或該等網路1225且經由網路介面1223自一或多個伺服器1227下載視訊資料。所下載之視訊資料可儲存於視訊資料緩衝器1217中,所下載之視訊資料可在該緩衝器中由用戶端裝置之視訊播放器或其他組件解碼及處理以供在顯示裝置上顯示。音訊播放器1207及視訊播放器1209可同時且獨立地操作,以使得可藉由在變體音訊播放清單中之不同URL之間切換而在同一節目之不同音訊內容之間切換音訊內容;在一實施例中,此切換可獨立於該視訊播放清單之播放執行。音訊播放器1207及視訊播放器1209可處理其各別之播放清單中之每一者且藉由使用內容本身中或播放清單中之時間戳記來使播放同步。在一實施例中,音訊內容中或用於音訊內容之播放清單中之所參照的時間戳記可佔用與視訊內容或視訊播放清單中之時間戳記相同的時間段,以使得音訊及視訊之播放同步。將瞭解,在一實施例中,音訊播放器1207及視訊播放器1209跟蹤電影時間或實 際時間或該兩者以在音訊及視訊之播放期間允許音訊及視訊之同步。
現將結合圖13來描述根據本發明之一實施例的用於操作伺服器之方法。將瞭解,一或多個伺服器可執行圖13所示之操作中之每一者;例如,一個伺服器可執行圖13中之所有操作,或一個伺服器可執行一個操作,而另一伺服器執行其他操作。舉例而言,一個伺服器可提供變體播放清單,而另一伺服器可在自變體播放清單選擇一特定播放清單之後提供並傳輸在播放期間使用之音訊或視訊播放清單。在操作1301中,伺服器可回應於對一節目之一請求而傳輸可含有用於不同音訊播放清單之一URL且視情況亦含有用於一或多個視訊播放清單之URL的變體播放清單。在操作1303中,同一伺服器裝置或另一伺服器裝置接收對一選定音訊及視訊播放清單之一請求且在操作1305中傳輸音訊播放清單及/或視訊播放清單。此外,同一伺服器或一(多個)不同伺服器可回應來自在操作1305中傳輸之彼等播放清單之請求以提供實際內容。
圖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集合。
圖14為說明可在本發明之一些實施例中使用之例示性API架構的方塊圖。如圖14所示,API架構1800包括實施API 1820之API實施組件1810(例如,作業系統、程式庫、裝置驅動程式、API、應用程式、軟體或其他模組)。API 1820規定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。雖然圖14說明與API 1820互動之單一API呼叫組件1830,但應理解,可 能以不同於API呼叫組件1830之語言(或相同語言)撰寫之其他API呼叫組件可使用API 1820。
API實施組件1810、API 1820及API呼叫組件1830可儲存於機器可讀非暫時性儲存媒體中,該儲存媒體包括用於儲存呈機器(例如,電腦或其他資料處理系統)可讀形式之資訊的任何機構。舉例而言,機器可讀媒體包括磁碟、光碟、隨機存取記憶體;唯讀記憶體、快閃記憶體裝置等。
圖15(「軟體堆疊」)的例示性實施例中,應用程式可使用若干服務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之傳回值。
說明書中對「一實施例」之參考意謂著關於該實施例所描述之特定特徵、結構或特性包括於本發明之至少一實施例中。片語「在一實施例中」出現於說明書中各處時未必全部指代同一實施例。
前述說明書中,已參考本發明之特定實施例描述了本發明。然而,很顯然,可在不脫離本發明之更廣泛精神及範疇的情況下作出各種修改及變更。因此,應將說明書及圖式視為說明性意義而非限制性意義的。
110‧‧‧網路
120‧‧‧伺服器
130‧‧‧分段器
135‧‧‧索引器
140‧‧‧安全代理
145‧‧‧超文字傳送協定(HTTP)伺服器代理
150‧‧‧用戶端裝置
160‧‧‧組譯器代理
165‧‧‧輸出產生器代理
170‧‧‧安全代理
180‧‧‧用戶端裝置
185‧‧‧安全代理
190‧‧‧組譯器代理
195‧‧‧輸出產生器代理
200‧‧‧操作
202‧‧‧操作
205‧‧‧操作
210‧‧‧操作
212‧‧‧操作
215‧‧‧操作
220‧‧‧操作
222‧‧‧操作
225‧‧‧操作
230‧‧‧操作
232‧‧‧操作
235‧‧‧操作
240‧‧‧操作
242‧‧‧操作
245‧‧‧操作
250‧‧‧操作
252‧‧‧操作
255‧‧‧操作
270‧‧‧操作
272‧‧‧操作
275‧‧‧操作
282‧‧‧操作
285‧‧‧操作
292‧‧‧操作
297‧‧‧操作
300‧‧‧操作
310‧‧‧操作
320‧‧‧操作
330‧‧‧操作
340‧‧‧操作
350‧‧‧操作
351‧‧‧操作
352‧‧‧操作
370‧‧‧操作
375‧‧‧操作
380‧‧‧操作
385‧‧‧操作
390‧‧‧操作
394‧‧‧操作
395‧‧‧操作
396‧‧‧操作
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‧‧‧結束標籤
700‧‧‧操作
710‧‧‧操作
720‧‧‧操作
730‧‧‧操作
740‧‧‧操作
750‧‧‧操作
760‧‧‧操作
800‧‧‧電子系統
805‧‧‧匯流排
810‧‧‧處理器
820‧‧‧隨機存取記憶體(RAM)或其他動態儲存裝置
830‧‧‧唯讀記憶體(ROM)及/或其他靜態儲 存裝置
840‧‧‧資料儲存裝置
850‧‧‧顯示裝置
860‧‧‧文數字輸入裝置
870‧‧‧游標控制件
880‧‧‧網路介面
885‧‧‧天線
887‧‧‧網路纜線
901‧‧‧操作
903‧‧‧操作
905‧‧‧操作
907‧‧‧操作
911‧‧‧操作
913‧‧‧操作
915‧‧‧操作
921‧‧‧操作
923‧‧‧操作
925‧‧‧操作
927‧‧‧操作
931‧‧‧操作
941‧‧‧操作
943‧‧‧操作
945‧‧‧操作
951‧‧‧串流
951A‧‧‧音訊樣本
951B‧‧‧視訊樣本
953‧‧‧串流
953A‧‧‧音訊樣本
953B‧‧‧視訊樣本
955‧‧‧重疊
957‧‧‧區段
959‧‧‧轉變點
961‧‧‧i圖框
1001‧‧‧變體播放清單
1003‧‧‧URL/視訊播放清單
1005‧‧‧URL/視訊播放清單
1007‧‧‧用於不同音訊版本之URL
1009‧‧‧用於不同音訊版本之URL
1011‧‧‧用於不同音訊版本之URL
1101‧‧‧操作/請求節目
1103‧‧‧操作/接收包括用於音訊之變體及視情況用於視訊內容之變體之URL的變體播放清單
1105‧‧‧操作/選擇音訊播放清單且視情況接收視訊播放清單之選擇
1107‧‧‧操作/傳輸選定音訊播放清單之URL及選定視訊播放清單之URL(若選擇)
1109‧‧‧操作/接收並處理選定音訊播放清單
1111‧‧‧操作/接收並處理視訊播放清單(若選擇)
1201‧‧‧裝置/用戶端裝置
1203‧‧‧使用者應用程式
1205‧‧‧變體播放清單
1207‧‧‧音訊播放器
1209‧‧‧視訊播放器
1211‧‧‧音訊播放清單
1213‧‧‧視訊播放清單
1215‧‧‧音訊資料緩衝器
1217‧‧‧視訊資料緩衝器
1219‧‧‧音訊下載模組
1221‧‧‧視訊下載模組
1223‧‧‧網路介面
1225‧‧‧網路
1227‧‧‧伺服器
1301‧‧‧操作/回應於對一節目之一請求而傳輸一變體播放清單(其含有用於變體音訊播放清單之URL且視情況含有用於一(多個)變體視訊播放清單之URL))
1303‧‧‧操作/接收對選定音訊播放清單及視訊播放清單之請求
1305‧‧‧操作/傳輸音訊播放清單及視訊播放 清單
1800‧‧‧應用程式設計介面(API)架構
1810‧‧‧應用程式設計介面(API)實施組件
1820‧‧‧應用程式設計介面(API)
1830‧‧‧應用程式設計介面(API)呼叫組件
圖1為可發送及接收即時或接近即時內容之伺服器及用戶端之一實施例的方塊圖。
圖2A為用於一或多個伺服器裝置的使用非串流傳輸協定支援媒體內容之技術之一實施例的流程圖。
圖2B為用於一或多個伺服器裝置的以動態方式將經更新之播放清單提供至一或多個用戶端裝置之技術之一實施例的流程圖。
圖2C為用於一或多個伺服器裝置的使用多個位元速率將媒體內容提供至用戶端裝置之技術之一實施例的流程圖。
圖3A為用於用戶端裝置的使用非串流傳輸協定支援內容之串流傳輸之技術之一實施例的流程圖。
圖3B為用於用戶端裝置的使用多個位元速率支援內容之串流傳輸之技術之一實施例的流程圖。
圖4為伺服器串流代理之一實施例的方塊圖。
圖5為用戶端串流代理之一實施例的方塊圖。
圖6說明具有多個標籤之播放清單檔案之一實施例。
圖7為如本文中所描述的經組譯串流之播放技術之一實施例的流程圖。
圖8為電子系統之一實施例的方塊圖。
圖9A為展示用戶端裝置如何可在變體播放清單中之替代內容之間切換之一實例的流程圖。
圖9B為展示用戶端裝置如何可在兩個播放清單中之內容之間切換的另一流程圖。
圖9C為展示用戶端裝置如何可使用音訊型樣匹配在內容之間切換之一實例的另一流程圖。
圖9D圖示地展示如何利用音訊型樣匹配來實施圖9C之方法。
圖10展示可包括用於相同節目之不同音訊內容之URL的變體播放清單之實例。
圖11為展示一實施例中之用於使用一變體播放清單之方法的流程圖,該變體播放清單包括用於相同節目之音訊內容之變體之URL。
圖12展示可在本文中所描述之實施例之一或多者中使用之具有各種組件之用戶端裝置之實例。
圖13為展示根據一實施例之由一伺服器裝置或伺服器裝置之一集合執行之方法的流程圖。
圖14說明可在本發明之一些實施例中使用之例示性API架構的方塊圖。
圖15展示可在本發明之一些實施例中使用之軟體堆疊的例示性實施例。
附錄
以下附錄為根據本發明之一特定實施例之協定之草案規範。將理解,特定關鍵詞(例如,必須、不得、應該、不應該等)在此附錄中之使用適用於此特定實施例,但不適用於本發明中所描述之其他實施例。
HTTP實況串流傳輸
draft-pantos-http-live-streaming-06
摘要
本文件描述用於傳送多媒體資料之無限制串流之協定。本文件規定檔案之資料格式及串流之伺服器(發送方)及用戶端(接收方)將採取之動作。本文件描述此協定之版本3。
目錄
1.介紹
2.概述
3.播放清單檔案
3.1.介紹
3.2.屬性清單
3.3.新標籤
3.3.1. EXT-X-TARGETDURATION
3.3.2. EXT-X-MEDIA-SEQUENCE
3.3.3. EXT-X-KEY
3.3.4. EXT-X-PROGRAM-DATE-TIME
3.3.5. EXT-X-ALLOW-CACHE
3.3.6. EXT-X-PLAYLIST-TYPE
3.3.7. EXT-X-ENDLIST
3.3.8. EXT-X-STREAM-INF
3.3.9. EXT-X-DISCONTINUITY
3.3.10. 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.參考文獻
10.1.標準性參考文獻
10.2.資訊性參考文獻
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.3.8)。
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:<持續時間>,<標題>
「持續時間」為規定媒體檔案之以秒計之持續時間之整數或浮點數。整數持續時間應捨位至最接近的整數。若播放清單檔案之協定版本低於3,則持續時間必須為整數。該行的在逗號之後的剩餘部分為媒體檔案之標題,其為媒體區段之可選的人類可讀之資訊標題。
本文件定義以下新標籤:EXT-X-TARGETDURATION、EXT-X-MEDIA-SEQUENCE、EXT-X-KEY、EXT-X-PROGRAM-DATE-TIME、EXT-X-ALLOW-CACHE、EXT-X-PLAYLIST-TYPE、EXT-X-STREAM-INF、EXT-X-ENDLIST、EXT-X-DISCONTINUITY及EXT-X-VERSION。
3.2.屬性清單
特定擴展M3U標籤具有為屬性清單之值。屬性清單為不具空白字元之屬性/值對的以逗號分離之清單。
屬性/值對具有以下語法:AttributeName=AttributeValue
AttributeName為含有來自集合[A-Z]之字元之無引號字串。
AttributeValue為下列各者中之一者:
○十進位整數:來自集合[0-9]之字元之無引號字串,其表示十進位算術中之整數。
○十六進位整數:來自集合[0-9]及[A-F]之字元之無引號字串,其以0x或0X為前置碼且表示十六進位算術中之整 數。
○十進位浮點:來自集合[0-9]及「.」之字元之無引號字串,其表示十進位算術中之浮點數。
○有引號字串:在一對雙引號(")內之字元之字串。字串中所允許之字元之集合及用於使特殊字元逸出之任何規則係由屬性定義規定,但任何雙引號(")字元及任何歸位字元或換行字元將始終由逸出序列替換。
○列舉字串:來自由屬性明確定義之一集合之無引號字元字串。列舉字串絕不會含有雙引號(")、逗號(,)或空白字元。
○十進位解析度:由「x」字元分離之兩個十進位整數,其指示水平及垂直像素尺寸。
給定AttributeName之AttributeValue之類型係由屬性定義規定。
給定AttributeName在給定屬性清單中不得出現一次以上。
用戶端必須忽略具有無法辨識的AttributeName之屬性/值對。
用戶端應忽略含有無法辨識的值之列舉字串類型之屬性/值對。
3.3.新標籤
3.3.1. EXT-X-TARGETDURATION
EXT-X-TARGETDURATION標籤規定最大媒體檔案持續時間。播放清單檔案中之每一媒體檔案之EXTINF持續時間必須小於或等於目標持續時間。此標籤在播放清單檔案 中必須出現一次。該標籤之格式為:#EXT-X-TARGETDURATION:<s>
其中s為指示以秒計之目標持續時間之整數。
3.3.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.3.3. EXT-X-KEY
可加密媒體檔案。EXT-X-KEY標籤提供解密其後之媒體檔案所需之資訊。該標籤之格式為:#EXT-X-KEY:<attribute-list>
定義以下屬性:方法屬性規定加密方法。其為列舉字串之類型。定義兩個方法:NONE及AES-128。
加密方法NONE意謂著不加密媒體檔案。若加密方法為NONE,則URI及IV屬性不得存在。
加密方法AES-128意謂著使用利用128位元密鑰及PKCS7填補[RFC5652]之進階加密標準[AES_128]加密媒體檔案。若加密方法為AES-128,則URI屬性必須存在。IV屬性可存在;參見章節5.2。
URI屬性規定如何獲得密鑰。該屬性之值為含有密鑰之URI[RFC3986]之有引號字串。
IV屬性(若存在)規定將與密鑰一起使用的初始化向量。該屬性之值為十六進位整數。IV屬性出現在協定版本2中。
新EXT-X-KEY取代任何先前EXT-X-KEY。
若播放清單檔案不含有EXT-X-KEY標籤,則不加密媒體檔案。
參見章節5以獲取密鑰檔案之格式,且參見章節5.2、章節6.2.3及章節6.3.6以獲取關於媒體檔案加密之額外資訊。
3.3.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.3.5. EXT-X-ALLOW-CACHE
EXT-X-ALLOW-CACHE標籤指示用戶端可抑或不得快取 下載之媒體檔案以供稍後重播。該標籤可出現在播放清單檔案中之任何處;該標籤不得出現一次以上。EXT-X-ALLOW-CACHE標籤適用於播放清單中之所有區段。該標籤之格式為:#EXT-X-ALLOW-CACHE:<是|否>
參見章節6.3.3以獲取關於EXT-X-ALLOW-CACHE標籤之更多資訊。
3.3.6. EXT-X-PLAYLIST-TYPE
EXT-X-PLAYLIST-TYPE標籤提供關於播放清單檔案之可變動性資訊。該標籤為可選的。該標籤之格式為:#EXT-X-PLAYLIST-TYPE:<事件|VOD>
章節6.2.1定義EXT-X-PLAYLIST-TYPE標籤之含意。
3.3.7. EXT-X-ENDLIST
EXT-X-ENDLIST標籤指示沒有更多媒體檔案將添加至播放清單檔案。該標籤可出現在播放清單檔案中之任何處;該標籤不得出現一次以上。該標籤之格式為:#EXT-X-ENDLIST
3.3.8. EXT-X-STREAM-INF
EXT-X-STREAM-INF標籤指示播放清單檔案中之下一個URI識別另一播放清單檔案。該標籤之格式為:#EXT-X-STREAM-INF:<attribute-list><URI>
定義以下屬性:BANDWIDTH
該值為每秒十進位整數個位元。該屬性必須為每一媒體 檔案之總位元速率之上限,其經計算以包括出現或將出現在播放清單中之容器附加項。
每個EXT-X-STREAM-INF標籤必須包括BANDWIDTH屬性。
PROGRAM-ID
該值為在播放清單檔案之範疇內唯一地識別特定呈現之十進位整數。
播放清單檔案可含有具有相同PROGRAM-ID之多個EXT-X-STREAM-INF標籤以識別相同呈現之不同編碼。此等變體播放清單可含有額外EXT-X-STREAM-INF標籤。
CODECS
該值為含有以逗號分離之格式清單的有引號字串,其中每一格式規定存在於播放清單檔案中之媒體檔案中的媒體樣本類型。有效格式識別符為由RFC 4281[RFC4281]定義之ISO檔案格式名稱空間中之彼等識別符。
每個EXT-X-STREAM-INF標籤應包括CODECS屬性。
RESOLUTION
該值為描述串流內之視訊之近似水平及垂直編碼解析度的十進位解析度。
3.3.9. EXT-X-DISCONTINUITY
EXT-X-DISCONTINUITY標籤指示該標籤之後的媒體檔案與在該標籤之前的媒體檔案之間的編碼不連續性。可變更之特性之集合為:
○檔案格式
○播放軌之數目及類型
○編碼參數
○編碼序列
○時間戳記序列
該標籤之格式為:#EXT-X-DISCONTINUITY
參見章節4、章節6.2.1及章節6.3.3以獲取關於EXT-X-DISCONTINUITY標籤之更多資訊。
3.3.10. 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」內容編碼之用戶端請求。
自用戶端之觀點而言,對播放清單檔案之變更必須不可部分完成地進行。
伺服器不得改變播放清單檔案,但以下情況除外:將行附加至播放清單檔案(章節6.2.1)。
按媒體檔案URI出現之次序將媒體檔案URI以及僅適用於彼等媒體檔案之任何標籤一起自播放清單移除(章節6.2.2)。
改變EXT-X-MEDIA-SEQUENCE標籤之值(章節6.2.2)。
添加或移除EXT-X-STREAM-INF標籤(章節6.2.4)。請 注意,不要求用戶端重新載入變體播放清單檔案,因此改變其可不具有即刻影響。
將EXT-X-ENDLIST標籤添加至播放清單(章節6.2.1)。
此外,播放清單檔案可含有值為EVENT或VOD之EXT-X-PLAYLIST-TYPE標籤。若該標籤存在且具有值EVENT,則伺服器不得改變或刪除播放清單檔案之任何部分(儘管伺服器可將行附加至播放清單檔案)。若該標籤存在且具有值VOD,則播放清單檔案不得改變。
播放清單中之每個媒體檔案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。
當伺服器自播放清單移除媒體檔案URI時,媒體檔案應在一等於該媒體檔案之持續時間加上該媒體檔案已出現於之最長播放清單檔案之持續時間的時間段中保持可供用戶端使用。
若伺服器計劃在經由HTTP將媒體檔案傳遞至用戶端之後移除媒體檔案,則伺服器應確保HTTP回應含有一反映所計劃的存留時間之逾期標頭。
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節目基本串流時間戳記,其中前31個位元經設定為零。
另外,所有變體串流應含有相同的經編碼音訊位元串流。此允許用戶端在串流之間切換而無可聽見的故障。
6.3.用戶端處理程序
6.3.1.介紹
用戶端如何獲取至播放清單檔案之URI不在本文件之範疇內;假定已獲取至播放清單檔案之URI。
用戶端必須根據URI獲取播放清單檔案。若如此獲取之播放清單檔案為變體播放清單,則用戶端必須自變體播放清單獲取播放清單檔案。
本文件未規定用戶端對變體串流之處理。
6.3.2.載入播放清單檔案
每當自播放清單URI載入或重新載入播放清單檔案時:用戶端必須確保播放清單檔案以EXTM3U標籤開始且EXT-X-VERSION標籤(若存在)規定用戶端所支援之協定版本;若否,則用戶端不得嘗試使用該播放清單。
用戶端應忽略其未辨識之任何標籤及屬性。
用戶端必須判定要載入之下一個媒體檔案,如章節6.3.5中所描述。
若播放清單含有EXT-X-MEDIA-SEQUENCE標籤,則用戶端應假設:播放清單中之每一媒體檔案在載入播放清單檔案加上播放清單檔案之持續時間的時間將變得不可用。播放清單檔案之持續時間為該播放清單檔案內之媒體檔案之持續時間之總和。
6.3.3.播放播放清單檔案
當開始播放時,用戶端應該自播放清單選擇要首先播放哪個媒體檔案。若EXT-X-ENDLIST標籤不存在且用戶端意欲按常規地播放媒體(亦即,在標稱播放速率下按播放清單次序),則用戶端不應選擇開始時間距播放清單檔案之結尾小於三個目標持續時間之檔案。選擇此檔案可觸發播放拖延(stall)。
為了達成常規播放,必須按媒體檔案出現在播放清單檔案中之次序播放媒體檔案。用戶端可以其希望之任何方式呈現可用媒體,包括常規播放、隨機存取及隨時點播(trick)模式。
用戶端在播放前面有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。
為了減輕伺服器負載,用戶端不應重新載入當前不在播放之變體串流之播放清單檔案。若伺服器決定將播放切換至一不同變體,則其應停止重新載入舊變體之播放清單且開始載入新變體之播放清單。伺服器可使用EXTINF持續時間及章節6.2.4中之約束來判定對應媒體之近似位置。一旦已載入來自新變體之媒體,就可將媒體檔案中之時間戳記用以使舊時刻表與新時刻表精確同步。
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或更高版本以使用:○EXT-X-KEY標籤之IV屬性。
用戶端及伺服器必須實施協定版本3或更高版本以使用:○浮點EXTINF持續時間值。
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=1280000
http://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]規定之期滿規則及小型文字檔案限制。亦參見RFC 2965之安全考慮章節及RFC 2964[RFC2964]。
加密密鑰係由URI規定。此等密鑰之傳遞應受諸如TLS 上之HTTP[RFC5246](以前為SSL)之機制結合安全領域(realm)或作業階段小型文字檔案保護。
10.參考文獻
10.1標準性參考文獻
[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)」,STD 70,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月。
10.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>。
1001‧‧‧變體播放清單
1003‧‧‧URL/視訊播放清單
1005‧‧‧URL/視訊播放清單
1007‧‧‧用於不同音訊版本之URL
1009‧‧‧用於不同音訊版本之URL
1011‧‧‧用於不同音訊版本之URL

Claims (24)

  1. 一種機器可讀非暫時性儲存媒體,其儲存當由一資料處理系統執行時使該資料處理系統執行包含以下步驟之一方法的可執行程式指令:接收一節目之一變體音訊播放清單,該變體音訊播放清單含有用於該節目之不同音訊內容之URL之一集合,URL之該集合中之該等URL中之每一者參照至對應於該節目之該不同音訊內容中之一者之一音訊播放清單;選擇URL之該集合中之一第一URL以獲得該不同音訊內容中之一者,該第一URL參照至一第一播放清單;傳輸參照至該第一播放清單之該第一URL;接收該第一播放清單;及處理該第一播放清單以擷取該節目之音訊內容。
  2. 如請求項1之媒體,其中該方法進一步包含:判定一音訊偏好;且其中該第一URL之該選擇係基於由一使用者偏好設定之該音訊偏好。
  3. 如請求項2之媒體,其中該方法進一步包含:接收該節目之一視訊播放清單,該視訊播放清單含有用於該節目之視訊內容之URL,用於該視訊內容之該等URL中之每一者參照至該視訊內容之一時間部分。
  4. 如請求項3之媒體,其中該方法進一步包含:在該變體音訊播放清單中之用於音訊內容之URL之間切換,其中該切換係獨立於該視訊播放清單之播放執 行。
  5. 如請求項4之媒體,其中分別由一第一軟體組件及由一第二軟體組件同時處理該第一播放清單及該視訊播放清單,其中該第一軟體組件擷取藉由該第一播放清單中之URL參照之音訊內容,且其中該第二軟體組件擷取藉由該視訊播放清單中之URL參照之視訊內容,且其中該第一軟體組件及該第二軟體組件獨立地操作以擷取該等軟體組件各別之內容。
  6. 如請求項4之媒體,其中經由該第一播放清單擷取之該音訊內容中之時間戳記及經由該視訊播放清單擷取之該視訊內容中之時間戳記規定相同時間段。
  7. 如請求項4之媒體,其中URL之該集合中之該等URL中之每一者參照至不同音訊內容,且其中該不同音訊內容之每一者包含規定相同時間段之時間戳記,且其中回應於對該節目之一單一請求而接收該變體音訊播放清單及該視訊播放清單。
  8. 一種機器實施之方法,其包含:接收一節目之一變體音訊播放清單,該變體音訊播放清單含有用於該節目之不同音訊內容之URL之一集合,URL之該集合中之該等URL中之每一者參照至對應於該節目之該不同音訊內容中之一者之一音訊播放清單;選擇URL之該集合中之一第一URL以獲得該不同音訊內容中之一者,該第一URL參照至一第一播放清單;傳輸參照至該第一播放清單之該第一URL; 接收該第一播放清單;及處理該第一播放清單以擷取該節目之音訊內容。
  9. 如請求項8之方法,其中該方法進一步包含:判定一音訊偏好;且其中該第一URL之該選擇係基於由一使用者偏好設定之該音訊偏好。
  10. 如請求項9之方法,其中該方法進一步包含:接收該節目之一視訊播放清單,該視訊播放清單含有用於該節目之視訊內容之URL,用於該視訊內容之該等URL中之每一者參照至該視訊內容之一時間部分。
  11. 如請求項10之方法,其中該方法進一步包含:在該變體音訊播放清單中之用於音訊內容之URL之間切換,其中該切換係獨立於該視訊播放清單之播放執行。
  12. 如請求項11之方法,其中分別由一第一軟體組件及由一第二軟體組件同時處理該第一播放清單及該視訊播放清單,其中該第一軟體組件擷取藉由該第一播放清單中之URL參照之音訊內容,且其中該第二軟體組件擷取藉由該視訊播放清單中之URL參照之視訊內容,且其中該第一軟體組件及該第二軟體組件獨立地操作以擷取該等軟體組件各別之內容。
  13. 如請求項11之方法,其中經由該第一播放清單擷取之該音訊內容中之時間戳記及經由該視訊播放清單擷取之該視訊內容中之時間戳記規定相同時間段。
  14. 如請求項11之方法,其中URL之該集合中之該等URL中之每一者參照至不同音訊內容,且其中該不同音訊內容之每一者包含規定相同時間段之時間戳記,且其中回應於對該節目之一單一請求而接收該變體音訊播放清單及該視訊播放清單。
  15. 一種資料處理系統,其包含:用於接收一節目之一變體音訊播放清單之構件,該變體音訊播放清單含有用於該節目之不同音訊內容之URL之一集合,URL之該集合中之該等URL中之每一者參照至對應於該節目之該不同音訊內容中之一者之一音訊播放清單;用於選擇URL之該集合中之一第一URL以獲得該不同音訊內容中之一者之構件,該第一URL參照至一第一播放清單;用於傳輸參照至該第一播放清單之該第一URL之構件;用於接收該第一播放清單之構件;及用於處理該第一播放清單以擷取該節目之音訊內容之構件。
  16. 一種機器可讀非暫時性儲存媒體,其儲存當由一資料處理系統執行時使該資料處理系統執行包含以下步驟之一方法的可執行程式指令:回應於來自一裝置之對一節目之一請求而傳輸含有用於該節目之不同音訊內容之URL之一集合的一變體音訊 播放清單,URL之該集合中之該等URL中之每一者參照至對應於該節目之該不同音訊內容中之一者之一音訊播放清單;自該裝置接收URL之該集合中之一第一URL且回應於接收到該第一URL將一第一音訊播放清單傳輸至該裝置,該第一URL參照至該第一音訊播放清單。
  17. 如請求項16之媒體,其中該方法進一步包含:回應於來自該裝置之該請求而傳輸用於該節目之一視訊播放清單,該視訊播放清單含有用於該節目之視訊內容之URL,用於該視訊內容之該等URL中之每一者參照至該視訊內容之一時間部分。
  18. 如請求項17之媒體,其中該方法進一步包含:自該裝置接收用於不同音訊內容之URL之該集合中之一第二URL;回應於接收到該第二URL傳輸一第二音訊播放清單,其中該第二URL參照至該第二音訊播放清單且其中該第二音訊播放清單提供該節目之替代音訊內容。
  19. 如請求項18之媒體,其中經由該第一音訊播放清單擷取之該音訊內容中之時間戳記及該替代音訊內容中之時間戳記規定相同時間段。
  20. 一種機器實施之方法,其包含:回應於來自一裝置之對一節目之一請求而傳輸含有用於該節目之不同音訊內容之URL之一集合的一變體音訊播放清單,URL之該集合中之該等URL中之每一者參照 至對應於該節目之該不同音訊內容中之一者之一音訊播放清單;自該裝置接收URL之該集合中之一第一URL且回應於接收到該第一URL將一第一音訊播放清單傳輸至該裝置,該第一URL參照至該第一音訊播放清單。
  21. 如請求項20之方法,其中該方法進一步包含:回應於來自該裝置之該請求而傳輸用於該節目之一視訊播放清單,該視訊播放清單含有用於該節目之視訊內容之URL,用於該視訊內容之該等URL中之每一者參照至該視訊內容之一時間部分。
  22. 如請求項21之方法,其中該方法進一步包含:自該裝置接收用於不同音訊內容之URL之該集合中之一第二URL;回應於接收到該第二URL傳輸一第二音訊播放清單,其中該第二URL參照至該第二音訊播放清單且其中該第二音訊播放清單提供該節目之替代音訊內容。
  23. 如請求項22之方法,其中經由該第一音訊播放清單擷取之該音訊內容中之時間戳記及該替代音訊內容中之時間戳記規定相同時間段。
  24. 一種資料處理系統,其包含:用於回應於來自一裝置之對一節目之一請求而傳輸含有用於該節目之不同音訊內容之URL之一集合的一變體音訊播放清單之構件,URL之該集合中之該等URL中之每一者參照至對應於該節目之該不同音訊內容中之一者 之一音訊播放清單;用於自該裝置接收URL之該集合中之一第一URL且回應於接收到該第一URL將一第一音訊播放清單傳輸至該裝置之構件,該第一URL參照至該第一音訊播放清單。
TW101119861A 2011-06-03 2012-06-01 用於即時或接近即時串流傳輸之播放清單 TWI461043B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161493324P 2011-06-03 2011-06-03
US13/225,037 US8843586B2 (en) 2011-06-03 2011-09-02 Playlists for real-time or near real-time streaming

Publications (2)

Publication Number Publication Date
TW201301832A true TW201301832A (zh) 2013-01-01
TWI461043B TWI461043B (zh) 2014-11-11

Family

ID=46210452

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101119861A TWI461043B (zh) 2011-06-03 2012-06-01 用於即時或接近即時串流傳輸之播放清單

Country Status (7)

Country Link
US (1) US8843586B2 (zh)
EP (1) EP2716061B1 (zh)
KR (1) KR101593771B1 (zh)
CN (1) CN103583051B (zh)
AU (1) AU2012262245B2 (zh)
TW (1) TWI461043B (zh)
WO (1) WO2012166816A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647997B2 (en) 2013-03-13 2017-05-09 Nagrastar, Llc USB interface for performing transport I/O
US9769521B2 (en) 2013-03-13 2017-09-19 Nagrastar, Llc Systems and methods for performing transport I/O
US10210549B2 (en) 2013-08-14 2019-02-19 Tencent Technology (Shenzhen) Company Limited Promotion content delivery with media content
USD864968S1 (en) 2015-04-30 2019-10-29 Echostar Technologies L.L.C. Smart card interface
TWI687098B (zh) * 2013-09-25 2020-03-01 瑞典商艾瑞克生公司 適應性視訊白斑學習及使用者頻寬遞送控制系統
US10628485B2 (en) 2018-05-10 2020-04-21 Alibaba Group Holding Limited Blockchain-based music originality analysis method and apparatus

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2781582B1 (fr) * 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US10613817B2 (en) 2003-07-28 2020-04-07 Sonos, Inc. Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
US9374607B2 (en) 2012-06-26 2016-06-21 Sonos, Inc. Media playback system with guest access
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
JP4085284B2 (ja) * 2005-03-24 2008-05-14 ソニー株式会社 再生装置
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
MX2011007344A (es) 2009-01-07 2012-02-28 Divx Inc Creacion singular, colectiva y automatizada de una guia de medios de contenido en linea.
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
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
WO2013089437A1 (ko) * 2011-12-12 2013-06-20 엘지전자 주식회사 미디어 컨텐트를 수신하는 장치 및 방법
US9654821B2 (en) 2011-12-30 2017-05-16 Sonos, Inc. Systems and methods for networked music playback
US9276989B2 (en) 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US8908879B2 (en) 2012-05-23 2014-12-09 Sonos, Inc. Audio content auditioning
US9674587B2 (en) 2012-06-26 2017-06-06 Sonos, Inc. Systems and methods for networked music playback including remote add to queue
US9225307B2 (en) 2012-06-28 2015-12-29 Sonos, Inc. Modification of audio responsive to proximity detection
US9197685B2 (en) * 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
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
WO2014015110A1 (en) 2012-07-18 2014-01-23 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US9154854B1 (en) * 2012-09-19 2015-10-06 Time Warner Cable Enterprises Llc Notification in a network environment
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
JP6218379B2 (ja) * 2012-12-28 2017-10-25 キヤノン株式会社 送信装置、受信装置、送信方法、受信方法、及び、プログラム
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US8984569B2 (en) 2013-03-15 2015-03-17 Echostar Technologies L.L.C. Chunking of multiple track audio for adaptive bit rate streaming
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
US9247363B2 (en) 2013-04-16 2016-01-26 Sonos, Inc. Playback queue transfer in a media playback system
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
US9584556B2 (en) * 2013-05-14 2017-02-28 Morega Systems Inc. Client proxy for adaptive bitrate selection in HTTP live streaming
US9798510B2 (en) 2013-05-29 2017-10-24 Sonos, Inc. Connected state indicator
US9735978B2 (en) 2013-05-29 2017-08-15 Sonos, Inc. Playback queue control via a playlist on a mobile device
US9953179B2 (en) 2013-05-29 2018-04-24 Sonos, Inc. Private queue indicator
US9495076B2 (en) 2013-05-29 2016-11-15 Sonos, Inc. Playlist modification
US9684484B2 (en) 2013-05-29 2017-06-20 Sonos, Inc. Playback zone silent connect
US10715973B2 (en) 2013-05-29 2020-07-14 Sonos, Inc. Playback queue control transition
US9703521B2 (en) 2013-05-29 2017-07-11 Sonos, Inc. Moving a playback queue to a new zone
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9298415B2 (en) 2013-07-09 2016-03-29 Sonos, Inc. Systems and methods to provide play/pause content
US9270721B2 (en) * 2013-10-08 2016-02-23 Qualcomm Incorporated Switching between adaptation sets during media streaming
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US20150244772A1 (en) * 2014-02-24 2015-08-27 Triple It B.V. Fast rendering of content using a mobile user device
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
EP3149957B1 (en) * 2014-05-27 2019-07-03 Hewlett-Packard Development Company, L.P. Portable speaker
US20160092052A1 (en) * 2014-09-30 2016-03-31 Theater Ears, LLC Syncronizing audio playback in coordination with external video playback with auto-dimming
CN105786440A (zh) * 2014-12-23 2016-07-20 上海证大喜马拉雅网络科技有限公司 一种一键播放云端标签化频道的方法和系统
CA2973740C (en) * 2015-01-30 2021-06-08 Inscape Data, Inc. Methods for identifying video segments and displaying option to view from an alternative source and/or on an alternative device
US9635131B2 (en) 2015-02-05 2017-04-25 Qwire Inc. Media player distribution and collaborative editing
US9891880B2 (en) 2015-03-31 2018-02-13 Sonos, Inc. Information display regarding playback queue subscriptions
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US9742870B2 (en) * 2015-06-19 2017-08-22 Arris Enterprises Llc Selective download of alternate media files
CN105657579A (zh) * 2015-10-29 2016-06-08 乐视致新电子科技(天津)有限公司 直播音频切换方法、流媒体服务器及客户端
CN105898366A (zh) * 2015-12-03 2016-08-24 乐视致新电子科技(天津)有限公司 直播音频切换方法及流媒体服务器
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 乐视控股(北京)有限公司 一种提供及处理视频下载的方法及设备
CN106303754A (zh) * 2016-08-04 2017-01-04 天脉聚源(北京)传媒科技有限公司 一种音频数据播放方法及装置
CN106331751B (zh) * 2016-08-31 2019-05-31 广州易方信息科技股份有限公司 一种基于iOS操作系统的在线加密切片视频播放方法
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
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
CN107360442A (zh) * 2017-08-29 2017-11-17 广州华多网络科技有限公司 一种直播方法、装置及电子设备
WO2019061256A1 (zh) * 2017-09-29 2019-04-04 腾讯科技(深圳)有限公司 基于流媒体的音视频播放方法及装置
US11838578B2 (en) * 2019-11-20 2023-12-05 Dolby International Ab Methods and devices for personalizing audio content
CN112135182B (zh) * 2020-09-22 2023-02-03 杭州网易云音乐科技有限公司 列表处理方法、列表处理装置、存储介质及电子设备

Family Cites Families (250)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5493514A (en) 1993-11-24 1996-02-20 Intel Corporation Process, apparatus, and system for encoding and decoding video signals
US5524110A (en) 1993-11-24 1996-06-04 Intel Corporation Conferencing over multiple transports
US5579239A (en) 1994-02-16 1996-11-26 Freeman; Mitchael C. Remote video transmission system
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
US5778374A (en) 1995-08-03 1998-07-07 International Business Machines Corporation Compressed common file directory for mass storage systems
CN1198862A (zh) 1995-09-01 1998-11-11 斯塔盖德数字网络有限公司 对比资料及通过引用加入的软件
IL115263A (en) 1995-09-12 1999-04-11 Vocaltec Ltd System and method for distributing multi-media presentations in a computer network
JPH0981497A (ja) 1995-09-12 1997-03-28 Toshiba Corp 実時間ストリームサーバ並びに実時間ストリームデータの格納方法および転送方法
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ä
US5987510A (en) 1995-11-10 1999-11-16 Kabushiki Kaisha Toshiba Method for transferring files according to file list provided in response to file request
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
AU1616597A (en) 1996-02-14 1997-09-02 Olivr Corporation Ltd. Method and systems for progressive asynchronous transmission of multimedia data
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
RU2189119C2 (ru) 1997-01-29 2002-09-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
WO1998044733A1 (en) 1997-03-31 1998-10-08 Broadband Associates Method and system for providing a presentation 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
US6847778B1 (en) 1999-03-30 2005-01-25 Tivo, Inc. Multimedia visual progress indication system
US6538665B2 (en) 1999-04-15 2003-03-25 Apple Computer, Inc. User interface for presenting media information
JP2001036423A (ja) 1999-05-20 2001-02-09 Yamaha Corp 番組再生システム及び番組再生方法
CA2338695C (en) 1999-05-28 2009-07-07 Matsushita Electric Industrial Co., Ltd. Semiconductor memory card, playback apparatus, recording apparatus, playback method, recording method, and computer-readable recording medium
JP3522635B2 (ja) 1999-08-03 2004-04-26 ヴィジョンアーツ株式会社 画像ファイルを記録したコンピュータ読み取り可能な記録媒体、この記録媒体の作成装置、画像ファイル作成プログラムを記録した媒体、画像ファイル送信装置、画像ファイル処理装置、画像ファイル処理プログラムを記録した媒体
RU2272318C2 (ru) 1999-08-03 2006-03-20 Вижионартс Инк. Считываемый компьютером носитель записи, на котором записан файл изображения, устройство для изготовления носителя записи, носитель, на котором записана программа для создания файла изображения, устройство для передачи файла изображения, устройство для обработки файла изображения и носитель, на котором записана программа обработки файла изображения
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
AU1627601A (en) 1999-11-29 2001-06-04 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
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
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
GB2365287B (en) 1999-12-16 2002-11-06 Actv Inc Method using a local host for network communication
US6928403B2 (en) 2000-03-02 2005-08-09 Texas Instruments Incorporated Automatic detection of connectivity between an emulator and a target device
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
AU2001283004A1 (en) 2000-07-24 2002-02-05 Vivcom, Inc. System and method for indexing, searching, identifying, and editing portions of electronic multimedia files
US7471834B2 (en) 2000-07-24 2008-12-30 Vmark, Inc. Rapid production of reduced-size images from compressed video streams
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
WO2002057943A1 (en) 2001-01-18 2002-07-25 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
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6990497B2 (en) 2001-06-26 2006-01-24 Microsoft Corporation Dynamic streaming media management
JP3871274B2 (ja) 2001-09-10 2007-01-24 トムソン ライセンシング オーディオ・データ・ファイル・プレイリストに各プレイリスト・レコードの内容情報および索引情報を付加する方法
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
US7039784B1 (en) 2001-12-20 2006-05-02 Info Value Computing Inc. Video distribution system using dynamic disk load balancing with variable sub-segmenting
JP4039489B2 (ja) 2002-01-12 2008-01-30 コアトラスト インコーポレーテッド マルチメディアコンテンツの情報保護方法及びシステム
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
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
US7549060B2 (en) 2002-06-28 2009-06-16 Microsoft Corporation Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
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
US20060026376A1 (en) * 2002-10-16 2006-02-02 Microsoft Corporation Retrieving graphics from slow retrieval storage devices
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
KR20060022235A (ko) * 2003-04-30 2006-03-09 코닌클리케 필립스 일렉트로닉스 엔.브이. 사용자 프로파일에 기초한 비디오 언어 필터링
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
US7912218B2 (en) 2003-07-04 2011-03-22 Nxp B.V. Method of broadcasting multimedia content via distribution network
US20050005025A1 (en) 2003-07-04 2005-01-06 Michael Harville Method for managing a streaming media service
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
US20060179153A1 (en) 2004-03-22 2006-08-10 Nam-Yul Lee 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 動画像中のオブジェクトに関するメタデータストリームのデータ構造、検索方法及び再生方法
NZ552887A (en) 2004-07-23 2008-11-28 Commw Scient Ind Res Org Method and system for integrating browsing histories with media playlists
US20110213879A1 (en) 2010-03-01 2011-09-01 Ashley Edwardo King Multi-level Decision Support in a Content Delivery Network
JP4332089B2 (ja) 2004-08-19 2009-09-16 ソニー株式会社 再生装置、再生方法および再生プログラム、ならびに、記録媒体
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
WO2006065223A1 (en) 2004-12-13 2006-06-22 Muvee Technologies Pte Ltd A method of automatically editing media recordings
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
US8176565B2 (en) 2005-04-15 2012-05-08 Sony Corporation Information processing apparatus, information processing method, and computer program
US7978955B2 (en) 2005-04-22 2011-07-12 Sony Corporation Recording device, recording method, reproducing device, reproducing method, program, and recording medium
US8321041B2 (en) * 2005-05-02 2012-11-27 Clear Channel Management Services, Inc. Playlist-based content assembly
WO2006119186A2 (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
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
JPWO2007111312A1 (ja) 2006-03-28 2009-08-13 パイオニア株式会社 コンテンツ配信システム、サーバ装置、コンテンツ配信方法およびプログラム
US7730420B1 (en) 2006-05-03 2010-06-01 The Weather Channel, Inc. Systems and methods for creating a playlist
WO2008094279A1 (en) 2006-06-06 2008-08-07 Cts Media A method and system for dynamic management of multiple media data streams
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
US20080133603A1 (en) 2006-08-28 2008-06-05 Lawrence Fischer System and method for media publishing
KR20080020868A (ko) 2006-09-01 2008-03-06 삼성전자주식회사 스트리밍 컨텐츠 기록과 재생에 관한 장치 및 방법
GB2454618B (en) 2006-09-01 2010-03-03 Rowe Internat Corp Automatic music management methods and systems
JP4694448B2 (ja) * 2006-09-13 2011-06-08 アルパイン株式会社 オーディオ装置
US20080109888A1 (en) 2006-09-14 2008-05-08 Shah Ullah Methods and systems for securing content projected to a nearby device
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 주식회사 한랭크닷컴 웹상의 텍스트를 음악으로 재생하는 저작 시스템 및 방법
US8601018B2 (en) 2006-11-08 2013-12-03 Open Invention Network, Llc Apparatus and method for dynamically providing web-based multimedia to a mobile phone
US8176058B2 (en) * 2006-11-30 2012-05-08 Yahoo! Inc. Method and systems for managing playlists
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
US8180735B2 (en) 2006-12-29 2012-05-15 Prodea Systems, Inc. Managed file backup and restore at remote storage locations through multi-services gateway at user premises
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
US10382514B2 (en) 2007-03-20 2019-08-13 Apple Inc. Presentation of media in an application
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
JP5276099B2 (ja) * 2007-07-03 2013-08-28 スリーエム イノベイティブ プロパティズ カンパニー タイムスロットサンプルにコンテンツの複数小片を割り当てて、その割り当てられたコンテンツの効果を測定するためのシステム及び方法
US7769829B1 (en) 2007-07-17 2010-08-03 Adobe Systems Inc. Media feeds and playback of content
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
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
WO2009097492A1 (en) 2008-01-30 2009-08-06 Azuki Systems, Inc. Media navigation system
WO2009110605A1 (ja) * 2008-03-07 2009-09-11 日本ビクター株式会社 サーバ装置、端末装置、再生装置
US8239889B2 (en) 2008-03-10 2012-08-07 Hulu, LLC Method and apparatus for collecting viewer survey data and for providing compensation for same
US20090249222A1 (en) 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US8224775B2 (en) * 2008-03-31 2012-07-17 Packetvideo Corp. System and method for managing, controlling and/or rendering media in a network
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
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
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
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
EP2392112A2 (en) 2008-12-31 2011-12-07 Apple Inc. Method for streaming multimedia data over a non-streaming protocol
US8099476B2 (en) 2008-12-31 2012-01-17 Apple Inc. Updatable real-time or near real-time streaming
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
US8429287B2 (en) 2009-04-29 2013-04-23 Rangecast Technologies, Llc Network audio distribution system and method
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
CA2822185C (en) 2009-08-14 2014-04-22 Azuki Systems, Inc. Method and system for unified mobile content protection
EP2467786B1 (en) 2009-08-17 2019-07-31 Akamai Technologies, Inc. Method and system for http-based stream delivery
US8392600B2 (en) * 2009-09-14 2013-03-05 Adobe Systems Incorporated Dynamic stream switch control
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
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
CN107911332B (zh) 2009-11-04 2021-01-08 阿莫泰克有限公司 媒体内容流播的方法、系统和计算机可读介质
KR101750048B1 (ko) 2009-11-13 2017-07-03 삼성전자주식회사 변속 재생 서비스 제공 방법 및 장치
KR101750049B1 (ko) 2009-11-13 2017-06-22 삼성전자주식회사 적응적인 스트리밍 방법 및 장치
JP5758398B2 (ja) * 2009-11-16 2015-08-05 トゥウェンティース・センチュリー・フォックス・フィルム・コーポレイションTwentieth Century Fox Film Corporation 多数の言語及び版のための非破壊的なファイルベースのマスタリング
DK2526671T3 (en) * 2010-01-18 2017-02-27 ERICSSON TELEFON AB L M (publ) METHODS AND DEVICES FOR HTTP MEDIA FLOW DISTRIBUTION
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
WO2011119554A1 (en) * 2010-03-22 2011-09-29 Echostar Technologies Llc 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
US8683007B2 (en) 2010-05-27 2014-03-25 Smsc Holdings S.A.R.L. Seamless transfer of media streams
US8555163B2 (en) * 2010-06-09 2013-10-08 Microsoft Corporation Smooth streaming client component
AU2010202741B1 (en) * 2010-06-30 2010-12-23 Brightcove Inc. Dynamic chunking for media streaming
EP2596626B8 (en) * 2010-07-20 2018-11-21 InterDigital Madison Patent Holdings Method for content presentation during trick mode operations
EP2614653A4 (en) * 2010-09-10 2015-04-15 Nokia Corp METHOD AND APPARATUS FOR ADAPTIVE CONTINUOUS DIFFUSION
WO2012059376A1 (en) 2010-11-02 2012-05-10 Telefonaktiebolaget L M 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.
US20120124179A1 (en) * 2010-11-12 2012-05-17 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
US20120315009A1 (en) 2011-01-03 2012-12-13 Curt Evans Text-synchronized media utilization and manipulation
US9247312B2 (en) * 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
WO2012112896A2 (en) 2011-02-18 2012-08-23 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)
US9462024B2 (en) * 2011-06-08 2016-10-04 Futurewei Technologies, Inc. System and method of media content streaming with a multiplexed representation

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647997B2 (en) 2013-03-13 2017-05-09 Nagrastar, Llc USB interface for performing transport I/O
US9769521B2 (en) 2013-03-13 2017-09-19 Nagrastar, Llc Systems and methods for performing transport I/O
US9774908B2 (en) 2013-03-13 2017-09-26 Nagrastar, Llc Systems and methods for performing transport I/O
US9888283B2 (en) 2013-03-13 2018-02-06 Nagrastar Llc Systems and methods for performing transport I/O
TWI634786B (zh) * 2013-03-13 2018-09-01 納格拉星有限責任公司 可抽換式安全裝置、用於進行輸送輸入/輸出之方法及系統
US10070176B2 (en) 2013-03-13 2018-09-04 Nagrastar, Llc Systems and methods for performing transport I/O
US10382816B2 (en) 2013-03-13 2019-08-13 Nagrastar, Llc Systems and methods for performing transport I/O
US10210549B2 (en) 2013-08-14 2019-02-19 Tencent Technology (Shenzhen) Company Limited Promotion content delivery with media content
TWI687098B (zh) * 2013-09-25 2020-03-01 瑞典商艾瑞克生公司 適應性視訊白斑學習及使用者頻寬遞送控制系統
USD864968S1 (en) 2015-04-30 2019-10-29 Echostar Technologies L.L.C. Smart card interface
US10628485B2 (en) 2018-05-10 2020-04-21 Alibaba Group Holding Limited Blockchain-based music originality analysis method and apparatus
TWI712901B (zh) * 2018-05-10 2020-12-11 開曼群島商創新先進技術有限公司 基於區塊鏈的音樂原創性分析方法和裝置

Also Published As

Publication number Publication date
US8843586B2 (en) 2014-09-23
WO2012166816A1 (en) 2012-12-06
US20120311075A1 (en) 2012-12-06
AU2012262245A1 (en) 2013-12-12
EP2716061B1 (en) 2018-12-19
KR101593771B1 (ko) 2016-02-12
KR20140019449A (ko) 2014-02-14
AU2012262245B2 (en) 2015-05-07
TWI461043B (zh) 2014-11-11
CN103583051B (zh) 2017-02-22
EP2716061A1 (en) 2014-04-09
CN103583051A (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
TWI461043B (zh) 用於即時或接近即時串流傳輸之播放清單
US20210263981A1 (en) Playlists for real-time or near real-time streaming
TWI505676B (zh) 用於即時或接近即時串流傳輸之播放清單
TWI516107B (zh) 即時或接近即時串流傳輸
JP6141926B2 (ja) リアルタイム又はリアルタイムに近いストリーミング
TWI451279B (zh) 即時或接近即時串流傳輸之內容存取控制
JP5296859B2 (ja) リアルタイム又はほぼリアルタイムのストリーミング
US8260877B2 (en) Variant streams for real-time or near real-time streaming to provide failover protection
US8280863B2 (en) Real-time or near real-time streaming with compressed playlists
AU2012262242A1 (en) Playlists for real-time or near real-time streaming
AU2015221573A1 (en) Playlists for real-time or near real-time streaming