Тема: Просмотр потока со спутникового ресивера через HMS
Озаботился недавно просмотром через HMS спутникового телевидения.
В домашней сети имеется спутниковый ресивер DreamBox DM800HD Pvr под ос Enigma. Просмотр стрима через vlc.
Для инициализации просмотра сервиса нужно зайти на url вида хттп://dreambox/web/stream.m3u?ref={servicereference}, где {servicereference} вида 1:0:16:841:15:70:1680000:0:0:0:
результатом будет адрес потока, у меня это хттп://dm800:8001/1:0:16:841:15:70:1680000:0:0:0:
Создал в разделе "Интернет телевидение" каналы:
Настроил профиль транскодирования. Теоретически поток берётся, транскодируется, на всех моих устройствах показывает.
Но есть проблемы, которые не знаю как решать, помогите, кто может. FAQ и другие ресурсы по настройке читал в режиме листания, если недосмотрел - просьба не пинать, просто поделиться ссылкой на инфу. http везде заменил на хттп, иначе форум не даёт отправить сообщение, слишком много ссылок.
1. Перед получением стрима необходимо переключить тюнер на нужный канал. При запросе стрима это автоматически не происходит. Команда переключения выглядит как url вида хттп://dm800/web/zap?sRef={servicereference}
или через telnet wget -q -O - хттп://dm800/web/zap?sRef={servicereference}
Как мне при запуске канала перед получением потока выполнить скрипт - дать команду переключения на канал?
2. При запуске стрима HD каналов периодически происходит обрыв в начале передачи (на 3-4 секунде), при просмотре через vlc просто перезапускаю и всё показывает. На HMS получается, что после повторного выбора опять крутит эти 3 секунды, сколько ни запускай, как можно заставить снова брать стрим, а не брать кэшированный фрагмент? Кстати такая проблема существует и с недокачанными торрентами, после докачки заново не транскодирует, продолжает брать ранее закэшированные данные, пересканирование каталогов и перезапуск сервера не помогает.
3. При прекращении просмотра транскодирование не прекращается, поток с устройства по прежнему берётся, транскодер работает. При попытке повторного просмотра прекращается предыдущее транскодирование.
В процессе решения проблемы были сформулированы следующие задачи:
1. Переключение тюнера на требуемый к просмотру канал перед запросом потока.
2. Автоматическое формирование списка просматриваемых каналов.
При решении первых двух задач выяснилось, что при запросе ресурса различными устройствами применяется один и тот же профиль транскодирования, установленный по умолчанию для транскодера.
Поэтому появилась 3-я задача:
3. Установить для всех каналов нужный устройствам профиль транскодирования.
Все эти задачи были успешно выполнены руками уважаемого WendyH при моём участии в качестве тестировщика.
Задачи выполнялись для конкретного случая (моя домашняя сеть, в которой, кроме спутникового ресивера имеется 2 DLNA телевизора - Sony, LG, сетевой проигрыватель WDTV Live и куча устройств на андроиде), но при решении задач скрипты делались так, что бы их мог использовать любой пользователь HMS, имеющий спутниковый ресивер под управлением Enigma 2.
Скрипты проверялись с версией HMS В. 2.33 от 12.09.2017.
Первая задача выполнена с помощью скрипта в обработке события по запуску воспроизведения ресурса. Если у Вас уже выполняется скрипт для этого события, то данный скрипт можно добавить в существующий.
Переключить тюнер на нужный канал.cfg
Вторая и третья задача выполнены путём импорта в раздел медиа-ресурсов HMS "Интернет телевидение" папки с коллекцией фильмов.
dm800 test.hdf
Коллекция создаётся из каналов пользовательских пакетов на ресивере при входе на устройстве в импортированную папку.
Особенность: в самом HMS Вы ничего не увидите, если нужно увидеть ресурсы на HMS, надо выполнить скрипт руками.
Для обработки переключения каналов, кроме добавления обработки к событию, больше нечего настраивать.
После импорта динамической папки, остаётся отредактировать комментарии в папке.
В импортируемом файле они:
--piconsPath="\Home Media Server\HMS\Thumbnails\" --deviceAddr="dm800" --tvFileExt="mpg",
--piconsPath - адрес локальной папки с картинками-пиктограмами каналовна компьютере, где установлен HMS в пользовательском каталоге с данными HMS, при формировании адреса в его начало добавляется переменная окружения %LOCALAPPDATA%.
Если кому то не понятно, то после формирования ресурсов можно будет открыть папку для изменения и посмотреть путь до картинок. Картинки можно скачать в интернете или прямо со спутникового ресивера (если они там есть). Картинки (пиконы) в формате .png, я проверял на пиконах с размером 220x132.
--deviceAddr - сетевое имя (или IP-адрес) устройства.
--tvFileExt="mpg" - этот параметр сделан для указания типа файла, которое использует устройство, которому требуется особый профиль транскодирования (у меня это телевизор Sony).
Если Вам это нужно, то тип файла можно установить в настройках устройства - транскодер - Интернет-ТВ.
Для телевизора Sony выбирается профиль транскодирования "Фильмы - VLC - FFMPEG" для остальных устройств выбирается профиль без перекодирования "Интернет телевидение (входной поток)".
Попутно выяснил, как работает dual pipe транскодирование с vlc - mpeg, после распаковки контейнера распакованный поток отправляется в транскодер ffmpeg с параметрами, взятыми из установок для устройства в разделе транскодер - фильм.
Как оказалось, мой телевизор не переваривает входной поток выше 8 мбит, пришлось ограничить в настройках раздела фильм.
Если кто то будет пользоваться и возникнут проблемы, вопросы, предложения, просьба отписаться.