2015-06-19 247 views
7

我收到以下H264錯誤日誌。此日誌是在FFMPEG幫助下解碼RTSP視頻流時提供的。 5/6秒後顯示的圖片模糊不清。圖片會不時恢復。但是,大部分時間它都很模糊。來自RTSP流的H.264解碼錯誤日誌

編輯:一些FFMPEG討論論壇建議升級FFMPEG版本以避免這些日誌。我已經更新了2015年6月19日的最新FFMPEG版本。儘管日誌仍然存在,圖片仍然模糊不清。

編輯2:RTSP流來自GANZ相機。本相機通過LAN連接進行連接。

[h264 @ 0abb2aa0] Cannot use next picture in error concealment 
[h264 @ 0abb2aa0] concealing 1933 DC, 1933 AC, 1933 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 131 packets 
[h264 @ 0abb3300] error while decoding MB 66 25, bytestream (-9) 
[h264 @ 0abb3300] Cannot use next picture in error concealment 
[h264 @ 0abb3300] concealing 1583 DC, 1583 AC, 1583 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 8 packets 
[h264 @ 0b113e40] error while decoding MB 54 30, bytestream (-11) 
[h264 @ 0b113e40] Cannot use next picture in error concealment 
[h264 @ 0b113e40] concealing 1195 DC, 1195 AC, 1195 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 118 packets 
[h264 @ 0ac79960] error while decoding MB 13 20, bytestream (-13) 
[h264 @ 0ac79960] Cannot use next picture in error concealment 
[h264 @ 0ac79960] concealing 2036 DC, 2036 AC, 2036 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 198 packets 
[h264 @ 0ad4f500] error while decoding MB 21 9, bytestream (-5) 
[h264 @ 0ad4f500] Cannot use next picture in error concealment 
[h264 @ 0ad4f500] concealing 2908 DC, 2908 AC, 2908 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 108 packets 
[h264 @ 0abb3300] error while decoding MB 1 14, bytestream (-5) 
[h264 @ 0abb3300] Cannot use next picture in error concealment 
[h264 @ 0abb3300] concealing 2528 DC, 2528 AC, 2528 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 106 packets 
[h264 @ 0b1149c0] error while decoding MB 12 5, bytestream (-7) 
[h264 @ 0b1149c0] Cannot use next picture in error concealment 
[h264 @ 0b1149c0] concealing 3237 DC, 3237 AC, 3237 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed -65402 packets 
[h264 @ 0b1155a0] error while decoding MB 50 38, bytestream (-7) 
[h264 @ 0b1155a0] Cannot use next picture in error concealment 
[h264 @ 0b1155a0] concealing 559 DC, 559 AC, 559 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 150 packets 
[h264 @ 0af65740] error while decoding MB 48 31, bytestream (-15) 
[h264 @ 0af65740] Cannot use next picture in error concealment 
[h264 @ 0af65740] concealing 1121 DC, 1121 AC, 1121 MV errors in P frame 
[h264 @ 098e5c80] RTP: missed 4 packets 
[h264 @ 0ac79960] error while decoding MB 35 38, bytestream (-41) 
[h264 @ 0ac79960] Cannot use next picture in error concealment 
[h264 @ 0ac79960] concealing 574 DC, 574 AC, 574 MV errors in P frame 

我使用ffmpeg將RTSP流轉儲到avi文件並且沒有錯誤。 C:\ Users \ Matlab> ffmpeg -i rtsp://192.168.1.67/gnz_media/main 123.avi

沒有H.264解碼錯誤。任何人都可以使用ffmpeg api幫助解決上述錯誤。

+1

請不要在多個Stack Exchange站點上詢問[同一問題](http://superuser.com/questions/930955/h-264-decoding-error-log-from-rtsp-stream)。 – LordNeckbeard

+0

@tariq:你能做到以下幾點:'ffplay << RTSP STREAM >>'並在這裏發佈輸出? 'ffplay'是ffmpeg工具包的一部分,不知道它如何在Windows上工作... – EladG

+0

你只是解碼或重新編碼流?它看起來像ffmpeg太繁忙的編碼,所以它只是跳過傳入的數據包,這會導致錯誤。嘗試使用較小的分辨率。 –

回答

-2

這個問題是由相機產生的,所以用GANZ技術支持來升級相機最新的固件。這個h.264視頻壓縮不支持相機。

+0

你有沒有面對同樣的問題?你是如何更新GANZ攝像機的固件 – Tariq

+0

更新固件沒有解決問題 – Tariq

2

如果您使用的是UDP,您可以期望刪除幀 - 這是UDP設計的一部分,它有利於提高可靠性。缺少數據包是H264格式的一個嚴重問題,因爲給定的數據包可能會讀取其前面或後面的數據包。 因此,使用UDP會產生很多以「RTP:錯過XXX數據包」開頭的錯誤。

通過將rtsp_transport="tcp"選項傳遞給av_open_input切換到更可靠但速度更慢的TCP。例如:

AVDictionary * opts = NULL; 
av_dict_set(&opts, "rtsp_transport", "tcp", 0); 
int error = avformat_open_input(&rtsp_format_context, "rtsp://your url here", NULL, &opts)); 
if (error < 0) 
    ; // Connection error. Add your error handling here. 

這將停止丟棄數據包,這將消除視頻的損壞。