如何用ffmpeg生成正弦波?


13

我想用FFmpeg生成带有正弦(正弦)波的音频文件。我知道有一个sine过滤器,但就目前为止。

我试过了:

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

在PCM S16LE格式下以48kHz的频率创建5秒钟的音频,但出现以下错误消息:

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

并且test文件为空。


Answers:


22

要在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
您还可以通过添加例如:(-af "volume=-18dB"对于-18dBFS)来设置幅度。
mivk

6

对此表示歉意,但是如果将来有人来寻找它,如果您想立体声地进行此操作,则可以执行以下操作:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.