

Вход
Регистрация | Забыли пароль?
Поиск
Рубрики
Рейтинг
Облако тэгов
windows, raspberry pi 3, raspbian, умный дом, gpio, ubuntu, osmc, windows 10, linux, игры, python, установка ос, raspberry pi 2, raspberry pi zero, raspberry pi zero w, слежение, самолёт, http, diy, 1c-битрикс, нейросеть, сеть, кластер, бесперебойник, акустикаБоковое меню
Настройка приёма цифрового телевещания dvb-t2 на компьютере Raspberry PI
Чтобы смотреть цифровое телевидение на компьютере Raspberry PI надо приобрести работающий согласно стандарту dvb-t2 тюнер, и выполнить следующие три шага:
• Удостовериться, что между тюнером и Raspberry есть связь
• Удостовериться, что вышка в пределах видимости тюнера.
• Правильно настроить все программы, обеспечивающие приём, показ и запись телевизионных передач.
Операционная система Raspbian Stretch (Version:November 2018, Release date:2018-11-13, Kernel version:4.14), установленная на компьютер Raspberry PI 3 обеспечивает реализацию всех этих шагов. Вот подробная инструкция для выполнения каждого из них.
Шаг 1: удостоверяемся, в том, что компьютер видит тюнер
Чтобы принимать телепередачи, можно использовать тюнер AstroMeta Digital TV Dongle. Обычно его покупают на площадке aliexpress. Для этого достаточно ввести в строку поисковика название «DVB-T2 DVB-C FM DAB USB tv stick». С техническими характеристиками этого приспособления можно ознакомиться, перейдя по ссылке https://www.ixbt.com/monitor/astrometa-digital-tv-dongle.shtml

Перед тем, как начать настройку, нужно подключить тюнер к компьютеру через USB, зайти в терминал, ввести команду
$ lsusb | grep HanfTek
и подтвердить ввод. На экране отобразится строка вроде Bus 001 Device 007: ID 15f4:0131 HanfTek. Это значит, что Raspberry нашёл тюнер. Если ничего не вывелось на экран, то нужно проверить контакты, работоспособность портов или устранить проблемы с электропитанием. Если компьютер определил тюнер на аппаратном уровне, надо ввести следующую команду —
$ sudo dmesg -t | grep dvb
По умолчанию в программе может отсутствовать файл dvb-demod-mn88473-01.fw. Если это так, то на дисплей выведется сообщение
[ 31.201602] mn88473 4-0018: Direct firmware load for dvb-demod-mn88473-01.fw failed with error -2
[ 31.201653] mn88473 4-0018: firmare file 'dvb-demod-mn88473-01.fw' not found
[ 31.201653] mn88473 4-0018: firmare file 'dvb-demod-mn88473-01.fw' not found
Требуемый файл есть в интернете. Его нужно скачать и поместить в каталог /lib/firmware/. Эта задача решается путём выполнения следующей команды:
$ cd /lib/firmware/
$ sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88473/01/latest/dvb-demod-mn88473-01.fw
$ sudo wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88473/01/latest/dvb-demod-mn88473-01.fw
или
$ cd /lib/firmware/
$ sudo wget https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-demod-mn88473-01.fw
$ sudo wget https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-demod-mn88473-01.fw
После успешного скачивания и установки файла тюнер нужно перезагрузить и снова проверить на правильность работы. Для этого вводятся команды:
$ sudo reboot
$ sudo dmesg -t | grep dvb
$ sudo dmesg -t | grep dvb
Если компьютер обнаружит тюнер, на дисплей выведется такая информация:
usb 1-1.3: Product: dvbt2usb 1-1.3: Manufacturer: astrometadvbt2usb 1-1.3: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm stateusb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxerusb 1-1.3: dvb_usb_v2: schedule remote query interval to 200 msecsinput: MCE IR Keyboard/Mouse (dvb_usb_rtl28xxu) as /devices/virtual/input/input1rc rc0: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 0usb 1-1.3: dvb_usb_v2: 'Astrometa DVB-T2' successfully initialized and connectedusbcore: registered new interface driver dvb_usb_rtl28xxu
Чтобы продолжить настройку, введите команду $ ls /dev/dvb/. Она выведет на монитор номер адаптера, отвечающего за подключенный тюнер. Следующая команда $ ls /dev/dvb/ adapter0 отобразит имена интерфейсов, поддерживаемых этим адаптером 0 demux0 dvr0 frontend0 frontend1 net0
Для последующих настроек потребуется установка ещё двух пакетов —
$ apt-get install dvb-tools dtv-scan-tables
после чего нужно определить назначение frontend0 и frontend1 адаптера с номером 0. После ввода $ dvb-fe-tool -a 0 -f 0 программа покажет, что frontend0 — интерфейс, обеспечивающий приём DVB-T сигнала. Следующая команда $ dvb-fe-tool -a 0 -f 1 должна определить frontend1 как интерфейс, принимающий сигналы DVB-T2. Его нужно использовать для всех последующих настроек.
Можно отметить появление инфракрасного датчика на Raspberry PI. Его работа хорошо подходит под lirc, но эта тема в данной статье не рассматривается.
Шаг 2: определение видимости телевышки тюнером
Для выполнения второго шага надо перейти по ссылке карта.ртрс.рф. На этом сайте найдите место расположения своего тюнера и компьютера. Чтобы посмотреть параметры ближайших ретрансляторов, нужно кликнуть мышей по найденному месту нахождения ваших устройств. В открывшемся окне будет примерно следующее:
Расстояние: xx* км
Направление: xx*
Телеканалы РТРС-1 — ТВК xx* (xx* МГц)
Телеканалы РТРС-2 — ТВК xx* (xx* МГц)
Направление: xx*
Телеканалы РТРС-1 — ТВК xx* (xx* МГц)
Телеканалы РТРС-2 — ТВК xx* (xx* МГц)
* — какие-то цифры
Эти данные необходимы для правильного подбора и ориентирования антенны, а также для правильной настройки тюнера. Моя антенна, бывшая в комплекте с тюнером, не смогла принимать сигналы на удалении 10 километров от ретранслятора. Пришлось рассчитать и сделать самостоятельно антенну по типу «Двойной квадрат Харченко».

В основу расчёта легла средняя величина длины волны первого и второго мультиплэксов. Было замечено, что благодаря широкополосной форме принимающего устройства прекрасно ловится третий мультиплэкс на ТВК 34 (578 МГц). Вот алгоритм расчёта принимающего сигнал устройства:
1. Среднее арифметическое частоты 1-го и 2-го мультиплэксов:
(546 + 498) / 2 = 522 М
2. Вычисление протяжённости контура антенны:
299.792458 / 522 = 57.43 см, где 299.792458 — скорость луча света
3. Длина ребра антенны соответствует 1/4 длины волны:
57.43 / 4 = 14.36 см
(546 + 498) / 2 = 522 М
2. Вычисление протяжённости контура антенны:
299.792458 / 522 = 57.43 см, где 299.792458 — скорость луча света
3. Длина ребра антенны соответствует 1/4 длины волны:
57.43 / 4 = 14.36 см
Антенну сделал из медной 2.5 миллиметровой жилы длиной в 115см. Жилу согнул двумя квадратами с длиной ребра 144 мм в виде восьмёрки. Расстояние в талии сделал 10 мм и к обоим краям припаял экран и центральную жилу кабеля соответственно. Чтобы предотвратить окисление, пайку залил пластиком. Расстояние от антенны до тюнера составило около 80 см, а устройство включил в соединитель USB2 длиной один метр. Антенну поставил вертикально, как восьмёрку, лежащую на боку.ориентировку выполнял по компасу, чтобы плоскость смотрела на телевышку.
После этого можно приступать к сканированию эфира. Таблицы с данными находятся в каталоге /usr/share/dvb/dvb-t/, но может случится, что нужного горда там нет. Для этого случая предусмотрена таблица ru-all — в ней есть параметры для сканирования всех частот. Есть режимы передачи — например Multiple PLP, которые эта таблица не учитывает. Вот трансляции, работающие в Москве:
1. Мультиплэкс 1 - 546 MHz (plp 0, 1, 2)
2. Мультиплэкс 2 - 498 MHz (plp 0)
3. Мультиплэкс 3 - 578 MHz (plp 0)
2. Мультиплэкс 2 - 498 MHz (plp 0)
3. Мультиплэкс 3 - 578 MHz (plp 0)
А здесь приводятся параметры сканирования:
[MULTIPLEX 1]
FREQUENCY = 546000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 0
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 1-1]
FREQUENCY = 546000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 1
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 1-2]
FREQUENCY = 546000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 2
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 2]
FREQUENCY = 498000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 0
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 3]
FREQUENCY = 578000000
MODULATION = QAM/AUTO
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 0
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 546000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 0
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 1-1]
FREQUENCY = 546000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 1
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 1-2]
FREQUENCY = 546000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 2
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 2]
FREQUENCY = 498000000
MODULATION = QAM/256
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 0
DELIVERY_SYSTEM = DVBT2
[MULTIPLEX 3]
FREQUENCY = 578000000
MODULATION = QAM/AUTO
BANDWIDTH_HZ = 8000000
INVERSION = AUTO
CODE_RATE_HP = AUTO
CODE_RATE_LP = AUTO
GUARD_INTERVAL = AUTO
TRANSMISSION_MODE = AUTO
HIERARCHY = NONE
STREAM_ID = 0
DELIVERY_SYSTEM = DVBT2
Вот как можно составить таблицу частот для вашего города:
1. Квадратными скобками обрамите произвольно выбранный транспортный поток.
2. Рабочую частоту потока в Гц — FREQUENCY.
3. Модуляцию — MODULATION (если определить невозможно, указывайте QAM/AUTO).
4. Номер, идентифицирующий канал физического уровня с заданной частотой внутри транспортного — STREAM_ID.
Заполненную таблицу надо вложить в папку /usr/share/dvb/dvb-t/, назвав её «ru-<наименование вашего города>». Для примера — /usr/share/dvb/dvb-t/ru-Moscow. Уже в главной папке выполните сканирование эфира с помощью программы dvbv5-scan. В характеристиках укажите идентификаторы адаптера, frontend, и таблицу заданных для сканирования частот. Для этого в команду
$ cd ~ $ dvbv5-scan -a 0 -f 1 /usr/share/dvb/dvb-t/ru-Moscow
вставьте свои данные.
В домашнем каталоге сгенерируется файл dvb_channel.conf. В него должны записаться имена каналов, частоты, модуляции. Если такие записи есть — тюнер увидел ретранслятор и можно продолжить настройки для просмотра телевещания. Уровень поступающего сигнала можно узнать через команду
$ dvbv5-zap -a 0 -f 1 -c dvb_channel.conf -r '10 десятый канал'
где '10 десятый канал' — имя тестируемого потока. Причиной отсутствия сигнала будет неправильно подобранная или настроенная антенна.
Шаг 3: правильная настройка программ
омфортный просмотр обеспечивает сервер и рекордер tvheadend, устанавливаемые командой
$ sudo apt-get install tvheadend
Во время установки система запросит пароли. Если пароль забыт, его можно найти в файле /var/lib/hts/.hts/tvheadend/superuse. Если нет желания копаться в записях, работу можно продолжить без указания пароля. Для этого нужно:
1. Остановить работу сервера (sudo service tvheadend stop)
2. Открыть файл и строчку /etc/init.d/tvheadend строку ARGS="-f" изменить на ARGS="-f --noacl"<br> Снова запустить работу сервера командой sudo service tvheadend start).<br>
Дальнейшие настройки подробно описаны в интернете и выполняются по адресу http://127.0.0.1:9981. Алгоритм tvheadend настроек следующий:
1. Создание сети внутреннего вещания по указанным в таблице сканирования частотам (/usr/share/dvb/dvb-t/ru-Moscow)
2. Привязка соответствующего интерфейса адаптера к сети (adapter0 frontend1 и <br>)
3. После завершения сканирования подтвердить разрешение вещания обнаруженных каналов (<br>).
Чтобы создать сеть, размещённую во вкладке «Configuration» -> «DVB Input» -> «Networks» щёлкните зелёный плюсик «Add», укажите тип сети «DVB-T» (не «DVB-T2»!). Внесите информацию в соответствующие места формы:
1. «Network:» — произвольное значение.
2. «Pre-defined muxes:» — указать составленную таблицу сканирования.
3. «Character set:» — указать Auto.
4. Щёлкнуть по кнопке «Create».
Связка адаптера с новой сетью, созданной во вкладке «Configuration» -> «DVB Input» -> «TV adapters» выполняется так:
1. Активируется «Panasonic MN88473 #0 : DVB-T #1».
2. Справа появится форма и в разделе «Basic Settings» указать созданную сеть в поле «Networks:», активировать чекбокс «Enabled» и кликнуть по кнопке «Save».
В завершение этих настроек нужно разрешить трансляцию обнаруженных каналов. Перейдя на Configuration» -«DVB Input» - «Muxes»дождитесь, когда в колонке «Scan result» появится уведомление «OK» (или «FAIL»). В табе «Configuration» -«DVB Input» - «Services» из выпавшего списка «Mux Services» активировать «Map all services» и подтвердить настройку нажатием «Save».
Теперь все три шага выполнены и можно смотреть или записать выбранные каналы
У вас есть возможность смотреть трансляцию не покидая tvheadend. Просто перейдите в первую слева вкладку на уровне «Electronic Progran Guide» и кликните по значку телевизора возле желаемого канала. Так же можно настроить вывод каналов с логотипами. На вкладке «Configuration» -> «General» -> «Base» внизу появившейся таблицы есть поле «Picon path:». В него надо вставить запись file:///var/lib/hts/picons., а в ячейку «Prefer picons over channel name:» вставьте галку. С имеющих значки каналов файлов, нужно сделать копии и вложить их в папку /var/lib/hts/picons. Имя владельца и каталог скопированных файлов поменяйте на hts:hts. Чтобы завершить настройку, найдите на вкладке «Configuration» - «ChannelEPG» - «Channels» поля «User Icon» и укажите, не используя кавычки, имена каналов в паре с именем логотипа — picon://01.png.
Если хотите задействовать разные vlc плееры, то перейдите по адресу http://127.0.0.1:9981/playlist и загрузите себе плей-лист. Имя скачанного файла channels лучше изменить на channels.m3u. После этого он будет использоваться при просмотре трансляций из всех устройств. Софт TvhClient разработан для iPad и iPhone с целью обеспечения просмотра телепередач сервера tvheadend на этих устройствах и позволяет запустить запись. Аналогичные программы для гаджетов с операционной системой Android вы найдёте в интернете. Я предпочитаю смотреть телевизионные передачи на Raspberry посредством kodi, дополненного пакетом kodi-pvr-hts. Установить и настроить его просто, но об этом речь пойдёт в другой раз.