четверг, 23 июля 2015 г.

Продвинутая доставка MPEG-TS по UDP при помощи Nimble Streamer

Широкий круг задач потоковой передачи медиа-контента в корпоративной сети связан с вещанием MPEG-TS по UDP. С помощью Nimble Streamer можно передавать поток в мультикастовую сеть, на DVR-хранилище, транскодер или на монитор для презентации.

Потоковая передача MPEG-TS по UDP мультикастом с помощью Nimble Streamer

Бывают случаи, когда нужно передать несколько программ в одном MPEG-TS потоке. Такая задача часто стоит при трансляции в частной сети (гостиница, предприятие), когда используется аппаратный декодер, который на вход поддерживает только MPEG-TS.

Транзмаксинг нескольких потоков RTMP, RTSP и MPEG-TS в единый MPEG-TS UDP поток

Отличительной особенностью Nimble Streamer является возможность перепаковки (транзмаксинга) до 256 входящих потоков RTMP, RTSP и MPEG-TS в единый многопрограммный MPEG-TS поток с последующей передачей по UDP. Каждому входящему в состав потоку присваиваются уникальные значения PMT PID, Video PID и Audio PID.
Можно взять потоки RTMP, RTSP и MPEG-TS из любых источников, объединить их в один UDP MPEG-TS и транслировать мультикастом внутри сети.


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




Для того, чтобы использовать эту функциональность в работе, необходимо установить и настроить Nimble Streamer.

Установка Nimble Streamer


Пожалуйста, посмотрите, как установить Nimble Streamer для вашей операционной системы. Или прочитайте эту статью в блоге команды Nimble, чтобы увидеть пример установки Nimble Streamer на виртуальную машину с Ubuntu. При регистрации будет создан аккаунт в WMSPanel.

Настройка


Зайдите под своей учетной записью в WMSPanel, перейдите «Nimble Streamer» -> «Live streams settings». Для начала, необходимо указать Nimble Streamer откуда будут браться входящие RTMP, RTSP или MPEG-TS потоки. Для этого войдите во вкладку «Interfaces» с левой стороны.


Для того, чтобы добавить сетевой интерфейс RTMP, нажмите на кнопку «Add RTMP Interface».


В появившемся окне укажите IP-адрес интерфейса, которому Nimble имеет доступ (например, 127.0.0.1) и номер порта (стандартный порт RTMP 1935, но можно указать любой свободный). Будут обрабатываться только потоки, приходящие на адрес 127.0.0.1, чтобы потоки можно было принимать на любой доступный IP-адрес – оставьте поле адреса пустым. Можно также поменять порт по умолчанию, но придётся удостовериться, что источник публикует RTMP-поток именно на этот порт.

Аналогично, чтобы добавить сетевой интерфейс RTSP, нажмите на кнопку «Add RTSP Interface».


Настройки для RTSP производятся по аналогии с RTMP.
После того, как будут выполнены настройки RTMP и RTSP интерфейсов, все они появятся в списке:


Для того, чтобы настроить исходящий UDP поток,  необходимо перейти на вкладку «UDP streaming».


Далее необходимо нажать «Add UDP setting» и в появившемся окне


указать IP-адрес (в данном случае 127.0.0.1) и номер порта (в данном случае 2015) для UDP потока. Следом нужно указать, какие входящие потоки необходимо перепаковать в MPEG-TS UDP. Nimble Streamer предложит выбрать из списка входящих потоков и автоматически присвоит для каждого потока свои PMT PID, Video PID и Audio PID. Для того, чтобы добавить больше потоков, необходимо нажать на ссылку «Add source».


Параметры PMT PID, Video PID и Audio PID задаются для каждого потока автоматически. Есть возможность установить эти номера вручную, но нужно хорошо понимать интервалы корректных значений. Если какой-то поток перестанет быть активным, он будет исключен из раздачи UDP, при этом номера оставшихся потоков останутся без изменений. При добавлении ещё одного входящего потока, соответствующему MPEG-TS потоку на выходе будут автоматически присвоены корректные PID.

Эта возможность позволяет не беспокоиться о том, что UDP вещание в целом будет прервано, если какие-то потоки перестанут быть активными либо добавятся новые. Как уже было сказано вначале, веб-интерфейс позволяет перепаковать до 256 входящих потоков в один исходящий MPEG-TS UDP поток.

Как протестировать


У вас должен быть один или несколько входящих RTMP, RTSP или MPEG-TS потоков. Например, у вас есть три потока: stream_low, stream_mid, stream_high.

После того, как эти потоки будут приняты, их можно объединить в один исходящий UDP поток во вкладке UDP streaming.


В списке появится UDP поток с перечислением всех входящих потоков перепакуемых в MPEG-TS.


Чтобы протестировать вещание UDP, можно указать во вкладке «MPEGTS In» («MPEGTS In» -> «Add UDP stream»)


в качестве источника наш UDP поток:


После добавления входящего UDP потока он должен появиться в списке:


Сначала жёлтым pending, затем через несколько секунд зелёным online.


Во вкладке «MPEGTS Out» («MPEGTS Out» -> «Add outgoing stream»)


для трансляции можно выбрать отдельные потоки из UDP по Video PID и Audio PID.


Причем можно комбинировать Audio PID и Video PID из разных PMT PID.

После добавления всех потоков они будут отображены в списке.


Если всё сделано правильно, через несколько секунд все потоки будут зелёными synced.

Теперь если перейти в «Nimble Streamer» -> «Live streams» -> «Outgoing streams», то можно увидеть, что все потоки online.


Это всё!


Более детально возможности тестирования вещания с помощью MPEGTS In и MPEGTS Out можно прочитать в статье «Transmux MPEG-TS into HLS, RTMP, MPEG-DASH and more via Nimble Streamer».
Если у вас есть вопросы по установке или настройке Nimble Streamer, пожалуйста, свяжитесь с нами. Также вы можете просмотреть форум компании WMSPanel, в котором приведены вопросы от других пользователей и компаний вместе с ответами на них.

Сопутствующая документация


Комментариев нет:

Отправить комментарий