使用 ffmpeg 在不改变频率的情况下对音频进行时间膨胀和重新采样
Use ffmpeg to time-dilate and resample audio without changing frequencies
我有一些以每秒 48000 个样本的速率采样的音频(波形文件)。
此音频是为匹配 30 FPS 视频而创建的。但是,视频实际上以 29.97 (30 X 1000/1001) 的 NTSC 帧速率在目标上播放。
这意味着我需要对音频进行时间膨胀,以便在之前有 48000 个样本的地方有 48048 个样本(播放速度慢 1.001 倍)但仍然保持最终音频文件的速率为每秒 48000 个样本.
此外,理想情况下,我想使用 FFMPEG 的 sox 库选项进行重新采样,因为我听说它具有更高的质量。
任何人都可以帮助我以这种方式处理文件所需的命令行吗?
基本命令是
ffmpeg -i in.wav -af asetrate=47952,aresample=48000:resampler=soxr out.wav
这假定链接了 libsoxr。
我有一些以每秒 48000 个样本的速率采样的音频(波形文件)。
此音频是为匹配 30 FPS 视频而创建的。但是,视频实际上以 29.97 (30 X 1000/1001) 的 NTSC 帧速率在目标上播放。
这意味着我需要对音频进行时间膨胀,以便在之前有 48000 个样本的地方有 48048 个样本(播放速度慢 1.001 倍)但仍然保持最终音频文件的速率为每秒 48000 个样本.
此外,理想情况下,我想使用 FFMPEG 的 sox 库选项进行重新采样,因为我听说它具有更高的质量。
任何人都可以帮助我以这种方式处理文件所需的命令行吗?
基本命令是
ffmpeg -i in.wav -af asetrate=47952,aresample=48000:resampler=soxr out.wav
这假定链接了 libsoxr。