VLC:“avcodec 错误:视频延迟超过 5 秒”

Igo*_* R. 5 ffmpeg pts vlc libavformat

我正在将 mpeg4 视频混合到 avi 容器。视频流约为 4fps,因此我设置AVCodecContext time_base为 1/4 ( formatContext->streams[0]->codec->time_base...) ,然后重新调整每个帧时间戳,因为原始时间戳以毫秒为单位。我将结果值分配给数据包ptsdts

当我用 VLC 播放此 avi 时,视频不流畅,并且反复收到以下消息:

avcodec 错误:视频延迟超过 5 秒 -> 丢帧(计算机太慢?)

上面的pts/dts计算有问题吗?

下表演示了时间戳如何重新缩放(原始->重新缩放)

stream: 0 1329471005111->1
stream: 0 1329471005348->2
stream: 0 1329471005588->3
stream: 0 1329471005828->4
stream: 0 1329471006068->5
stream: 0 1329471006308->6
stream: 0 1329471006551->7
stream: 0 1329471006788->8
stream: 0 1329471007028->9
stream: 0 1329471007268->10
stream: 0 1329471007508->11
stream: 0 1329471007748->12
stream: 0 1329471007988->13
stream: 0 1329471008228->14
stream: 0 1329471008468->15
Run Code Online (Sandbox Code Playgroud)