ffmpeg почему метаданные не печатаются - PullRequest
0 голосов
/ 13 марта 2020

Я хотел бы получить метаданные в реальном времени, связанные с объемом моего аудиопотока, при кодировании его в файл fla c. В конечном счете, я хочу внедрить все это в веб-приложение nodejs Я задал вопрос некоторое время назад, используя фильтр showvolume, и получил всю эту работу с потоковым видео, запустив ffmpeg в качестве подпроцесса. Я хочу повторить это с выводом на основе текста, который, как я полагаю, вы можете получить с помощью фильтра -astats.

Вот команда, которую я попробовал: -

ffmpeg -hide_banner -nostats -f alsa -acodec pcm_s16le -ac:0 2 -ar 480000 -i hw:CARD=Microphone -af astats=metadata=1:length=1:reset=1 -af ametadata=mode=print:key=lavfi.astats.Overall.Peak_level_dB:file=- -acodec flac test.flac 2>log.txt

Я ожидал увидеть Статистика на стандартный вывод, но ничего не видел. Файл fla c был в порядке, и файл журнала не показывал никаких проблем.

Мне показалось, что я понял, как работает astats; в соответствии с настройкой он должен добавить метаданные в аудиопоток сэмплов аудиосигнала длительностью 1 секунда. Второй просматривает метаданные в потоке, и когда видно пиковый уровень дБ, он должен вывести его в файл, называемый стандартным выходом.

Очевидно, что я что-то неправильно понял и не нашел ни одного примера для проверки. Может ли кто-нибудь помочь

1 Ответ

0 голосов
/ 13 марта 2020

Несколько фильтров должны применяться в одном и том же -af через запятую. Кроме того, по умолчанию ametadata будет ожидать заполнения своего буфера, прежде чем записывать данные. Добавьте direct=1 для принудительного вывода в реальном времени. Но эта опция доступна только в текущих git сборках.

Использование
ffmpeg -hide_banner -nostats -f alsa -acodec pcm_s16le -ac:0 2 -ar 480000 -i hw:CARD=Microphone -af astats=metadata=1:length=1:reset=1,ametadata=mode=print:key=lavfi.astats.Overall.Peak_level_dB:file=-:direct=1 -acodec flac test.flac 2>log.txt

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