4

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

0 回答 0