计算用于在ffmpeg中编码新视频和音频的PTS和DTS

时间:2018-09-12 14:06:29

标签: audio video ffmpeg mux

我将新的H.264视频编码为与音频混合的MP4文件。

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

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

1 个答案:

答案 0 :(得分:0)

假设您的帧速率是恒定的。并且在正确设置流时基之后。从零(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

是的,这些有点怪异,但可以使用。