Astra стала платной, и для вещания DVB-T2 можно использовать старый добрый dvblast. Это легковестный сервер для вещания DVB по RTP/UDP. C использованием MyGiga T230.
Для поддержки DVB-T2 нужно собрать dvblast из исходников
apt-get install libbitstream-dev libev-dev make git build-essentialСоздать файлы конфигурации
git clone https://code.videolan.org/videolan/dvblast.git
cd dvblast
make
sudo cp dvblast /usr/bin/
sudo cp dvblastctl /usr/bin/
sudo mkdir -p /etc/dvblastСоздать systemd сервисы для каждого адаптера, например /etc/systemd/system/dvblast@adapter0.service:
cat /etc/dvblast/adapter0.conf
239.2.1.1:1234@192.168.1.4 1 1010
239.2.1.3:1234@192.168.1.4 1 1030
239.2.1.4:1234@192.168.1.4 1 1040
239.2.1.5:1234@192.168.1.4 1 1050
239.2.1.6:1234@192.168.1.4 1 1060
239.2.1.8:1234@192.168.1.4 1 1080
239.2.1.9:1234@192.168.1.4 1 1090
239.2.1.10:1234@192.168.1.4 1 1100
cat /etc/dvblast/adapter1.conf
239.2.1.11:1234@192.168.1.4 1 2010
239.2.1.12:1234@192.168.1.4 1 2020
239.2.1.13:1234@192.168.1.4 1 2030
239.2.1.14:1234@192.168.1.4 1 2040
239.2.1.15:1234@192.168.1.4 1 2050
239.2.1.16:1234@192.168.1.4 1 2060
239.2.1.17:1234@192.168.1.4 1 2070
239.2.1.18:1234@192.168.1.4 1 2080
239.2.1.19:1234@192.168.1.4 1 2090
239.2.1.20:1234@192.168.1.4 1 2100
cat /etc/dvblast/adapter2.conf
239.2.1.2:1234@192.168.1.4 1 1020
cat /etc/dvblast/adapter3.conf
239.2.1.7:1234@192.168.1.4 1 1070
[Unit]Затем активировать и запустить каждый сервис:
Description=Dvblast Multicast Service
After=network-online.target
[Service]
Type=simple
User=nobody
TimeoutStartSec=0
TimeoutStopSec=30
Restart=always
RestartSec=10
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
ExecStart=/usr/bin/dvblast -5 DVBT2 -f 754000000 -m qam_256 -b 8 -c /etc/dvblast/adapter0.conf -a 0 -C -e -r /run/dvblast0.sock
[Install]
WantedBy=multi-user.target
sudo systemctl enable dvblast@adapter0Для смены PLP нужен ещё флаг -9 <PLP_ID>, например -9 1.
sudo systemctl start dvblast@adapter0
Для вещания на сайте ещё нужно udpxy или ffmpeg использовать. Так как MPEG-DASH проще скалировать, лучше использовать связку Nginx и ffmpeg.
Создадим tmpfs:
echo "tmpfs /mnt/tmp tmpfs defaults,noatime,nosuid 0 0" | sudo tee -a /etc/fstabТеперь можно вещать в MPEG-DASH через ffmpeg:
sudo mkdir -p /mnt/tmp
sudo mount -a
/usr/bin/ffmpeg -i rtp://@239.2.1.1:1234 -c:v copy -c:a copy -f dash -window_size 4 -extra_window_size 0 -min_seg_duration 2000000 -remove_at_exit 1 /mnt/tmp/channel_01/manifest.mpdТолько в MPEG-DASH не поддерживается MPEG Layer 2 codec. Будем думать дальше. Был бы мощный процессор я мог бы себе позволить транскодировать звук. Но в таком случае рассинхронизации возможны.
Комментариев нет:
Отправить комментарий