一種音頻傳輸的自適應方法及裝置的制造方法
【專利摘要】本發明公開了一種音頻傳輸的自適應方法及裝置,其方法包括:獲取與流媒體客戶端之間的當前網絡的傳輸速率;根據待傳輸的音頻流在預定編碼策略下的音頻幀的比特數與傳輸速率,計算音頻幀的傳輸時間;判斷傳輸時間是否超出一預設的傳輸時延閾值;若未超出,按照預定編碼策略,對音頻流進行編碼后并發送至向流媒體客戶端;若超出,則調整預定編碼策略,降低音頻流編碼后的音頻幀的比特數,并將編碼后的音頻流發送至流媒體客戶端。本發明通過網絡的當前傳輸速率與預設的傳輸時延閾值的關系,來調整音頻流的編碼策略,以使音頻傳輸適應當前網絡的傳輸速率,解決了因網絡抖動或網絡不穩定而造成的高于標準要求的時延,進而影響設備之間配合異常的問題。
【專利說明】
一種音頻傳輸的自適應方法及裝置
技術領域
[0001]本發明涉及流媒體傳輸領域,尤其涉及一種音頻傳輸的自適應方法及裝置。
【背景技術】
[0002]目前流媒體傳輸已成為網絡通信中的一常用功能,在流媒體傳輸的框架中,存在某些對于音頻流的限制,其中一個比較普遍的問題是對于音頻流時延的要求。音頻流時延包括:網絡傳輸時延和編碼設備時延,為了降低音頻流時延通常由兩個方向入手:一是降低網絡時延,優化網絡結構,例如建立端到端的直接物理連接,采用高效傳輸控制協議,以及優化網絡環境等;一是優化設備處理效率,提高設備的運算速率,優化處理邏輯,提高程序效率。
[0003]雖然以上兩種方式可以在很大程度上解決音頻流時延的問題,但均不能解決網絡環境的隨機性問題。現有技術中,無論物理層基于何種網絡拓撲結構,何種網絡介質,網絡抖動、網絡不穩定都無法避免,在這樣的情況下,可能出現高于標準要求的時延,從而可能導致設備之間配合異常。
【發明內容】
[0004]為了解決上述技術問題,本發明提供了一種音頻傳輸的自適應方法及裝置,解決了當網絡抖動時,音頻流時延超標的問題。
[0005]依據本發明的一個方面,提供了一種音頻傳輸的自適應方法,應用于流媒體服務器端,包括:
[0006]獲取與流媒體客戶端之間的當前網絡的傳輸速率;
[0007]根據待傳輸的音頻流在預定編碼策略下的音頻幀的比特數與傳輸速率,計算音頻幀的傳輸時間;
[0008]判斷傳輸時間是否超出一預設的傳輸時延閾值;
[0009]若未超出,按照預定編碼策略對音頻流進行編碼,并發送至向流媒體客戶端;
[0010]若超出,則調整預定編碼策略,降低音頻流編碼后的音頻幀的比特數,并將編碼后的音頻流發送至流媒體客戶端。
[0011]其中,獲取與流媒體客戶端之間的當前網絡的傳輸速率的步驟包括:
[0012]向流媒體客戶端發送網絡探測消息,其中,網絡探測消息攜帶有發送網絡探測消息的第一時間;
[0013]接收流媒體客戶端響應網絡探測消息后發送的探測響應消息,其中,探測響應消息攜帶有流媒體客戶端接收到網絡探測消息的第二時間;
[0014]根據第二時間與第一時間的時間差,以及網絡探測消息的比特數,計算與流媒體客戶端之間的傳輸速率。
[0015]其中,調整預定編碼策略,降低編碼后的音頻幀的比特數的步驟包括:
[0016]檢測編碼特性是否支持第一編碼策略;
[0017]若支持,則根據第一編碼策略降低音頻流編碼后的音頻幀的比特數,并判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值;若未超出,則將編碼后的音頻流發送至流媒體客戶端;若超出,則檢測編碼特性是否支持第二編碼策略;
[0018]若不支持,則檢測編碼特性是否支持第二編碼策略;若不支持第二編碼策略,則丟棄音頻流編碼后的音頻幀中的部分幀;若支持第二編碼策略,則根據第二編碼策略降低音頻流編碼后的音頻幀的比特數,并判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值;若未超出,則將編碼后的音頻流發送至流媒體客戶端;若超出,則丟棄音頻流編碼后的首頻巾貞中的部分巾貞;
[0019]第一編碼策略為分幀策略和多碼率策略中的一種,第二編碼策略為另一種。
[0020]其中,第一編碼策略為分幀策略,分幀策略包括多種幀長;根據第一編碼策略降低音頻流編碼后的音頻幀的比特數的步驟包括:
[0021]將音頻流分為多個第一音頻流,并按照當前編碼碼率對第一音頻流進行編碼,其中,第一音頻流的長度為分幀策略中的最短幀長。
[0022]其中,第二編碼策略為多碼率策略,多碼率策略包括:所支持的編碼碼率集合;根據第二編碼策略降低音頻流編碼后的音頻幀的比特數的步驟包括:
[0023]采用編碼碼率集合中低于當前編碼碼率的編碼碼率對第一音頻流重新編碼。
[0024]其中,第一編碼策略為多碼率策略,多碼率策略包括:所支持的編碼碼率集合;根據第一編碼策略降低音頻流編碼后的音頻幀的比特數的步驟包括:
[0025]米用編碼碼率集合中低于當前編碼碼率的編碼碼率對首頻流重新編碼。
[0026]其中,第二編碼策略為分幀策略,分幀策略包括多種幀長,根據第二編碼策略降低音頻流編碼后的音頻幀的比特數的步驟包括:
[0027]將編碼后的音頻幀分為多個第一音頻幀,第一音頻幀的長度為分幀策略中的最短幀長。
[0028]依據本發明的另一個方面,還提供了一種音頻傳輸的自適應裝置,應用于流媒體服務器端,包括:
[0029]獲取模塊,用于獲取與流媒體客戶端之間的當前網絡的傳輸速率;
[0030]計算模塊,用于根據待傳輸的音頻流在預定編碼策略下的音頻幀的比特數與傳輸速率,計算音頻幀的傳輸時間;
[0031]判斷模塊,用于判斷是否超出一預設的;
[0032]第一調整模塊,用于當傳輸時間未超出傳輸時延閾值時,按照預定編碼策略對音頻流進行編碼,并發送至向流媒體客戶端;
[0033]第二調整模塊,用于當傳輸時間超出傳輸時延閾值時,調整預定編碼策略,降低音頻流編碼后的音頻幀的比特數,并將編碼后的音頻流發送至流媒體客戶端。
[0034]其中,獲取模塊包括:
[0035]發送單元,用于向流媒體客戶端發送網絡探測消息,其中,網絡探測消息攜帶有發送網絡探測消息的第一時間;
[0036]接收單元,用于接收流媒體客戶端響應網絡探測消息后發送的探測響應消息,其中,探測響應消息攜帶有流媒體客戶端接收到網絡探測消息的第二時間;
[0037]計算單元,用于根據第二時間與第一時間的時間差,以及網絡探測消息的比特數,計算與流媒體客戶端之間的傳輸速率。
[0038]其中,第二調整模塊包括:
[0039]第一檢測單元,用于檢測編碼特性是否支持第一編碼策略;
[0040]第一調整單元,用于當支持第一編碼策略時,根據第一編碼策略降低音頻流編碼后的音頻幀的比特數;
[0041]第一判斷單元,用于判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值;若未超出,則將編碼后的音頻流發送至流媒體客戶端;若超出,則檢測編碼特性是否支持第二編碼策略;
[0042]第二檢測單元,用于當不支持第一編碼策略時,檢測編碼特性是否支持第二編碼策略;
[0043]第二調整單元,用于當不支持第二編碼策略時,丟棄音頻流編碼后的音頻幀中的部分幀;當支持第二編碼策略時,根據第二編碼策略降低音頻流編碼后的音頻幀的比特數;
[0044]第二判斷單元,用于判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值;若未超出,則將編碼后的音頻流發送至流媒體客戶端;若超出,則丟棄音頻流編碼后的音頻幀中的部分幀;
[0045]其中,第一編碼策略為分幀策略和多碼率策略中的一種,第二編碼策略為另一種。
[0046]其中,第一編碼策略為分幀策略,分幀策略包括多種幀長;第一調整單元包括:
[0047]第一調整子單元,用于將音頻流分為多個第一音頻流,并按照當前編碼碼率對第一音頻流進行編碼,其中,第一音頻流的長度為分幀策略中的最短幀長。
[0048]其中,第二編碼策略為多碼率策略,多碼率策略包括:所支持的編碼碼率集合;第二調整單元包括:
[0049]第二調整子單元,用于采用編碼碼率集合中低于當前編碼碼率的編碼碼率對第一音頻流重新編碼。
[0050]其中,第一編碼策略為多碼率策略,多碼率策略包括:所支持的編碼碼率集合;第一調整單元還包括:
[0051]第三調整子單元,用于采用編碼碼率集合中低于當前編碼碼率的編碼碼率對音頻流重新編碼。
[0052]其中,第二編碼策略為分幀策略,分幀策略包括多種幀長,第二調整單元還包括:
[0053]第四調整子單元,用于將編碼后的音頻幀分為多個第一音頻幀,第一音頻幀的長度為分幀策略中的最短幀長。
[0054]本發明的實施例的有益效果是:一種音頻傳輸的自適應方法及裝置,通過發送網絡探測消息的方式,計算當前網絡的傳輸速率,根據待傳輸音頻流在預定編碼策略下的音頻幀的比特數與傳輸速率,計算該音頻幀的傳輸時間,再判斷得到的傳輸時間是否超出了預設的傳輸時延閾值,若未超出,則按照預定編碼策略對該音頻流進行編碼并發送至流媒體客戶端,若超出,則調整預定編碼策略,降低音頻流編碼后的比特數,并將編碼后的音頻流發送至流媒體客戶端。根據當前網絡傳輸速率與預設傳輸時延閾值的關系,來調整音頻流的編碼策略,以使音頻傳輸適應當前網絡的傳輸速率,解決了因網絡抖動或網絡不穩定而造成的高于標準要求的時延,進而影響設備之間配合異常的問題。
【附圖說明】
[0055]圖1表示本發明的音頻傳輸的自適應方法的流程圖;
[0056]圖2表不本發明的實施例一的流程圖;
[0057]圖3表示本發明的實施例二的流程圖;
[0058]圖4表示本發明的音頻傳輸的自適應裝置的模塊示意圖。
【具體實施方式】
[0059]下面將參照附圖更詳細地描述本發明的示例性實施例。雖然附圖中顯示了本發明的示例性實施例,然而應當理解,可以以各種形式實現本發明而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本發明,并且能夠將本發明的范圍完整的傳達給本領域的技術人員。
[0060]實施例一
[0061]隨著流媒體傳輸功能的發展與普及,對流媒體傳輸過程中的時延要求越來越高,而當前情況下,無論是物理層基于何種網絡拓撲結構,何種網絡介質,都無法避免網絡抖動和網絡不穩定的問題,這樣即使優化了設備處理效率,優化了網絡拓撲結構,仍然可能出現高于標準要求的時延,從而導致設備之間配合異常。為了解決上述問題,如圖1所示,本發明的實施例提供了一種音頻傳輸的自適應方法,應用于流媒體服務器端,根據當前網絡狀態來調整音頻流的編碼策略,其方法主要包括:
[0062]步驟10:獲取與流媒體客戶端之間的當前網絡的傳輸速率。
[0063]流媒體服務器通過向流媒體客戶端發送一網絡探測消息,其中,該網絡探測消息中攜帶有流媒體服務器發送該網絡探測消息的第一時間,當流媒體客戶端收到該網絡探測消息后對該消息進行響應,并將探測響應消息反饋至流媒體服務器,其中,該探測響應消息中攜帶有流媒體客戶端接收到網絡探測消息的第二時間,以及反饋探測響應消息的第三時間。由第二時間與第一時間的時間差可計算出該網絡探測消息的下行傳輸時間,由于網絡探測消息的字節數或比特數是確定的,根據網絡探測消息的數據量與計算出的傳輸時間的比值,計算出當前網絡的下行傳輸速率。其中,網絡探測消息根據網絡協議的類型而定,本實施例中以RTSP消息為例。由于RTSP消息攜帶的比特數很少,為了得到準確的傳輸速率,優選地可選用發送多個RTSP消息,取多次RTSP探測消息傳輸速率的平均數,作為權衡網絡下行傳輸速率的依據。雖然RTSP消息攜帶的比特數很少,但頻繁發送仍會對網絡造成一定的負荷,故設定每隔預定時間對網絡狀況進行一次探測,并根據當時網絡狀況對音頻流的編碼策略進行調整。
[0064]步驟20:根據待傳輸的音頻流在預定編碼策略下的音頻幀的比特數與傳輸速率,計算音頻幀的傳輸時間。
[0065]在配置流媒體服務器時,會對流媒體服務器端的編碼器進行初始配置,例如配置編碼器的:編碼碼率,編碼幀長等,這樣流媒體服務器端有一預定編碼策略。根據待傳輸的音頻流在該預定編碼策略下的編碼比特數,與上述計算得到的傳輸速率的比值,計算該音頻流的傳輸時間,即在當前網絡情況下,傳輸該音頻流所需要的傳輸時間。
[0066]步驟30:判斷傳輸時間是否超出一預設的傳輸時延閾值。
[0067]預設的傳輸時延閾值的具體計算方法如下,標準要求時延為:建立傳輸通道的時間、流媒體服務器端的處理時間、流媒體客戶端的處理時間以及傳輸音頻流的時間,故傳輸時延閾值的上限即為標準要求時延減去建立傳輸通道的時間,再減去流媒體服務器端的處理時間和流媒體客戶端的處理時間,例如:標準要求時延為40ms,流媒體服務器端和流媒體客戶端之間建立傳輸通道的時間為20ms,流媒體服務器端和流媒體客戶端的處理一幀音頻信號的時間均為3ms,則傳輸一幀音頻信號的時間的傳輸時延閾值為14ms。
[0068]步驟40:若未超出,按照預定編碼策略對音頻流進行編碼,并發送至向流媒體客戶端;若超出,則調整預定編碼策略,降低音頻流編碼后的音頻幀的比特數,并將編碼后的音頻流發送至流媒體客戶端。
[0069]若步驟20中計算出的傳輸時間未超出傳輸時延閾值,說明當前網絡狀態良好,按照初始設置的預定編碼策略對待傳輸的音頻流進行編碼即可實現音頻流的可靠傳輸。
[0070]若步驟20中計算出的傳輸時間已超出傳輸時延閾值,說明當前網絡狀態較差或網絡狀態不穩定,則需要調整音頻流的編碼策略,以降低音頻流編碼后的音頻幀的比特數,以使得每一音頻幀能夠可靠傳輸。
[0071]其中,調整預定編碼策略,降低編碼后的音頻幀的比特數的具體包括以下步驟:
[0072]檢測流媒體服務器端自身的編碼特性是否支持第一編碼策略;
[0073]若支持第一編碼策略,則根據第一編碼策略降低音頻流編碼后的音頻幀的比特數,并判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值,若未超出,則將編碼后的音頻流發送至流媒體客戶端;若超出,則檢測自身編碼特性是否支持第二編碼策略;
[0074]若不支持第一編碼策略,則檢測自身編碼特性是否支持第二編碼策略;
[0075]若不支持第二編碼策略,則丟棄音頻流編碼后的音頻幀中的部分幀;
[0076]若支持第二編碼策略,則根據第二編碼策略降低音頻流編碼后的音頻幀的比特數,并判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值,若未超過,則將編碼后的音頻流發送至流媒體客戶端;若超出,則丟棄音頻流編碼后的音頻幀中的部分幀。
[0077]第一編碼策略為分幀策略和多碼率策略中的一種,第二編碼策略為另一種。其中,支持分幀策略的編碼器包括現有的可變幀長編碼器,例如典型代表AMR-WB+編碼器,其特點在于編碼器提供了多種幀長模式,包括:20ms幀長、40ms幀長和80ms幀長等,20ms幀長為將2ms的音頻流封裝為一幀,即一幀音頻幀攜帶20ms的音頻信號。支持多碼率策略的編碼器包括現有的編碼碼率可變編碼器,例如典型代表=AMR-NB和AMR-WB等,其特點在于雖然每幀音頻幀攜帶的音頻信號時間長度不可變,但對于每幀音頻幀的編碼比特數可變,例如AMR-WB有多種編碼碼率,每幀音頻幀的編碼比特數為477、461、397和365等。無論是采用較短幀長的方式,還是采用較低編碼碼率的方式,都是為了降低每幀音頻幀的比特數,以縮短每幀音頻幀的傳輸時間,使得音頻流在當前網絡狀態下可靠傳輸。
[0078]其中,由于發生網絡抖動或網絡不穩定的時間很短,故只對待傳輸音頻流的當前幀進行調整編碼策略,即僅音頻流的第一幀按照第一編碼策略或第二編碼策略進行編碼,音頻流的第二幀則采用預定編碼策略進行編碼;其中,丟棄音頻流編碼后的音頻幀中的部分幀,指的是丟棄音頻流的第一幀,從第二幀開始進行編碼傳輸。因為通常一音頻幀的長度不超過100ms,改變一幀音頻信號的編碼策略或丟棄一幀音頻信號并不會對音頻質量在感知上造成任何影響,因此該自適應方法對于音頻流質量的影響可忽略不計,而且使得在網絡抖動或網絡不穩定時保證了音頻流的可靠傳輸。
[0079]其中,當第一編碼策略為分幀策略,第二編碼策略為多碼率策略時,分幀策略包括多種幀長,多碼率策略包括所支持的編碼碼率集合。該音頻傳輸的自適應方法的具體實現方式可參照圖2所示,
[0080]獲取當前網絡的傳輸速率,即通過流媒體服務端向流媒體客戶端發送網絡探測消息對當前網絡的下行傳輸速率進行探測。
[0081]是否超過預設傳輸時延閾值,檢測計算得到的當前網絡的傳輸速率是否超過了預設傳輸時延閾值。
[0082]若未超過,按照預定編碼策略對音頻流進行編碼,并發送至流媒體客戶端。
[0083]若超過,則檢測流媒體服務器端的編碼器的編碼特性是否支持分幀策略;
[0084]若支持,則將音頻流按照最短幀長進行分流,并按照當前編碼碼率進行編碼,然后再檢測編碼后的音頻流的每幀音頻幀的傳輸時間是否超過預設傳輸時延閾值;若未超過,則將編碼后的音頻流發送至流媒體客戶端,若超過,則檢測編碼特性是否支持多碼率策略;若不支持,則丟棄音頻流編碼后的音頻幀中的部分幀,若支持,則采用低于當前編碼碼率的編碼碼率對分流后的音頻流進行編碼,然后再檢測編碼后的音頻流的每幀音頻幀的傳輸時間是否超過了預設傳輸時延閾值,若未超過,則將編碼后的音頻流發送至流媒體客戶端;若經過兩次編碼策略調整后的音頻幀的傳輸時間仍超過了傳輸時延閾值,則丟棄音頻流編碼后的音頻幀中的部分幀。
[0085]若不支持分幀策略,則檢測編碼器的編碼特性是否支持多碼率策略;若不支持,則丟棄音頻流編碼后的音頻幀中的部分幀,若支持,則采用低于當前編碼碼率的編碼碼率對分流后的音頻流進行編碼,然后再檢測編碼后的音頻幀的傳輸時間是否超過預設傳輸時延閾值,若未超過,則將編碼后的音頻流發送至流媒體客戶端;若經編碼策略調整后的音頻幀的傳輸時間仍超過了傳輸時延閾值,則丟棄音頻流編碼后的音頻幀中的部分幀。
[0086]本實施例中,根據當前網絡傳輸速率與預設傳輸時延閾值的關系,來調整音頻流的編碼策略,若在當前網絡傳輸速率下,當前音頻幀的傳輸時間未超出傳輸時延閾值,則按照預定編碼策略對音頻流進行編碼,并將編碼后的音頻幀傳輸至流媒體客戶端。若在當前網絡傳輸速率下,當前音頻幀的傳輸時間超出了傳輸時延閾值,則依次檢測是否支持分幀策略和多碼率策略,并按照相應編碼策略對音頻流進行編碼,以使音頻傳輸適應當前網絡的傳輸速率,解決了因網絡抖動或網絡不穩定而造成的高于標準要求的時延,進而影響設備之間配合異常的問題。
[0087]實施例二
[0088]其中,當第一編碼策略為多碼率策略,第二編碼策略為分幀策略時,多碼率策略包括所支持的編碼碼率集合,分幀策略包括多種幀長。該音頻傳輸的自適應方法的具體實現方式可參照圖3所示,
[0089]獲取當前網絡的傳輸速率,即通過流媒體服務端向流媒體客戶端發送網絡探測消息對當前網絡的下行傳輸速率進行探測。
[0090]是否超過預設傳輸時延閾值,檢測計算得到的當前網絡的傳輸速率是否超過了預設傳輸時延閾值。
[0091]若未超過,按照預定編碼策略對音頻流進行編碼,并發送至流媒體客戶端。
[0092]若超過,則檢測流媒體服務器端的編碼器的編碼特性是否支持多碼率策略;
[0093]若支持,則將音頻流采用低于當前編碼碼率的編碼碼率對音頻流進行編碼,優選地可采用最低編碼碼率對音頻流進行編碼,然后再檢測編碼后的音頻流的每幀音頻幀的傳輸時間是否超過預設傳輸時延閾值;若未超過,則將編碼后的音頻流發送至流媒體客戶端,若超過,則檢測編碼特性是否支持分幀策略;若不支持,則丟棄音頻流編碼后的音頻幀中的部分幀,若支持,則將音頻流按照最短幀長進行分流,并按照當前編碼碼率進行編碼,即按照最短幀長和最低編碼碼率對音頻流進行編碼,然后再檢測編碼后的音頻流的每幀音頻幀的傳輸時間是否超過了預設傳輸時延閾值,若未超過,則將編碼后的音頻流發送至流媒體客戶端;若經過兩次編碼策略調整后的音頻幀的傳輸時間仍超過了傳輸時延閾值,則丟棄音頻流編碼后的音頻幀中的部分幀。
[0094]若不支持多碼率策略,則檢測編碼器的編碼特性是否支持分幀策略;若不支持,則丟棄音頻流編碼后的音頻幀中的部分幀,若支持,則將音頻流按照最短幀長進行分流,并按照當前編碼碼率進行編碼,然后再檢測編碼后的音頻幀的傳輸時間是否超過預設傳輸時延閾值,若未超過,則將編碼后的音頻流發送至流媒體客戶端;若經編碼策略調整后的音頻幀的傳輸時間仍超過了傳輸時延閾值,則丟棄音頻流編碼后的音頻幀中的部分幀。
[0095]本實施例中,根據當前網絡傳輸速率與預設傳輸時延閾值的關系,來調整音頻流的編碼策略,若在當前網絡傳輸速率下,當前音頻幀的傳輸時間未超出傳輸時延閾值,則按照預定編碼策略對音頻流進行編碼,并將編碼后的音頻幀傳輸至流媒體客戶端。若在當前網絡傳輸速率下,當前音頻幀的傳輸時間超出了傳輸時延閾值,則依次檢測是否支持多碼率策略和分幀策略,并按照相應編碼策略對音頻流進行編碼,以使音頻傳輸適應當前網絡的傳輸速率,解決了因網絡抖動或網絡不穩定而造成的高于標準要求的時延,進而影響設備之間配合異常的問題。
[0096]如圖4所示,本發明的實施例中還提供了一種音頻傳輸的自適應裝置,應用于流媒體服務器端,包括:
[0097]獲取模塊,用于獲取與流媒體客戶端之間的當前網絡的傳輸速率;
[0098]計算模塊,用于根據待傳輸的音頻流在預定編碼策略下的音頻幀的比特數與傳輸速率,計算音頻幀的傳輸時間;
[0099]判斷模塊,用于判斷是否超出一預設的;
[0100]第一調整模塊,用于當傳輸時間未超出傳輸時延閾值時,按照預定編碼策略對音頻流進行編碼,并發送至向流媒體客戶端;
[0101]第二調整模塊,用于當傳輸時間超出傳輸時延閾值時,調整預定編碼策略,降低音頻流編碼后的音頻幀的比特數,并將編碼后的音頻流發送至流媒體客戶端。
[0102]其中,獲取模塊包括:
[0103]發送單元,用于向流媒體客戶端發送網絡探測消息,其中,網絡探測消息攜帶有發送網絡探測消息的第一時間;
[0104]接收單元,用于接收流媒體客戶端響應網絡探測消息后發送的探測響應消息,其中,探測響應消息攜帶有流媒體客戶端接收到網絡探測消息的第二時間;
[0105]計算單元,用于根據第二時間與第一時間的時間差,以及網絡探測消息的比特數,計算與流媒體客戶端之間的傳輸速率。
[0106]其中,第二調整模塊包括:
[0107]第一檢測單元,用于檢測編碼特性是否支持第一編碼策略;
[0108]第一調整單元,用于當支持第一編碼策略時,根據第一編碼策略降低音頻流編碼后的音頻幀的比特數;
[0109]第一判斷單元,用于判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值;若未超出,則將編碼后的音頻流發送至流媒體客戶端;若超出,則檢測編碼特性是否支持第二編碼策略;
[0110]第二檢測單元,用于當不支持第一編碼策略時,檢測編碼特性是否支持第二編碼策略;
[0111]第二調整單元,用于當不支持第二編碼策略時,丟棄音頻流編碼后的音頻幀中的部分幀;當支持第二編碼策略時,根據第二編碼策略降低音頻流編碼后的音頻幀的比特數;
[0112]第二判斷單元,用于判斷降低比特數后的音頻幀的傳輸時間是否超出傳輸時延閾值;若未超出,則將編碼后的音頻流發送至流媒體客戶端;若超出,則丟棄音頻流編碼后的音頻幀中的部分幀;
[0113]其中,第一編碼策略為分幀策略和多碼率策略中的一種,第二編碼策略為另一種。
[0114]其中,第一編碼策略為分幀策略,分幀策略包括多種幀長;第一調整單元包括:
[0115]第一調整子單元,用于將音頻流分為多個第一音頻流,并按照當前編碼碼率對第一音頻流進行編碼,其中,第一音頻流的長度為分幀策略中的最短幀長。
[0116]其中,第二編碼策略為多碼率策略,多碼率策略包括:所支持的編碼碼率集合;第二調整單元包括:
[0117]第二調整子單元,用于采用編碼碼率集合中低于當前編碼碼率的編碼碼率對第一音頻流重新編碼,并向流媒體客戶端告知當前的編碼碼率。
[0118]其中,第一編碼策略為多碼率策略,多碼率策略包括:所支持的編碼碼率集合;第一調整單元還包括:
[0119]第三調整子單元,用于采用編碼碼率集合中低于當前編碼碼率的編碼碼率對音頻流重新編碼,并向流媒體客戶端告知當前的編碼碼率。
[0120]其中,第二編碼策略為分幀策略,分幀策略包括多種幀長,第二調整單元還包括:
[0121]第四調整子單元,用于將編碼后的音頻幀分為多個第一音頻幀,第一音頻幀的長度為分幀策略中的最短幀長。
[0122]需要說明的是,該裝置是與上述音頻傳輸的自適應方法對應的裝置,上述方法實施例中所有實現方式均適用于該裝置的實施例中,也能達到相同的技術效果。
[0123]以上所述的是本發明的優選實施方式,應當指出對于本技術領域的普通人員來說,在不脫離本發明所述的原理前提下還可以作出若干改進和潤飾,這些改進和潤飾也在本發明的保護范圍內。
【主權項】
1.一種音頻傳輸的自適應方法,應用于流媒體服務器端,其特征在于,包括: 獲取與流媒體客戶端之間的當前網絡的傳輸速率; 根據待傳輸的音頻流在預定編碼策略下的音頻幀的比特數與所述傳輸速率,計算所述音頻幀的傳輸時間; 判斷所述傳輸時間是否超出一預設的傳輸時延閾值; 若未超出,按照所述預定編碼策略對所述音頻流進行編碼,并發送至所述流媒體客戶端; 若超出,則調整所述預定編碼策略,降低所述音頻流編碼后的音頻幀的比特數,并將編碼后的音頻流發送至所述流媒體客戶端。2.根據權利要求1所述的音頻傳輸的自適應方法,其特征在于,獲取與流媒體客戶端之間的當前網絡的傳輸速率的步驟包括: 向所述流媒體客戶端發送網絡探測消息,其中,所述網絡探測消息攜帶有發送所述網絡探測消息的第一時間; 接收所述流媒體客戶端響應所述網絡探測消息后發送的探測響應消息,其中,所述探測響應消息攜帶有所述流媒體客戶端接收到所述網絡探測消息的第二時間; 根據所述第二時間與所述第一時間的時間差,以及所述網絡探測消息的比特數,計算與所述流媒體客戶端之間的傳輸速率。3.根據權利要求1或2所述的音頻傳輸的自適應方法,其特征在于,調整所述預定編碼策略,降低編碼后的音頻幀的比特數的步驟包括: 檢測所述編碼特性是否支持第一編碼策略; 若支持,則根據所述第一編碼策略降低所述音頻流編碼后的音頻幀的比特數,并判斷降低比特數后的音頻幀的傳輸時間是否超出所述傳輸時延閾值;若未超出,則將編碼后的音頻流發送至所述流媒體客戶端;若超出,則檢測所述編碼特性是否支持第二編碼策略; 若不支持,則檢測所述編碼特性是否支持第二編碼策略;若不支持所述第二編碼策略,則丟棄所述音頻流編碼后的音頻幀中的部分幀;若支持所述第二編碼策略,則根據所述第二編碼策略降低所述音頻流編碼后的音頻幀的比特數,并判斷降低比特數后的音頻幀的傳輸時間是否超出所述傳輸時延閾值;若未超出,則將編碼后的音頻流發送至所述流媒體客戶端;若超出,則丟棄所述音頻流編碼后的音頻幀中的部分幀; 所述第一編碼策略為分幀策略和多碼率策略中的一種,所述第二編碼策略為另一種。4.根據權利要求3所述的音頻傳輸的自適應方法,其特征在于,所述第一編碼策略為分幀策略,所述分幀策略包括多種幀長;根據所述第一編碼策略降低所述音頻流編碼后的音頻幀的比特數的步驟包括: 將所述音頻流分為多個第一音頻流,并按照當前編碼碼率對所述第一音頻流進行編碼,其中,第一音頻流的長度為所述分幀策略中的最短幀長。5.根據權利要求4所述的音頻傳輸的自適應方法,其特征在于,所述第二編碼策略為多碼率策略,所述多碼率策略包括:所支持的編碼碼率集合;根據所述第二編碼策略降低所述音頻流編碼后的音頻幀的比特數的步驟包括: 采用所述編碼碼率集合中低于當前編碼碼率的編碼碼率對所述第一音頻流重新編碼。6.根據權利要求3所述的音頻傳輸的自適應方法,其特征在于,所述第一編碼策略為多碼率策略,所述多碼率策略包括:所支持的編碼碼率集合;根據所述第一編碼策略降低所述音頻流編碼后的音頻幀的比特數的步驟包括: 采用所述編碼碼率集合中低于當前編碼碼率的編碼碼率對所述音頻流重新編碼。7.根據權利要求6所述的音頻傳輸的自適應方法,其特征在于,所述第二編碼策略為分幀策略,所述分幀策略包括多種幀長,根據所述第二編碼策略降低所述音頻流編碼后的音頻幀的比特數的步驟包括: 將編碼后的音頻幀分為多個第一音頻幀,所述第一音頻幀的長度為所述分幀策略中的最短幀長。8.一種音頻傳輸的自適應裝置,應用于流媒體服務器端,其特征在于,包括: 獲取模塊,用于獲取與流媒體客戶端之間的當前網絡的傳輸速率; 計算模塊,用于根據待傳輸的音頻流在預定編碼策略下的音頻幀的比特數與所述傳輸速率,計算所述音頻幀的傳輸時間; 判斷模塊,用于判斷是否超出一預設的; 第一調整模塊,用于當所述傳輸時間未超出所述傳輸時延閾值時,按照所述預定編碼策略對所述音頻流進行編碼,并發送至向所述流媒體客戶端; 第二調整模塊,用于當所述傳輸時間超出所述傳輸時延閾值時,調整所述預定編碼策略,降低所述音頻流編碼后的音頻幀的比特數,并將編碼后的音頻流發送至所述流媒體客戶端。9.根據權利要求8所述的音頻傳輸的自適應裝置,其特征在于,所述獲取模塊包括: 發送單元,用于向所述流媒體客戶端發送網絡探測消息,其中,所述網絡探測消息攜帶有發送所述網絡探測消息的第一時間; 接收單元,用于接收所述流媒體客戶端響應所述網絡探測消息后發送的探測響應消息,其中,所述探測響應消息攜帶有所述流媒體客戶端接收到所述網絡探測消息的第二時間; 計算單元,用于根據所述第二時間與所述第一時間的時間差,以及所述網絡探測消息的比特數,計算與所述流媒體客戶端之間的傳輸速率。10.根據權利要求8或9所述的音頻傳輸的自適應裝置,其特征在于,所述第二調整模塊包括: 第一檢測單元,用于檢測所述編碼特性是否支持第一編碼策略; 第一調整單元,用于當支持所述第一編碼策略時,根據所述第一編碼策略降低所述音頻流編碼后的音頻幀的比特數; 第一判斷單元,用于判斷降低比特數后的音頻幀的傳輸時間是否超出所述傳輸時延閾值;若未超出,則將編碼后的音頻流發送至所述流媒體客戶端;若超出,則檢測所述編碼特性是否支持第二編碼策略; 第二檢測單元,用于當不支持所述第一編碼策略時,檢測所述編碼特性是否支持第二編碼策略; 第二調整單元,用于當不支持所述第二編碼策略時,丟棄所述音頻流編碼后的音頻幀中的部分幀;當支持所述第二編碼策略時,根據所述第二編碼策略降低所述音頻流編碼后的音頻幀的比特數; 第二判斷單元,用于判斷降低比特數后的音頻幀的傳輸時間是否超出所述傳輸時延閾值;若未超出,則將編碼后的音頻流發送至所述流媒體客戶端;若超出,則丟棄所述音頻流編碼后的音頻幀中的部分幀; 其中,所述第一編碼策略為分幀策略和多碼率策略中的一種,所述第二編碼策略為另一種。11.根據權利要求10所述的音頻傳輸的自適應裝置,其特征在于,所述第一編碼策略為分幀策略,所述分幀策略包括多種幀長;所述第一調整單元包括: 第一調整子單元,用于將所述音頻流分為多個第一音頻流,并按照當前編碼碼率對所述第一音頻流進行編碼,其中,第一音頻流的長度為所述分幀策略中的最短幀長。12.根據權利要求11所述的音頻傳輸的自適應方法裝置,其特征在于,所述第二編碼策略為多碼率策略,所述多碼率策略包括:所支持的編碼碼率集合;所述第二調整單元包括: 第二調整子單元,用于采用所述編碼碼率集合中低于當前編碼碼率的編碼碼率對所述第一音頻流重新編碼。13.根據權利要求10所述的音頻傳輸的自適應裝置,其特征在于,所述第一編碼策略為多碼率策略,所述多碼率策略包括:所支持的編碼碼率集合;所述第一調整單元還包括: 第三調整子單元,用于采用所述編碼碼率集合中低于當前編碼碼率的編碼碼率對所述音頻流重新編碼。14.根據權利要求13所述的音頻傳輸的自適應裝置,其特征在于,所述第二編碼策略為分幀策略,所述分幀策略包括多種幀長,所述第二調整單元還包括: 第四調整子單元,用于將編碼后的音頻幀分為多個第一音頻幀,所述第一音頻幀的長度為所述分幀策略中的最短幀長。
【文檔編號】G10L19/008GK105989844SQ201510047890
【公開日】2016年10月5日
【申請日】2015年1月29日
【發明人】劉霖, 趙旭, 劉聰
【申請人】中國移動通信集團公司