Wie erzeugt man mit ffmpeg eine Sinuswelle?

Wie erzeugt man mit ffmpeg eine Sinuswelle?

Ich möchte mit FFmpeg eine Audiodatei mit einer Sinuswelle erzeugen. Ich weiß, dass es einen sineFilter gibt, aber weiter geht es nicht.

Ich habe es versucht:

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

um 5 Sekunden Audio bei 48 kHz im PCM S16LE-Format zu erstellen, aber ich habe die folgende Fehlermeldung erhalten:

Ausgabedatei Nr. 0 enthält keinen Stream

und die testDatei ist leer.

Antwort1

Um ein 1000-Hz-Signal mit einer Dauer von 5 Sekunden zu erzeugen, verwenden Sie Folgendes:

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

Du kannst hinzufügen -c:a pcm_s16le:

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

Um die Abtastrate zusätzlich auf 48 KHz einzustellen:

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

Antwort2

Entschuldigen Sie, dass ich das wiederbelebe, aber für den Fall, dass jemand aus der Zukunft danach sucht, würden Sie Folgendes tun, wenn Sie es in Stereo machen möchten:

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

Sie können es auch -filter_complexmit verwenden amerge:

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

verwandte Informationen