EasyPlayerPro(Windows)開發之ffmpeg log輸出報錯

EasyPlayerPro主要基於ffmpeg進行開發,在EasyPlayerPro開發過程中,曾遇到一個相對比較棘手的問題,該問題一般在播放不是很標準的流或者網絡情況較差,容易出現丟幀的情況特別容易出現;

基本表象在,播放一段時間程序會彈出錯誤或者崩潰,查代碼邏輯根本無法查起,且不易重現(比如,我現在就想重現,也未能重現出來–!後面補上),不過在播放沒有音頻的rtsp流的時候比較容易出現,報錯定位output.c源文件中,應該是字符串格式化輸出的時候出錯,經過排查,定位到ffmpeg的日誌輸出,爲了便於查看錯誤,我在avformat_open_input()打開流函數前加了日誌輸出打印函數調用:
av_log_set_level(AV_LOG_WARNING);
av_log_set_callback(callback);

在callback回調函數中輸出的日誌打印,從而能看到FFMPEG的內部報錯信息,而屏蔽這兩句,雖然在丟幀的情況下視頻卡幀了,但是上文提到的報錯的問題卻不再出現了,所以,我們猜測在ffpeg內部應該存在一個地方的日誌打印出現錯誤的地方,當然也有可能是我的調用方法不合理導致的(誰知道呢),總之,問題是暫時得到了解決,後續找到真正報錯的問題在補上。

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