Всегда ли создается каталог /proc/[pid]/attr, даже если SELinux недоступен?

Самый простой (хотя определенно не самый дешевый, -мудрый )способ сделать это, который я могу придумать, это заставить ffmpeg время от времени выводить изображение с измерителем громкости, вдобавок к его нормальному выходу. Вы можете сделать это примерно так:

ffmpeg -i «INPUT» \
    -filter_complex '[0:a]ebur128=video=1:meter=18:metadata=0[g][j], [j]anullsink, [g]fps=1[g]' \
    -map '[g]' -f image2 -update 1 -y «IMAGEFILE».png \
    -map '0:a' -c:a copy -y «AUDIO_OUTPUT»

Это должно выводить изображение один раз в секунду (хотя обратите внимание, что это происходит каждую секунду обработанного звука; ffmpeg будет работать так быстро, как позволяет ЦП, по крайней мере, если выходные данные будут принимать данные так быстро. Я предполагаю, что ваш вывод ограничивает его работой со скоростью 1x ). Вы можете изменить частоту обновления изображения, изменив значение fps=; 2 будет означать два раза в секунду, а 0,5 — каждые 2 секунды.

Очевидно, что если ffmpeg выйдет из строя, изображение просто перестанет обновляться. Точно так же, если он остановлен, например, потому что на выходе не будет больше данных или если на входе их нет. Время модификации на изображении сделает очевидным, что это произошло. Вы также можете добавить временную метку ffmpeg поверх изображения с текущим временем, используя фильтр drawtext:

.

⋮
    -filter_complex '[0:a]ebur128=video=1:meter=18:metadata=0[g][j], [j]anullsink, [g]fps=1, drawtext=text=%{localtime} %{pts}:x=60:y=460:fontcolor=Cyan[g]'
⋮

Тогда вам даже не нужен PHP — вам просто нужно обслуживать статическое изображение:

ffmpeg ebur128 output image showing fairly loud, minimal dynamic range audio playing

PS :Что касается написания сценариев, если он бесшумный, лучше всего это сделать в вашем приложении — и, к вашему сведению, у вас могут быть одни и те же метаданные вывода фильтра ebur128 в различных форматах (, например, JSON ), так что вы можно проверить, не замолчал ли он. К сожалению, он смешивается с другим выводом ffmpeg, поэтому синтаксический анализ может немного раздражать. Я написал Perl-код для этого , но вы, вероятно, сочтете, что это достаточно легко сделать на выбранном вами языке сценариев.

1
02.10.2021, 18:19
0 ответов

Теги

Похожие вопросы