HLS для вещания
Когда вы отправляете HLS-потоки на вещательные сети, такие как спутниковое, кабельное или эфирное ТВ, могут возникать проблемы, например, пикселизация видео, рассинхронизация звука или щелчки. Те же потоки работают нормально на компьютерах. Это происходит потому, что HLS и вещательные сети по-разному обрабатывают видеоданные.
Видеокодирование
Заголовок раздела «Видеокодирование»Видеокодирование сжимает видеоданные, чтобы уменьшить размер файлов.
Видеопотоки используют разные типы кадров:
- Ключевой кадр (I-кадр) — содержит полное изображение
- Последующие кадры (P-кадры и B-кадры) — хранят только изменения относительно предыдущего кадра
GOP (Группа кадров)
Заголовок раздела «GOP (Группа кадров)»GOP — это последовательность, начинающаяся с ключевого кадра, за которым следуют несколько последующих кадров. Например, GOP из 30 — это один ключевой кадр и 29 других кадров. Больший размер GOP означает меньше ключевых кадров, что уменьшает размер файла, но приводит к большим скачкам битрейта при появлении ключевых кадров.
Битрейт потока
Заголовок раздела «Битрейт потока»Вещательные сети требуют доставки видеокадров в строго определённое время, чтобы звук и видео оставались синхронизированными. Для этого нужен стабильный и предсказуемый битрейт. Необходимо подобрать размер GOP и качество видео так, чтобы поддерживать постоянный битрейт для плавного вещания.

HLS работает иначе. Он отправляет видео фрагментами по несколько секунд (обычно 3+ секунды), поэтому лучше справляется с изменениями битрейта. Это позволяет HLS использовать большие размеры GOP и получать лучшее качество видео при меньшем среднем битрейте.

На графике видно, что средний битрейт HLS-потока составляет 2 Мбит/с, но может подниматься до 6 Мбит/с.
Эта гибкость вызывает проблемы для вещательных сетей, которым нужна постоянная пропускная способность. Если вы используете HLS-потоки в вещательных системах, необходимо настроить кодирование в соответствии с требованиями вещания.
Пики битрейта и UDP-вещание
Заголовок раздела «Пики битрейта и UDP-вещание»Скачки битрейта также вызывают проблемы при UDP-вещании. ТВ-приставки и телевизоры имеют небольшие сетевые буферы. Когда во время скачков битрейта приходит слишком много пакетов одновременно, буфер переполняется и пакеты теряются.
Решение
Заголовок раздела «Решение»В Astra нет встроенных возможностей транскодирования. Необходимо транскодировать поток с помощью внешних инструментов, например, FFmpeg. Попробуйте следующие настройки:
- Уменьшите размер GOP: используйте около 30 кадров для лучшего качества движения и меньших скачков битрейта
- Включите чересстрочную развертку: обеспечивает более плавное движение, особенно для вещания
- Используйте CBR (постоянный битрейт): заполняет пробелы битрейта нулевыми пакетами для достижения постоянной скорости