понедельник, 27 октября 2014 г.

Apple tv + plex media server / построение медиа/файл сервера на базе linux / умный дом своими руками / ab-log.ru


01/05/2014 16:59:48


Умный Дом часто совершенно справедливо ассоциируют не только с умным освещением или с умным отоплением, но и с такими вещами, как мультирум и распределением медиаконтента. Однако современные технологии шагнули значительно дальше простого проигрывания музыки в разных частях дома. Активное внедрение в нашу жизнь мобильных компьютеров, смартфонов, беспроводных сетей и Интернет-сервисов позволили реализовать по-настоящему революционные идеи. Постепенно информация и медиа-контент (музыка, видео, фотографии) перестают принадлежать какому-то конкретному устройству или носителю, перебираясь в облачные хранилища или сетевые накопители. А устройства воспроизведения теряют свою узкую монополию, так как любое современное устройство может воспроизводить контент, обрабатывать его, делиться им с другими не менее умными устройствами. Но все это в теории, а что мы можем иметь на практике?



Компания Apple предложила очень интересную технологию, которая потенциально неплохо вписывается в идеологию Умного Дома. Эта технология AirPlay. Суть ее заключается в том, что пользователи с помощью iPad/iPhone могут отправлять по Wi-Fiразличный контент на телевизор или в аудио-систему. Легким движением руки можно запустить проигрывание через AirPlay не только той музыки, которая записана в мобильное устройство, но и которая доступна через Интернет-сервисы и сайты. Точно также с фотографиями и видео. Все то, что может воспроизвести устройство через свои динамики и через свой экран, оно может отправить посредством AirPlay на большой плазменный телевизор и на качественную акустику с Hi-Fi усилителем. Но и это еще не все. Посредством этой технологии можно целиком дублировать экран мобильного устройства на экране HD-телевизора или использовать экран ТВ как второй (что поддерживается в некоторых играх). Разумеется, с помощью AirPlay можно легко реализовать и мультирум.



Распаковываем Apple TV



В красочных деталях вы можете прочитать обо всех прелестях Airplay на сайте компании из Купертино. Мне же было интересно самостоятельно протестировать эту технологию и попытаться интегрировать ее в общую систему моего Умного Дома. Что для этого нужно? Не очень много. Для передачи контента на телевизор нужна приставка Apple TV (стоимость в текущий момент в районе 4500 руб), а для построения мультирума Airport Express (стоимость около 4000 руб). Я решил приобрести Apple TV последнего на момент написания статьи, 3-го поколения.



Приставка Apple TV



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

Настройка Apple TV не представляет какой-либо сложности. Справится любой, поэтому не стану подробно останавливаться на этом моменте.



Все заявленные возможности Airplay работают из коробки. Теперь жена может с планшета запускать музыку из своей подборки в Одноклассниках через Apple TV на больших колонках (приставка подключена не только к телевизору через HDMI, но и к аудио-ресиверу через оптический аудиопорт - таким образом, не требуется включать телевизор для прослушивания музыки). Я также могу показавать друзьям фото и видео с планшета на большом экране, а дети играть в игры (хотя изображение на телевизоре чуточку, но запаздывает). Кроме всего прочего, Apple TV может проигрывать видео с YouTube, Vimeo, фотографии c Flicker. Естественно, приставка может показывать контент из iCloud. Приятно порадовало, что в отличие от аналогичной функциональности в моем смарт-телевизоре от Panasonic, Apple TV при навигации и управлении не тормозит. Все работает плавно и быстро. Понравилось приложение Radio и раздел Ambient, где собрана подборка Интернет-радиостанций для отдыха и релаксации. Ну, знаете, звуки морского прибоя, пение птиц и так далее. Кстати, при прослушивании радио приставка может переключаться в режим слайд-шоу, показывая заранее выбранные фотографии (природа, животные) или из того же iCloud.





Важной особенностью Apple TV является наличие специального приложения для устройств Apple - "Пульт ДУ". То есть планшет или телефон могут не просто дублировать функции родного пульта, но и обеспечить полную интерактивность. Не обязательно в этом смысле, например, включать телевизор, чтобы послушать радио. Включить приставку, выбрать радиостанцию можно и из приложения. ОЧЕНЬ удобно.



Ложка дегтя



Все бы ничего, но есть у продуктов Apple и свои фишки. В свое время Стив Джобс говорил - это будет так и никак иначе. Не будет в мобильных продуктах от Apple поддержки Adobe Flash и точка. И ее в официальных приложениях не было и нет. Не будет в планшетах iPad USB порта. И его не было и нет. Не будет Apple TV проигрывать контент с NAS, DLNA, файловых серверов (SMB, FTP). И не проигрывал и не проигрывает. Постойте, как не проигрывает? А вот так! Apple TV не умеет (отнюдь не по техническим причинам) напрямую обращаться к сервисам, размещенным в локальной сети дома. Apple остается верен себе, развиваясь в своей эко-системе. Источником контента может выступать либо устройство от Apple, либо компьютер, с запущенным iTunes (не дай бог ночью приснится...). Более того, родным форматом видео для Apple TV является MP4. MKV, например, он играть не будет. Конечно, можно проигрывать "нестандартные" форматы с локального файлового сервера через какое-нибудь платное приложение, установленное на iPad, которое налету будет конвертировать видео, но это, согласитесь, совершенно не соответствует нашему православному духу, воспитанному на операционной системе Linux, и абсолютно не гуманно по отношению к моему iPad 2, который с трудом играет 720p, не говоря уже о Full HD...



Манна небесная



Да, такая замечательная и удобная технология AirPlay, такая красивая реализация и такой обидный во всех смыслах слова недостаток. И если для Apple TV второй версии есть хак, позволяющий загрузить в приставку альтернативное ПО, то для третьей генерации таковой отсутствует. Конечно же я знал об этом. Но знал также и о другом... Apple TV можно подружить с домашней медиа-системой без использования iTunes (не дай бог, не дай бог ночью приснится...), но с помощью такой замечательной штуковины как Plex Media Server!





Мульфильмы на моем сервере



Plex Media Server - это мощный медиа-сервер, который с помощью Интернет-технологий позволяет обеспечить удобный доступ к контенту с любого устройство в локальной или глобальной сети. Мобильный телефон, телевизор, планшет, компьютер, ТВ-приставки - любое устройство будет иметь доступ к фотографиям, музыке, фильмам, размещенным на сервере. Поддерживается широкий спектр операционных систем. Контент доступен не только через специальные приложения, но и через любой Web-браузер. Эта возможность чрезвычайно интересная и важная, так как позволяет интегрировать Plex Media Server в структуру домашнего Web-сайта. Серверное ПО доступно как для NAS (Synology, Netgear, unRAID и т.д.), так и для компьютера (Linux, Windows, Mac, FreeBSD). Принципиальной особенностью медиа-серверов такого типа заключается в том, что вся индексация контента и хранение кешей происходит на сервере, что значительно ускоряет доступ к файлам. То есть, к примеру, размещенные на Samba-сервере фотографии можно посмотреть на iPad'е и без Plex - с помощью приложения типа File Explorer. Но желание это делать резко пропадает, когда программа начинает отображать превьюшки и сами фотографии, сделанные 12-15 мегапиксельными аппаратами. На отображение одной фотографии уходит 10-15 секунд, а вся скромная память устройства начинает забиваться кешами превьюшек. В случае с Plex Media Server всеми этими сервисными штуками занимается серверное программное обеспечение, отдавая контент, так сказать, в облегченном виде, при необходимости делая ресайз или перекодировку на лету. В этом смысле имеет значение мощность компьютера, на котором установлен Media Server. И мой 4-х ядерный Core 2 Quad (Q6600), установленный на сервере и скучавший до сего момента 99,9% времени наконец-то нашел чем заняться. Все, что необходимо пользователю - добавить в библиотеку Plex Media Server'а папки, где хранится медиа-контент. Сервер сам просканирует файлы и автоматически отобразит постеры и сопутствующую информацию. Правда, иногда с постерами выходят промашки, но это вопрос для другой статьи.



Но есть небольшая сложность. Дело в том, что я для домашних серверов использую Debian Linux. А Plex Media Server официально доступен только для таких дистрибутивов Linux как: Ubuntu, Fedora, CentOS. К счастью есть решение от шведского парня Christian Svedin

https://forums.plex.tv/index.php/topic/51427-plex-media-server-for-debian/


sudo apt-get install curl echo "deb http://shell.ninthgate.se/packages/debian squeeze main" | sudo tee -a /etc/apt/sources.list.d/plexmediaserver.list sudo curl http://shell.ninthgate.se/packages/shell-ninthgate-se-keyring.key | sudo apt-key add - sudo apt-get update sudo apt-get install plexmediaserver


Все. Plex Media Server установлен. Запускаем сервер


/etc/init.d/plexmediaserver start


По умолчанию Plex Media Server настроен на порт 32400 и обратиться к нему из браузера можно по URL


http://media:32400/web/index.html


Где "media" - имя или IP-адрес компьютера, на котором установлен Plex.



Ключи от ларчика



Но одной только установки Plex Media Server'а недостаточно, чтобы Apple TV получил доступ к нашему медиа-контенту, хранящемуся на Linux-сервере. Нужна маленькая хитрость. И эта хитрость называется PlexConnect. Вкратце, работает это так. На Apple TV в качестве DNS-сервера мы настраиваем адрес компьютера, на котором запущен PlexConnect. Скрипт перехватывает обращения приставки Apple TV к DNS в приложении "Трейлеры", а вместо них подсовывает контент с Plex Media Server'а. Гениально и просто. В 2013 году Apple попыталась помешать реализации такого фокуса, направив трейлеры через защищенное соединение, но довольно быстро и эту проблему удалось решить. Настройка PlexConnect предельно проста.



https://github.com/iBaa/PlexConnect



Установка и настройка по шагам

1. Скачиваем PlexConnect посредством утилиты git

git clone https://github.com/iBaa/PlexConnect.git



2. Переносим папку в какое-нибудь удобное место

Например, /usr/local/lib



3. Генерируем сертификаты

cd /usr/local/lib/PlexConnect/assets/certificates

openssl req -new -nodes -newkey rsa:2048 -out trailers.pem -keyout trailers.key -x509 -days 7300 -subj "/C=US/CN=trailers.apple.com"

openssl x509 -in trailers.pem -outform der -out trailers.cer && cat trailers.key >> trailers.pem



4. Настраиваем PlexConnect

Открываем файл Settings.cfg

прописываем IP-адрес нашего PlexMediaServer'а

ip_pms = 192.168.0.251

Если это необходимо, то правим и другие параметры



5. Запускаем PlexConnect

sudo ./PlexConnect.py





Теперь осталось только настроить Apple TV



1. Прописываем в качестве DNS-сервера IP-адрес компьютера, на котором установлен PlexConnect



Настройки->Сеть->Ethernet (если Apple TV работает через Ethernet)->DNS (вручную)





2. Устанавливаем сертификат.



Для этого не нужно ни программы Apple Configurator, ни iPhone Configuration Utility. Все делается чисто с помощью пульта.



Настройки->Основные->Отсылать данные в Apple

Здесь должно стоять "НЕТ"

Далее, выделив эту опцию с помощью пульта, нажимаем кнопку Play (не выбор, а именно Play).

Apple TV предложить создать новый профиль. Создаем и указываем следующий URL

http://trailers.apple.com/trailers.cer



ВСЕ! Теперь выходим в главное меню, выбираем приложение Трейлеры и видим там наши фильмы, фотографии, музыку и все остальное без необходимости каждый раз использовать iPhone/iPad или программу iTunes (не дай бог ночью приснится!)



Автоматический поворот фотографий при просмотре через Apple TV



При использовании PlexConnect и медиа-сервера Plex, программное обеспечение приставки Apple TV в режиме просмотра фотографий по какой-то причине не учитывает информацию в EXIF и автоматически не переворачивает изображения. Видимо, такой необходимости просто нет при отображении оригинальных трейлеров. Эта особенность меня несколько раздражала, а переворачивать оригиналы изображений, размещенных на сервере не хотелось, и я попытался найти решение проблемы на форумах, посвященных Plex. И нашел. Причем решение убивает сразу двух зайцев. Почему двух? Потмоу что еще одной проблемой Apple TV является отображение объемных фотографий с высоким разрешением. В режиме слайд-шоу такие фотографии не успевают обрабатываться процессором приставки, в результате чего некоторые снимки выпадают, а Apple TV даже иногда перезагружается. Решение простое - неоходимо, чтобы Plex Media Server уменьшал фотографии до разрешения телевизора (для Full HD это всего-лишь 1920х1080). В процессе транскодирования Plex автоматически поворачивает фотографии. А настройка очень простая.



Открываем файл /usr/local/lib/PlexConnect/assets/templates/Photo_Browser.xml



И на 33 строке вместо



{{IMAGEURL(Media/Part/key)}}



пишем



 {{IMAGEURL(Media/Part/key::1920:1080)}}



После перезагрузки скрипта PlexConnect все заработало просто отлично. Фотографии переворачиваются, слайд-шоу не заедает. Все довольны.



Вывод



Таким образом приставка Apple TV и технология AirPlay очень органично вписываются в концепцию Умного Дома, позволяя отображать на телевизоре абсолютно всю информацию, которая доступна в домашней медиа-среде и открывая для пользователей новые возможности. А решая проблему с воспроизведением контента через Apple TV с домашнего Linux-сервера, я открыл для себя программу Plex Media Server, которая делает доступ к медиа-данным еще более удобным и функциональным, дополняя и расширяя возможности информационной системы Умного Дома.


Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Ответ в фото с сети

Apple tv + plex media server / построение медиа/файл сервера на базе linux / умный дом своими руками / ab-log.ru
Apple tv + plex media server / построение медиа/файл сервера на базе linux / умный дом своими руками / ab-log.ru
Apple tv + plex media server / построение медиа/файл сервера на базе linux / умный дом своими руками / ab-log.ru
Apple tv + plex media server / построение медиа/файл сервера на базе linux / умный дом своими руками / ab-log.ru
Apple tv + plex media server / построение медиа/файл сервера на базе linux / умный дом своими руками / ab-log.ru