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


13

Je voudrais générer un fichier audio avec une onde sinusoïdale (sinusoïdale) avec FFmpeg. Je sais qu'il y a un sinefiltre mais c'est aussi loin que ça marche.

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 testfichier est vide.


Réponses:


22

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

2
Vous pouvez également définir l'amplitude en ajoutant par exemple: -af "volume=-18dB"(pour -18dBFS).
mivk

6

Toutes mes excuses pour la nécrose de ceci, mais dans le cas où quelqu'un du futur viendrait le chercher, 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_complexavec amerge:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -filter_complex "[0:a][0:a]amerge=inputs=2[aout]" -map "[aout]" output.wav
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.