如何用FFmpeg制作20Hz-20kHz平坦全频响范围的WAV文件
如何用FFmpeg制作20Hz-20kHz平坦全频响范围的WAV文件
嘿,我完全get你想要复刻老式Hi-Fi那种20Hz到20kHz平坦全频响效果的需求!之前你用-ar 20000直接降采样到20kHz的操作虽然简单,但还没完成低频截断的关键一步,而且这里有个容易忽略的小细节:根据奈奎斯特采样定理,采样率为20kHz时,理论上能还原的最高频率只有10kHz——所以如果真的要完整保留20kHz的高频,采样率至少得设到40kHz才行(不过要是你就是冲着老式VHS Hi-Fi的复古感来的,也可以按实际需求调整)。
给你两种实用的命令方案,按需选择:
方案一:输出20kHz采样率(有效带宽20Hz-10kHz)
如果你坚持要20kHz的采样率,同时去掉20Hz以下的低频信号,可以用highpass滤镜先处理低频,再设置采样率:
ffmpeg -i "source.webm" -c:a pcm_s16le -af "highpass=f=20" -ar 20000 "output.wav"
方案二:真正实现20Hz-20kHz完整带宽
要是你想实打实保留20Hz到20kHz的全频段,那采样率得设到40kHz或更高(这里用常见的44.1kHz,兼容性更好),再用highpass+lowpass的滤镜组合来精准限制频段:
ffmpeg -i "source.webm" -c:a pcm_s16le -af "highpass=f=20,lowpass=f=20000" -ar 44100 "output.wav"
额外优化小技巧
如果你觉得频段截断的过渡太生硬,可以给滤镜加上过渡带宽参数,让滤波效果更自然:
ffmpeg -i "source.webm" -c:a pcm_s16le -af "highpass=f=20:width_type=h:width=10,lowpass=f=20000:width_type=h:width=100" -ar 44100 "output.wav"
这里的width参数控制过渡带的宽度,数值越小过渡越陡峭,越大则越平滑,你可以根据自己的听觉偏好调整。
备注:内容来源于stack exchange,提问作者Taymur Roshan
相关产品推荐
相关产品推荐

