Astra: где стоит применять?

в 11:41, , рубрики: astra, iptv, multicast, udp, Телекомы, метки: , , ,

Добрый день.

Все, кто связаны с IPTV наверняка слышали о таких программах как Astra (getstream), tsplay, VLC, созданных для вещания в сеть с различных источников. Они являются альтернативными решениями таких аппаратных платформ как Harmonic, PBI и других.

Давайте посмотрим, как себя проявляет Astra.

А судить будет мой любимый Bridgetech VB220.
image

Из файла в Multicast

tsplay

Быстрее и проще всего запустить некий ролик с помощью tsplay, это делается одной простой командой:

tsplay filename.ts 239.255.10.156:1234 -loop

Программа вовсе не ест ресурсов системы и показывает хорошие данные на анализаторе:
image
На графике показано, что jitter-стабильный, потери TS-пакетов отсутствуют (не считая момент, когда заканчивается ролик и запускается заново).

VLC

Запустить из консоли вещание через VLC чуть тяжелее, чем с помощью tsplay, но до сих пор укладываемся в одну строку:

сvlc -v /content/filename.ts --sout '#standard{access=udp{ttl=15},mux=ts{tsid=22,pid-video=23,pid-audio=24,pid-pmt=25,use-key-frames},dst=[239.255.10.156:1234]}' --loop

На моей машине процесс ест 1-3% процессора (как будто еще и декодирует) и показывает такие данные на анализаторе:
image
Как мы видим из графика, jitter-скачет, но в пределах нормы, потери TS-пакетов отсутствует как и у tsplay, но более длительный перерыв между концом и началом ролика.

Astra

Для запуска Astra придется создать небольшой конфигурационный файл на lua:

#!/usr/bin/astra

require("base")

make_stream({
    name = "Stream 1",
    file = {
        filename = "/content/filename.ts",
    }
}, {
    {
    name = "Movie",
    analyze = false,
    output = {
        "udp://239.255.10.156:1234",
        }
   },
})

А затем запустить:
astra movie.lua
Или сразу:
./movie.lua

Нагрузку на систему я не замечаю, смотрю на анализатор:
image
Практически идеальный jitter, однако появляются потери TS-пакетов даже посреди ролика.

Вывод

Со стороны абонента разницы между VLC, tsplay, Astra не заметно.
На анализаторе приятнее смотреть на tsplay.
Нравятся lua-конфиги Astra.
Удобно автоматизировать на bash'e tsplay.
VLC из коробки поддерживает плейлисты и random-вещание из списка, что можно сделать на bash с помощью tsplay или на lua для Astra.

Мой выбор для вещания из файлов: tsplay.

Из unicast/multicast (MPTS) в Multicast (SPTS)

Со спутникового приемника Harmonic ProView 29xx отправляем MPTS-поток по IP на Harmonic ProStream 1000 и сервер с Astra.
Задача: получить две мультикаст-группы с SPTS-потоками.

Harmonic ProStream 1000

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

В результате мы получаем два идеальный TS-потока, что неудивительно для оборудования с высоким ценником:
image
image

Astra

Как я сказал выше, мне нравятся конфиги Астры. Все выглядит красиво и понятно:

#!/usr/bin/astra

require("base")

make_stream({
    name = "ProView IRD",
    demux = true,
    udp = {
        addr = "10.10.10.10", port = 2008
    }
}, {
    {
        name = "Hustler TV",
        analyze = false,
        pnr = 9,
        output = {
            "udp://233.120.65.222:1234",
        }
    },
    {
        name = "Blue Hustler",
        analyze = false,
        pnr = 10,
        output = {
            "udp://233.120.65.223:1234",
        }
    },

})

Астра тоже радует нас хорошими графиками на анализаторе:
image
image

Да, результаты не идеальные, но зафиксировано всего 3 небольших сбоя за 90 минут, что в реальный клиент никогда не заметит.

Вывод

Astra имеет все, что необходимо для работы как IP-стример (резервирование, фильтрация, изменение PID дорожек).
Если у вас нет профессионального сертифицированного оборудования, средств или произошел выход из строя основного стримера, то Astra будет спасением для вас.

VLC не рассматривается в данном тесте из-за сложности настройки, низкого качества генерируемых потоков и высокого потребления CPU.

Multicast (SPTS) в Multicast (SPTS)

Astra и Harmonic ProStream показывают отменные потоки.
К сожалению, Astra не умеет генерировать потоки c постоянным битрейтом (CBR), что бывает полезно в некоторых случаях.

DVB-S/S2 в Multicast

Мне очень интересно сравнить работы Astra с такими приемниками-комбайнам как Harmonic ProView 7000 или PBI DHC-4000P, но, к сожалению, у меня нет DVB-S2 PCI-E платы.

О HTTP

Наш анализатор не поддерживает HTTP-протокол, поэтому проанализировать работу Astra или VLC в этом направлении не получится. По ощущением они оба отлично справляются с этой задачей. Только кому нужно вещать в HTTP? Было бы здорово иметь возможность резервировать DVB/UDP источники HTTP-потоками из интернета, но это пока с этой задачей ни один софт(и железо) не позволяет справится без костылей. Поправьте меня, если я не прав.

Общий вывод

Astra — интересная альтернатива дорогому оборудованию, буду обязательно следить за развитием, но пока мы не готовы рискнуть доверить ей генерацию всех потоков, оставим на для тестов и на случай выхода из строя резервного стримера.

Расскажите о своем опыте с Astra и другими софт-решениями для DVB/IPTV.

Автор: klu4ik

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js