我编码了一个新的H.264视频,它与MP4文件中的音频复用。
如何正确计算视频和音频的AVPacket和AVFrame的PTS和DTS?
我从源代码生成新的视频帧和新音频。没有原始的PTS / DTS信息。我知道我需要使用的帧速率(time_base)。
假设您的帧速率不变。并正确设置流时基后。从零(0)开始两个pts。每帧的音频pts将增加'每帧采样数'。这通常是audio_sample_rate / frame_rate
(即48000/60 = 800)。
对于视频,事情是不同的,有点简单。视频点将增加每帧相同数量的“视频帧持续时间”。使用此备忘单计算持续时间:
FPS Frame duration
23.98 2002
24.00 2000
25.00 2000
29.97 2002
30.00 2000
50.00 1000
59.94 1001
60.00 1000
是的,这些有点hacky但会工作。