如何合并具有不同帧速率和不同音频采样率的 MP4 文件

如何合并具有不同帧速率和不同音频采样率的 MP4 文件

我有四个 MP4 文件,分别称为“file_1”、“file_2”、“file_3”和“file_4”,我希望按照以下顺序将它们合并为一个文件:file_1、file_2、file_3 和 file_4。

file_1 具有以下特征:

frame width       = 640
frame height      = 480
frame rate        = 29 frames/second
audio sample rate = 44kHz

file_2、file_3 和 file_4 各自具有以下特征:

frame width       = 640
frame height      = 480
frame rate        = 30 frames/second
audio sample rate = 48kHz

使用 Avidemux v2.5.4 中的“附加”功能,我将文件 2 和文件 3 合并到文件 2 3 中,文件 2 3 中的音频和视频保持同步。然后,再次使用“附加”功能,我将文件 2 3 和文件 4 合并到文件 2 3 4 中,文件 2 3 4 中的音频和视频保持同步。

然后,我将 file_1 与 file_2_3_4 合并为 file_1_2_3_4。但是,file_1_2_3_4 中的音频和视频不同步。播放 file_1_2_3_4 时,在 file_1 部分一切正常。但是,从 file_2 部分开始,音频和视频就不同步了。

然后,我尝试了相反的做法。我将 file_2_3_4 与 file_1 合并为 file_2_3_4_1。播放 file_2_3_4_1 时,file_2_3_4 部分没有问题。但是,file_1 部分的音频和视频不同步。

因此,我使用 Avidemux 将 file_1 的帧速率更改为 30 帧/秒。帧宽度、帧高度和音频采样率保持不变。我再次使用 Avidemux 将 file_1 与 file_2_3_4 合并到 file_1_2_3_4 中。再次,从 file_2 部分开始,音频和视频不同步。

那么,我该怎么做才能确保音频和视频在 file_1_2_3_4 中保持同步?我应该将 file_1 的音频采样率转换为 48 kHz 吗?我使用什么软件来执行此操作?我听说过一款名为MP4合并器。这有帮助吗?

答案1

显然,Avidemux 使用第一个文件的帧速率和音频速率。因此,如果文件 1 的速率为 42kHz,而文件 234 的速率为 48kHz,则如果不重新采样,文件 234 的音频播放速度会太慢。随着视频的播放,您会注意到增量越来越大。

如果第二个视频的帧速率相差很大,例如 60fps,您还会注意到第二部分的视频移动速度慢了两倍,因为它仍然会像 30fps 一样播放(就像第一个文件一样)

答案2

您需要将 file_1 重新编码为 30 帧/秒。您可以使用 x264 或 mencoder 或大量免费编码实用程序之一来执行此操作。如果文件的帧速率不同,则不能将它们合并在一起。您还需要将音频重新编码为相同的采样率。我建议使用 sox 修改波形,然后使用您已经使用的编解码器重新压缩。

相关内容