¿Cómo generar una onda sinusoidal con ffmpeg?


13

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 # 0 no contiene ninguna secuencia

Y el testarchivo está vacío.


Respuestas:


22

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 agregar -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

2
También puede establecer la amplitud agregando, por ejemplo: -af "volume=-18dB"(para -18dBFS).
mivk

6

Disculpas por negar esto, pero en caso de que alguien del futuro venga a buscar esto, si quisieras hacer esto 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.