FFmpeg avcodec_send_packet函數錯誤定位

場景
avcodec_send_packet函數返回-1094995529錯誤,根據FFmpeg的錯誤信息,得知爲AVERROR_INVALIDDATA,這個時候,由於已經接收到I幀,實際上是可以解碼的,難道是因爲解碼器的內部緩衝區需要被填滿,纔會返回一幀圖像,導致需要等待3秒鐘,才能夠出來圖像

通過日誌分析問題
使用av_log_set_callback函數設置av_log日誌輸出到文件,定位到問題
I:2017-12-29 09:52:41 ms:903:nal_unit_type: 1, nal_ref_idc: 3
I:2017-12-29 09:52:41 ms:941:nal_unit_type: 1, nal_ref_idc: 3
I:2017-12-29 09:52:41 ms:942:non-existing PPS 0 referenced
I:2017-12-29 09:52:41 ms:943:decode_slice_header error
I:2017-12-29 09:52:41 ms:943:no frame!

解決
回放的是PS流,由於沒有調用av_find_stream_info函數,所以在調用avcodec_send_packet函數的時候,會去探測PPS和SPS
的相關參數,所以需要幾秒去探測屬性

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