Рассылка UDP с постоянным битрейтом (CBR)
Flussonic Media Server предоставляют функцию рассылки видео по мультикасту с постоянным битрейтом видео.
- Есть возможность выдерживать указанный фиксированный битрейт видеопотока и подстраивать битрейт автоматически
- Есть возможность формировать выходной MPTS, т.е. мультипрограммный транспортный поток.
Поддерживаются расширенные настройки MPTS:
Как настроить отправку UDP multicast
Рассылку мультикаста можно сконфигурировать так:
stream tvchannel {
input udp://239.171.0.1:1234;
push udp://239.172.0.1:1234 bitrate=3200 vb=2720;
}
Либо без указания bitrate
и vb
:
stream tvchannel {
input udp://239.171.0.1:1234;
push udp://239.172.0.1:1234;
}
Параметры bitrate
и vb
— необязательные. Если вы не укажете их, Flussonic автоматически рассчитает подходящий битрейт и будет отправлять поток с рассчитанным постоянным видеобитрейтом. Указать их можно для того, чтобы получить постоянный битрейт сразу при запуске потока, затем Flussonic проверит оптимальность указанных значений. Если вы укажете неоптимальные bitrate
и vb
, Flussonic сам скорректирует их для реального видеопотока.
Параметр vb
(video bitrate) — это среднее за секунду значение битрейта видеопотока, которое получится отправить, включая все заголовки и инкапсуляцию в транспортный поток. Так, например, значение vb=2720
соответствует примерно битрейту 2600, заданному в настройках транскодера.
Перед отправкой потока на клиентские устройства (ТВ) входной поток транскодируется и затем отправляется в UDP с постоянным битрейтом.
Пример эталонно сконфигурированного транскодера:
stream tvchannel {
input udp://239.171.0.1:1234;
transcoder vb=2600k bf=3 open_gop=true rc_method=cbr vui_video_params=0:0:5:5:5 fps=25 g=28 interlace=tff_separated level=3 refs=4 sar=16:11 size=1048x576:scale external=false hw=qsv ab=192k acodec=mp2a;
push udp://239.172.0.1:1234 bitrate=3200 vb=2720;
}
Опции транскодирования описаны в справочнике по настройкам транскодера.
Результаты
Поток с полученным постоянным битрейтом выглядит следующим образом на графиках анализатора:
Самое главное, что график буфера выглядит уже эталонным:
Что же такое этот буфер? Речь идет о CPB, coded picture buffer, т.е. это буфер кадров. Он пополняется, когда они приходят из транспортного потока и удаляется, когда наступает PCR >= DTS. Т.е. у каждого кадра есть DTS и этот кадр будет лежать в буфере, пока не наступит время отдать его в декодер. Время наступает, когда приходит соответствующий PCR.
Также обратим внимание на хорошее качество перемешивания потока:
Чем равномернее перемешан поток, тем стабильнее будет PCR и общий битрейт при удалении одного из пидов из потока.
Это не все. Наше большое достижение — формирование выходного MPTS потока (мультипрограммного транспортного потока).