- PVSM.RU - https://www.pvsm.ru -
Добрый день.
Все, кто связаны с IPTV наверняка слышали о таких программах как Astra [1] (getstream), tsplay [2], VLC [3], созданных для вещания в сеть с различных источников. Они являются альтернативными решениями таких аппаратных платформ как Harmonic, PBI и других.
Давайте посмотрим, как себя проявляет Astra.
А судить будет мой любимый Bridgetech VB220.

Быстрее и проще всего запустить некий ролик с помощью tsplay, это делается одной простой командой:
tsplay filename.ts 239.255.10.156:1234 -loop
Программа вовсе не ест ресурсов системы и показывает хорошие данные на анализаторе:

На графике показано, что jitter-стабильный, потери TS-пакетов отсутствуют (не считая момент, когда заканчивается ролик и запускается заново).
Запустить из консоли вещание через 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% процессора (как будто еще и декодирует) и показывает такие данные на анализаторе:

Как мы видим из графика, jitter-скачет, но в пределах нормы, потери TS-пакетов отсутствует как и у tsplay, но более длительный перерыв между концом и началом ролика.
Для запуска 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
Нагрузку на систему я не замечаю, смотрю на анализатор:

Практически идеальный jitter, однако появляются потери TS-пакетов даже посреди ролика.
Со стороны абонента разницы между VLC, tsplay, Astra не заметно.
На анализаторе приятнее смотреть на tsplay.
Нравятся lua-конфиги Astra.
Удобно автоматизировать на bash'e tsplay.
VLC из коробки поддерживает плейлисты и random-вещание из списка, что можно сделать на bash с помощью tsplay или на lua для Astra.
Мой выбор для вещания из файлов: tsplay.
Со спутникового приемника Harmonic ProView 29xx отправляем MPTS-поток по IP на Harmonic ProStream 1000 и сервер с Astra.
Задача: получить две мультикаст-группы с SPTS-потоками.
Конфигурация стримера осуществляется через веб-админку, которая не может похвастаться интуитивным и быстрым интерфейсом, но вполне пригодная. Этот момент опустим, я сторонник скриптов и конфиг-файлов.
В результате мы получаем два идеальный TS-потока, что неудивительно для оборудования с высоким ценником:


Как я сказал выше, мне нравятся конфиги Астры. Все выглядит красиво и понятно:
#!/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",
}
},
})
Астра тоже радует нас хорошими графиками на анализаторе:


Да, результаты не идеальные, но зафиксировано всего 3 небольших сбоя за 90 минут, что в реальный клиент никогда не заметит.
Astra имеет все, что необходимо для работы как IP-стример (резервирование, фильтрация, изменение PID дорожек).
Если у вас нет профессионального сертифицированного оборудования, средств или произошел выход из строя основного стримера, то Astra будет спасением для вас.
VLC не рассматривается в данном тесте из-за сложности настройки, низкого качества генерируемых потоков и высокого потребления CPU.
Astra и Harmonic ProStream показывают отменные потоки.
К сожалению, Astra не умеет генерировать потоки c постоянным битрейтом (CBR), что бывает полезно в некоторых случаях.
Мне очень интересно сравнить работы Astra с такими приемниками-комбайнам как Harmonic ProView 7000 или PBI DHC-4000P, но, к сожалению, у меня нет DVB-S2 PCI-E платы.
Наш анализатор не поддерживает HTTP-протокол, поэтому проанализировать работу Astra или VLC в этом направлении не получится. По ощущением они оба отлично справляются с этой задачей. Только кому нужно вещать в HTTP? Было бы здорово иметь возможность резервировать DVB/UDP источники HTTP-потоками из интернета, но это пока с этой задачей ни один софт(и железо) не позволяет справится без костылей. Поправьте меня, если я не прав.
Astra — интересная альтернатива дорогому оборудованию, буду обязательно следить за развитием, но пока мы не готовы рискнуть доверить ей генерацию всех потоков, оставим на для тестов и на случай выхода из строя резервного стримера.
Расскажите о своем опыте с Astra и другими софт-решениями для DVB/IPTV.
Автор: klu4ik
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/iptv/37843
Ссылки в тексте:
[1] Astra: http://habrahabr.ru/post/149479/
[2] tsplay: http://habrahabr.ru/post/154349/
[3] VLC: http://habrahabr.ru/post/51667/
[4] Источник: http://habrahabr.ru/post/185348/
Нажмите здесь для печати.