Медиацентр с IPTV из ноутбука и монитора

в 8:34, , рубрики: diy или сделай сам, remote control, XBMC, Медиаплееры, медиацентр
Медиацентр с IPTV из ноутбука и монитора

Мысль сделать домашнюю мультимедиа систему посещала уже достаточно давно. Предпосылкой к созданию стало избавление от большого системного блока и установка на рабочее места ноутбука с подключенным монитором. Первый вариант реализации, который не завелся, это медиасервер из неиспользуемого Android смартфона. Данная идея уткнулась в аппаратные ограничения (слабый Wi-Fi модуль, малый объём встроенной памяти, медленные чтение/запись файлов через OTG) и программные (отсутствие стабильно работающего «серверного» ПО под систему Android). После произошла реорганизация рабочего места и монитор стало некуда ставить. Дальше можно было и остановится, утилизироватьотвезти на дачу монитор, подключить висящий над компьютером телевизор к VGA порту, а окошко с фильмом, запущенным на компьютере, перемещать на всеобщее обозрение, но монитор 20", формата 16:9, с разрешением 1600x900 предпочтительнее, чем телевизор 15", формата 4:3, с разрешением 1024x768. Заменив телевизор на монитор, можно было бы и остановится, но ведь телевизор управлялся пультом и им пользовались домочадцы, которые с компьютером на «Ой, а что это запустилось?».

Если интересна задумка, добро пожаловать под кат.

Медиацентр с IPTV из ноутбука и монитора

Примечание:

Первоначально проект предполагал использование старого нетбука, с которого можно было бы снять дисплей. К счастью, в нём оказалось недостаточно памяти для мультимедиа устройства, всего 160 Гб, а в ноутбуке стоит жёсткий диск на 500 Гб. Можно было и поменять жёсткие диски местами, но это показалось не лучшей идеей.

Для удобства, дополнительно, надо было приобрести ИК-приёмник с пультом для ПК. По многочисленным обзорам и отзывам остановил свой взгляд на Microsoft MCE Remote. Купить такой в России оказалось не такой простой задачей. В продаже их нигде не осталось, а там, где они когда-то были, был ценник, близкий к 3000 рублям. На eBay нашлись необходимые модели, от 700 рублей за ИК-приёмник и пульт, но ждать пришлось бы примерно месяц. Изучив первую же интернет барахолку из ТВ рекламы (Avito) в Москве был найден единственный вариант, от фирмы Lenovo, подозрительно напоминающий модель Philips SRM5100/10, за отсутствием выбора режимов работы. Что интересно, таким же пультом (без выбора режимов работы) комплектуются ASUS EeeBox PC, но у ASUS в нём используется три AAA-батарейки, вместо двух. Цена оказалась вполне демократичной, 300 рублей. Забрать успел вовремя, выхватив перед носом у человека, который просил отправить из Москвы в Санкт-Петербург, по почте (если вы это читаете, человек из Санкт-Петербурга, то прошу меня извинить). Моё местоположение оказалось выгоднее, путь от дома до продавца занял 20 минут. В качестве сюрприза я увидел два пульта, один из которых оказался непользованным.

Медиацентр с IPTV из ноутбука и монитора

Заканчивая аппаратное оснащение, можно добавить прикольный USB-хаб, ведь в ноутбуке всего 3 USB-порта, один из которых USB 3.0, который используется для подключения флешек, а подключать нужно принтер, сканер, ик-приёмник и мышь.

Медиацентр с IPTV из ноутбука и монитора

Полный список используемого «железа»:

  • Ноутбук ASUS K46CM;
  • Монитор ASUS VE208N;
  • ИК-приёмник Lenovo eHome OVU430006/01;
  • Пульт ДУ Lenovo MCE Remote RC1974511/00;
  • USB-хаб CBR CH 165;
  • Мышь Logitech M185;
  • Маршрутизатор D-Link DIR-615.

Программная реализация

Установленная на ноутбуке операционная система — Windows 8.1 with WMC, что наводит на мысли использовать в качестве оболочки — Windows Media Center, но WMC не всеяден; также показался перегруженным интерфейс. Долго не думая, выбрал XBMC, поскольку название на слуху и до этого пробовал его устанавливать, но тогда не придумал, как можно задействовать медиацентр.
XBMC распространятся бесплатно, имеет открытый исходный код, кроссплатформенный.

Производим установку XBMC. После установки сразу поддерживается пульт ДУ, но запуск производится на основном экране ноутбука. Стандартный язык интерфейса — английский. Делаем первичную настройку.

Для смены языка переходим:

System > Appearance > International > Language

Для вывода на второй монитор:

Система > Система > Вывод видео > Режим дисплея > выбрать Полный экран #2

Сразу становятся видны недостатки стандартного управления пультом ДУ.

  1. Если окно XBMC не в фокусе, то управление XBMC невозможно
  2. Если окно XBMC не в фокусе, управление передается в Windows
  3. Нельзя запустить XBMC с пульта
  4. Недостаточная настройка управления, например, нельзя вызвать контекстное меню
  5. Невозможна самостоятельная настройка кнопок пульта для вызова события в плеере

Также, необходимо решение, как можно управлять включением/выключением монитора с пульта ДУ, с одновременным включением XBMC.

Точкой отправки на поиски послужила статья «Как из домашнего компьютера сделать «два в одном» – домашний кинотеатр + персональный компьютер», в которой используется MediaPortal, который содержит стандартную настройку Require focus. Для решения проблемы переноса управления на Windows автор вручную правил реестр.

В процессе было найдено, как можно без сторонних программ назначить запуск приложения на зелёную кнопку пульта со значком Windows. Суть заключается в том, что мы настраиваем быстрый запуск программы на какое-либо сочетание клавиш, а на зеленую кнопку добавляем код данного сочетания клавиш. Подробнее можно прочитать в теме «Переназначение кнопок MSRemote и старт XBMC с „ЗЕЛЁНОЙ“ кнопки» на XBMC Russia.

Ещё поиски привели на две статьи, как можно полностью отключать монитор программными методами Windows. Нашлось две статьи на Хабре, для разных ОС:

  1. Для Linux;
  2. Для Windows;

Но данный метод совместим не со всеми мониторами. В моём случае он тоже не сработал.

В результате, включение/выключение монитора удалось организовать стандартными средствами Windows. Достаточно переключать режимы работы двух дисплеев «Расширенный» и «Только экран компьютера». Для переключения через командную строку используется утилита DisplaySwitch.exe, с ключами запуска /extend или /internal, для режимов «Расширенный» и «Только экран компьютера», соответственно.

%windir%System32DisplaySwitch.exe /extend
%windir%System32DisplaySwitch.exe /internal

На данном этапе до сих пор непонятно, как можно:

  • Управлять XBMC, когда окно не в фокусе;
  • Самостоятельно настроить кнопки пульта;
  • Как переключать режимы дисплеев с пульта.

В интернете для настройки управления компьютера с пульта ДУ наиболее часто предлагались программы IR Server Suite и EventGhost. После установки IRSS, оказалось, что он слишком перегружен, поэтому я выбрал EventGhost, из-за его простоты. У EventGhost закончилась поддержка ещё на Windows Vista, но он прекрасно заработал и на Windows 8.1. Главное, запускать эту программу только от имени администратора, поскольку приложение обновлялось последний раз ещё в 2009 году, то автоматический запуск от имени администратора в ней не предусмотрен. Пройдёмся по настройке для управления XBMC.

Главное окно EG:

Медиацентр с IPTV из ноутбука и монитора

Для создание нового метода работы необходимо создать новую конфигурацию:

File > New

Добавим плагин для поддержки MCE Remote:

Configuration > Add Plugin… > из папки Remote Receiver выберем Microsoft MCE Remote

Ещё там есть версия Vista/Win7, которая запускает данный плагин в виде службы Windows, но с ней у меня не заладилось.
В настройках плагина отмечаем галочку Disable HID service for this remote (recommended), которая из HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHidIrRemotes745a17a0-74d3-11d0-b6fe-00a0c90f57da удаляет ключи CodeSetNumX, где X — целое число.
Медиацентр с IPTV из ноутбука и монитора

Конфигурацию необходимо сохранить:

File -> Save

Созданная конфигурация будет использоваться, пока не указать другую.
Для применения изменений в реестре перезагружаем компьютер. Пульт для управления Windows теперь не работает.

Запускаем EventGhost от имени администратора. Добавим плагин для управления XBMC.

Configuration > Add Plugin… > из папки Program Control выберем XBMC2

Медиацентр с IPTV из ноутбука и монитора

Из настроек плагина, видно, что, перехватывая сигнал с кнопок пульта, EG отправляет команду в XBMC. Поэтому, зайдём в настройки XBMC.

Система > Настройки > Службы > Удаленное управление > ставим точку на пункте Разрешить программам на этой системе управлять XBMC

Далее, заканчиваем настройку плагина XBCM2 и у нас в окне EG создается папка с одноименным названием. В папке и подпапках перечислены команды управления, которые могут передаваться в XBMC. Я настраивал папку /XBMC2/Buttons/Remote/. В ней содержатся макросы, которые, как посчитал разработчик плагина, могут быть на пульте. Для назначения кнопки пульта ДУ на выполнение макроса нужно событие Медиацентр с IPTV из ноутбука и монитора перетащить на макрос Медиацентр с IPTV из ноутбука и монитора. Событие Медиацентр с IPTV из ноутбука и монитора перетаскивается из лога программы, а появляется оно в логе после нажатия на кнопку пульта ДУ, или, даже, когда что-то происходит в системе. Таким образом, щёлкаем кнопки и назначаем их на нужное событие.

Осталось найти следующее:

  • Реализовать запуск XBMC с кнопки, средствами EventGhost;
  • Как переключать режимы дисплеев с пульта.

Переключение режимов дисплеев, которое в итоге будет выглядеть, как включение/выключением монитора логичнее всего настройку на кнопку Вкл/Выкл на пульте. Также это можно связать с запуском/закрытием XBMC, поскольку XBMC не нужно будет выводить на основной дисплей ноутбука.

Для автоматизации переключения режимов экранов, заранее создадим два *.bat файла:

Computer.bat:

taskkill /im XBMC.exe
%windir%System32DisplaySwitch.exe /internal

Для переключения на компьютер, где мы сначала завершаем процесс XBMC.exe, чтобы XBMC не перескакивал на встроенный дисплей

Media.bat:

%windir%System32DisplaySwitch.exe /extend

Для переключение на расширенный режим

Создадим свой макрос.

Configuration > Add Macro… > Window > Find a window > выберем XBMC

Медиацентр с IPTV из ноутбука и монитора
Данное событие будет проверкой, открыт ли у нас в системе XBMC. Для макроса на включение в настройке Find a windows вверху должна стоять галочка Stop macro if target is found (если у нас запущено окно XBMC, его же не нужно включать заново).

Медиацентр с IPTV из ноутбука и монитора

Штатным средством из EG, под названием Start Application нет возможности запускать *.bat файлы, поэтому в созданный макрос необходимо добавить выполнение Python скрипта. Выберем созданный нами макрос и проследуем дальше:

Configuration > Add Action… > EventGhost > Python Script

Содержание скрипта для включения монитора и запуска XBMC следующее:

import os
import time
os.system('C:Media.bat')
time.sleep(2)
os.startfile(r'C:Program Files (x86)XBMCXBMC.exe')

Т.е. мы запускаем *.bat файл, ждём 2 секунды, пока режим дисплеев переключится, чтобы XBMC запустился именно на втором экране и запускаем XBMC.exe

По образу и подобию прошлого макроса, создаём новый, на выключение внешнего монитора и XBMC
В Find a window нужно поставить галочку Stop macro if target is not found, а Python Script для выключения:

import os
os.system("C:Computer.bat")

В оба созданных макроса нужно переместить событие Медиацентр с IPTV из ноутбука и монитора возникающее при нажатии на кнопку Вкл/Выкл пульта. Небольшой недостаток, то, что при нажатии на кнопку мелькает окно командной строки.

В результате всего мы должны получить примерно такой вид окна EG:

Медиацентр с IPTV из ноутбука и монитора

При использовании созданного EventGhost функционала возникла проблема, которая заключается в том, что XBMC запускается не в фокусе и панель задач всегда горит сверху медиацентра.

Медиацентр с IPTV из ноутбука и монитора

В связи с этим я сделал так, чтобы окно перемещалось вперёд всех других, используя знакомую функцию Find a window, с галочкой Stop macro if target is not found. Повесил на это зелёную кнопку «Пуск», на пульте ДУ, совместно с переходом в главное меню, при управлении XBMC. Подробно приводить создание макроса не буду, прикладываю скриншот:

Медиацентр с IPTV из ноутбука и монитора

На цветные кнопки пульта, в нижнем ряду я повесил следующие события:

Медиацентр с IPTV из ноутбука и монитора

В результате получилась окончательная конфигурация EventGhost:

Медиацентр с IPTV из ноутбука и монитора

Сохранимся:

File -> Save

Для настройки системы осталось лишь автоматизировать запуск EventGhost при старте системы. Единственным заработавшим решением стало включение встроенной учётной записи Администратора и запуска cmd скрипта из автозагрузки.

Win+R:

lusrmgr.msc

Пользователи > правой кнопкой на Администратор > убрать галочку с пункта Отключить учетную запись

Медиацентр с IPTV из ноутбука и монитора

Заходим в учётную запись Администратор, задаём пароль. Выходим из учётной записи.

Любым текстовым редактором, который умеет сохранять в кодировке DOS-866 создаём *.bat файл со следующим содержанием:

runas /savecred /user:Администратор "C:Program Files (x86)EventGhostEventGhost.exe -h"

Т.е., запустить, с сохранением пароля, от имени администратора, программу EventGhost, с ключом -h (запуск в трей). Обязательно сохраняем в DOS-866, если вы не меняли кодировку в командной строке.

Выключаем EventGhost, запускаем полученный скрипт, вводим пароль.
Помещаем скрипт в автозагрузку:

Win+R:

shell:Startup

Откроется путь C:Users%user%AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup, в который и переместим полученный скрипт. Теперь, при входе в систему пользователем %user% автоматически запускается EventGhost, с полными правами. При использовании других методов автозагрузки, полный доступ не передавался, в том числе, через Планировщик задач.

Теперь включение компьютера нас будет приветствовать моргающим окном командной строки, которая будет уведомлять о запуске EventGhost.

В плане автозагрузки IRSS был бы лучше, поскольку запускается как служба Windows, но не очень хотелось разбираться с его настройками, когда у меня заработал EventGhost.

Перезагружаем компьютер (кнопкой с пульта, конечно же), проверяем работу всего, что настроили и настраиваем по своему вкусу XBMC. Я, например, включил полную поддержку UPnP, чтобы можно было получить доступ к домашней медиатеке со своего смартфона или, наоборот, запустить медиафайл со смартфона в XBMC.

Система > Службы > UPnP > поставить точки напротив каждого пункта меню

Медиацентр с IPTV из ноутбука и монитора

Добавим обещанный IPTV.
Для начала, скачаем плагин PVR IPTV Simple, для XBMC. Страничка на GitHub, скачать (документы Google).

Установим дополнение в XBMC

Система > Дополнения > Установить из файла ZIP > выбираем путь к скаченному файлу *.zip

Включим ТВ

Система > ТВ > Общие > ставим точку на Вкл.

Последуем инструкции по установке

Система > ТВ > Общие > Очистить базу данных PVR

Настроим каналы IPTV

Система > Дополнения > Включенные дополнения > PVR IPTV Simple Client > Настроить

Указываем путь до *.m3u файла. Если у вас надёжный поставщик онлайн ТВ, тогда можно указать и путь до *.epg, который является телепрограммой, тогда вы добавите дополнительный удобный функционал.
Формат требуемого *.m3u следующий:

#EXTM3U tvg-shift=3
#EXTINF:-1 tvg-id="id1" tvg-name="Channel_1" tvg-logo="logo1" group-title="Group 1",Channel 1
http://STREAMURL
#EXTINF:-1 tvg-id="id2" tvg-name="Channel_2" tvg-logo="logo2" group-title="Group 2",Channel 2
udp://STREAMURL
...

Хотя у меня плагин съел и такой:

#EXTM3U
#EXTINF:0,Europa Plus TV
rtmp://europaplus.cdnvideo.ru/europaplus-live/mp4:eptv_main.sdp
...

Главное сохранить *.m3u файл в кодировке UTF-8, чтобы корректно отобразить русские названия телеканалов.

Назначаем любую удобную кнопку пульта на открытие телеканалов, в EventGhost (XBMC2 > Buttons > Remote > Live TV) и по нажатию на неё будет открываться список доступных телеканалов.

Медиацентр с IPTV из ноутбука и монитора

К сожалению, не получилось настроить запись потока, которая, видимо, не поддерживается плагином, поскольку кнопка записи не активна, в отличие от остальных.

Медиацентр с IPTV из ноутбука и монитора

Полный список используемого ПО:

  • Операционная систмаWindows 8.1;
  • Обработчик событий EventGhost;
  • Медиацентр XBMC;
  • Плагин для XBMC IPTV Simple;
  • Текстовый редактор для изменения *.m3u файлов.

В данной статье я постарался подробно описать, как без специальных знаний, методом эникея можно сделать удобные вещи из своего компьютера.

Автор: h8d

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js