Igo*_* R. 5 ffmpeg pts vlc libavformat
我正在将 mpeg4 视频混合到 avi 容器。视频流约为 4fps,因此我设置AVCodecContext time_base为 1/4 ( formatContext->streams[0]->codec->time_base...) ,然后重新调整每个帧时间戳,因为原始时间戳以毫秒为单位。我将结果值分配给数据包pts和dts。
当我用 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)