четверг, 27 июня 2019 г.

Zabbix - мониторинг TV playout систем + SNMP


Изначально Zabbix позиционируется как монитроинг множества параметров множества серверов различных групп. Очень мощная , гибкая и жизнеспособная система. К тому-же бесплатная.
При использовании на ТВ для мониторинга мультикастов в вещательных ip сетях, Zabbix тоже подходит, но наличие транспортных ошибок в потоке и его качественных характеристик, zabbix мониторить не умеет. В такой ситуации можно отслеживать только наличие и скорость траффика на мультикаст интерфейсе. Для этого нужно разделить интерфейсы данных и мультикаста либо физически, либо разнести в разные vlan-ы.
Мониторинг битрэйта мультикаст трафика это уже что-то. Настроить можно частоту проведения замеров, в том числе рабочее время или определённые дни. Можно настроить активный монтироинг, чтобы zabbix agent отправлял информацию только в момент неполадки.
Имея на руках информацию о падении мультикаст траффика Zabbix может отправлять уведомления по e-mail, SNMP и тп. или выполнить скрипт по диагностике проблемы, выполнить скрипт, осуществляющий перезапуск playout системы или приложения в зависимости от результата диагностики.
Так же Zabbix при аварии выводит информацию о проблеме, её важность, статус время, длительность, а так-же вложенную информацию по этой проблеме с её диагностикой и решением.
Очень полезная штуковина для отслеживания состояний различных устройств в сети.

Ускорение титров на фильмах с помощью FFmpeg

Это вопрос больше для телевизионщиков.

Однажды возникла необходимость укоротить титры в конце фильма, по скольку для вещания по тв, во время просмотра титров зритель переключает канал, на что-то более динамичное и интересное.
При наличии множества фильмов делать подрезку титров в ручную достаточно проблематично. Поэтому был написан скрипт для FFmpeg выполняющий такую задачу достаточно быстро. Нужно только узнать длительность фиьлма, и время в которое начинаются титры. Скорость работы ограничивается скоростью чтения/записи диска.

Вот содержимое  CMD файла:

set "infile=Film.mp4"
set "T=02:06:37"
set "D=02:13:57"
set "spd=setpts=0.5*PTS,setpts=0.5*PTS,setpts=0.5*PTS,setpts=0.5*PTS"
mkdir speedup


ffmpeg -y -fflags +genpts -i "%infile%" -map 0 -c copy -t %D% -f segment -segment_format mp4 -segment_time %T% -segment_list video.ffcat -reset_timestamps 1 -v error  chunk-%%03d.mp4

ffmpeg -y -i chunk-001.mp4 -filter:v "%spd%" -s 160x90 -b:v 10k -an endNOsnd.mp4


FOR /F "tokens=* USEBACKQ" %%F IN (`ffprobe -i endNOsnd.mp4 -v error -show_entries "format=duration" -of "default=noprint_wrappers=1:nokey=1" -sexagesimal `) DO (
SET dur=%%F
)
ffmpeg -y -i chunk-001.mp4 -filter:v "%spd%" -t %dur% endsnd.mp4

ffmpeg -y -i endsnd.mp4 -sseof -1 -copyts -i endsnd.mp4 -filter_complex     " anullsrc,atrim=0:2[at];[0][at]acrossfade=d=2[a]"    -map 0:0  -map "[a]" chunkEND.mp4
del endNOsnd.mp4
del endsnd.mp4
del chunk-001.mp4
ren chunkEND.mp4 chunk-001.mp4
ffmpeg   -y -fflags +genpts  -v error -i video.ffcat -map 0 -reset_timestamps 1 -c copy   "speedup\%infile%"
del chunk-000.mp4
del chunk-001.mp4
del video.ffcat

convert colors to midi note for midi controllers

I recently (2 years ago) designed and built a simple MIDI controller for my intercom system using an Arduino Leonardo, USB hub, sound card, ...