我正在将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