计算 PTS 和 DTS,以 ffmpeg 格式编码新的视频和音频



我对MP4文件中带有音频复用的新H.264视频进行编码。

如何正确计算AVPacket的PTS和DTS,以及视频和音频的AVFrame?

我从我的源生成新的视频帧和新的音频。没有原始的PTS/DTS信息。我知道我需要使用的帧速率(time_base(。

假设您的帧速率是恒定的。并在正确设置流时基后。从零 (0( 开始两个点。每帧的音频点数将增加"每帧采样"。这通常是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

是的,这些有点笨拙,但会起作用。

最新更新