FFmpeg 拉流,视频源信号不稳定问题,解决思路
生活随笔
收集整理的這篇文章主要介紹了
FFmpeg 拉流,视频源信号不稳定问题,解决思路
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 前言
在某些企業(yè),由于視頻網(wǎng)絡(luò)不佳,導(dǎo)致FFmpeg在拉流的時(shí)候,總是中斷,順帶者,推流端也總是中斷。
2. 解決思路
2個(gè)線程,拉流一個(gè)獨(dú)立的線程,推流一個(gè)獨(dú)立的線程。兩個(gè)線程之間,用vector<AVPacket*> Pkts做橋梁。
當(dāng)拉流線程獲取一個(gè)新的幀后, 使用線程鎖,鎖定Pkts,然后向Pkts推入這個(gè)新的幀,然后解鎖線程鎖。
推流端不斷檢測(cè)Pkts的長度是否大于0,當(dāng)大于0的時(shí)候,將第一幀,推流。如果等于0,則一直推送最后一幀。
3. 效果
這樣修改了之后,盡管視頻源總是中斷,但是播放端一直可以播放,避免了視頻源中斷,導(dǎo)致推流中斷,進(jìn)而導(dǎo)致播放端中斷。
4. 注意事項(xiàng)
由于vector線程不安全,因此任何操作vector的語句,都要加上線程鎖,操作完成釋放鎖,否則程序容易崩潰。(因?yàn)槔骶€程不斷向vector推入新的數(shù)據(jù),推流線程也在不斷從vector取新的數(shù)據(jù))
總結(jié)
以上是生活随笔為你收集整理的FFmpeg 拉流,视频源信号不稳定问题,解决思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C:/windows/system32无
- 下一篇: FreePBX 安装配置初学记录