Смотрим MKV на Apple TV из Plex

    Всем привет!

    Продолжая цикл 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)\Plex\Plex Connect, рядом с самим Плексом

    В файле Settings.py вносим изменения в поле ip_pms, указываем IP-адрес сервера с Plex Media Server.

    Также в этом же файле на 23 строке можно указать DNS-адрес вашей сети (по умолчанию используется адрес публичного DNS-сервера Google 8.8.8.8):


    Запускаем файл 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. Локализация возможна! Скачиваем архив с локализованными файлами и распаковываем поверх имеющихся. На всякий случай советую сделать резервную копию имеющихся файлов. Замещаются файлы из папки assets.

    Результат на экране:


    Осталось связаться с разработчиком и сообщить ему об этом изменении.

    3. Важно: только что прилетвшее обновление прошивки Apple TV 5.3 не ломает функционал, всё работает.
    Поделиться публикацией

    Комментарии 38

      +2
      Обращаю также внимание, что у PlexConnect пока не всё хорошо с локализацией, но будем надеяться, дальнейшие выпуски пакета будут содержать корректно переведённые на русский язык текстовые элементы. Теоретически, локализация находится в файле github.com/iBaa/PlexConnect/blob/XML_templates/assets/plexconnect.xml, вечером проверю эту гипотезу.
        +1
        Обновил пост, действительно, первичная локализация — именно в этом файле
          +1
          Ещё раз обновил пост, выложил архив с изменёнными файлами локализации, попробуйте установить
          +1
          Всегда можно продолжить воспроизведение фильма с места последнего просмотра:

          а полноценная перемотка есть?
          Заодно хотелось бы еще деталей: делает ли Plex транскодинг, или высылает данные как есть? т.е. можно ли поднять его на роутере с python, или таки нужен мощный комп для транскодинга в реалтайме?
            +2
            а полноценная перемотка есть?


            Если в файле указаны разделы (Sections), то возможна перекрутка сразу по ним, если нет — то по отрезкам фиксированной длительности

            Ну и классическая прокрутка — ускоренное воспроизведение — также в наличии и работает без сбоев

            По транскодингу надо изучать технологию… BD-образы подключать не пробовал :)
              0
              Я недавно ковырялся с Plex Media Server — транскодинг по DLNA работает очень хорошо, более того, я считаю что настройка профилей транскодирования под конкретные устройства реализованы в нём просто идеально. Но есть и недостатки — нет транскодинга музыки (во всяком случае по DLNA), хотя если слушать через встроенный веб-клиент конвертирование в mp3 происходит. Но и мало настраивается структура папок.
              +3
              Так-с, всё-таки перекодирует:

              я попробовал воспроизвести MKV-файл с DTS-звуковой дорожкой, на приставке звук вышел (а мы знаем, что DTS не поддерживается в Apple-инфраструктуре), смотрим в Диспетчере задач:


              Полагаю, всё же видеопоток был отправлен как есть, а вот звуковая дорожка перекодировалась на лету — получается, нужна мощная машинка для этого (у меня на сервере установлен Intel i3, его мощности вполне хватает для воспроизведения)
                +2
                Вот тут отрезки:


                Вот тут ускоренное воспроизведение:


                Отмечу, что прокрутка осуществляется довольно шустро, как если бы Apple TV воспроизводила m4v-файл
                0
                Давно искал что-то подобное, спасибо.
                  +2
                  Я таки не понимаю, mkv при таком раскладе кодирует получается компьютер? Каким образом приставка вдруг начинает понимать MKV?
                  Второй вопрос — зачем кроме как AirPlay вообще может быть нужна данная приставка в России? Есть же WD TV…
                    0
                    можно не перекодировать, приставка прекрасно сама все сделает. Нужно в Plex Media Server создать профиль для ATV 3.1 где указать, что видео и звук пускать как есть. Могу вечером показать пример своего профиля
                      0
                      Первый вопрос интересный… если вспомнить, что m4v = MKV + перепаковка контейнера, то весьма вероятно, что ПлексКоннект на лету меняет заголовки MKV-файлов, но сами-то потоки h.264, AC3 и AAC Apple TV воспринимает вполне на-ура, без промежуточной перекодировки

                      Другой дело, если Apple TV пытается воспроизвести несвоместимый формат, каково поведения Плекса в этом случае — надо поизучать вопрос

                      На второй вопрос однозначно ответить сложно, лично большую часть времени приставка у меня просто стоит невключённой, но только одно наличие AirPlay — уже важное преимущество приставки

                      Лично я вижу в таком свете — подключённая к фонотеке (вдобавок с использованием ПлексКоннект), передавая по HDMI видеосигнал, апо оптике — аудио, вполне может быть домашним медиаустройством, лично у меня вся музыкальная фонотека — в Apple Lossless

                      Повторюсь, что AirPlay — крайне удобная технология
                        0
                        Кто бы спорил, только вот что делать если для компьютера она просто не нужна, а телефон на Android… Жду какого то кросплатформенного открытого аналога.
                        Кстати с upnp тоже не к AppleTV?
                          +1
                          Ну, приставка заточена для Apple-инфраструктуры, с соответствующими устройствами и медиатекой… с Андроидом не дружна

                          По поводу upnp: напрямую не поддерживает, только внешние iTunes-медиатеки, ну и PlexConnect

                          Но с помощью iOS-приложений можно воспроизводить по AirPlay данные с upnp-серверов: forums.macrumors.com/showthread.php?t=1503346
                        0
                        Второй вопрос — зачем кроме как AirPlay вообще может быть нужна данная приставка в России? Есть же WD TV…

                        Фильмы из iTunes покупать или брать напрокат. Кстати у меня шаринг экрана с макбука на ATv заботает прямо скажем далеко от идеала, правда у меня точка не AirPort, но полноценный N-стандарт.
                        А по поводу WD TV — у меня оба телевизора из коробки прекрастно жрут MKV (и еще очень много чего) по DLNA. Причем тот что поновее, жрет 100% того что я ему скармливал, с субтитрами на нескольких языках и невообразимым количеством дорожек в любом формате. Так что весь класс такого рода приставок мне кажется странным.
                          +1
                          Фильмы из iTunes покупать или брать напрокат. Кстати у меня шаринг экрана с макбука на ATv заботает прямо скажем далеко от идеала, правда у меня точка не AirPort, но полноценный N-стандарт.


                          Я свою ATV подключил витой парой, а Air по воздуху через N 2.4 ГГц (5 почему-то нормально не заводится, видимо стены мешают)
                          Изображение вполне комфортно выводится на телевизор.
                            0
                            Витуха идет в сам телевизор, а еще одну тянуть глубоко лень.
                            Изображение выводит комфортно, первые 40 минут — час. А потом начинает то фризится, и через некоторое время виснет вообще намертво. Пока не перезагрузишь ATV или MBP, кина не будет.
                              0
                              Странно, стоит связка MBP + DIR 825 + ATV — всё нормально.
                        0
                        Спасибо!
                          0
                          я правильно понимаю, что «обычный» способ смотреть свои m4v-фильмы — добавить их в медиатеку iTunes на включенном рядом компьютере?

                          Круто было бы научить Plex качать на лету торренты:)
                            0
                            Про торренты — есть такая приблуда Navi-xtreme и вроде бы есть ее реализация для Plex Правда, насколько корректно все работает сказать не могу, все руки не доходят попробовать. Ну и контент, в массе своей, англоязычный.
                              +1
                              По большому счёту, да — добавить в медиатеку и расшарить её

                              Плюс задействовать Домашнюю коллекцию в iTunes и в приставке

                              За торренты не скажу, не доводилось пользоваться :)
                              0
                              Было бы интересно узнать как данное решение чувствует себя на Linux системах
                                +1
                                Нет возможности проверить это на таких системах, но можно попросить читателей сделать такой эксперимент :)
                                  0
                                  Plex Media Server под linux работает очень хорошо, включая транскодинг. Про Plex Connect ничего не могу сказать, тестировал только DLNA-функции.
                                    +1
                                    И Plex Connect работает.
                                +1
                                Обновил пост с учётом выхода более новой версии Plex Connect, также исправлен пакет локализации
                                  0
                                  Если бы он мог работать хотя бы под openWRT… А так не вижу преимуществ от всяких Beamer и тд я не вижу.
                                    0
                                    У Plex есть пакеты для NAS-ов — им мощности для транскодинга не хватит, да?
                                      +1
                                      Ха, интересный вопрос :)

                                      Он вдвойне интереснее тем, что, наряду с NAS, с возможной проблемой нехватки мощности могут столкнуться владельцы минисерверов с экономичными процессорами типа Целеронах или Атомах (например, HP ProLiant MicroServer G7 N40L).

                                      А с учетом того, что потоки данных нехилые (особенно если пережимать 1080p), то возможны лаги при просмотре и постоянное кеширование.

                                      Впрочем, не имея под рукой нужных инструментов, трудно оценивать, повторюсь, что в моем i3 показ фильмов происходит бодро и без видимых затруднений.
                                        0
                                        древнючий atom 525, задаунклоченный на 800mhz лдя пассивного охлаждения, все работает весьма шустро (учитывая что appletv ломится на plexconnect расположенный в другой сети через vpn).
                                      0
                                      Использую Beamer для просмотра MKV и прочего через AppleTV. Включая и BDRip 1080p. Всё просто и очень удобно.
                                        0
                                        Тоже его использую, но это решение только для Mac OS X, на сколько мне известно
                                          0
                                          Согласен, Бимер работает отлично.
                                          Без всяких танцев с бубном с Плексконнект и пр.
                                          Хотя тут конечно решение поинтереснее: можно управлять полностью с appletv.
                                            +1
                                            Ну и важный плюс — интеграция с тем же Кинопоиском, у меня всю видеотеку (более 200 позиций) заняло не более 15 минут, с подбором всех обложек, тегов и проч., а как они отображаются на Apple TV — видно на иллюстрациях
                                          0
                                          Забрал сегодняшний билд ПлексКоннекта, автор перенёс файлы assets/*.js в папку assets/js/ и изменил УРЛы типа http://trailers.apple.com/utils.js на http://trailers.apple.com/js/utils.js.

                                          Локализация переделана и проверена — работает, файл доступен по прежнему адресу.
                                            0
                                            github.com/iBaa/PlexConnect/archive/XML_templates.zip not found :(

                                            что делать? можете поделиться?

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое