计算PTS和DTS,以便在ffmpeg中编码新的视频和音频

问题描述 投票:0回答:1

我编码了一个新的H.264视频,它与MP4文件中的音频复用。

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

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

audio video ffmpeg mux
1个回答
0
投票

假设您的帧速率不变。并正确设置流时基后。从零(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但会工作。

© www.soinside.com 2019 - 2024. All rights reserved.