亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種流媒體直播中音頻數(shù)據(jù)送解播放方法

文檔序號(hào):10516311閱讀:430來源:國知局
一種流媒體直播中音頻數(shù)據(jù)送解播放方法
【專利摘要】本發(fā)明提出一種流媒體直播中音頻數(shù)據(jù)送解播放方法,包括下列步驟:初始化多媒體模塊;開啟送解播放線程;判斷送解緩沖區(qū)是否為空;當(dāng)送解緩沖區(qū)為空時(shí),將寫入緩沖區(qū)的音頻數(shù)據(jù)交換到送解緩沖區(qū)中;判斷當(dāng)前音頻數(shù)據(jù)時(shí)間戳是否滯后于系統(tǒng)時(shí)間戳,即根據(jù)時(shí)間戳判斷是否滿足送解條件;當(dāng)所述音頻數(shù)據(jù)滿足送解條件時(shí),將送解緩沖區(qū)中的音頻數(shù)據(jù)送解;當(dāng)音頻數(shù)據(jù)播放完畢后關(guān)閉送解播放線程。本發(fā)明提出的流媒體直播中音頻數(shù)據(jù)送解播放方法,音頻播放時(shí)序和速率不再由同步模塊控制,而由多媒體模塊自主控制,力圖在CPU使用率高的環(huán)境下仍可以順暢播音,同時(shí)根據(jù)播放狀態(tài)動(dòng)態(tài)調(diào)整音頻數(shù)據(jù)送解。
【專利說明】
一種流媒體直播中音頻數(shù)據(jù)送解播放方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及流媒體直播領(lǐng)域,且特別涉及一種流媒體直播中音頻數(shù)據(jù)送解播放方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的發(fā)展,利用網(wǎng)絡(luò)進(jìn)行流媒體直播或點(diǎn)播逐漸成為一種趨勢,慢慢融入到人們的日常生活中,在工作、學(xué)習(xí)以及娛樂等各個(gè)方面形成熱點(diǎn),無論是視頻會(huì)議、在線教育還是網(wǎng)絡(luò)電視、視頻網(wǎng)站都應(yīng)用的越來越廣泛。流媒體(Stream Media)是指采用流式傳輸?shù)姆绞皆贗nternet/Intranet播放的媒體格式,如音頻、視頻或多媒體文件。流媒體在播放前不需要下載整個(gè)文件,只將開始部分內(nèi)容存入內(nèi)存,在計(jì)算機(jī)中對數(shù)據(jù)包進(jìn)行緩存并使流媒體數(shù)據(jù)正確地輸出,可以邊下載邊觀看。其原理是把向用戶傳輸?shù)亩嗝襟w文件按照播出時(shí)間順序分為不同的片段,然后依次把這些片段發(fā)給用戶,連續(xù)播放這些片段就形成了連續(xù)的聲音和圖像。
[0003]流式傳輸主要指將整個(gè)音頻和視頻及三維媒體等多媒體文件經(jīng)過特定的壓縮方式解析成一個(gè)個(gè)壓縮包,由視頻服務(wù)器向用戶計(jì)算機(jī)順序或?qū)崟r(shí)傳送。在采用流式傳輸方式的系統(tǒng)中,用戶不必像采用下載方式那樣等到整個(gè)文件全部下載完畢,而是只需經(jīng)過幾秒或者幾十秒的啟動(dòng)延時(shí)即可再用戶的計(jì)算機(jī)上利用解壓設(shè)備對壓縮的多媒體文件解壓后進(jìn)行播放和觀看。此時(shí)多媒體文件的剩余部分將在后臺(tái)的服務(wù)器內(nèi)繼續(xù)下載。與單純的下載方式相比,這種對多媒體文件邊下載邊播放的流式傳輸方式不僅使啟動(dòng)時(shí)間大幅度地縮短,而且對系統(tǒng)緩存容量的需求也大大降低,極大地減少用戶用在等待的時(shí)間。目前,流媒體技術(shù)已經(jīng)廣泛應(yīng)用在互聯(lián)網(wǎng)領(lǐng)域中。
[0004]現(xiàn)有技術(shù)中的直播系統(tǒng),音頻播放一般由同步模塊控制播放時(shí)序和速率,當(dāng)CPU使用率過高或同步線程忙碌時(shí),音頻播放將出現(xiàn)卡頓現(xiàn)象。

【發(fā)明內(nèi)容】

[0005]本發(fā)明提出一種流媒體直播中音頻數(shù)據(jù)送解播放方法,音頻播放時(shí)序和速率不再由同步模塊控制,而由多媒體模塊自主控制,力圖在CPU使用率高的環(huán)境下仍可以順暢播音,同時(shí)根據(jù)播放狀態(tài)動(dòng)態(tài)調(diào)整音頻數(shù)據(jù)送解。
[0006]為了達(dá)到上述目的,本發(fā)明提出一種流媒體直播中音頻數(shù)據(jù)送解播放方法,包括下列步驟:
[0007]初始化多媒體模塊;
[0008]開啟送解播放線程;
[0009]判斷送解緩沖區(qū)是否為空;
[0010]當(dāng)送解緩沖區(qū)為空時(shí),將寫入緩沖區(qū)的音頻數(shù)據(jù)交換到送解緩沖區(qū)中;
[0011]判斷當(dāng)前音頻數(shù)據(jù)時(shí)間戳是否滯后于系統(tǒng)時(shí)間戳,即根據(jù)時(shí)間戳判斷是否滿足送解條件;
[0012]當(dāng)所述音頻數(shù)據(jù)滿足送解條件時(shí),將送解緩沖區(qū)中的音頻數(shù)據(jù)送解;
[0013]當(dāng)音頻數(shù)據(jù)播放完畢后關(guān)閉送解播放線程。
[0014]進(jìn)一步的,該方法還包括:
[0015]當(dāng)播放延遲時(shí)間小于等于最大誤差值時(shí),繼續(xù)將送解緩沖區(qū)中的音頻數(shù)據(jù)送解;
[0016]當(dāng)播放延遲時(shí)間大于最大誤差值時(shí),則將送解緩沖區(qū)中的音頻數(shù)據(jù)拋棄直到播放延遲時(shí)間在最大誤差值以內(nèi)。
[0017]進(jìn)一步的,所述最大誤差值設(shè)置為200ms。
[0018]進(jìn)一步的,該方法還包括:
[0019]若當(dāng)前音頻數(shù)據(jù)時(shí)間戳領(lǐng)先于系統(tǒng)時(shí)間戳?xí)r,判斷為音頻播放超前,此時(shí)送解播放線程需要等待,直到系統(tǒng)時(shí)間趕上當(dāng)前音頻數(shù)據(jù)時(shí)間戳后繼續(xù)送解播放。
[0020]進(jìn)一步的,該方法還包括:
[0021]針對多路音頻,新的一路音頻將創(chuàng)建一個(gè)新的送解播放線程,直到送解播放線程的數(shù)量達(dá)到最大值;
[0022]當(dāng)送解播放線程的數(shù)量達(dá)到最大值后,新的一路音頻會(huì)從已創(chuàng)建的送解播放線程中找出最空閑的線程,并這路音頻加入該線程的音頻播放列表中。
[0023]進(jìn)一步的,所述送解播放線程的數(shù)量最大值為5個(gè)。
[0024]本發(fā)明提出的流媒體直播中音頻數(shù)據(jù)送解播放方法,通過送解緩沖區(qū)和寫入緩沖區(qū)進(jìn)行數(shù)據(jù)交換,達(dá)到異步播放的效果,根據(jù)音頻數(shù)據(jù)的時(shí)間戳和系統(tǒng)時(shí)間戳的關(guān)系,控制音頻數(shù)據(jù)送解的時(shí)序和速率,同時(shí)通過多路送解播放線程達(dá)到多路音頻數(shù)據(jù)同時(shí)播放的效果,提高流媒體直播中的音頻播放性能和播放效果。
【附圖說明】
[0025]圖1所示為本發(fā)明較佳實(shí)施例的流媒體直播中音頻數(shù)據(jù)送解播放方法流程圖。
[0026]圖2所示為本發(fā)明較佳實(shí)施例的送解緩沖區(qū)和寫入緩沖區(qū)進(jìn)行數(shù)據(jù)交換示意圖。
[0027]圖3所示為本發(fā)明較佳實(shí)施例的當(dāng)前音頻數(shù)據(jù)時(shí)間戳和系統(tǒng)時(shí)間戳組成的播放時(shí)間線示意圖。
【具體實(shí)施方式】
[0028]以下結(jié)合附圖給出本發(fā)明的【具體實(shí)施方式】,但本發(fā)明不限于以下的實(shí)施方式。根據(jù)下面說明和權(quán)利要求書,本發(fā)明的優(yōu)點(diǎn)和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準(zhǔn)的比率,僅用于方便、明晰地輔助說明本發(fā)明實(shí)施例的目的。
[0029]請參考圖1?圖3,圖1所示為本發(fā)明較佳實(shí)施例的流媒體直播中音頻數(shù)據(jù)送解播放方法流程圖,圖2所示為本發(fā)明較佳實(shí)施例的送解緩沖區(qū)和寫入緩沖區(qū)進(jìn)行數(shù)據(jù)交換示意圖,圖3所示為本發(fā)明較佳實(shí)施例的當(dāng)前音頻數(shù)據(jù)時(shí)間戳和系統(tǒng)時(shí)間戳組成的播放時(shí)間線示意圖。
[0030]本發(fā)明提出一種流媒體直播中音頻數(shù)據(jù)送解播放方法,包括下列步驟:
[0031 ]步驟SlOO:初始化多媒體模塊;
[0032]步驟S200:開啟送解播放線程;
[0033]步驟S300:判斷送解緩沖區(qū)是否為空;
[0034]步驟S400:當(dāng)送解緩沖區(qū)為空時(shí),將寫入緩沖區(qū)的音頻數(shù)據(jù)交換到送解緩沖區(qū)中;
[0035]步驟S500:判斷當(dāng)前音頻數(shù)據(jù)時(shí)間戳是否滯后于系統(tǒng)時(shí)間戳,即根據(jù)時(shí)間戳判斷是否滿足送解條件;
[0036]步驟S600:當(dāng)所述音頻數(shù)據(jù)滿足送解條件時(shí),將送解緩沖區(qū)中的音頻數(shù)據(jù)送解;
[0037]步驟S700:當(dāng)音頻數(shù)據(jù)播放完畢后關(guān)閉送解播放線程。
[0038]其中步驟S300?步驟S600組成送解播放線程的主線程,數(shù)據(jù)緩沖區(qū)分寫入緩沖區(qū)和送解緩沖區(qū)兩種,緩沖區(qū)存放若干音頻數(shù)據(jù)塊(block),每個(gè)數(shù)據(jù)塊包含時(shí)間戳等信息。播放開始后,若送解緩沖區(qū)為空,寫入緩沖區(qū)非空,播放線程將快速交換送解緩沖區(qū)和寫入緩沖區(qū)的數(shù)據(jù),不將阻礙上層的數(shù)據(jù)寫入線程,從而達(dá)到異步播放的效果。
[0039]根據(jù)本發(fā)明較佳實(shí)施例,該方法還包括:
[0040]當(dāng)播放延遲時(shí)間小于等于最大誤差值時(shí),繼續(xù)將送解緩沖區(qū)中的音頻數(shù)據(jù)送解;[0041 ]當(dāng)播放延遲時(shí)間大于最大誤差值時(shí),則將送解緩沖區(qū)中的音頻數(shù)據(jù)拋棄直到播放延遲時(shí)間在最大誤差值以內(nèi)。這種情況說明用戶的網(wǎng)絡(luò)狀況較差,將落后較多的音頻數(shù)據(jù)丟棄從而播放最新的音頻數(shù)據(jù),用以改善用戶音頻播放的實(shí)時(shí)性。
[0042]進(jìn)一步的,所述最大誤差值設(shè)置為200ms,也可以根據(jù)實(shí)際需求進(jìn)行設(shè)置。當(dāng)播放延遲時(shí)間小于等于200ms時(shí),繼續(xù)將送解緩沖區(qū)中的音頻數(shù)據(jù)送解,政策播放音頻數(shù)據(jù);當(dāng)播放延遲時(shí)間大于200ms時(shí),例如播放延遲時(shí)間達(dá)到2s,此時(shí)將落后較多的音頻數(shù)據(jù)丟棄,即將落后2s到200ms之間的音頻數(shù)據(jù)丟棄,從播放時(shí)間延遲200ms處的音頻數(shù)據(jù)開始繼續(xù)播放。
[0043]根據(jù)本發(fā)明較佳實(shí)施例,該方法還包括:
[0044]若當(dāng)前音頻數(shù)據(jù)時(shí)間戳領(lǐng)先于系統(tǒng)時(shí)間戳?xí)r,判斷為音頻播放超前,此時(shí)送解播放線程需要等待,直到系統(tǒng)時(shí)間趕上當(dāng)前音頻數(shù)據(jù)時(shí)間戳后繼續(xù)送解播放。當(dāng)前音頻數(shù)據(jù)時(shí)間戳領(lǐng)先于系統(tǒng)時(shí)間戳?xí)r,一般是出現(xiàn)了音頻數(shù)據(jù)丟包的情況,當(dāng)前播放的音頻數(shù)據(jù)已經(jīng)超過系統(tǒng)時(shí)間,此時(shí)需要暫停音頻數(shù)據(jù)的送解播放,直到系統(tǒng)時(shí)間和當(dāng)前播放的音頻數(shù)據(jù)時(shí)間戳一致后再繼續(xù)將新的音頻數(shù)據(jù)送解播放。
[0045]根據(jù)本發(fā)明較佳實(shí)施例,該方法還包括:
[0046]針對多路音頻,新的一路音頻將創(chuàng)建一個(gè)新的送解播放線程,直到送解播放線程的數(shù)量達(dá)到最大值;
[0047]當(dāng)送解播放線程的數(shù)量達(dá)到最大值后,新的一路音頻會(huì)從已創(chuàng)建的送解播放線程中找出最空閑的線程,并這路音頻加入該線程的音頻播放列表中。
[0048]進(jìn)一步的,所述送解播放線程的數(shù)量最大值為5個(gè)。當(dāng)實(shí)際應(yīng)用場景中出現(xiàn)多路音頻數(shù)據(jù),例如同時(shí)有多人說話,產(chǎn)生多路音頻數(shù)據(jù),系統(tǒng)可設(shè)置同時(shí)最多發(fā)言的人數(shù),本實(shí)施例中為5人,即最多只能有5人同時(shí)發(fā)言。在已有音頻數(shù)據(jù)出現(xiàn)過程中,新的一路音頻數(shù)據(jù)將創(chuàng)建一個(gè)新的送解播放線程(最多5個(gè)送解播放線程)或從已創(chuàng)建的5個(gè)送解播放線程中找出最空閑線程,將這路音頻加入該線程的音頻播放列表中。
[0049 ]綜上所述,本發(fā)明提出的流媒體直播中音頻數(shù)據(jù)送解播放方法,通過送解緩沖區(qū)和寫入緩沖區(qū)進(jìn)行數(shù)據(jù)交換,達(dá)到異步播放的效果,根據(jù)音頻數(shù)據(jù)的時(shí)間戳和系統(tǒng)時(shí)間戳的關(guān)系,控制音頻數(shù)據(jù)送解的時(shí)序和速率,同時(shí)通過多路送解播放線程達(dá)到多路音頻數(shù)據(jù)同時(shí)播放的效果,提高流媒體直播中的音頻播放性能和播放效果。
[0050]雖然本發(fā)明已以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識(shí)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動(dòng)與潤飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求書所界定者為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種流媒體直播中音頻數(shù)據(jù)送解播放方法,其特征在于,包括下列步驟: 初始化多媒體模塊; 開啟送解播放線程; 判斷送解緩沖區(qū)是否為空; 當(dāng)送解緩沖區(qū)為空時(shí),將寫入緩沖區(qū)的音頻數(shù)據(jù)交換到送解緩沖區(qū)中; 判斷當(dāng)前音頻數(shù)據(jù)時(shí)間戳是否滯后于系統(tǒng)時(shí)間戳,即根據(jù)時(shí)間戳判斷是否滿足送解條件; 當(dāng)所述音頻數(shù)據(jù)滿足送解條件時(shí),將送解緩沖區(qū)中的音頻數(shù)據(jù)送解; 當(dāng)音頻數(shù)據(jù)播放完畢后關(guān)閉送解播放線程。2.根據(jù)權(quán)利要求1所述的流媒體直播中音頻數(shù)據(jù)送解播放方法,其特征在于,該方法還包括: 當(dāng)播放延遲時(shí)間小于等于最大誤差值時(shí),繼續(xù)將送解緩沖區(qū)中的音頻數(shù)據(jù)送解; 當(dāng)播放延遲時(shí)間大于最大誤差值時(shí),則將送解緩沖區(qū)中的音頻數(shù)據(jù)拋棄直到播放延遲時(shí)間在最大誤差值以內(nèi)。3.根據(jù)權(quán)利要求2所述的流媒體直播中音頻數(shù)據(jù)送解播放方法,其特征在于,所述最大誤差值設(shè)置為200ms。4.根據(jù)權(quán)利要求1所述的流媒體直播中音頻數(shù)據(jù)送解播放方法,其特征在于,該方法還包括: 若當(dāng)前音頻數(shù)據(jù)時(shí)間戳領(lǐng)先于系統(tǒng)時(shí)間戳?xí)r,判斷為音頻播放超前,此時(shí)送解播放線程需要等待,直到系統(tǒng)時(shí)間趕上當(dāng)前音頻數(shù)據(jù)時(shí)間戳后繼續(xù)送解播放。5.根據(jù)權(quán)利要求1所述的流媒體直播中音頻數(shù)據(jù)送解播放方法,其特征在于,該方法還包括: 針對多路音頻,新的一路音頻將創(chuàng)建一個(gè)新的送解播放線程,直到送解播放線程的數(shù)量達(dá)到最大值; 當(dāng)送解播放線程的數(shù)量達(dá)到最大值后,新的一路音頻會(huì)從已創(chuàng)建的送解播放線程中找出最空閑的線程,并這路音頻加入該線程的音頻播放列表中。6.根據(jù)權(quán)利要求5所述的流媒體直播中音頻數(shù)據(jù)送解播放方法,其特征在于,所述送解播放線程的數(shù)量最大值為5個(gè)。
【文檔編號(hào)】H04N21/8547GK105872696SQ201610187829
【公開日】2016年8月17日
【申請日】2016年3月29日
【發(fā)明人】虞陸平, 聶大鵬, 羅樹軍, 臺(tái)躍華, 熊濤, 祝亮, 陳鋒鋒, 林肖瓊
【申請人】杭州施強(qiáng)網(wǎng)絡(luò)科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1