av_read_frame AVERROR_EOF

問題描述:

使用ffmpeg API編碼,調用av_read_frame()讀取緩存隊列中的視頻流時,提示AVERROR_EOF,導致進程提前終止。

原因解析:

因爲ffmpeg的輸入爲緩存隊列,緩存隊列中的數據是一直在不斷寫入的,而ffmpeg是一直在讀取,未控制寫入側和讀取側的速度,導致av_read_frame()讀取緩存數據過快,從而產生AVERROR_EOF錯誤。

解決方案:

控制av_read_frame()讀取緩存隊列的速度,在讀取緩存隊列前進行預讀取,根據緩存隊列的大小判斷是否進行av_read_frame(),從而控制緩存隊列不被全部讀取,避免產生AVERROR_EOF。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章