Як створити синусоїду за допомогою ffmpeg?


13

Я хотів би створити аудіофайл із синусоїдою (синусоїдальною) хвилею з FFmpeg. Я знаю, що є sineфільтр, але це наскільки це йде.

Я намагався:

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

створити 5 секунд аудіо на 48 кГц у форматі PCM S16LE, але я отримав таке повідомлення про помилку:

Вихідний файл № 0 не містить жодного потоку

і testфайл порожній.


Ви також можете грати синус без створення файлу з ffplay: stackoverflow.com/questions/5109038/linux-sinus-audio-generator / ...
Чіро Сантіллі冠状病毒审查六四事件法轮功

Відповіді:


23

Щоб генерувати сигнал 1000 Гц протягом 5 секунд, використовуйте це:

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

Ви можете додати -c:a pcm_s16le:

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

Щоб також встановити частоту дискретизації на 48 КГц:

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

2
Ви також можете встановити амплітуду, додавши наприклад: -af "volume=-18dB"(для -18dBFS).
mivk

6

Вибачте за некроювання цього, але у випадку, якщо хтось із майбутнього прийде шукати цього, якщо б ви хотіли це зробити стерео, ви зробите наступне:

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

Крім того, можна використовувати -filter_complexз amerge:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -filter_complex "[0:a][0:a]amerge=inputs=2[aout]" -map "[aout]" output.wav
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.