Настройка и использование mumudvb для создания собственного IPTV.

  • 0 Ответов
  • 556 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Онлайн Alextuzov

  • Постоялец
  • ***
  • 192
  • +1/-0
  • Александр
В последней версии прошивки AlexElec для Intel PC добавлена программа mumudvb, (*в сборках на базе CoreElec mumudvb есть в составе плагина DVB Tools, но там старая версия драйверов и тюнер Astrometa не видит свой DVB-T2 фронтенд, видит только DVB-T) по моему мнению сильно недооцененная. Фактически эта маленькая программка умеет принимать сигнал от DVB-S2 и DVB-T2 тюнеров и отправлять этот поток в сеть. То есть имея USB тюнер можно создать собственное вещание IPTV независимое от провайдеров.
Настройка программы с первого взгляда выглядит сложной и непонятной, по крайней мере мне после изучения примера лежащего в папке /storage/.config/mumudvb показалось, что это какой-то кошмар. Но с помощью Алекса удалось разобраться и оказалось что «не так страшен черт, как его малюнок» :-)
Что нужно иметь, чтобы пользоваться такой программой?
1. USB DVB-T2 тюнер
В моем случае имеем два тюнера Astrometa и один Mygiga
Далее нам нужно создать конфигурационные файлы для наших тюнеров.
Немного отвлекусь, чтобы сказать, что у mumudvb есть недостаток (хотя это присуще всем программам умеющим вещать в сеть) если вы хотите чтобы каждый абонент мог принимать стрим в полном объеме и имел доступ одновременно ко всем каналам вещаемым в вашем регионе, нужно на каждую частоту иметь отдельный тюнер. В моем регионе вещние идет на двух частотах: 474 и 578 МГц - и вроде бы мне нужно два тюнера? Но как оказалось - нет. Еще имеется такая штука как вставка в некоторые каналы местного вещания, а для этого предусмотрена функция PLP, в настройках mumudvb она называется stream_id и может принимать значения от 0 до 255. В моем случае на частоте 578 МГц идет 10 каналов, но в 3 из них включается местное ТВ. Чтобы эти три канала mumudvb увидел и настроил, необходимо в конфиге указать параметр stream_ID=1 и таки да...  для успешйной настройки на эти три канала нужен еще один тюнер :-((
Теперь пройдемся по параметрам конфигурации:
Первый тюнер: storqage/.config/mumudvb/Astrometa-1.conf
Код
unicast=1
port_http=4242
card=2 #adapter
tuner=1 #frontend
delivery_system=DVBT2
freq=578
multicast_ipv4=0
autoconfiguration=full
autoconf_scrambled=1
stream_id=0
hls=1
hls_rotate_count=2

Второй тюнер: /storqage/.config/mumudvb/Astrometa-2.conf
Код
unicast=1
port_http=4243
card=1 #adapter
tuner=1 #frontend
delivery_system=DVBT2
freq=578
multicast_ipv4=0
autoconfiguration=full
autoconf_scrambled=1
stream_id=1
hls=1
hls_rotate_count=2

Третий тюнер: /storqage/.config/mumudvb/Mygiga.conf
Код
unicast=1
port_http=4244
card=0 #adapter
tuner=0 #frontend
delivery_system=DVBT2
freq=474
multicast_ipv4=0
autoconfiguration=full
autoconf_scrambled=1
stream_id=0
hls=1
hls_rotate_count=2
Посмотреть куда система повесила тюнера можно в терминале командой:
Код
dmesg | grep "registering adapter"
[   67.472351] usb 1-1.1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[   67.472471] usb 1-1.1: DVB: registering adapter 0 frontend 1 (Sony CXD2837ER DVB-T/T2/C demodulator)...
[   67.746417] usb 1-1.3: DVB: registering adapter 1 frontend 0 (Realtek RTL2832 (DVB-T))...
[   67.746490] usb 1-1.3: DVB: registering adapter 1 frontend 1 (Sony CXD2837ER DVB-T/T2/C demodulator)..

В конфигах в зависимости от подключения тюнера меняются параметры
Код
port=4242 #(по-умолчанию) - должен быть разным для каждого тюнера (можно для других ставить значения 4243, 4244)
card=1  #соответствует в пути adapter /dev/dvb/adapter1/frontend0/
tuner=0  #соответствует в пути frontend /dev/dvb/adapter1/frontend0/
freq=578 #частота на которой идет прием пакета каналов
stream_id=1 #значения 0-255 в моем случае 0 и 1

Остальные параметры одинаковы
Запуск для теста выглядит так:
Код
Первый тюнер: mumudvb -c /storage/.config/mumudvb/Astrometa-1.conf -d
Второй тюнер: mumudvb -c /storage/.config/mumudvb/Astrometa-2.conf -d
Третий тюнер: mumudvb -c /storage/.config/mumudvb/Mygiga.conf -d

Для автозапуска нужно создать юниты:
В папке /storage/.config/system.d создаем три файла
1. mumudvb.service:
Код
  [Unit]
Description=mumudvb Daemon
Requires=network-online.target
After=network-online.target
Before=kodi.service

[Service]
ExecStart=/usr/bin/mumudvb -c /storage/.config/mumudvb/Mygiga.conf -d
TimeoutStopSec=1
Restart=always
RestartSec=20
StartLimitInterval=0

[Install]
WantedBy=multi-user.target
2. mumudvb1.service:
Код
[Unit]
Description=mumudvb1 Daemon
Requires=network-online.target
After=network-online.target
Before=kodi.service

[Service]
ExecStart=/usr/bin/mumudvb -c /storage/.config/mumudvb/Astrometa-1.conf -d
TimeoutStopSec=1
Restart=always
RestartSec=20
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

3. mumudvb2.service:
Код
[Unit]
Description=mumudvb2 Daemon
Requires=network-online.target
After=network-online.target
Before=kodi.service

[Service]
ExecStart=/usr/bin/mumudvb -c /storage/.config/mumudvb/Astrometa-2.conf -d
TimeoutStopSec=1
Restart=always
RestartSec=20
StartLimitInterval=0

[Install]
WantedBy=multi-user.target
После создания файлов делаем в терминале:
Код
systemctl daemon-reload
systemctl enable mumudvb
systemctl enable mumudvb1
systemctl enable mumudvb2

И либо перезагрузиться:
Код
reboot
либо:
Код
systemctl start mumudvb
systemctl start mumudvb1
systemctl start mumudvb2


Есть еще некоторые недоработки присущие Линукс. (Куда без этого!) Если у вас разные тюнера (от разных производителей), то при каждой перезагрузке бокса они меняются местами и получают другие параметры adapter & frontend, что вызывает недетское раздражение и необходимость редактировать конфигурации или писать udev rules. К сожалению с этими правилами (udev rles) я пока не смог разобраться. Если кто-то разбирается, милости прошу!
Но если тюнера одного производителя, то совершенно пофиг на какие пути их повесит Линукс. Так что если планируете создавать себе систему вещания IPTV, то рекомендую купить одинаковые тюнера.


Запуск просмотра:
Первый тюнер:
Код
http://192.168.Х.Х:4242/playlist.m3u
Второй тюнер:
Код
http://92.168.Х.Х:4243/playlist.m3u
Третий тюнер:
Код
http://192.168.Х.Х:4244/playlist.m3u
Также можно добавить эти источники в TVLIINK и тогда если в TVLINK установлен токен, можно пробросить порты 2020 и 2021 в роутере и смотреть свое ТВ с телефона или планшета находясь где угодно, лишь бы был интернет.
« Последнее редактирование: 14 Сентября 2023, 08:32:54 от Alextuzov »
1. LibreELEC (ae-fork) GBM x86_64_v2 v12.0-rc2-01- основной Box IPTV
2. Intel PC GL2 LibreELEC (ae-fork) GBM x86_64_v2 v12.0-rc2-01 (как сервер TVLINK)
3. Beelink S922 CoreELEC (ae-fork) 20.3-Nexus_ae-01
4. Dealdig S912 AlexElec v 3.3.9 (S9XX-DualBoot)
5. T99Mini S905D CoreELEC (ae-fork) 20.3-Nexus_