rtsp協議播音頻踩坑記錄之同時播音頻與視頻,視頻卡幀


在我在基於視頻的rtsp推送的基礎上加上音頻並用nvr播放開發的時候,出現了這樣一個現象:

單獨只播視頻是沒有問題的,但是我加上音頻后,視頻在播放1s后就開始卡幀了,並且音頻的聲音aac格式的直接沒有,g711a格式的音頻能聽得到說話聲音,但聲音有奇怪的嗒嗒聲

然后用vlc播放時aac的聲音是正常的,視頻也不卡了,一到nvr上就卡

 

問題定位:

經過一番調試最終發現一個問題,就是我在vlc播放不卡那是因為vlc支持2種傳輸方式,一般默認情況是http,這種傳輸是udp傳輸,后來我換成第二種之后也開始卡了

 

而對於tcp與udp傳輸方式在rtsp中,對於數據打包傳輸這一塊就只有一個區別,那就是tcp協議比udp協議需要多打包一個rtsp的頭部,於是定位問題是出在了rtsp頭部打包的地方

 

問題解決:

最終發現是我的rtsp頭部打包的時候多加了幾個字節

一般一個rtsp數據包由tcp傳輸的時候,是rtsp頭部 + rtp頭部 + 數據,而rtsp頭部需要將數據的長度放進去,我在傳輸音頻的時候一不小心將rtp的頭部長度也算進去了,導致解析時多解析了音頻的長度,將視頻的數據損壞了

導致播視頻的第一幀沒問題,一播音頻就卡

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM