Всем привет!
Продолжая цикл Apple-related статей, сегодня хочу поделиться удивительным способом, как можно заставить приставку Apple TV полюбить распространённую ныне матрёшку (MKV) и предоставить ей возможность комфортабельного воспроизведения на большом экране.
Не вдаваясь в историю создания приставки, в сокращённом режиме скажу, что в России первое и второе поколение приставки не прижилось, лишь после выхода третьего издания и открытия филиала онлайн-магазина iTunes приставка начала отвоёвывать своё место на телевизионных стойках пользователей.
Итак, что же из себя представляет Apple TV?
Apple TV — цифровой мультимедийный проигрыватель, разработанный компанией Apple, Inc. Современный Apple TV воспроизводит потоковое мультимедиа (фильмы, музыку, подкасты и фотографии) на широкоэкранные ЖК-телевизоры и плазменные панели из библиотеки iTunes, размещенной на компьютерах Mac или PC, интернет-планшетах iPad, плеерах iPod touch, смартфонах iPhone, или с интернет-сервисов: iTunes Store, iCloud, Netflix, YouTube, Vimeo, Flickr (честно взято с Википедии).
Третье поколение приставки, снабжённое фирменным процессором A5 (с заблокированным одним ядром), оказалось весьма мощным, способным без проблем переваривать видеофайлы с разрешением 1080p.
Также у Apple TV есть отличное качество — AirPlay, технология, позволяющая «по воздуху» отправлять аудио- и видео сигнал, например, с айфона и воспроизводить его на экране телевизора (это особенность, кстати, очень популярна у владельцев приставки).
Но несмотря на громкие слова, в понимании простого обывателя у Apple TV есть существенные недостатки, которых лишены классические медиаплееры:
- к ней нельзя подключить внешний жёсткий USB-диск с фильмами;
- привычный формат MKV она воспроизводить не умеет, предпочитает MP4 или M4V;
- для комфортного просмотра, освящённого Apple, фильмы необходимо покупать в онлайн-магазине. Этот пункт, разумеется, спорен
И если во первом и втором поколении приставки проблема воспроизведения сторонних форматов ещё более-менее решалась путём взлома (джейлбрейка) и установки альтернативного программного обеспечения aTV Flash, то 3-е поколение уже оснащено продвинутой защитой, и несмотря на многочисленные анонсы, её сломать ещё не удалось (забегая наперёд — оно и не требуется).
По большому счёту, при наличии учётной записи в iTunes и возможности покупать фильмы, жирного канала, медиасервера в локальной сети проблема совместимости отпадает сама собой… но ведь нам всегда хочется большего, не так ли?
В принципе, производительности ЦПУ приставки хватает, чтобы переваривать видеофайлы, кодированные в H.264 вплоть до 1080p, с профилем High или Main Profile уровня 4.0 или ниже.
Так как большинство BD-рипов в MKV содержат видеодорожки с подобными параметрами кодирования, то иногда хватает просто переупаковать Matroska в M4V, например, при помощи программ Subler или remux. В среде Windows готовить видеофайлы для iTunes-медиатеки лучше всего при помощи MkvToMp4.
А если же лень заниматься медиатекой?
Есть решение!
Как-то в один день в Твитере я заметил ссылку на инструкцию, согласно которой есть возможность подружить Apple TV с медиатекой Plex и воспроизводить видеофайлы (в т.ч. и искомые неконвертированные MKV) с неё. Проект называется PlexConnect.
Сразу предупреждаю, для Plex необходим компьютер для развёртывания хранилища и собственно хранения медиатеки.
Грубо говоря, смысл этого проекта в том, что компьютер выступает как DNS-сервер, — и когда мы открываем «Трейлеры» в экранном меню приставки, пакет PlexConnect перехватывает сетевые запросы по адресу trailers.apple.com и вместо данных с сайта хитрым образом подставляет данные из локальной медиатеки Plex.
Проект основан на Python, поэтому при необходимости его необходимо скачать с официального сайта, разработчик настаивает на версии 2.7.5, не выше!
Если у вас ещё не установлен Plex, скачиваем его с официального сайта и устанавливаем. Медиатеку настраиваем в стандартном режиме, например, по этой инструкции.
С сайта проекта скачиваем пакет PlexConnect и распаковываем его в папку PlexConnect:
У меня в папке — C:Program Files (x86)PlexPlex Connect, рядом с самим Плексом
По умолчанию используется адрес публичного DNS-сервера Google 8.8.8.8, но если вы хотите изменить на альтернативный, это делается в файле Settings.py на 20 строке:
Запускаем файл PlexConnect.py.
В случае Мака запускаем Терминал, в нём набираем команды:
cd PlexConnect
sudo python PlexConnect.py
Убеждаемся, что скрипт запущен:
Для дальнейших шагов необходимо запомнить IP-адрес компьютера с запущенным PlexConnect.
Переключаемся на Apple TV и меняем DNS-сервер на IP-адрес компьютера с запущенным PlexConnect (Настройки — Основные — Сеть — DNS вручную):
Запускаем «Трейлеры»...:
… и убеждаемся, что хак-перехват сработал, и PlexConnect подгружает данные с локальной базы Plex:
Вот самое лучшее доказательство тому:
Посмотрим, скажем, Top Gear, 9 сезон, 1 серия, Хаммонд возвращается:
Если в видеофайле несколько аудиодорожек, можно переключаться между ними:
Можно переключаться между субтитрами, если они вшиты в файл:
Вот физиономия Кларксона:
Всегда можно продолжить воспроизведение фильма с места последнего просмотра:
А можно воспользоваться дополнительными фишками типа поиска аналогичного по жанру фильма или фильма с такими же актёрами:
Специально указываю подробные скриншоты — как качественно вписалась медиатека PlexConnect в «родном» интерфейсе Apple TV!
Для автоматизированного заполнения метатегов и обложек фильмов советую установить плагин Кинопоиска.ру, для этого:
- скачиваем последнюю версию модуля;
- копируем файл kinopoisk.bundle в папку:
- при добавлении папок с фильмами в дополнительных настройках указываем в качестве Агента — KinoPoiskRU и русский язык в качестве языка поиска метаданных:
- также настоятельно рекомендую давать видеофайлам оригинальные названия фильмов, например: Keinohrhasen.mkv (немецкое название фильма определяется безошибочно).
Outro
В заключение хочу сказать, что при корректном заполнении локальной Plex-медиатеки всеми медиатегами (обложки, описания, жанры, актёры и т.д.), данный метод, основанный на обмане Apple TV, позволяет так задействовать возможности приставки, как если бы это было в случае использования полноценной iTunes-медиатеки.
Как видите, данный метод прост в настройке и неприхотлив в эксплуатации, но конечный результат приятно удивит вас, как поразил меня при первом запуске.
Удачи в настройке!
UPDATES
1. Выявлено, что Plex всё же конвертирует на лету данные в несовместимом для Apple формате (например, звуковые дорожки в DTS):
2. Локализация возможна! Пункты главного меню PlexConnect русифицируются в файле Plex Connectassetsplexconnect.xml
: для этого все значения между тегами <TITLE> меняем их аналогами на русском языке:
Результат на экране:
Поиск возможности перевода остальных текстовых сообщений — в процессе.
Выбор звуковой дорожки и субтитров — в файле Plex ConnectassetsselectSubsAndAudio.js
<body><optionList id="selectSubs.optionDialog"><title>Выберите звуковую дорожку</title><items>';
(строка 26)
<body><optionList id="selectSubs.optionDialog"><title>Выберите звуковую дорожку</title><items>';
(строка 50)
В-общем, можно полностью локализовать все локализуемые текстовые элементы и связаться с разработчиком для включения в пакет поставки, это действительно просто!
3. Важно: только что прилетвшее обновление прошивки Apple TV 5.3 не ломает функционал, всё работает.
Автор: schidakov