2013-04-10 96 views
0

我正在處理示例GStreamer應用程序以播放MPEG2TS視頻。FFDEC_H264丟棄非關鍵幀

我的管道:

appsrc! h264parse! ffdec_h264! ffmpegcolorspace! ximagesink

如果我抽的數據,而無需設置任何時間戳,所有的幀都得到發揮

videoBuffer = gst_app_buffer_new (rawVideo, bufSize, test_free_video, rawVideo); 

但如果我設置的時間戳的緩衝區,只有I幀得到發揮:

videoBuffer = gst_app_buffer_new (rawVideo, bufSize, test_free_video, rawVideo); 
GST_BUFFER_TIMESTAMP(videoBuffer) = calc_timestamp(rawVideo); 

calc_timestamp()是基於PES頭信息

從T到計算時間戳的功能他GST_LOGS:

Dropping non-keyframe (seek/init) 
Dropping non-keyframe (seek/init) 
Dropping non-keyframe (seek/init) 

上述日誌正在重複。我沒有任何線索,爲什麼會發生這種情況?任何輸入將不勝感激。

由於提前, Kranti

回答

0

最後我發現這個問題。在計算非密鑰[p/b]幀的時間戳時存在一個問題,因爲解碼器正在丟棄所有非關鍵幀。

如果您遇到與我的問題相同的問題,請重新檢查發送給解碼器的幀的時間戳計算結果