FFmpeg и эфирное видео
// Март 29th, 2009 // Без рубрики
Два дня провозился с настройками ffmpeg для генерации MPEG2, который подходит для эфирного транслирования через «AirBox» (в моём случае это был — BlackMagic).
Задача была автоматически генерировать кадры титров с эффектом перехода dissolve.
Первая проблема, с которой столкнулся — это стробление букв и картинок на титрах, решилось созданием отдельного слоя под оригинальным текстом (картинкой) с прозрачностью, для достижения эффекта тени.
Вторая — потребовалась нулевая звуковая дорожка, пришлось открывать свой любимый звуковой редактор и делать пустой файл
И тут внимание: длина звукового файла должна соответствовать длине видео!
Третья беда — файлы в упор не хотели читаться BlackMagic‘ом.
После долгово курения и просмотра в ProCoder‘е других эфирных MPEG’ов, нашел несколько отличий: CBR на 6000K и абсолютно другой профайл (у меня выходил Main Profile @ High-1440 Level, а в эфире был High Profile @ Main Level).
CBR в ffmpeg делается не так легко, как кажется: кроме основного битрейта (-b 6000K) нужно ещё указать максимальный и минимальный битрейт (-minrate 6000K -maxrate 6000K) и к оным надо прибавить ещё и размер буфера (-bufsize). Вот последний упорно не хотел настраиваться. Он должен быть 224 бита, но такой параметр для ffmpeg не годиться, т.к. вы получите ошибку, что буфер для битрейта слишком мал. Путём глупого перебора подобрал нужное значение: -bufsize 1830K, что соответвует 224 битам (по данным Procoder 3).
Теперь осталось разобраться с профилем и уровнем. Тут я конечно потупил слегка, т.к. с монтажки мне выдали PSD подложки для титров размером 768×576, соответвенно и видео я генерил такого же размера, а по спецификации оно должно быть 720×576 (или для аналоговых 704×576), так-что путем добавления параметра -s 720×576 проблема была решена.
Осталось последнее — не та установка Program Stream (почему-то на выхлопе она была MPEG1). После непродолжительного курения добавил параметр -target pal-dvd, и после него мои установки (чтобы сбить пресетные — VBR, звук в AC3). После его установки получил то, что нужно
Финальная строчка, которая генерит MPEG2 из набора png картинок (000.png 001.png …):
ffmpeg -i «input_sound/silence.mp2» -vcodec mpeg2video -r 25 -target pal-dvd -acodec mp2 -ab 224k -b 6000K -minrate 6000K -maxrate 6000K -bufsize 1830K -s 720×576 -aspect 4:3 -i «input_pictures/%03d.png» «OutPut.mpg»




А вот нафига такие извращения? Это куда и как вещается?
Ну как — быстро захватить данные из XML, сгенерить титры, добавить сет и сделать транзишн. В виндушной машине дорого бы было (на тех же скриптах AFX), а тут более-менее универсально и дешево
Я, честно говоря, саму задачу не понял. О вещании чего и куда идет речь? Ну ессли секретная информация, то и ладно
Задача сделать что-то типа TV24