1. 程式人生 > >FFmpeg 關鍵幀異常處理

FFmpeg 關鍵幀異常處理

場景一:

關鍵幀請求是視訊會議裡面的功能,因為關鍵幀一般隔一段時間才傳送一次,如果客戶端隨機進入會議,需要接收到關鍵幀才能正常解碼,否則會出現花屏現象;

解決辦法是需要傳送端支援關鍵幀請求的處理,有兩種通知方法,一個是用RTCP協議,另一個是用NACK,這兩個都有標準,另一個用處是視訊廣播/視訊分發時,視訊源需要在新加入一個接收者時立即傳送一個關鍵幀,否則視訊會花屏。

場景二:

在呼叫視訊快進時呼叫av_seek_frame後並不能保證會seek到I幀,如果沒有seek到I幀會導致後續解碼的失敗;

解決辦法是判斷讀取出來的pkt是否是I幀,如果不是I幀可以丟棄處理或者其它方法;