¿Cómo generar una onda sinusoidal con ffmpeg?

¿Cómo generar una onda sinusoidal con ffmpeg?

Me gustaría generar un archivo de audio con una onda sinusoidal (sinusoide) con FFmpeg. Sé que hay un sinefiltro, pero eso es todo.

Lo intenté:

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

para crear 5 segundos de audio a 48kHz en formato PCM S16LE, pero recibí el siguiente mensaje de error:

El archivo de salida n.º 0 no contiene ninguna secuencia

y el testarchivo está vacío.

Respuesta1

Para generar una señal de 1000 Hz durante 5 segundos, use esto:

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

Puedes añadir -c:a pcm_s16le:

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

Para configurar también la frecuencia de muestreo a 48 KHz:

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

Respuesta2

Disculpas por necrografiar esto, pero en el caso de que alguien del futuro venga a buscarlo, si quisieras hacerlo en estéreo, harías lo siguiente:

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

También puedes usar -filter_complexcon amerge:

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

información relacionada