Vc1视频播放抽搐

时间:2015-11-12 09:15:45

标签: c++ c video ffmpeg matroska

我正在尝试在matroska容器中播放vc1编码视频。

为此我正在使用ffmpeg的av_read_frame函数和一个视频驱动程序,它需要AVPacket的数据以PES标头作为前缀。 在AVPacketdts字段有效,ptsAV_NOPTS_VALUE。我将dts值写入PES标头而不是pts

视频驱动程序将恒定帧速率从23976更改为24000,反之亦然。视频混蛋。虽然我将帧率放入PES标题(值23976是ffmpeg的探测给出的),但显然,它正在根据当前数据包的位置发生变化。

我尝试查看AVCodecParserContext的{​​{1}}和pts_dts_delta,但它们属于dts_ref_dts_delta,其AV_NOPTS_VALUEpts是与dts

相同

请告知如何获得正确的pts值,或者如何解决它。

感谢。

修改 我在ffplay.c中看到他们使用AVPacket但这是在用ffmpeg的方法解码之后,这是我买不起的。

0 个答案:

没有答案