You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FFmpeg结合SoX对音频进行时间拉伸与重采样适配NTSC帧率

用FFmpeg+SoX重采样器实现NTSC帧率适配的音频时间拉伸

我经常处理这类视频帧率适配的音频调整需求,结合FFmpeg的SoX重采样器(soxr)可以轻松实现高质量的时间拉伸,完全匹配你的需求。

核心命令行

ffmpeg -i input.wav -filter:a "aresample=resampler=soxr:out_sample_rate=48000:async=1001/1000:quality=veryhigh" -c:a pcm_s16le -y output.wav

参数详解

让我拆解下每个关键部分的作用:

  • -i input.wav:指定你的原始48kHz采样率WAV输入文件
  • -filter:a "aresample=...":音频滤镜链,这是处理的核心:
    • resampler=soxr:明确使用SoX的高质量重采样器,比FFmpeg默认的重采样器音质更出色,尤其适合时间拉伸场景
    • out_sample_rate=48000:强制输出采样率保持48kHz,和原始一致
    • async=1001/1000:这是实现时间拉伸的关键参数。因为NTSC 29.97FPS是30FPS的1000/1001倍,所以音频时长需要拉长为原时长的1001/1000倍(对应播放速度变为原速度的1/1.001),async参数的比值就是目标时长/原时长,这里设置为1001/1000刚好匹配需求
    • quality=veryhigh:指定SoX重采样的最高质量等级,如果你觉得默认的high质量已经足够,也可以去掉这个参数
  • -c:a pcm_s16le:保持输出为WAV格式常用的16位PCM编码,确保兼容性
  • -y:自动覆盖已存在的输出文件,避免每次确认(可选,按需添加)
  • output.wav:最终输出的适配NTSC帧率的音频文件

验证处理结果

你可以用ffprobe快速验证输出文件的样本数是否符合预期(假设原文件是1秒48000个样本):

ffprobe -v error -show_entries stream=nb_samples -of default=noprint_wrappers=1:nokey=1 output.wav

执行后应该输出48048,说明时间拉伸已经正确完成。

内容的提问来源于stack exchange,提问作者Adisak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:32:56