Генерация сигнала необработанного звука с использованием ffmpeg не работает правильно (не показывает обрывы) - PullRequest
1 голос
/ 22 октября 2019

Я сгенерировал сигнал необработанного звука с помощью ffmpeg, и он выглядит как совершенно нормальный звук на картинке. Но когда я импортировал его в Audacity, я вижу и слышу, что звук обрезается.

Я попробовал простую команду:

ffmpeg -f s16le -ar 16000 -ac 1 -i audio.raw -lavfi showwavespic audio.png

С таким результатом: Waveform image 1

А также попробовал это решение https://stackoverflow.com/a/32276471/12253501

Выглядит намного красивее, но все еще не может видеть, что аудио на самом деле обрезается: изображение формы волны 2 . Для второго я убрал «compand = gain = -6», чтобы получить реальный уровень звука.

И вот что я вижу в Audacity: скриншот из Audacity

Аудио, которое я импортирую, является необработанными данными (16-битная подписанная PCM, Little-endian, частота дискретизации 16000 Гц). Я также попытался сначала преобразовать его в WAV, но получил те же результаты с ffmpeg и Audacity.

Мне интересно, что я делаю неправильно, и как я могу увидеть отсечение на выходе сигнала ffmpeg?

Вот ссылка на аудиофайл: raw и wav

1 Ответ

0 голосов
/ 14 ноября 2019

Я не смог достичь желаемых результатов только с помощью ffmpeg, и в итоге я использовал audiowaveform , что дало мне результат, аналогичный Audacity. Не уверен, что это RMS или Пик, но у меня работает. К сожалению, аудиоволновая форма не может работать с необработанным звуком:

ffmpeg -f s16le -ar 16000 -ac 1 -i audio.raw audio.wav
audiowaveform -i audio.wav -o audio.png -e 105

Другим недостатком аудиоволновой формы является то, что по умолчанию она генерирует сигнал только в течение первых 15 секунд. Необходимо рассчитать длину звука и указать ее в качестве параметра (-e секунд).

Вот результат: waveform by audiowaveform

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...