web-dev-qa-db-fra.com

Comment générer une onde sinusoïdale avec FFMPEG?

Je souhaite générer un fichier audio avec une onde sinusoïde (sinusoïde) avec FFMPEG. Je sais qu'il y a un filtre sine mais c'est aussi loin que cela va.

J'ai essayé:

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

pour créer 5 secondes d'audio à 48 kHz au format PCM S16LE, mais j'ai reçu le message d'erreur suivant:

Le fichier de sortie # 0 ne contient aucun flux

et le fichier test est vide.

13
UmNyobe

Pour générer un signal de 1000 Hz pendant 5 secondes, utilisez ceci:

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

Vous pouvez ajouter -c:a pcm_s16le:

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

Pour définir également la fréquence d'échantillonnage à 48 kHz:

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

Toutes mes excuses pour Necro-ing, mais dans le cas où une personne du futur vient à la recherche de cela, si vous vouliez le faire en stéréo, vous feriez ce qui suit:

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

Vous pouvez également utiliser -filter_complex avec amerge:

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