如何用ffmpeg生成正弦波?

UmN*_*obe 14 audio ffmpeg audio-recording

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

我试过:

fmpeg -filter "sine=48:1:5" -c:a pcms16le test
Run Code Online (Sandbox Code Playgroud)

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

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

并且test文件是空的。

Raj*_*jib 25

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

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" test.wav
Run Code Online (Sandbox Code Playgroud)

您可以添加-c:a pcm_s16le

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -c:a pcm_s16le test.wav    
Run Code Online (Sandbox Code Playgroud)

还将采样率设置为 48 KHz:

ffmpeg -f lavfi -i "sine=frequency=1000:sample_rate=48000:duration=5" -c:a pcm_s16le test.wav
Run Code Online (Sandbox Code Playgroud)

  • 您还可以通过添加例如:`-af "volume=-18dB"`(对于-18dBFS)来设置幅度。 (4认同)

小智 8

很抱歉对此进行了处理,但如果未来有人来寻找它,如果您想在立体声中进行此操作,您可以执行以下操作:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 output.wav
Run Code Online (Sandbox Code Playgroud)

你也可以使用-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
Run Code Online (Sandbox Code Playgroud)