Глоссарий
Здесь можно познакомиться с терминам, которые встречаются в документации на Flussonic Media Server.
GOP (Group of Pictures)
Group of Pictures (GOP, группа изображений) — упорядоченная цепочка следующих друг за другом изображений в кодированном видеопотоке. Кадры объединяются в группы для целей межкадровой компрессии, без которой передача видеопотока по сети расходовала бы огромное время и трафик. Сжатие выполяет программа-кодировщик (encoder).
Сжатый поток представляет из себя следующие друг за другом GOP. На стороне получателя декодер составляет видимые кадры из кадров, заключенных в GOP.
GOP состоит из I-кадра и следующих за ним P- и B-кадров:
- I-кадр (keyframe, опорный) – первый кадр в GOP. Содержит полное изображение, которое сжимается независимо от других кадров (без ссылок на них).
- P-кадр, B-кадр – следующие кадры в GOP.
- P-кадр – содержит (чаще всего) разницу между изображением на предыдущем P-кадре и изображением на текущем кадре. Сжимается со ссылкой на ключевой кадр.
- B-кадр – содержит ссылки на соседние кадры (на один или несколько I и P кадров), что позволяет ускорить обращение к потоку при перемотке, например.
Размер GOP
Размер GOP (расстояние в кадрах между соседними ключевыми кадрами) - количество кадров в одном GOP. Размер GOP у потока бывает переменным и постоянным. Когда Flussonic перекодирует видео, он создает все GOP постоянного размера. Вы можете настраивать размер GOP в опциях транскодера Flussonic.
Сегменты (в протоколах DASH, HLS, HDS)
Сегмент это единица разбивки видео на части для передачи и буферизации, измеряется в секундах. В сегменте может быть больше одного GOP и сегмент должен быть кратен GOP. Сегмент не может быть меньше, чем GOP (если измерять количеством секунд).
Устройство, передающее видео по протоколам DASH, HLS или HDS, передает видео в виде сегментов продолжительностью три секунды и плейлиста, в котором эти сегменты перечислены. Прежде, чем начать проигрывать видео по этому протоколу, клиент загружает буфер. Если соединение клиента с сервером прерывается или замедляется, то он проигрывает видео из буфера, что сглаживает неравномерность сетевой передачи. Как правило, клиент загружает три сегмента, прежде чем начать проигрывание потока.
Multicast (Мультикаст)
Multicast – способ вещания видео, при котором UDP пакеты передаются от одного источника группе подписчиков по мультикаст IP адресу в локальной сети.
Подробнее о мультикасте в документации
Prepush
Prepush – метод для более плавного проигрывания видео по протоколам HTTP MPEG-TS, RTMP и RTSP (при отправлении пакетов по TCP). Видеостриминговый сервер сохраняет в буфере каждый GOP прежде чем передать его клиенту. При подключении клиента сервер отправляет клиенту первый GOP из буфера и продолжает трансляцию потока с отставанием, равным продолжительности GOP. Клиент при этом поддерживает буфер продолжительностью, равной продолжительности GOP (если перевести GOP в секунды). Если соединение клиента с сервером прерывается или замедляется, то он проигрывает видео из буфера, что сглаживает неравномерность сетевой передачи.
DVR
Это возможности Flussonic по записи потоков в архив и работы с архивом — воспроизведения по разным протоколам или экспорта в файл MP4.
Протокол потоковой передачи видео
Протокол потоковой передачи видео — это правила обмена данными, командами и ответами на них между двумя участниками видеосвязи (клиент-сервер либо peer-to-peer).
При подготовке данных для передачи по сети:
- Сначала видео- и аудио-данные нужно сжать
- Затем упаковать в контейнер для передачи по определённому протоколу.
Видео-кодек
Это технология сжатия "сырого" видео для последующей упаковки в контейнер для передачи по определенному протоколу.
Видео-контейнер (транспорт)
Контейнер — это формат, в который кодированные данные в файле или в потоке упаковываются для передачи по сети. Пакеты с аудио и видеоданными передаются на транспортном уровне по модели OSI.
Формат контейнера самодостаточен и независим от протокола доставки, т.е. можно упаковать данные, но не передавать их по сети, а сохранить и проиграть в плеере локально.
Публикация видео на Flussonic
Публикация — передача видео на Flussonic Media Server от программ и устройств, которые являются инициаторами начала видеотрансляции. Flussonic при этом сторона, ожидающая соединение.
К публикации на Flussonic относится:
- Передача видео с любого мобильного устройства на сервер Flussonic.
- Передача видео из OBS (Open Broadcaster Software) или vMix на сервер Flussonic. Подробнее
- Передача видео с HTML страницы в браузере через WebRTC на сервер Flussonic. Подробнее
А это мы не называем публикацией:
- Получение мультикаста
- Захват потока из какого-либо источника (в этом случае Flussonic является инициатором соединения).