直播間新手常見技術(shù)問題解答--播放雜音、噪音、回聲
相比于視頻而言,音頻要敏感得多,視頻畫面有噪點(diǎn)、馬賽克都還是可以勉強(qiáng)被接受,而聲音一旦有任何瑕疵,人耳都會(huì)特別容易感覺到,而且難以忍受。
常見的音頻問題現(xiàn)象描述如下:
? 電流音,爆音,滋滋聲或者嘟嘟聲
? 聲音斷斷續(xù)續(xù),聽不清楚
? 回聲,能聽到自己說話的聲音
1 參數(shù)配置問題
音頻是一個(gè)特別敏感的東西,涉及到許多參數(shù)配置,一旦配置不太匹配,就會(huì)導(dǎo)致聲音聽起來非常詭異(比如:采樣率是 32000Hz 的音頻,給播放器配置為 8000Hz 或者 44100Hz,就明顯會(huì)出現(xiàn)音頻慢放或者快放的效果)。
我們只需要注意的是,無論是采集和播放,都要給系統(tǒng)的 API 以及第三方的庫配置正確的參數(shù),如:采樣率、位寬、聲道數(shù)等等。
2 代碼層面的原因
常見的代碼層面的問題有如下幾種:
? 音頻 buffer 大小不匹配,一段 1024 bytes 的音頻,放到了 2048 bytes 的數(shù)組,導(dǎo)致尾部有隨機(jī)數(shù)
? 音頻 resample 重采樣的算法問題,導(dǎo)致采樣出來的數(shù)據(jù)出了問題
? Android 的 ByteBuffer 取出數(shù)組,是不能直接用 .array() 方法的,而需要用 .get() 方
? iOS 系統(tǒng),其他 app 通過系統(tǒng) API 更改了 AudioSession 采樣率的配置
3 網(wǎng)絡(luò)波動(dòng)
視頻是一幀一幀連續(xù)的圖像構(gòu)成的,在播放過程中,如果無法按時(shí)渲染,則會(huì)出現(xiàn)卡頓的效果;如果丟失幾幀畫面,則會(huì)出現(xiàn)快進(jìn)效果。
而音頻是流式的,雖然也被切分為了一個(gè)個(gè)音頻幀,但如果無法按時(shí)播放或者連續(xù)丟失較多的音頻幀,則會(huì)明顯聽到斷斷續(xù)續(xù)的聲音出現(xiàn)。特別是在弱網(wǎng)、丟包率高等不穩(wěn)定網(wǎng)絡(luò)環(huán)境下,很容易出現(xiàn)這種情況。
4 回聲消除
回聲一般出現(xiàn)在同時(shí)有音頻的采集和播放的場(chǎng)景,比如:連麥互動(dòng)、混音返聽等等,采集到的音頻通過揚(yáng)聲器又播放出來了,同時(shí)又被采集了進(jìn)去,從而產(chǎn)生了回聲或者嘯叫聲。
這樣的場(chǎng)景下,一般需要通過系統(tǒng)的回聲消除 API,或者第三方回聲消除庫(如:speexdsp,webrtc 等)進(jìn)行處理。
注意:很多 Android 機(jī)型硬件自帶的回聲消除效果并不是很好。
5 混音越界
音頻的 PCM 數(shù)據(jù),通常用 short 數(shù)組來存放,當(dāng)我們做一些多路音頻的混音功能的時(shí)候,如果不注意處理 short 類型的大小越界,則往往帶來爆音的問題。下面是一段參考 webrtc 的混音代碼,專門針對(duì)混音越界做了簡(jiǎn)單處理,可以參考參考:
————————————————
版權(quán)聲明:本文為CSDN博主「步基」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wangbuji/article/details/121661187
================================
【新聞】
中國(guó)e直播帶貨供應(yīng)鏈金融13306003307(V同),
一件代發(fā)共享云倉:主播減去了自己先采購囤貨的問題,可以無壓力的開播賣貨。主播只要選定生廠商的抖音小店產(chǎn)品鏈接或快手小店產(chǎn)品鏈接,在自己直播間上了鏈接就可以賣,賣完由廠家小店訂單結(jié)算,廠家網(wǎng)店直接收款;直播帶貨主播直接分傭金;MCN機(jī)構(gòu)直接分管理費(fèi)。
中國(guó)E直播帶貨供應(yīng)鏈機(jī)構(gòu)協(xié)調(diào)廠家按規(guī)則48小時(shí)內(nèi)一件代發(fā)!