改变mov或wav的wav, aiff或mov音频采样率而不改变采样数



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

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

但是加速音频以匹配被证明是困难的。大多数音频程序无法使音频样本的数量与重新计时的图像帧对齐。在Audacity中增加0.1%的速度会导致错误的样本数量。我发现工作的唯一途径是使用苹果影院工具将23.976fps/48.000kHz MOV符合24.000fps/48.048kHz(这是通过改变Quicktime标头来实现的),然后使用Quicktime Player以48.000kHz从该文件导出音频,重新采样。这是帧精确的。

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

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

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。

相关内容

  • 没有找到相关文章

最新更新