Ограничения источников HLS для сетей вещания

При ретрансляции HLS-потоков в вещательные сети, такие как спутниковые, кабельные, наземные или UDP multicast, часто возникает проблема появления различных артефактов, таких как пикселизация, смещение звука и щелчки. Интересно, что при воспроизведении на ПК эти потоки работают хорошо. Часто инженеры возлагают вину на производителя головной станции, однако, чтобы понять суть проблемы, необходимо изучить особенности кодирования видео.

Кодирование видео

Кодирование видео - это процесс сжатия видеоданных для их эффективного хранения и передачи. Видеопотоки разбиваются на кадры:

  • Ключевой кадр (I-кадр) - содержит все изображение
  • Последующие кадры (P-кадры и B-кадры) - изменяются только относительно предыдущего кадра

Битрейт потока

Для обеспечения плавного воспроизведения и правильной синхронизации звука и видео в сетях вещания очень важно обеспечить доставку каждого кадра в определенный промежуток времени. Для достижения этой цели видеопотоки должны кодироваться с более высоким средним битрейтом для поддержания предсказуемого и равномерного битрейта. Баланс между размером GOP и качеством кодирования необходим для поддержания стабильного битрейта и достижения оптимального визуального качества видеопотоков, предназначенных для вещания.

Поток, закодированный для вещания

В отличие от вещательных сетей, HLS (HTTP Live Streaming) более эффективно справляется с переменным битрейтом, поскольку данные передаются сегментами, содержащими несколько секунд видео (обычно 3 секунды и более). В результате HLS может работать с большими размерами GOP, обеспечивая лучшее качество видео при более низком среднем битрейте.

Поток, закодированный для HLS

На графике видно, что поток, закодированный для HLS, имеет низкий средний битрейт - всего 2 Мбит/с, но при этом имеет пики, достигающие 6 Мбит/с.

Гибкость HLS не очень хорошо проявляется в сетях вещания, которые требуют постоянной и предсказуемой полосы пропускания для стабильной передачи и воспроизведения. Таким образом, при работе с потоками HLS и вещательными системами необходимо учитывать различия в требованиях к битрейту и соответствующим образом корректировать параметры кодирования для обеспечения стабильной передачи и воспроизведения.

Пиковые значения битрейта и UDP-вещание

Пиковые значения битрейта также могут создавать проблемы для UDP-вещания. Большинство потребительских устройств, таких как приставки (STB) и телевизоры, имеют ограниченный объем сетевого буфера для приема UDP-пакетов. Когда за короткое время поступает много пакетов из-за пиков битрейта, сетевой буфер устройства может оказаться переполненным, что приведет к потере пакетов.

Решение

Для потоков с умеренным отклонением битрейта можно включить функцию CBR (Constant Bitrate) в настройках вывода Astra. Эта функция помогает распределить большие ключевые кадры во времени и добавляет пустые пакеты TS для поддержания постоянного битрейта.

Однако для некоторых потоков может потребоваться транскодирование, чтобы адаптировать их для вещания. Для обеспечения лучшей совместимости с сетями вещания необходимо выполнить следующие настройки:

  • Уменьшение размера GOP: Оптимально использовать меньший размер GOP (около 30 кадров) для достижения лучшего качества в сценах движения и минимизации разницы между средним и пиковым битрейтами
  • Снижение качества изображения: Хотя это может привести к небольшому снижению общего качества видео, это помогает снизить битрейт и поддерживать более стабильную передачу данных
  • Включение чересстрочной развертки видео: Чересстрочное видео может обеспечить более плавные сцены движения и лучшее общее качество изображения по сравнению с прогрессивным видео, особенно в условиях вещания