在不改变样本数量的情况下改变MOV或WAV的wav,aiff或mov音频采样率

时间:2013-03-06 01:57:48

标签: ffmpeg wav quicktime sox aiff

我需要一种非常精确的方法来加速音频。 我正在准备OpenDCP电影,这是一个制作数字影院套装的开源工具,用于在影院放映。 我的源文件通常是23.976fps的快速MOV文件,音频为48.000kHz。 有时我的音频是一个单独的48.000kHz WAV。 (FWIW,源的视频帧速率实际上是每秒24 / 100.1帧,这是一个重复的小数。)

DCP标准基于24.000fps和48.000kHz程序,因此需要加快源的音频和视频。 图像处理工作流本质上涉及将MOV转换为TIF序列,每帧帧数,然后假设为24.000fps,因此我不必参与QT视频媒体处理程序的内部。

但是加速音频匹配证明是困难的。大多数音频节目无法获得与重新定时的图像帧对齐的音频样本数量。 Audacity速度增加0.1%会导致样本数量错误。我发现唯一有效的途径是使用Apple Cinema Tools将23.976fps / 48.000kHz MOV符合24.000fps / 48.048kHz(通过更改Quicktime标题),然后使用Quicktime Player从中导出音频该文件在48.000kHz,重新采样。这是帧准确的。

所以我的问题是:ffmpeg或sox中是否有设置可以精确地加速MOV或WAV或AIFF中的音频?我想要一个跨平台的解决方案,所以我不依赖于Cinema Tools,它只是MacOS。

我知道这有很多背景知识。随意提出澄清问题!

1 个答案:

答案 0 :(得分:0)

sox input-file output-file speed 1.001001001001001

其中文件可以是WAV或AIFF。 Sox在内部工作,小数实际上是1000/999,因此时序调整是100%准确(并且重采样是高质量的)。走另一条路当然是

sox input-file output-file speed 0.999

FFmpeg也可以在时间上准确地完成它,但它的重采样器有一些质量问题。版本1.1可以使用sox重新采样器(参见此处:http://ffmpeg.org/trac/ffmpeg/wiki/FFmpeg%20and%20the%20SoX%20Resampler),但最简单的方法就是使用sox。