Iframe FFDEC_H264丢弃非关键帧

Iframe FFDEC_H264丢弃非关键帧,iframe,ffmpeg,gstreamer,Iframe,Ffmpeg,Gstreamer,我正在开发一个示例GStreamer应用程序来播放MPEG2TS视频 我的管道是: appsrc!h264parse!ffdec_h264!ffmpegcolorspace!ximagesink 如果我在不设置任何时间戳的情况下泵送数据,所有帧都将被播放 videoBuffer = gst_app_buffer_new (rawVideo, bufSize, test_free_video, rawVideo); 但如果我将时间戳设置为缓冲区,则只播放I帧: videoBuffer = gst

我正在开发一个示例GStreamer应用程序来播放MPEG2TS视频

我的管道是:

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\u timestamp()
是一个基于PES头信息计算时间戳的函数

从GST_日志中:

Dropping non-keyframe (seek/init)
Dropping non-keyframe (seek/init)
Dropping non-keyframe (seek/init)
上面的日志正在重复。我不知道为什么会这样?如有任何意见,将不胜感激

提前感谢,,
克兰蒂

我终于找到了问题所在。计算非关键[p/b]帧的时间戳时出现问题,因为解码器正在丢弃所有非关键帧

如果您面临与我相同的问题,请重新检查发送到解码器的帧的时间戳计算