Как кодировать подписи CEA-608 в поток RTMP с помощью FFmpeg

В этой статье блога мы рассмотрим различные методы кодирования титров CEA-608 в поток RTMP с помощью FFmpeg. CEA-608 — это стандарт субтитров в Северной Америке, а FFmpeg — мощная мультимедийная платформа, которая может решать различные задачи кодирования видео. Интегрируя субтитры CEA-608 в поток RTMP, вы можете гарантировать, что ваш видеоконтент в реальном времени будет доступен зрителям с нарушениями слуха. Итак, давайте углубимся и узнаем, как этого добиться!

Метод 1: использование наложения фильтра
Один из способов кодирования титров CEA-608 в поток RTMP — использование наложения фильтра FFmpeg. Этот фильтр позволяет накладывать титры поверх видеокадров. Вот пример команды:

ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&Hffffff'" -c:v libx264 -c:a copy -f flv rtmp://streaming-server/live/stream

Объяснение:

  • -i input.mp4: указывает входной видеофайл.
  • -vf "subtitles=input.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&Hffffff'": применяет фильтр субтитров для наложения подписей. Замените input.srtна путь к файлу подписей CEA-608. Настройте название шрифта, размер шрифта и основной цвет по своему усмотрению.
  • -c:v libx264 -c:a copy: устанавливает видеокодек H.264 (libx264) и копирует аудиопоток без повторного кодирования.
  • -f flv rtmp://streaming-server/live/stream: определяет формат вывода как FLV и URL-адрес потока RTMP.

Метод 2: использование фильтра drawtext
Другой подход — использовать фильтр drawtext FFmpeg, который позволяет напрямую отображать текст в видеокадрах. Вот пример команды:

ffmpeg -i input.mp4 -vf "drawtext=textfile=input.srt:fontfile=Arial.ttf:fontsize=24:fontcolor=white:x=10:y=10" -c:v libx264 -c:a copy -f flv rtmp://streaming-server/live/stream

Объяснение:

  • -i input.mp4: указывает входной видеофайл.
  • -vf "drawtext=textfile=input.srt:fontfile=Arial.ttf:fontsize=24:fontcolor=white:x=10:y=10": применяет фильтр drawtext для отображения подписей. Замените input.srtна путь к файлу подписей CEA-608. Настройте файл шрифта, размер шрифта, цвет шрифта и положение по своему усмотрению.
  • -c:v libx264 -c:a copy: устанавливает видеокодек H.264 (libx264) и копирует аудиопоток без повторного кодирования.
  • -f flv rtmp://streaming-server/live/stream: определяет формат вывода как FLV и URL-адрес потока RTMP.

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