推流項(xiàng)目AWLive番外篇(bug修復(fù))

前段時(shí)間在github偶然看到了一個(gè)推流的的工程,出于興趣拜讀了一下源碼;
其中也發(fā)現(xiàn)了一些問(wèn)題; 不知道作者是出于什么樣的目的沒(méi)有修復(fù)這些問(wèn)題,在這里我羅列了一下并修復(fù)相關(guān)問(wèn)題 ;

修復(fù)后的倉(cāng)庫(kù)地址

https://github.com/hunter858/PushStreamSDK

視頻問(wèn)題:

1.視頻在AWAVCaptureTypeSystem + 軟編碼模式下, 視頻條狀馬賽克
2.視頻在AWAVCaptureTypeSystem + 硬編碼模式下,畫面底部出現(xiàn)綠邊
3.視頻在AWAVCaptureTypeGPUImage + 軟編碼模式下,畫面卡住不動(dòng)
4.視頻在AWAVCaptureTypeGPUImage + 硬編碼模式下,畫面條狀馬賽克

音頻問(wèn)題:

  1. 音頻在AWAudioEncoderTypeHWAACLC模式下,聲音不連續(xù)
  2. 音頻在AWAudioEncoderTypeSWFAAC模式下,聲音有雜言和顫音

問(wèn)題1:視頻在AWAVCaptureTypeSystem + 軟編碼 模式下,視頻條狀馬賽克

bug1修復(fù)前后對(duì)比

問(wèn)題原因:
出現(xiàn)該問(wèn)題的原因是,項(xiàng)目中采集到的視頻幀率為720x1280;
但是在送入軟編碼器的實(shí)際數(shù)據(jù)是 768x1280768Y分量 BytesPerRow的長(zhǎng)度;

問(wèn)題2: 視頻在AWAVCaptureTypeSystem +硬編碼 模式下,畫面底部出現(xiàn)綠邊

bug2修復(fù)前后對(duì)比

問(wèn)題原因:
出現(xiàn)該問(wèn)題的原因是,pixeBuffer轉(zhuǎn)NSData 然后NSData再轉(zhuǎn)回YUV類型的pixeBuffer的過(guò)程中,Y分量的數(shù)據(jù)拷貝的實(shí)際長(zhǎng)度是768,代碼邏輯中配置的為videoConfig的寬度720導(dǎo)致的;

問(wèn)題3: 視頻在AWAVCaptureTypeGPUImage + 軟編碼模式下,畫面卡住不動(dòng)

問(wèn)題原因:
原有代碼在AudioToolBox音頻編碼的過(guò)程中,創(chuàng)建的aw_flv_audio_tag對(duì)象實(shí)際不包含音頻數(shù)據(jù),所以導(dǎo)致推的視頻流實(shí)際沒(méi)有音頻流,從而導(dǎo)致畫面卡住,修復(fù)該編碼邏輯或渠道正確的PCM數(shù)據(jù)即可;

image.png

問(wèn)題4: 視頻在AWAVCaptureTypeGPUImage + 硬編碼模式下,畫面花屏

bug4修復(fù)前后對(duì)比

問(wèn)題原因:
問(wèn)題的原因是在使用 GPUImage框架,獲取的到的ARGB數(shù)據(jù)在轉(zhuǎn)YUV數(shù)據(jù)的過(guò)程中 數(shù)據(jù)拷貝有問(wèn)題 ,且libYUV框架的使用ARGBToNV12() 參數(shù)設(shè)置也有問(wèn)題,和上面的問(wèn)題屬于同一類型的bug,y_stride不是正確的值導(dǎo)致的,修復(fù)該問(wèn)題即可正常顯示 美顏后視頻幀;

問(wèn)題5: 音頻在AWAudioEncoderTypeHWAACLC 模式下,聲音不連續(xù)

問(wèn)題原因:
在送入編碼器的PCM數(shù)據(jù)未控制在 1024的樣點(diǎn)的整數(shù)倍;應(yīng)該在轉(zhuǎn)碼輸入之前開(kāi)辟一個(gè)PCMbuffer緩沖區(qū),將傳入數(shù)據(jù)控制在1024個(gè)樣點(diǎn)即可解決問(wèn)題

問(wèn)題6: 音頻在 AWAudioEncoderTypeSWFAAC 模式下,顫音

該問(wèn)題還在修復(fù)中....
該問(wèn)題還在修復(fù)中....
該問(wèn)題還在修復(fù)中....

其它關(guān)于項(xiàng)目的一些關(guān)鍵技術(shù)講解可以看原作者的文章,這里不贅述了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容