Добрый день.
Все, кто связаны с IPTV наверняка слышали о таких программах как Astra (getstream), tsplay, VLC, созданных для вещания в сеть с различных источников. Они являются альтернативными решениями таких аппаратных платформ как Harmonic, PBI и других.
Давайте посмотрим, как себя проявляет Astra.
А судить будет мой любимый анализатор Bridgetech VB220.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/d70/a1d/a3c/d70a1da3ce9a5673bd53f67e4ad654ea.png)
Быстрее и проще всего запустить некий ролик с помощью tsplay, это делается одной простой командой:
Программа вовсе не ест ресурсов системы и показывает хорошие данные на анализаторе:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/158/0f0/04a/1580f004aaeb9caede393d944345e3b9.png)
На графике показано, что jitter-стабильный, потери TS-пакетов отсутствуют (не считая момент, когда заканчивается ролик и запускается заново).
Запустить из консоли вещание через VLC чуть тяжелее, чем с помощью tsplay, но до сих пор укладываемся в одну строку:
На моей машине процесс ест 1-3% процессора (как будто еще и декодирует) и показывает такие данные на анализаторе:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/f8c/bc0/a42/f8cbc0a4248d77017f07218f3a70ec79.png)
Как мы видим из графика, jitter-скачет, но в пределах нормы, потери TS-пакетов отсутствует как и у tsplay, но более длительный перерыв между концом и началом ролика.
Для запуска Astra придется создать небольшой конфигурационный файл на lua:
А затем запустить:
Или сразу:
Нагрузку на систему я не замечаю, смотрю на анализатор:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/ead/9d1/e24/ead9d1e2422ddf492979600ab3ce666c.png)
Практически идеальный 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-потока, что неудивительно для оборудования с высоким ценником:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/3f5/889/3ac/3f58893accd2c33f395ad8d57d084dc1.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/870/c1b/a1f/870c1ba1fae9ded13d661fb2595d24d7.png)
Как я сказал выше, мне нравятся конфиги Астры. Все выглядит красиво и понятно:
Астра тоже радует нас хорошими графиками на анализаторе:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/638/230/64d/63823064d46f149ecfe98c017f368232.png)
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/e2f/294/c64/e2f294c64a6b8b4a014c0b9d012e4300.png)
Да, результаты не идеальные, но зафиксировано всего 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.
UPDATE: and_cesbo в комментариях сообщил, что в нового версии переработано вещание из файла.
Скриншот с анализатора:
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/158/9a1/a1d/1589a1a1db6974c46d881458319beb70.png)
Стало действительно хорошо. Сбои на графике из-за перемотки в начало файла.
Все, кто связаны с IPTV наверняка слышали о таких программах как Astra (getstream), tsplay, VLC, созданных для вещания в сеть с различных источников. Они являются альтернативными решениями таких аппаратных платформ как Harmonic, PBI и других.
Давайте посмотрим, как себя проявляет Astra.
А судить будет мой любимый анализатор Bridgetech VB220.
![image](https://habrastorage.org/getpro/habr/post_images/d70/a1d/a3c/d70a1da3ce9a5673bd53f67e4ad654ea.png)
Из файла в Multicast
tsplay
Быстрее и проще всего запустить некий ролик с помощью tsplay, это делается одной простой командой:
tsplay filename.ts 239.255.10.156:1234 -loop
Программа вовсе не ест ресурсов системы и показывает хорошие данные на анализаторе:
![image](https://habrastorage.org/getpro/habr/post_images/158/0f0/04a/1580f004aaeb9caede393d944345e3b9.png)
На графике показано, что 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](https://habrastorage.org/getpro/habr/post_images/f8c/bc0/a42/f8cbc0a4248d77017f07218f3a70ec79.png)
Как мы видим из графика, 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](https://habrastorage.org/getpro/habr/post_images/ead/9d1/e24/ead9d1e2422ddf492979600ab3ce666c.png)
Практически идеальный 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](https://habrastorage.org/getpro/habr/post_images/3f5/889/3ac/3f58893accd2c33f395ad8d57d084dc1.png)
![image](https://habrastorage.org/getpro/habr/post_images/870/c1b/a1f/870c1ba1fae9ded13d661fb2595d24d7.png)
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](https://habrastorage.org/getpro/habr/post_images/638/230/64d/63823064d46f149ecfe98c017f368232.png)
![image](https://habrastorage.org/getpro/habr/post_images/e2f/294/c64/e2f294c64a6b8b4a014c0b9d012e4300.png)
Да, результаты не идеальные, но зафиксировано всего 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.
UPDATE: and_cesbo в комментариях сообщил, что в нового версии переработано вещание из файла.
Скриншот с анализатора:
![image](https://habrastorage.org/getpro/habr/post_images/158/9a1/a1d/1589a1a1db6974c46d881458319beb70.png)
Стало действительно хорошо. Сбои на графике из-за перемотки в начало файла.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какое оборудование вы используете у себя в сети? (преимущественно)
39.11% Сервер с набором ПО.79
19.8% Готовые Enterprise-решения.40
41.09% Мы не имеем своей IPTV-станции.83
Проголосовали 202 пользователя. Воздержались 109 пользователей.