TWI797483B - 伺服器端自適性媒體串流 - Google Patents

伺服器端自適性媒體串流 Download PDF

Info

Publication number
TWI797483B
TWI797483B TW109134259A TW109134259A TWI797483B TW I797483 B TWI797483 B TW I797483B TW 109134259 A TW109134259 A TW 109134259A TW 109134259 A TW109134259 A TW 109134259A TW I797483 B TWI797483 B TW I797483B
Authority
TW
Taiwan
Prior art keywords
media
time
client
transmission unit
encoding
Prior art date
Application number
TW109134259A
Other languages
English (en)
Other versions
TW202123720A (zh
Inventor
法比安 迪茲
Original Assignee
德商串流猴子有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 德商串流猴子有限責任公司 filed Critical 德商串流猴子有限責任公司
Publication of TW202123720A publication Critical patent/TW202123720A/zh
Application granted granted Critical
Publication of TWI797483B publication Critical patent/TWI797483B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available

Abstract

本發明關於媒體串流,特別是關於一種媒體串流方法、程序、伺服器與系統。媒體的一部分是從一串流伺服器傳輸至一客戶端且一傳送時間是針對該媒體的該部分所決定。該傳送時間與媒體的該部分的回放時段被進行比較。如果該回放時間與該傳送時間之間的差超過預定量,該媒體的該位元率會被調整。

Description

伺服器端自適性媒體串流
本發明是關於一種媒體串流,特別是關於串流伺服器與串流方法。
現有的音訊傳輸技術包含了像是Icecast和SHOUTcast、超文本傳輸協定(HyperText Transfer Protocol,HTTP)實時串流(HLS)和基於HTTP的動態影像專家組動態自適性串流(MPEG-DASH)。Icecast是一個串流媒體專案,其包含一個伺服器程序,該伺服器程序能夠通過HTTP協定串流像是Opus(RFC6716或RFC8251)或Vorbis等寬帶音訊內容、通過HTTP協定串流像是WebM或Theora等視頻、並通過SHOUTcast協定(其通過HTTP運作)串流動態影像專家組-1層級3(Movie Picture Experts Group 1 Layer 3,MP3)、進階音訊編碼(Advanced Audio Coding,AAC)和Nullsoft串流檔案(NSV)。
許多或大多數現有的串流媒體裝置,至少那些僅用於音訊的裝置,支援基於HTTP的經典Icecast,其可通過HTTP協定連續傳送音訊內容。對源音訊進行編碼後,源音訊被放入伺服器端的緩衝區中,然後傳輸到客戶端。HLS和MPEG-DASH的運作方式有所不同。兩者都使用分塊(chunking),因此音訊被切成多部分並放入相應的音訊檔案中。這些檔案可以通過簡單的HTTP伺服器傳遞給客戶端。
MPEG-DASH是通過將內容分成一系列基於HTTP協定的檔案小區段來執行,每個區段包含一段短時間間隔的內容的回放時間,該內容回放時間可能長達數小時,例如電影或體育賽事的實況轉播。內容能以各種不同的位元率(表示(representation))來取得,即,以不同位元率編碼的替代區段覆蓋 了回放時間中對準的短間隔。在MPEG-DASH客戶端回放該內容時,該客戶端使用位元率自適性(自適性位元率(Adaptive Bit Rate,ABR))演算法自動選擇具有最高位元率的區段,其可以及時下載該段以進行回放而不會導致回放中發生停頓或重新緩衝。MPEG-DASH在傳輸控制協定(Transmission Control Protocol,TCP)上使用HTTP協定。
市場上已經存在的大多數(獨立的)串流裝置都不支援這種傳送。
本發明關於在資料網路上串流媒體的方法與設備。
本發明是由獨立請求項的範圍所定義。附屬請求項中提供了一些較佳實施例。
根據本發明的一態樣,提供了一種在超文本傳輸協定(HTTP)上由一串流伺服器(200)所執行的媒體串流的方法,該方法包括以下步驟:(步驟S310)從一客戶端(300)接收對媒體資料的一請求;(步驟S320)向該客戶端(300)傳輸一第一傳輸單元,該第一傳輸單元包含通過使用一第一類型編碼來編碼的媒體資料的一第一部分;(步驟S330)決定該第一傳輸單元對該客戶端的傳送時間;以及(步驟S350)通過使用位元率不同於該第一類型編碼的一第二類型編碼來傳輸包含該媒體資料的一第二部分的一第二傳輸單元,以基於所決定的傳送時間來調整該串流的位元率。
根據一個實施例,該方法進一步包括以下步驟:(步驟S340)判定所決定的該傳送時間與一媒體時間的差異是否大於一預定量;當判定出該傳送時間與該媒體時間相差超過該預定量時,執行該調整步驟(步驟S350);以及當判定出該傳送時間與該媒體時間相差不超過該預定量時,不執行該調整步驟(步驟S350)。
另外,在一些實施例中,當判定出該傳送時間比該媒體時間高出一第一預定量以上時,傳輸包含通過使用低於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
另外,在一些實施例中,當判定出該傳送時間比該媒體時間低於一第二預定量以上時,傳輸包含通過使用高於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
另外,根據示範性實施例,該方法還包括以下步驟:在傳輸該第二傳輸單元之前等待一預定的等待時間期間,該預定的等待時間期間是根據該媒體時間所決定。
在一實施例中,該第二傳輸單元的該傳輸包含:從一儲存器中的多個區塊中選擇包含以該第二類型編碼進行編碼的媒體資料的該第二部分的一區塊,該多個區塊包含以不同於該第二類型編碼的個別類型編碼進行編碼的媒體資料的該第二部分。
該方法可以進一步包括以下步驟:從複數個客戶端接收對該媒體資料的請求;以傳輸單元將該媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型的媒體資料;以及以傳輸單元將附加媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型及一客戶端的媒體資料,其中,對於該複數個客戶端中的該些客戶端而言,該附加媒體資料的內容不同。
上述實施例或示範性實施方式中的任何一個的方法可以包含以下步驟:從該客戶端接收連接請求;在一特定客戶端線程中與該客戶端建立連接;以及儲存該客戶端的該連接啟動的一時刻。
較佳地,該媒體資料是音訊資料。確切地,該串流是一相容Icecast的串流。
在一些實施例中,該方法包括以下步驟:從複數個個別的媒體檔案中獲取媒體資料區塊;將連續的區塊排序為連續串流;以及根據Icecast協定將該連續串流傳輸至該客戶端。
根據本發明的另一態樣,提供了一種儲存在非暫時性儲存介質上的計算機程序,當該計算機程序在一處理器上執行時,該計算機程序執行如上述所有方法的步驟。
根據本發明的另一態樣,提供了一種串流伺服器,包含:一接口,用於執行對一客戶端的HTTP串流;一處理電路,可控制該接口,且配置以用於:從該客戶端接收對媒體資料的請求;向該客戶端傳輸一第一傳輸單元,該第一傳輸單元包含使用第一類型編碼來編碼的媒體資料的一第一部分;決定該第一傳輸單元對該客戶端的傳送時間;以及通過使用位元率不同於該第一類型編碼 的一第二類型編碼來傳輸包含該媒體資料的一第二部分的一第二傳輸單元,以基於所決定的傳送時間來調整該串流的位元率。
當將處理電路用於接收或傳輸資料時,可以通過控制接口進行接收或傳輸資料來實現。換句話說,處理電路可以通過資料接口接收或發送資料。在串流伺服器中實現的資料接口是當作用於接收和/或發送資料的協定層。可以在軟體和/或硬體,或者部分在軟體同時部分在硬件中達成上述實現。因此,該接口也可以由處理電路來實現。
根據一個實施例,處理電路(710)還被配置為:判定所決定的該傳送時間與一媒體時間的差異是否大於一預定量;當判定出該傳送時間與該媒體時間相差超過該預定量時,執行該調整步驟;以及當判定出該傳送時間與該媒體時間相差不超過該預定量時,不執行該調整步驟。
在一些實施例中,當判定出該傳送時間比該媒體時間高出一第一預定量以上時,傳輸包含通過使用低於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
此外,當判定出該傳送時間比該媒體時間低於一第二預定量以上時,傳輸包含通過使用高於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
在一些實施例中,該處理電路被配置為在傳輸該第二傳輸單元之前等待一預定的等待時間期間,該預定的等待時間期間是根據該媒體時間所決定。
在示範性實施方式中,第二傳輸單元的傳輸包含:從一儲存器中的多個區塊中選擇包含以該第二類型編碼進行編碼的媒體資料的該第二部分的一區塊,該多個區塊包含以不同於該第二類型編碼的個別類型編碼進行編碼的媒體資料的該第二部分。
處理電路可以被配置以控制接口用以:從複數個客戶端接收對該媒體資料的請求;以傳輸單元將該媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型的媒體資料;以及以傳輸單元將附加媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型及一客戶端的媒體資料,其中,對於該複數個客戶端中的該些客戶端而言,該附加媒體資料的內容不同。
根據一個實施例,處理電路還被配置為:從該客戶端接收連接請求;在一特定客戶端線程中與該客戶端建立連接;以及儲存該客戶端的該連接啟動的一時刻。
較佳地,該媒體資料是音訊資料。確切地,該串流是一相容Icecast的串流。
在一些實施例中,處理電路被配置為:從複數個個別的媒體檔案中獲取媒體資料區塊;將連續的區塊排序為連續串流;以及根據Icecast協定將該連續串流傳輸至該客戶端。
根據本發明的另一態樣,提供了一種串流系統,包含:如上所述的串流伺服器,該串流伺服器進一步提供有連接至一儲存器的一接口;以及該儲存器中儲存有媒體資料,該媒體資料被分成具有相同媒體時間段的區塊,該相同媒體時間段的區塊是以不同的位元率和/或使用不同的編解碼器進行編碼,其中,該儲存器包含用於向該串流伺服器提供區塊的一接口。
上述實施例可以和任何一個示範性實施方式組合。
100:媒體準備部分、媒體準備伺服器、編碼器、儲存器
101:串流系統
200,700:串流伺服器
300:客戶端、串流裝置
S210~S356:步驟
710:處理電路
720:儲存器
730:接口
以下的參考圖示和附圖更詳細地描述本發明的實施例,其中:圖1是基於HTTP的示範性視頻串流架構的方塊圖;圖2是用於媒體串流的位元率伺服器端自適性的方法示意圖;圖3是串流伺服器處執行用於位元率自適性的方法流程圖;圖4是串流伺服器處執行用於位元率自適性的方法的細節流程圖;圖5A和5B兩者聯合示出了信息圖,其示出了媒體準備部分、串流伺服器和客戶端之間的交流;圖6是串流系統的示範性架構中的工作串流的方塊圖;以及圖7是串流伺服器的示範性結構的方塊圖。
在下文中,若無另外明確指出,則相同的元件符號代表相同或等效的特徵。附圖是示範性實施例,並且該些實施例並不限制本發明的公開內容。其他特徵和選擇在以下描述中將是顯而易見的。
圖1是示範性串流架構,其包含三個功能塊:媒體準備部分100、 串流伺服器200和客戶端300。這三個功能塊可以分開設置。媒體準備部分100通常可以對應於伺服器、多個伺服器或集合伺服器。媒體準備伺服器100的主要功能是準備串流媒體。向媒體準備伺服器100提供諸如音訊、視頻和/或相關文本信息之類的媒體,使媒體被編碼或分段。例如,可以經由網絡(任何資料網絡)或經由任何可連接的儲存介質以原始格式(沒有壓縮,如由記錄裝置擷取的情形)或者是包含遺失或完好壓縮的格式,將媒體提供給媒體準備伺服器100。媒體準備伺服器100接著對媒體進行編碼以獲得分別具有一或多個位元率的編碼媒體。可以使用相同的編碼器或幾個不同的編碼器獲得不同的媒體表示。
可能需要將媒體分割成相同或對齊的回放時段的部分。如此一來能夠在客戶端不包含內容連續性的情況下在不同的表示形式之間進行切換。有時將相同回放時段的部分稱為區塊(chunk)。儘管各部分的回放時段相同,但通常不同表示之間的區塊長度會有所不同,並且同一表示內的區塊長度也可能會有所不同。然後將分割後的區塊儲存在媒體準備伺服器100中。媒體準備伺服器100提供接口,串流伺服器200可以在該接口上存取該區塊。這可以是用於下載區塊的任何協定。
需要注意的是,媒體準備伺服器100可以是與僅儲存媒體區段(segment)的檔案伺服器相對應的簡單媒體伺服器。媒體區段可以由內容提供者從其各自的站點儲存或週期性地下載。本發明不受媒體準備伺服器100的任何特定應用的限制。實際上,媒體準備伺服器100和串流伺服器200不必分開,並且可以在同一伺服器、多個伺服器或集合伺服器上實現。
串流伺服器200從客戶端300接收串流請求,獲取適當的區塊並將其傳輸到客戶端300。在圖1的示範性結構中,串流伺服器200通過HTTP協定與客戶端300通信。由串流伺服器200提供索引檔案(index file)。可以由媒體準備伺服器100或在串流伺服器處生成索引檔案。索引檔案對應於回放列表,該回放列表包含對各個媒體區塊按照其順序的參考,其中的媒體區塊在客戶端300被要求與回放。例如,在HTTP串流的情況下,索引可以包含含有區塊的媒體檔案的統一資源定位符(Uniform Resource Locator,URL)。然而,本發明不需要任何索引檔案,因為它不限於HLS或MPEG-DASH串流或列出多個URL的任何串流支持索引檔案。相反地,為了提供HTTP串流,可以使用單個URL位址。
索引檔案的URL在HTTP伺服器上發布,即在串流伺服器200上發 布。客戶端(軟件)300讀取索引,然後按索引給定的順序提出列舉媒體檔案的請求並連續回放。在媒體回放時,與用於媒體準備的對應於編碼器的解碼器將被應用在客戶端300。一般來說,客戶端300通過任何類型的資料網絡與串流伺服器200進行通信,資料網絡可能包含網際網路以及諸如基於數位用戶線路(Digital Subscriber Line,DSL)的網絡、無線網路(例如,無線區域網路(WLAN)、通用行動通訊系統(UMTS)、長期演進技術(LTE)等)、區域網路/局部區域網路(WAN/LAN)等等之類的存取網絡。
媒體準備部分100、串流伺服器200和一或多個客戶端300形成串流系統101。
提供了串流伺服器200和相應的串流方法,該串流伺服器200和相應的串流方法經由HTTP將串流內容動態地傳遞到客戶端300。
在圖2中示出了動態方法的深度概述。確切地,在步驟S210中,串流伺服器200從客戶端300接收對串流的請求。在步驟S220中,串流伺服器200將媒體傳輸到客戶端300。在步驟S230中,伺服器切換媒體的表示,並在步驟S240中以調整後的(切換的)表示來傳輸媒體。下面將解釋該方法的更多細節。
根據一實施例,提供了一種用於由串流伺服器200執行的通過HTTP的媒體串流的方法。該方法在圖3中示出。媒體可以是音訊、視頻和/或相關的文本或圖形信息、任何其他信息或上述的組合。一般來說,串流伺服器可以是任何串流源端,包含一或多個串流伺服器和/或媒體(準備)伺服器。
該方法包含:步驟S310,從客戶端300接收對媒體資料的請求;以及步驟S320,將第一傳輸單元發送到到客戶端300,該第一傳輸單元包含通過應用第一類型編碼而被編碼的媒體資料的第一部分。另外,該方法包含:步驟S330,決定第一傳輸單元向客戶端的傳送時間;以及步驟S350,根據通過步驟S320傳輸一第二傳輸單元以基於所決定的傳送時間來調整該串流的位元率,該第二傳輸單元包含該媒體資料的一第二部分,該第二部分係藉由使用位元率不同於該第一類型編碼的一第二類型編碼所進行編碼的。
第一和第二單元可以是媒體串流的區塊,以使得第一區塊在回放序列中位於第二區塊前面。第一類型和第二類型編碼,舉例來說,可以是由不同質量(quality)編碼的相同媒體的兩種表示,也因此產生不同位元率。然而,本發明不限於提供由相同編解碼器編碼的兩個表示。表示可以由不同編解碼器 提供。在此,術語「質量」可以指不同量化階差大小的使用。步驟S330中的傳送時間的決定可以包含測量傳送時間和/或估計傳送時間,例如根據測量來決定。
從圖3中可以看出,該方法還可以包含:步驟S340,判定被決定的傳送時間與媒體時間相差的量超過一預定量,並在判定出該傳送時間與媒體時間相差沒超過該預定量時(步驟S340中為「否」)執行不調整步驟。當判定出傳送時間與媒體時間的相差超過該預定量時(步驟S340中為「是」)執行調整步驟。這裡的傳送時間可以指將區塊從串流伺服器200傳輸到客戶端300所必需的時間間隔。媒體時間可以指回放時間(內容長度),即,用於回放該區塊的媒體的媒體時間間隔。
圖4示出了步驟S350:位元率的示範性調整(對應於表示)。當在步驟S352中判定出傳送時間比媒體時間高出第一預定量以上時,進行步驟S320來傳輸包含通過使用低於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。換句話說,在步驟S354減少位元率。
另一方面,當在步驟S352中判定出傳送時間比媒體時間短第二預定量以上時,傳輸包含通過使用高於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。換句話說,在步驟S356增加位元率。
第一預定量可以是包含0的任何量。然而,實際上,可以根據相同媒體的表示的位元率的粒度(granularity)來設置第一預定量。這是因為可以通過選擇由不同位元率編碼的相同媒體的另一區塊來執行步驟S350來調整。不會每個位元率值都有被提供區塊,而是以某些間距(例如8kbps、16kbps、32kbps等)提供區塊。本發明不限於任何特定的位元率或粒度。位元率之間的差異可能會更小,從而導致調整精細,但區塊的儲存需求也更高。位元率之間的差異可以不同。
第一預定量可以但不一定必須與第二預定量相同。這些量可以由串流伺服器的管理員/提供者通過將其設置為各自的數值來決定,或可以被固定地編程、或由任何其他方式配置。
根據一示範性實施例的方法包括:在傳輸該第二傳輸單元之前等待一預定的等待時間期間(waiting time period),該預定的等待時間期間是根據該媒體時間所決定。這是為了避免客戶端300提早請求其他區塊。例如,如果傳 送時間小於回放時間,則在調整後增加位元率以增加傳送時間。等待步驟被引入是用於以避免客戶端300請求以與調整之前相同的低延遲來請求另外的區塊(媒體檔案)。
參照圖1所示,串流伺服器對第二傳輸單元的傳輸包含從一儲存器中的多個區塊中選擇包含以該第二類型編碼進行編碼的媒體資料的該第二部分的一區塊,該多個區塊包含以不同於該第二類型編碼的個別類型編碼進行編碼的媒體資料的該第二部分。相對於串流伺服器,儲存器可以是內部或外部儲存器。儲存器可以對應於檔案伺服器(媒體伺服器),該檔案伺服器可以是媒體準備伺服器或集合的一部分。
媒體伺服器能夠處理來自一或多個客戶端300的請求。該方法可以包含以下步驟:從該多個客戶端接收對該媒體資料的請求;以傳輸單元對該多個客戶端傳輸媒體資料,該傳輸單元包含以任何編碼類型編碼的具有相同媒體時間的該媒體資料;以傳輸單元對該多個客戶端傳輸附加的媒體資料,該傳輸單元包含的附加媒體資料至,該傳輸傳輸單元包含的該媒體資料對於任何編碼類型具有相同媒體時間;其中,對於該複數個客戶端中的該些客戶端而言,該附加媒體資料的內容不同。
換句話說,可以向兩個客戶端的(相同或不同)串流添加與請求的串流不同的個人化資料。
具體地,步驟S210可以包含:從該客戶端接收連接請求;在一特定客戶端線程(thread)中與該客戶端建立連接;以及儲存該客戶端的該連接啟動的一時刻(time instant)。連接開始的時刻可以是時間戳記。
儘管本發明不限於任何特定類型的媒體,但是可以容易地應用於音訊串流。因此,媒體資料是音訊資料。然而,本發明也可以容易地應用於其他種類的媒體。例如,在此描述的任何實施例都適用於視頻串流以及包含音訊和/或視頻和/或文本或圖形信息的一般媒體串流。
在有利的實施方式中,串流是與Icecast相容的串流。
例如,串流伺服器可以應用混合方法以符合Icecast。串流伺服器端(例如,媒體準備部分100)以對應於不同位元率的具有不同編解碼器和/或質量等級的音訊來編碼。音訊也被分區塊(分段)並放入各自的檔案中,每個檔案包含一個區塊。然後,音訊區塊被放在一起形成連續串流(例如,音訊資料 傳輸串流(Audio Data Transport Stream,ADTS)容器中的進階音訊編碼(Advanced Audio Coding,AAC)串流、Ogg容器中的MP3或Opus、或任何其他串流格式),再一次傳遞給客戶端300,以便幾乎所有串流裝置都能夠以這種方式回放音訊。換句話說,即使是串流客戶端300不支持諸如HLS或DASH之類的分塊HTTP串流,這是當今大多數可用的獨立互聯網廣播可能會接收到音訊的情況。
這樣的串流伺服器200提供了與Icecast協定相容的HTTP伺服器,使得廣播商不必擔心如何連接到串流伺服器,因為對於大多數廣播商都可以做得與使用傳統的基於Icecast的串流之前完全一樣。
基於Icecast的(源)串流意味著以連續串流的形式傳遞編碼音訊,該傳遞是通過HTTP PUT/SOURCE協定以及用於更新元資料並將其同步到所傳遞的媒體的附加HTTP請求。包含媒體準備部分100的串流伺服器端使用不同的編解碼器和質量級別對音訊進行編碼,並儲存集中檔案的區塊。這些音訊區塊是向客戶端裝置傳遞的基礎。
返回圖2,在步驟S210中,串流伺服器200接受HTTP客戶端連接。一個客戶端可以請求一或多個HTTP連接。串流伺服器200使用Icecast相容的HTTP標頭進行應答。解析HTTP請求URL,串流伺服器200決定要傳送哪個串流,例如Icecast的掛載點(mountpoint)。Icecast(串流式)伺服器可以容納多個廣播(或掛載點),每個廣播包含一個單獨的內容串流。掛載點是(串流或媒體)伺服器上標識特定串流的唯一名稱。掛載點可對應一個檔名。一個偵聽器可以一次偵聽一個掛載點。
每個客戶端連接使用其本身線程進行處理。連接開始的實時時間儲存在記憶體中。例如,實時時間表示絕對時間。伺服器隨後使用該時間進行不同的計算,例如為了確定傳送時間。關於行動串流,音訊緩衝器是較佳的。在新的連接開始時,音訊材料的定義(實時)長度被盡快地傳輸到客戶端300,例如音訊的實時時間為30秒,即,回放30秒時間。伺服器計算音訊內容的長度(30秒)與包括這30秒的回放時間的該(一或多個)視頻區塊的傳送時間之差異。
之後,在仍然向客戶端發送新音訊的同時,連續地(規則地)計算音訊長度與傳輸時段之間的差異,例如,每個預定的時段。假如傳輸5秒鐘的音訊資料需要6秒鐘,則緩衝區將降低1秒。客戶端緩衝區的伺服器端計算在內 部稱為虛擬緩衝區。緩衝區是用於衡量傳送時間和回放時間之間的差異。例如,假如傳送時間與回放時間相同,這是理想情況,則無需在客戶端進行緩衝,就可以在媒體到達時進行回放。然而,由於媒體位元率的變化和包含鏈路質量和共存串流量傳輸的媒體條件的變化,這種情況不太可能發生。假如傳送時間低於回放時間,則該客戶端需要緩衝媒體直到其回放時間。假如傳送時間高於回放時間,在某些時間下將不會回放媒體資料,從而導致串流媒體的中斷和暫停。因此,需要將傳送時間和回放時間之間的差異維持越小越好。另一方面,當傳送延遲大於回放時間時,感知質量會因中斷而大大降低。因此,實際上需要有一些非零緩衝區以補償可能的延遲。
對於每個傳輸單元(可以是定義長度的完整音訊區塊,甚至單個音訊幀),都會為該特定交談(explicit session)計算並更新虛擬緩衝區。需要注意的是,傳輸單元可以是任何指定的時段。
假如虛擬緩衝區達到定義的級別,則伺服器將決定是否必須對帶寬/位元率進行調整。舉例來說,假如虛擬緩衝區的閾值降至25秒以下,則可以降低位元率。在這種情況下,伺服器將獲取使用較低位元率設置編碼的音訊區塊。假如虛擬緩衝區再次達到所需的水平,則質量/位元率可以再次提高,以傳輸下一個音訊區塊。
假如達到了所需的虛擬緩衝級別,則伺服器將在傳輸下一個音訊部分之前等待定義的時間。伺服器必須等待,因為「只」有實時速率的音訊輸入,否則客戶端會請求音訊廣播公司尚未編碼或尚未傳輸的音訊材料。
使用此技術,還可以為每個客戶端交談明確地交換每個音訊區塊。可以將每個毫秒的音訊傳送到與來源無關的每個客戶端,使得可以依廣播公司需求為每個收聽者替換廣告或指定的音軌。
圖5總結了實施例的方法,並且示出了媒體準備部分100、串流伺服器200和客戶端300之間的示範性互聯。圖5具有兩個部分,圖5A和圖5B。圖5B是圖5A的延續。
特別地,HTTP客戶端(對應於客戶端300)請求來自串流處理器(串流伺服器200的一部分)的串流。然後,串流處理器向集合伺服器(代表媒體準備部分100)請求適當的區塊,在此例子中的該集合伺服器是HTTP伺服器。需要注意的是,媒體準備部分100和串流伺服器200之間的區塊傳送(意味著任 何協定)可以是包含二進制資料交換的任何種類的傳送,例如可存取的檔案目錄、網路檔案系統(NFS)網絡共享、伺服器訊息區塊(smb)網絡共享、HTTP伺服器或任何其他自定義協定。
然後,HTTP(集合)伺服器將所請求的區塊提供給串流伺服器(圖5中未示出),該串流伺服器設置傳送時間的量測,例如,通過儲存時間戳記,並提供區塊至該HTTP客戶端。串流伺服器測量傳送時間。可以當作HTTP協定或TCP協定的一部分來執行或通過監視來自客戶端的反饋來以其他方式執行,例如儲存HTTP傳送方法開始時的時間戳記,並在給定資料量的傳送末尾評估另一個時間戳記。一旦完成部分傳送,將計算時間差(delta)。可以基於從在串流伺服器處的媒體資料(客戶端)的接收器接收到的確認來識別傳輸結束。例如,傳輸控制協定(TCP)確認或任何其他層協定確認,或者通常是來自客戶端的任何反饋。
獲得測量結果後,判定傳送時間是否高於或低於音訊(一般是媒體)的實時時間,即在傳送時間內傳輸的資料的回放時間。假如傳送時間較長(例如差了第一預定時間量),將調用串流處理器以降低媒體的位元率級別(圖5B)。換句話說,串流伺服器從集合伺服器請求適當的區塊,這意味著以位元率編碼的表示中的區塊要比傳送時間過長的區塊的位元率低。然後將這些區塊從串流伺服器(由串流處理器)提供給客戶端。因此,無論客戶端向串流伺服器的請求為何,串流伺服器控制到客戶端的串流的位元率。這有助於通過串流伺服器的自動質量控制來自適性地提供串流。
另一方面,假如測量的傳送時間較低(例如,差了第二個預定時間量),將調用串流處理器以增加媒體的位元率級別(圖5B)。換句話說,串流伺服器從集合伺服器請求適當的區塊,這意味著以位元率編碼的表示中的區塊要比傳送時間過短的區塊的位元率高。然後將這些區塊從串流伺服器(由串流處理器)提供給客戶端。通過這種方式,為客戶端提供了適當的位元率,避免了客戶端需要較大的緩衝區。換句話說,串流伺服器自動提供了客戶端可以接收的質量。
需要注意的是,第一預定時間量可以與第二預定時間量相同,但不必一定相同。如圖5B所示,位元率的增加和減少受到具有較低或較高位元率的區塊的可用性所限制。假如位元率尚未達到被支援的最低級別,則可以降低 位元率。假如位元率尚未達到被支援的最高級別,則可以提高位元率。
可以在串流期間重複該方法。特別地,可以針對每個區塊或針對每個預定數目的區塊來測量傳送時間,即,在串流期間連續地進行測量。對於不太複雜的實現,可以執行測量不是連續的而是有一定的周期性的,例如每30秒或每分鐘一次等。在某些實現中,可以始終通過向上或向下一個質量級別逐步執行遞增和遞減操作。在其他實現中,由客戶端選擇適當的質量級別(位元率)來決定回放質量,例如HLS和MPEG-DASH。此實現的質量不能強加於伺服器端,在很大程度上取決於客戶端計算可用帶寬的實現。
串流處理器是串流伺服器的功能單元,其可以在處理電路上運行的軟體中實現或嵌入在處理電路的硬體中。
根據一個實施例,一種儲存在非暫時性儲存介質上的計算機程序,當在處理器上執行該計算機程序時,該計算機程序執行上述任何方法的所有步驟。換句話說,該方法可以被具體化為用於串流伺服器的程序代碼。
根據圖7所示的另一個實施例,提供了串流伺服器700,其包含:接口730,用於將媒體資料HTTP串流到客戶端,並且可以由處理電路710控制。處理電路710被配置為控制接口730用於:從客戶端接收媒體資料請求;向客戶端傳輸第一傳輸單元,該第一傳輸單元包含通過應用第一類型編碼而編碼的媒體資料的第一部分;決定第一傳輸單元向客戶端的傳送時間;通過使用位元率來應用不同於該第一類型編碼的一第二類型編碼來傳輸包含該媒體資料的一第二部分的一第二傳輸單元,以基於所決定的該傳送時間來調整該串流的位元率。
串流伺服器還可以包含用於(暫時)儲存從媒體準備伺服器或從本身的媒體儲存獲得的區塊的儲存器720。
圖6是資料源和客戶端之間的示範性流程。特別是,資料源提供原始、無損或高質量有損編碼資料。此處的資料源可以是任何直接來源,例如一或多個相機。然而,資料源也可以是儲存器,例如位於內容提供者、行動儲存、或其他來源。資料源可將媒體資料提供給對應媒體準備伺服器100的(HTTP)伺服器,該伺服器使用編碼器將媒體資料編碼為各別具有不同質量級別(在圖6中以質量1…質量N表示)的N個表示。編碼的N個表示儲存在可通過資料管理者存取的資料儲存器中(也是媒體準備伺服器100的一部分)。串流伺服器可要求 資料管理者提供如上所述的適當區塊。然後,資料管理者取得適當的區塊(即,要提供給客戶端的區塊序列中的區塊,並且在質量級別1到N中具有適當的質量k。如上所述,參照圖5A和5B,基於傳送時間的測量以及與各個區塊或多個區塊的回放時間的比較來決定適當的質量級別k。因此,當串流客戶端請求連續HTTP串流(例如Icecast支援的HTTP串流)時,串流伺服器開始請求適當的區塊,測量傳送時間並將這些區塊作為連續HTTP串流發送給客戶端,其可能會更改位元率以適應客戶端功能/鏈接質量。
在一些實施例中,提供了一種系統,該系統包含:如上所述的串流伺服器200,進一步提供連至一儲存器的一接口;以及該儲存器100中儲存有媒體資料,該媒體資料被分成具有相同媒體時間段(media time duration)的區塊,該相同媒體時間段的區塊是以不同的位元率和/或使用不同的編解碼器進行編碼,其中,該儲存器包含用於向該串流伺服器提供區塊的一接口。
需要注意的是,關於方法的以上描述也可以應用於對應執行該方法的步驟的裝置,反之亦然。
本發明可以通過軟體、硬體或兩者的任何組合來實現。特別地,串流伺服器可以是具有一或多個處理器的通用計算機或計算機集合,其中串流伺服器的功能(例如串流處理器或資料管理者與媒體準備伺服器中的資料管理者進行通信以獲取適當的區塊)是由軟體實現的。然後,軟體會配置串流伺服器(一或多個處理器)以執行該功能。然而,一般來說,本發明不限於任何特定的實現和使用。相反地,串流伺服器也可以全部或部分地由專用或可編程硬體來實現。
綜上所述,本發明涉及媒體串流,尤其涉及一種媒體串流方法、程序、伺服器和系統。媒體的一部分是從一串流伺服器傳輸至一客戶端且一傳送時間是針對媒體的該部分所決定。該傳送時間與媒體的該部分的回放時段被進行比較。當決定出該傳送時間與該回放時間相差超過預定量時,該媒體的該位元率會被調整。
S210~S240:步驟

Claims (22)

  1. 一種在超文本傳輸協定(HTTP)上由一串流伺服器(200)所執行的媒體串流的方法,該方法包括以下步驟:(步驟S310)從一客戶端(300)接收對媒體資料的一請求;(步驟S320)向該客戶端(300)傳輸一第一傳輸單元,該第一傳輸單元包含通過使用一第一類型編碼來編碼的媒體資料的一第一部分;(步驟S330)決定該第一傳輸單元對該客戶端的傳送時間;以及(步驟S350)通過傳輸一第二傳輸單元,以基於所決定的傳送時間來調整該串流的位元率,該第二傳輸單元包含以一第二類型編碼來編碼的該媒體資料的一第二部分,該第一類型編碼與該第二類型編碼的位元率不同;其中,該第二傳輸單元的該傳輸包含:從一儲存器中的多個區塊中選擇包含以該第二類型編碼進行編碼的媒體資料的該第二部分的一區塊,該多個區塊包含以不同於該第二類型編碼的個別類型編碼進行編碼的媒體資料的該第二部分;以及在連續的HTTP協定串流中將該區塊傳輸到該客戶端。
  2. 如請求項1所述的方法,進一步包括:(步驟S340)判定所決定的該傳送時間與一媒體時間的差異是否大於一預定量;當判定出該傳送時間與該媒體時間相差超過該預定量時,執行該調整步驟(步驟S350);以及當判定出該傳送時間與該媒體時間相差不超過該預定量時,不執行該調整步驟(步驟S350)。
  3. 如請求項2所述的方法,其中,當判定出該傳送時間比該媒體時間高出一第一預定量以上時,傳輸包含通過使用低於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
  4. 如請求項2或3所述的方法,其中,當判定出該傳送時間比該媒體時間低於一第二預定量以上時,傳輸包含通過使用高於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
  5. 如請求項4所述的方法,包括以下步驟:在傳輸該第二傳輸單元之前等待一預定的等待時間期間,該預定的等待時間期間是根據該媒體時間所決定。
  6. 如請求項5所述的方法,包括以下步驟:從複數個客戶端接收對該媒體資料的請求;以傳輸單元將該媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型的媒體資料;以及以傳輸單元將附加媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型及一客戶端的媒體資料,其中,對於該複數個客戶端中的該些客戶端而言,該附加媒體資料的內容不同。
  7. 如請求項6所述的方法,包括以下步驟:從該客戶端接收連接請求;在一特定客戶端線程中與該客戶端建立連接;以及儲存該客戶端的該連接啟動的一時刻。
  8. 如請求項7所述的方法,其中,該媒體資料是音訊資料。
  9. 如請求項8所述的方法,其中,該串流是一相容Icecast的串流。
  10. 如請求項9所述的方法,包括以下步驟:從複數個個別的媒體檔案中獲取媒體資料區塊;將連續的區塊排序為連續串流;以及根據Icecast協定將該連續串流傳輸至該客戶端。
  11. 一種儲存在非暫時性儲存介質上的計算機程序,當該計算機程序在一處理器上執行時,該計算機程序執行如請求項1至10中任一項所述的方法的所有步驟。
  12. 一種串流伺服器(700),包括:一接口(730),用於執行對一客戶端的HTTP串流;一處理電路(710),可控制該接口,且配置以用於:從該客戶端接收對媒體資料的請求; 向該客戶端傳輸一第一傳輸單元,該第一傳輸單元包含通過使用一第一類型編碼來編碼的媒體資料的一第一部分;決定該第一傳輸單元對該客戶端的傳送時間;通過傳輸一第二傳輸單元,以基於所決定的傳送時間來調整該串流的位元率,該第二傳輸單元包含以一第二類型編碼來編碼的該媒體資料的一第二部分,該第一類型編碼與該第二類型編碼的位元率不同;該第二傳輸單元的該傳輸包含:從一儲存器中的多個區塊中選擇包含以該第二類型編碼進行編碼的媒體資料的該第二部分的一區塊,該多個區塊包含以不同於該第二類型編碼的個別類型編碼進行編碼的媒體資料的該第二部分;以及在連續的HTTP協定串流中將該區塊傳輸到該客戶端。
  13. 如請求項12所述的串流伺服器,所述處理電路(710)進一步被配置以:判定所決定的該傳送時間與一媒體時間的差異是否大於一預定量;當判定出該傳送時間與該媒體時間相差超過該預定量時,執行該調整步驟;以及當判定出該傳送時間與該媒體時間相差不超過該預定量時,不執行該調整步驟。
  14. 如請求項13所述的串流伺服器,其中,當判定出該傳送時間比該媒體時間高出一第一預定量以上時,傳輸包含通過使用低於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
  15. 如請求項13或14所述的方法,其中,當判定出該傳送時間比該媒體時間低於一第二預定量以上時,傳輸包含通過使用高於該第一類型編碼的一位元率來編碼的該媒體資料的該第二部分的該第二傳輸單元。
  16. 如請求項15所述的串流伺服器,該處理電路被配置為在傳輸該第二傳輸單元之前執行等待一預定的等待時間期間,該預定的等待時間期間是根據該媒體時間所決定。
  17. 如請求項16所述的串流伺服器,其中,該處理電路被配置以控制該接口以用於:從複數個客戶端接收對該媒體資料的請求;以傳輸單元將該媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型的媒體資料;以及以傳輸單元將附加媒體資料傳輸至該複數個客戶端,該傳輸單元包含具有相同媒體時間的任意編碼類型及一客戶端的媒體資料,其中,對於該複數個客戶端中的該些客戶端而言,該附加媒體資料的內容不同。
  18. 如請求項17所述的串流伺服器,其中,所述處理電路進一步被配置以:從該客戶端接收連接請求;在一特定客戶端線程中與該客戶端建立連接;以及儲存該客戶端的該連接啟動的一時刻。
  19. 如請求項18所述的串流伺服器,其中,該媒體資料是音訊資料。
  20. 如請求項19所述的串流伺服器,其中,該串流是一相容Icecast的串流。
  21. 如請求項20所述的串流伺服器,其中,該處理電路被配置以:從複數個個別的媒體檔案中獲取媒體資料區塊;將連續的區塊排序為連續串流;以及根據Icecast協定將該連續串流傳輸至該客戶端。
  22. 一種串流系統,包括:如請求項12至21中的任一項所述的串流伺服器,該串流伺服器進一步提供有連接至該儲存器的一接口;以及該儲存器中儲存有媒體資料,該媒體資料被分成具有相同媒體時間段的區塊,該相同媒體時間段的區塊是以不同的位元率和/或使用不同的編解碼器進行編碼,其中,該儲存器包含用於向該串流伺服器提供區塊的一接口。
TW109134259A 2019-10-01 2020-09-30 伺服器端自適性媒體串流 TWI797483B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/EP2019/076556 WO2021063488A1 (en) 2019-10-01 2019-10-01 Server-side adaptive media streaming
WOPCT/EP2019/076556 2019-10-01

Publications (2)

Publication Number Publication Date
TW202123720A TW202123720A (zh) 2021-06-16
TWI797483B true TWI797483B (zh) 2023-04-01

Family

ID=68136403

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109134259A TWI797483B (zh) 2019-10-01 2020-09-30 伺服器端自適性媒體串流

Country Status (7)

Country Link
US (1) US20220408135A1 (zh)
EP (1) EP4038888A1 (zh)
CN (1) CN114731450A (zh)
AR (1) AR120127A1 (zh)
CA (1) CA3154701A1 (zh)
TW (1) TWI797483B (zh)
WO (1) WO2021063488A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130044801A1 (en) * 2011-08-16 2013-02-21 Sébastien Côté Dynamic bit rate adaptation over bandwidth varying connection
US20180262439A1 (en) * 2017-03-08 2018-09-13 Arris Enterprises Llc Excess bitrate distribution based on quality gain in sabr server

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2375680A1 (en) * 2010-04-01 2011-10-12 Thomson Licensing A method for recovering content streamed into chunk
EP2477397A1 (en) * 2011-01-12 2012-07-18 Nxp B.V. Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections
US9356821B1 (en) * 2012-08-08 2016-05-31 Tata Communications (America) Inc. Streaming content delivery system and method
HUE043713T2 (hu) * 2013-03-29 2019-09-30 Intel Ip Corp Minõségtudatos sebességillesztési technikák DASH streameléshez
EP2819379A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal
US9560404B2 (en) * 2014-09-10 2017-01-31 Ericsson Ab Advertisement targeting scheme in a multicast ABR environment based on ad caching
KR101863598B1 (ko) * 2016-07-29 2018-06-01 주식회사 에어브로드 스트리밍 서비스를 위한 클라이언트의 동작 방법
US10645437B2 (en) * 2017-04-03 2020-05-05 Sling Media Pvt Ltd Systems and methods for achieving optimal network bitrate

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130044801A1 (en) * 2011-08-16 2013-02-21 Sébastien Côté Dynamic bit rate adaptation over bandwidth varying connection
US20180262439A1 (en) * 2017-03-08 2018-09-13 Arris Enterprises Llc Excess bitrate distribution based on quality gain in sabr server

Also Published As

Publication number Publication date
AR120127A1 (es) 2022-02-02
TW202123720A (zh) 2021-06-16
CA3154701A1 (en) 2021-04-08
EP4038888A1 (en) 2022-08-10
CN114731450A (zh) 2022-07-08
WO2021063488A1 (en) 2021-04-08
US20220408135A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
US11444887B2 (en) Excess bitrate distribution based on quality gain in sabr server
US8621061B2 (en) Adaptive bitrate management for streaming media over packet networks
US10320869B2 (en) Network-capacity optimized adaptive HTTP streaming
RU2627303C2 (ru) Система и способ для адаптивной потоковой передачи в среде с несколькими путями передачи
US6792449B2 (en) Startup methods and apparatuses for use in streaming content
US20080133766A1 (en) Method and apparatus for streaming media to a plurality of adaptive client devices
CN108184152B (zh) 一种dash传输系统两阶段客户端码率选择方法
CN104967872B (zh) 基于动态自适应码率传输协议hls流媒体的直播方法和服务器
US20180248806A1 (en) Adaptive video over multicast
US20060109856A1 (en) Method and apparatus for adaptive buffering
WO2014011848A2 (en) Signaling and processing content with variable bitrates for adaptive streaming
CA2844648A1 (en) Method and apparatus for adaptive transcoding of multimedia stream
WO2012161652A1 (en) Methods for transmitting and receiving a digital signal, transmitter and receiver
CN106791860A (zh) 一种自适应视频编码控制系统及方法
WO2014110670A1 (en) Media server
KR20210042051A (ko) 적응적 스트리밍 서비스를 위한 다중 경로 기반 블록 전송 시스템 및 스트리밍 방법
CN1992886A (zh) 具有带宽适配功能的流媒体服务器
TWI797483B (zh) 伺服器端自適性媒體串流
CN110881018B (zh) 媒体流的实时接收方法及客户端
CN110545492B (zh) 媒体流的实时递送方法及服务器
Luthra et al. Server-Based Smart Adaptive Bit Rate (SABR) Streaming With Statistical Multiplexing