Como gerar uma onda senoidal com ffmpeg?

Como gerar uma onda senoidal com ffmpeg?

Gostaria de gerar um arquivo de áudio com onda senoidal (sinusóide) com FFmpeg. Eu sei que existe um sinefiltro, mas isso é tudo.

Tentei:

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

para criar 5 segundos de áudio a 48kHz no formato PCM S16LE, mas recebi a seguinte mensagem de erro:

O arquivo de saída #0 não contém nenhum fluxo

e o testarquivo está vazio.

Responder1

Para gerar um sinal de 1000 Hz por 5 segundos, use isto:

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

Você pode adicionar -c:a pcm_s16le:

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

Para definir também a taxa de amostragem para 48 KHz:

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

Responder2

Peço desculpas por necroar isso, mas caso alguém do futuro venha procurar por isso, se você quisesse fazer isso em estéreo, faria o seguinte:

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

Você também pode usar -filter_complexcom amerge:

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

informação relacionada