如何用 ffmpeg 生成正弦波?

如何用 ffmpeg 生成正弦波?

我想用 FFmpeg 生成一个带有正弦波的音频文件。我知道有一个sine过滤器,但仅此而已。

我试过:

fmpeg -filter "sine=48:1:5" -c:a pcms16le test

以 PCM S16LE 格式创建 5 秒的 48kHz 音频,但收到以下错误消息:

输出文件 #0 不包含任何流

并且test文件是空的。

答案1

要生成持续 5 秒的 1000 Hz 信号,请使用以下命令:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" test.wav

你可以加-c:a pcm_s16le

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -c:a pcm_s16le test.wav    

将采样率也设置为 48 KHz:

ffmpeg -f lavfi -i "sine=frequency=1000:sample_rate=48000:duration=5" -c:a pcm_s16le test.wav

答案2

抱歉,我把它弄得像死后一样,但是如果未来有人来寻找它,如果您想以立体声的方式进行此操作,请执行以下操作:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 output.wav

您还可以-filter_complex使用amerge

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -filter_complex "[0:a][0:a]amerge=inputs=2[aout]" -map "[aout]" output.wav

相关内容