Amazon Fire TV

aftv-01

Я давно пользуюсь сетевыми мультимедийными проигрывателями, но менять мне их приходится нечасто, очень нечасто. Первым из таких устройств был Popcorn Hour A-110 на SoC от Sigma Designs, который проработал у меня дольше остальных — чуть более 4 лет.

Так как вся библиотека фильмов, сериалов и музыки хранится у меня на домашнем сервере со «скромной» емкостью в 12TB, то одним из критериев была и остается беспроблемная работа по NFS протоколу без предварительного транскодинга и возможностью прямого вывода звука на ресивер. Popcorn всем этим требованиям удовлетворял. Но время бежит и технологии совершенствуются. Так долго девайсы у меня как правило не задерживаются. Нет, не потому, что я неаккуратен и они ломаются (как раз наоборот, от меня они переходят в состоянии как будто только что из коробки), а потому что непреодолима тяга к новым технологиям. Поэтому хотелось замены, причем замены на что-то менее прожорливое, более компактное и меньше греющееся.

aftv-02

Год назад такой заменой для меня стал Raspberry Pi. Крошечный, малопотребляющий (питание вообще взял с портов телевизора для первого и с портов монитора для второго), проигрывающий практически любые рипы (с покупкой лицензий на VC-1 и MPEG2 кодеки за скромные £3.00 GBP), за малым исключением сложных и тяжелых ремуксов. В качестве всеядного проигрывателя выступал XBMC с настроенной синхронизацией между двумя Raspberry Pi через общую MySQL базу. Поставил на паузу на одном устройстве и продолжил смотреть на другом, красота да и только. Прекрасно и в то же время ужасно такое решение еще было и поддержкой HDMI-CEC, когда управление возможно с пульта телевизора. Прекрасно оно тем, что количество пультов сводится к минимуму — телевизионный и для ресивера. Все кнопочки довольно несложно переназначаются в XBMC правкой xml-конфига. Ужасно же оно своей тормознутостью, протокол явно неспешный. Кому как, а мне хотелось перемещаться по меню с большей скоростью.

aftv-03

Я давно присматривался к TV коробочкам на Android, но все что было на рынке — доверия не внушало и выглядело откровенно хреново. В прошлом месяце на рынке был представлен Amazon Fire TV, я сразу понял: это — оно. Качество на очень высоком уровне, прекрасный подбор компонентов, высокая отзывчивость UI и очень удобный пульт управления. С таким пультом перемещаться по меню теперь стало одно удовольствие.

Amazon поступил правильно, открыв девелоперам возможность работы с устройством в userspace. root’ового доступа из коробки хоть и нет, но возможность ставить в userspace на закрытой и кастомизированной Amazon операционной системе Android — уже дорогого стоит.

Устанавливаем ADB Utility под свою операционную систему и включаем ADB Debugging на Amazon Fire TV:

Settings -> System -> Developer Options -> ADB Debugging -> ON

Конечная цель — XBMC в качестве основного проигрывателя мультимедиа. Приступим.

Посмотрите свой IP в System -> About -> Network. Подключемся по adb к Amazone Fire TV:

adb connect IP

Amazon Fire TV в своих настройках залочен на американские временные зоны, выставить необходимую нам временную зону можно при помощи приложения TimeZone Changer. Скачиваем, распаковываем на рабочий стол, к примеру, и устанавливаем:

cd ~/Desktop
adb install TimeZoneChanger.apk

Заходим в Settings -> Applications -> TimeZone Changer -> Launch Application. Находим свою временную зону и выставляем.

Для того, чтобы XBMC самостоятельно запускался при включении приставки, запускался при выходе приставки из сна, чтобы приставка автоматически переходила в режим сна через 15 секунд в том случае, если вы при этом находитесь в меню родного ланчера от Amazon, нам необходимо установить приложение Llama и настроить реакцию на необходимые события. В режим сна в XBMC и в других приложениях приставка будет переходить через 10 минут неактивности.

Для XBMC при этом необходимо в дальнейшем после установки дополнительно выставить следующие настройки:

System -> Settings -> System -> Power saving
Shutdown function timer = 10 min
Shutdown function = Quit

Скачиваем Llama. Распаковываем, устанавливаем приложение и копируем готовые конфигурационные файлы настроек событий:

adb install com.kebab.Llama.apk
adb push Llama /sdcard/Llama/

Запускаем приложение и импортируем настройки: Нажмите кнопку ‘Menu‘ на пульте к Amazon Fire TV -> Import/Export Data -> Import From USB Storage -> Accept.

Теперь приступим непосредственно к установке XBMC. Скачиваем установочный пакет под Android (ARM). На сегодняшний день самая свежая версия Helix — 14.2, ее и будем ставить.

adb install kodi-14.2-Helix-armeabi-v7a.apk

Производим первый запуск, чтобы создалась необходимая структура каталогов и файлов в пользовательском разделе. Теперь сделаем как минимум Remap кнопок для родного пульта. Жирным выделены переназначенные кнопки:

aftv-04

remote.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
<keymap>
    <Global>
        <keyboard>
            <rewind>PageUp</rewind>
            <fastforward>PageDown</fastforward>
            <play_pause>XBMC.ActivateWindow(Home)</play_pause>
        </keyboard>
    </Global>
    <Home>
        <keyboard>
            <menu>XBMC.ActivateWindow(favourites)</menu>
        </keyboard>
    </Home>
    <FullscreenVideo>
        <keyboard>
            <menu>SmallStepBack</menu>
            <backspace>Stop</backspace>
            <up>AudioNextLanguage</up>
            <down>ShowSubtitles</down>
            <rewind>SkipPrevious</rewind>
            <fastforward>SkipNext</fastforward>
            <play_pause>Pause</play_pause>
        </keyboard>
    </FullscreenVideo>
</keymap>

Сохраняем в файл и переносим на устройство:

adb push remote.xml /sdcard/android/data/org.xbmc.kodi/files/.kodi/userdata/keymaps

Далее уже по вкусу, мне, например, необходимо синхронизировать базу между несколькими устройствами с XBMC (версии XBMC должны быть одинаковыми).

На машине с MySQL сервером выполняем (в примере 192.168.1.2):

1
2
GRANT ALL ON `MyVideos%`.* TO 'xbmc'@'%' IDENTIFIED BY 'password';
GRANT ALL ON `MyMusic%`.* TO 'xbmc'@'%' IDENTIFIED BY 'password';

Для XBMC создаем advancedsettings.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<advancedsettings>
    <videodatabase>
        <type>mysql</type>
        <host>192.168.1.2</host>
        <port>3306</port>
        <user>xbmc</user>
        <pass>password</pass>
    </videodatabase>
    <musicdatabase>
        <type>mysql</type>
        <host>192.168.1.2</host>
        <port>3306</port>
        <user>xbmc</user>
        <pass>password</pass>
    </musicdatabase>
    <videolibrary>
        <importwatchedstate>true</importwatchedstate>
        <importresumepoint>true</importresumepoint>
    </videolibrary>
</advancedsettings>

Отправляем на устройство:

adb push advancedsettings.xml /sdcard/android/data/org.xbmc.kodi/files/.kodi/userdata

Если вы уже пользуетесь XBMC и у вас уже есть когда-то набитый список сетевых ресурсов, то вы можете их легко перенести, хранятся они в файле sources.xml.

Для примера структура файла:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<sources>
    <programs>
        <default pathversion="1"></default>
    </programs>
    <video>
        <default pathversion="1"></default>
        <source>
            <name>Прочее</name>
            <path pathversion="1">nfs://192.168.1.2/hdd2/Downloads/Прочее/</path>
            <path pathversion="1">nfs://192.168.1.2/hdd3/Downloads/Прочее/</path>
            <allowsharing>true</allowsharing>
        </source>
        <source>
            <name>Мультфильмы</name>
            <path pathversion="1">nfs://192.168.1.2/hdd2/Downloads/Мультфильмы/</path>
            <path pathversion="1">nfs://192.168.1.2/hdd3/Downloads/Мультфильмы/</path>
            <allowsharing>true</allowsharing>
        </source>
        <source>
            <name>Сериалы</name>
            <path pathversion="1">nfs://192.168.1.2/hdd1/Downloads/Сериалы/</path>
            <path pathversion="1">nfs://192.168.1.2/hdd2/Downloads/Сериалы/</path>
            <path pathversion="1">nfs://192.168.1.2/hdd3/Downloads/Сериалы/</path>
            <allowsharing>true</allowsharing>
        </source>
        <source>
            <name>Фильмы</name>
            <path pathversion="1">nfs://192.168.1.2/hdd2/Downloads/Фильмы/</path>
            <path pathversion="1">nfs://192.168.1.2/hdd3/Downloads/Фильмы/</path>
            <allowsharing>true</allowsharing>
        </source>
    </video>
    <music>
        <default pathversion="1"></default>
        <source>
            <name>Музыка</name>
            <path pathversion="1">upnp://4e913d96-195a-306e-2d72-b5a52490dc52/1%243/</path>
            <allowsharing>true</allowsharing>
        </source>
    </music>
    <pictures>
        <default pathversion="1"></default>
    </pictures>
    <files>
        <default pathversion="1"></default>
    </files>
</sources>

Для переноса непосредственно на устройство:

adb push sources.xml /sdcard/android/data/org.xbmc.kodi/files/.kodi/userdata

В заключение немного об обновлении XBMC, для этого просто скачиваем новую версию и выполняем (на примере 14.3):

adb install -r kodi-14.3-Helix-armeabi-v7a.apk

На этом можно отключиться от устройства:

adb disconnect

Добавлено (23.06.2014):

Как сторонник минимализма, решил максимально упростить работу с устройством, уменьшив количество манипуляций настолько, насколько это возможно. Так как большую часть времени пользоваться приходится XBMC, то и будем использовать его в качестве основного ланчера.

aftv-07

Скачиваем новый конфигурационный файл для Llama. Распаковываем, устанавливаем и настраиваем по уже приведенной ранее схеме.

Теперь каждый раз при нажатии клавиш ‘Home’ и ‘Mic’ будет запускаться XBMC, доступа к стандартному ланчеру не будет. XBMC позволяет запускать Android приложения. Для удобства из меню программ добавим необходимые приложения в избранное.

Programs -> Android Apps -> на добавляемом приложении нажмите кнопку ‘Menu’ -> Set as Favorite

Я немного обновил Remap кнопок в посте, кто использовал старые настройки — обратите на это внимание. Теперь по кнопке ‘Menu’ вызывается избранное, а по кнопке ‘Play/pause’ в основном меню программы в один клик можно попасть на домашний экран.

Рано или поздно, безусловно, вам понадобится доступ к родному ланчеру, для покупки игр, к примеру, или другого контента из Amazon Appstore. Заходим в настройки Llama и отключаем правило ‘Run XBMC’, далее как обычно по кнопке ‘Home’ переходим в родной ланчер. После того как закончили, можно снова включить правило.

Предвосхищая вопрос по поводу root’а, да, не так давно вышел универсальный root exploit для свежих версий Android, который применим и для Amazon Fire TV, но до тех пор, пока закрыт bootloader, использование его считаю преждевременным. Прежде всего нужен рабочий программный механизм восстановления устройства, в случае ошибок и порчи его в ходе экспериментов. Сомневаюсь, что найдется много желающих делать это при помощи JTAG. Поэтому, пока, трюк с Llama — мой выбор. Просто и со вкусом.

Добавлено (03.07.2014):

Появился способ войти в Recovery Mode на Amazon Fire TV, теперь можно и root получить, а в случае проблем сделать Factory Reset (если вы конечно не умудритесь убить bootloaders).

Для начала, как войти в режим восстановления. Для этого нам понадобится USB клавиатура с кнопками ‘Print Screen‘ или ‘SysRq‘. Думаю, подойдет любая PC’шная, а вот клавиатура для Mac’а точно в пролете. Подключите клавиатуру, после этого отключите питание у приставки. Включите питание и во время загрузки и начала показа логотипа amazon fireTV с цветной анимацией вокруг него нажмите сочетание клавиш ‘Alt + Print Screen + i‘, это пошлет команду ‘kill all tasks‘. После первого посыла команды, приставка перезагрузится, вам необходимо снова во время загрузки нажать вышеприведенное сочетание клавиш, и так до тех пор (может потребоваться от 3 до 5 перезагрузок), пока приставка не выведет сообщение ‘The System Update was not successful‘. Это будет означать, что приставка перешла в режим восстановления. После того как вы вошли в этот режим, нажмите кнопку ‘Home‘ на своей клавиатуре, это вызовет меню. Используя клавиши со стрелками, выберите ‘Wipe data/factory reset‘ и нажмите кнопку ‘Enter‘.

Теперь перейдем к получению root доступа и как цель к назначению XBMC в качестве основного ланчера без костыля в виде Llama. На этом этапе Llama следует удалить, либо отключить правила для XBMC.

Скачиваем архив, распаковываем и последовательно выполняем:

adb install tr.apk

Запустите приложение ‘Towelroot’ и нажмите ‘Make it Ra1n’. Выйдите из приложения и немного подождите, ваша приставка перезагрузится. Теперь установим SU в систему и сопутствующее приложение для управления правами доступа для суперпользователя:

adb install Superuser.apk

Запустите ‘Superuser’ и установите SU в нормальном режиме. Для проверки, к примеру, выполним важное действие, отключим автообновление системы:

adb shell
su
pm disable com.amazon.dcp

При вводе ‘su’ будут запрошены права на повышение привелегий, выдайте их. После ввода последней команды в случае успеха будет выведено ‘Package com.amazon.dcp new state: disabled’.

Теперь установим Xposed Framework, модули для нашей приставки, Settings, MoreLocale и XBMC Launcher.

adb install de.robv.android.xposed.installer_v32_de4f0d.apk
adb install RboxFireTvMods_1.3.apk
adb install HDXPosed-1.3.apk
adb install Settings.apk
adb install jp.co.c_lis.ccl.morelocale.apk
adb install se.blunden.xbmclauncher.apk

Запустите ‘Xposed Installer -> Framework -> Install/Update -> Allow Reboot’. После перезагрузки снова запустите ‘Xposed Installer -> Modules -> активируйте RboxFireTvMods и HDXPosed (без мыши это не удастся)’. Теперь необходимо перезагрузиться, либо передерните питание, либо зажмите клавиши ‘Select’ и ‘Play/pause’, это пошлет команду на перезагрузку. Если вам привычнее терминал, то можно сделать через него:

adb shell
su
reboot

Теперь XBMC будет работать в качестве основного ланчера.

Чтобы приставка уходила в сон при активном XBMC, установим дополнение Android Power Options screensaver (xbmc.repo.elmerohueso-1.0.zip). Установите, отключите режим экономии энергии (выход их XBMC через 10 минут простоя), если ранее его включали. Теперь перейдите в ‘XBMC Settings -> Appearance -> Screensaver’ и выберите только что установленный скринсейвер. Перейдите в настройки скринсейвера, нажмите ‘Check SU Permissions’ и предоставьте права суперпользователя для XBMC. Выберите интервал, при котором будет включаться скринсейвер. На этом все, теперь при неактивности приставка будет уходить в сон через выбранный интервал времени.

Добавлено (07.07.2014):

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

aftv-08

Скачиваем русскую клавиатуру для Amazon Fire TV. Распаковываем и устанавливаем (необходим root):

adb push BuellerIME.apk /sdcard/
adb shell
su
mount -o rw,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
cp /sdcard/BuellerIME.apk /system/app
mount -o ro,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
rm /sdcard/BuellerIME.apk
reboot

Наслаждайтесь русским вводом.

Добавлено (11.07.2014):

В последних версиях системной прошивки клавиатура деодексирована, но в прошивках младше 51.1.1.0 она была одексирована. Если у вас старая прошивка и после замены клавиатуры на модифицированную она перестала работать, то просто необходимо удалить ‘BuellerIME.odex’.

adb shell
su
mount -o rw,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
rm /system/app/BuellerIME.odex
mount -o ro,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
reboot

После этого клавиатура должна без каких-либо проблем заработать.

Добавлено (29.03.2015):

Сделал русскую клавиатуру для последней на сегодняшний день прошивки (51.1.5.0_515020820):

aftv-09

Скачиваем русскую клавиатуру для Amazon Fire TV (51.1.5.0_515020820). Распаковываем и устанавливаем (необходим root):

adb push FireTVIME.apk /sdcard/
adb shell
su
mount -o rw,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
cp /sdcard/FireTVIME.apk /system/app
mount -o ro,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
rm /sdcard/FireTVIME.apk
reboot

Добавлено (03.04.2015):

Попался мне на глаза неплохой лаунчер в стиле Google TV – HALauncher. Есть возможность ручной сортировки, скрытия и показа необходимых приложений. Со вкусом и ничего лишнего. Перевел его на русский язык и выставил более подходящую цветовую схему. Так это выглядит:

aftv-10

Скачиваем HALauncher-RU. Распаковываем и устанавливаем:

adb install halauncher-android-tv-1.0.11.0-ru-ZeroLab.NeT.apk

В настройках выставляем:

Основной фон:
FF 000000
Цвет колонки с меню:
FF 12171B

Наслаждайтесь.

Если Вам понравился этот материал, то, в качестве благодарности, Вы можете заказать Amazon Fire TV по моему линку, Ваша стоимость от этого не изменится:

Amazon Fire TV

А еще не менее прекрасный игровой контроллер:

Amazon Fire Game Controller

Спасибо.

Для доставки за пределы USA можно воспользоваться услугами любого из посредников.

К примеру, https://zerolab.net/url/us (получите бонус в 7$).

Категория: Гаджеты

Теги: ,

Оставить комментарий

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Аватары обслуживаются системой Gravatar. При публикации сообщения, Вы можете указать свой e-mail в этой системе.

комментариев 56

  1. Олег:

    ZeroChaos:
    5 мая 2015 в 20:48

    Сенкс, все заработало. Не был установлен RboxFireTvMods.

  2. ZeroChaos:

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

  3. sergey:

    ZeroChaos, а не мог бы ты еще раз обновить клавиатуру для последней прошивки (51.1.5.0_515030720) а то каракули отображаются((

  4. ZeroChaos:

    Должны быть соблюдены 2 условия:
    1. ‘Настройки HALauncher’ — ‘Использовать приложение в качестве лаунчера’ – должна стоять галочка.
    2. Должен быть получен root доступ и установлены Xposed Framework + RboxFireTvMods. Без этого придется делать трюк через Llama. В посте есть пример как это делается. Почитайте внимательно, не ленитесь.

  5. Олег:

    Хай!
    Не загружается ланчер halauncher-android-tv-1.0.11.0-ru-ZeroLab.NeT.apk по кнопке домой. Также при загрузке системы не стартует сам.
    Просьба помочь.

  6. ZeroChaos:

    HALauncher обновлен до 1.0.11.0, ссылка прежняя.

  7. ZeroChaos:

    HALauncher обновлен до 1.0.9.0, ссылка прежняя.

  8. ZeroChaos:

    Добавлен лаунчер в стиле Google TV.

  9. ZeroChaos:

    Сделал русскую клавиатуру для последней на сегодняшний день прошивки (51.1.5.0_515020820).

  10. Knight:

    В последней прерут прошивке от rbox’а клавиатура вместо русских букв показывает кракозяблики(((

  11. ZeroChaos:

    Никак.

  12. Андрей:

    Как поставить русскую раскладку без root?

  13. Сергей:

    примонировал флешку — та же песня. Видео тормозит, рассинхрон. root имеется, XBMC в качестве основного лаунчера. Ничего не помогает. Буду признателен за любую наводку.

  14. Сергей:

    Не пойму, почему ни слова о том что XBMC на FireTV жутко тормозит проигрывание всех типов и размеров видеофайлов (пробовал от 2гб до 20Гб)? У меня в библиотеке более 100 фильмов, которые без труда открывает сам телек, а вот xbmc, при загрузке камня не более 30% (при чем как в в режиме не активности, так и во время воспроизведения файлов) тормозит так, что не возможно смотреть. Кстати, если подключать библиотеку через NFS, показывает почему то лучше. То есть ощущение, что разрешение и битрейд выше, чем через SMB, при этом тормоза те же. Неужели только у меня такая проблема? Есть у кого мысли? Спасайте! :)

  15. ZeroChaos:

    Все ясно, на основании этого дополнил статью.

  16. sirota:

    51.1.0.2

  17. ZeroChaos:

    Тоже версия системы 51.1.02 или младше?

  18. sirota:

    спасибо теперь заработало )))

  19. ZeroChaos:

    adb shell
    su
    mount -o rw,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
    rm /system/app/BuellerIME.odex
    mount -o ro,remount /dev/block/platform/msm_sdcc.1/by-name/system /system
    reboot

  20. sirota:

    тоже самое
    сделал все как написано,пропала клава вообще (((
    вопрос как удалить этот BuellerIME.odex.?

  21. ZeroChaos:

    Понятно, предпоследняя, возможно в ней клавиатура была одексирована. Может кто-нибудь еще, у кого старая прошивка, это подтвердить? Если это так, тогда необходимо дополнить инструкцию, что на старых прошивках нужно удалить BuellerIME.odex.

  22. ZeroChaos:

    Часть, да, но клавиатура была деодексирована. А какая у вас версия прошивки?

  23. Ivan:

    нет, только сделал рут и поставил маркет.
    часть системных файлов тоже в odex

  24. ZeroChaos:

    Интересно, а откуда там взялся файл BuellerIME.odex? Клавиатура изначально была деодексирована. Вы что-то делали для одексации?

  25. Ivan:

    благодарю не надо, все решилось удалением их system/app/BuellerIME.odex

  26. Ivan:

    а исходного файла клавиатуры у вас нету?
    был бы благодарен

  27. ZeroChaos:

    Тогда не знаю, я на двух приставках тестировал, проблем нет. Другие пользователи тоже не жаловались. По всей видимости, что-то сделали не так. Могу посоветовать только сделать Factory Reset и поставить все начисто.

  28. Ivan:

    Клавиатуры нет
    стоит FiredTV и еще несколько приложений

  29. ZeroChaos:

    Другие виртуальные клавиатуры до этого не ставили? Еще какие-то модификации?

  30. Ivan:

    нет, сделал это 2 раза
    и повторил процедуру тоже 2 раза

  31. ZeroChaos:

    Перезагрузить забыли, да? )

  32. Ivan:

    Странно, установив вашим методом русскую клавиатуру, у меня теперь не вылазит никакая)

  33. ZeroChaos:

    Вполне возможно.

  34. Ivan:

    Но ведь интересная вещь, не зря у нас на пульте приставки имеется микрофон)
    а вообще такое возможно?

  35. ZeroChaos:

    Даже и не думал об этом. )

  36. Ivan:

    Привет, спасибо за клавиатуру)
    А возможно реализовать реализовать функцию ввода через голосовой ввод?

  37. ZeroChaos:

    Добавлена русская клавиатура.

  38. ZeroChaos:

    Нет, нельзя, эта кнопка захардкожена под вызов ланчера.

  39. Василий:

    Привет! Спасибо за инструкцию.
    Хотел бы узнать можно ли запрограммировать еще и кнопку «home» (№5) на пульте? К примеру вот на это действие: XBMC.ActivateWindow(Home)

  40. ZeroChaos:

    Recovery Mode/Factory Reset, root, XBMC в качестве ланчера без костылей.

  41. ZeroChaos:

    Небольшая правка Remap’а кнопок пульта. В предыдущей правке упустил ‘play_pause’ в режиме Fullscreen video action.

  42. ZeroChaos:

    Обновил немного пост. XBMC в качестве ланчера, запуск Android приложений непосредственно из него, более удобный Remap кнопок пульта. В advancedsettings.xml добавлены настройки буфера.

  43. ZeroChaos:

    Без проблем все крутит, если это не VC-1 Advanced Profile кодек, здесь срабатывают ограничения кастомного Android, Amazon не включила поддержку аппаратного декодирования для этого кодека, хотя SoC Qualcomm Snapdragon 8064 его поддерживает. Видимо, это связано с лицензированием пакета кодеков Amazon’ом. Программно он будет декодироваться, но тяжелые ремуксы будут тормозить, ясное дело. В любом случае, VC-1 в Blu-ray уже практически не используется с 2012-2013 годов. AVC (H.264) рулит.
    Список официально поддерживаемых медиа форматов: http://dropme.net/aftvms
    Возможно, в новых прошивках это будет исправлено, по крайней мере в ‘/system/etc/media_codecs.xml’ кодек прописан:

    adb shell cat /system/etc/media_codecs.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    <?xml version="1.0" encoding="utf-8" ?>
    <!-- Copyright (C) 2012 The Android Open Source Project

        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at

             http://www.apache.org/licenses/LICENSE-2.0

        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.
    -->
    <!--
        Copyright (c) 2012, The Linux Foundation. All rights reserved.
        Not a Contribution, Apache license notifications and license are retained
        for attribution purposes only.
    -->

    <MediaCodecs>
        <Encoders>
            <!-- Audio Hardware  -->
            <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" />
            <MediaCodec name="OMX.qcom.audio.encoder.evrc" type="audio/evrc" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports" />
            </MediaCodec>
            <MediaCodec name="OMX.google.flac.encoder" type="audio/flac"/>
            <MediaCodec name="OMX.qcom.audio.encoder.qcelp13" type="audio/qcelp" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports" />
            </MediaCodec>
            <!-- Audio Software  -->
            <MediaCodec name="AACEncoder" type="audio/mp4a-latm" />
            <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" />
            <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" />
            <MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports"/>
                <Quirk name="requires-loaded-to-idle-after-allocation"/>
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports"/>
                <Quirk name="requires-loaded-to-idle-after-allocation"/>
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports"/>
                <Quirk name="requires-loaded-to-idle-after-allocation"/>
            </MediaCodec>
        </Encoders>
        <Decoders>
            <!-- Audio Hardware  -->
            <MediaCodec name="OMX.qcom.audio.decoder.wma" type="audio/x-ms-wma" >
                <Quirk name="requires-global-flush" />
                <Quirk name="requires-wma-pro-component" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.audio.decoder.wmaLossLess" type="audio/x-ms-wma" >
                <Quirk name="requires-global-flush" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.audio.decoder.wma10Pro" type="audio/x-ms-wma" >
                <Quirk name="requires-global-flush" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.audio.decoder.amrwbplus" type="audio/amr-wb-plus" >
            </MediaCodec>
            <!-- Audio Software  -->
            <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
            <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
            <MediaCodec name="MP3Decoder" type="audio/mpeg" />
            <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
            <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
            <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" />
            <MediaCodec name="AACDecoder" type="audio/mp4a-latm" />
            <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" />
            <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" />
            <MediaCodec name="OMX.qcom.audio.decoder.passthroughac3" type="audio/ac3" >
                <Quirk name="requires-global-flush" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.audio.decoder.passthrougheac3" type="audio/eac3" >
                <Quirk name="requires-global-flush" />
            </MediaCodec>
             <MediaCodec name="OMX.qcom.audio.decoder.Qcelp13" type="audio/qcelp" >
                <Quirk name="requires-global-flush" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.audio.decoder.evrc" type="audio/evrc" >
                <Quirk name="requires-global-flush" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.vc1" type="video/x-ms-wmv" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports" />
                <Quirk name="defers-output-buffer-allocation" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.divx" type="video/divx" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports" />
                <Quirk name="defers-output-buffer-allocation" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.divx311" type="video/divx311" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports" />
                <Quirk name="defers-output-buffer-allocation" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.divx4" type="video/divx4" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports" />
                <Quirk name="defers-output-buffer-allocation" />
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports"/>
                <Quirk name="defers-output-buffer-allocation"/>
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports"/>
                <Quirk name="defers-output-buffer-allocation"/>
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports"/>
                <Quirk name="defers-output-buffer-allocation"/>
            </MediaCodec>
            <MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
                <Quirk name="requires-allocate-on-input-ports" />
                <Quirk name="requires-allocate-on-output-ports"/>
                <Quirk name="defers-output-buffer-allocation"/>
            </MediaCodec>
            <MediaCodec name="OMX.google.vpx.decoder" type="video/x-vnd.on2.vp8" />
            <MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
            <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
            <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
        </Decoders>
    </MediaCodecs>

    Поэтому, при наличии root’а, для поддержки аппаратного декодирования всех кодеков, скорее всего достаточно будет подменить libOmxCore.so, выдернутую из Nexus 5, к примеру.

  44. alex:

    Рипы гигов по 40 с nas — как крутит..? не кашляет ?
    Ну и прочая стабильность…

  45. ZeroChaos:

    Пробовал, конечно. Лично у меня работает так же нестабильно, как работало и на Raspberry Pi. Часто вылетает, на многих каналах постоянные фризы, не смотря на хороший канал и проброшенный для раздачи порт. Пока отказался.

  46. Андрей:

    Пробовали запускать в XBMC аддон на torrent-tv.ru?

  47. ZeroChaos:

    Пришла вторая приставка, на этот раз с Amazon Fire Game Controller:

    aftv-05

    aftv-06

    Успел немного поиграть в Prince of Persia: The Shadow and the Flame. Очень прикольно, хотя я в игры последнии лет 15 не играю совсем. Приятнее было бы, конечно, поиграть в классический Prince of Persia. На очереди опробовать эмуляторы приставок. В RetroArch пока проблема с биндингом L2 и R2 кнопок родного контроллера. При этом, по отзывам, Xbox 360 Controller работает в нем из коробки.

  48. ZeroChaos:

    Включите в XBMC:
    System -> Settings -> System -> Input devices -> Remote control sends keyboard presses.

  49. Deimos:

    Привет, а подскажи пожалуйста у тебя в XBMC в дополнениях где надо вводить какие то данные пульт работает? Текст набирается? А то у меня нет — я не могу вбить логин и пароль штатным пультом =(

Twitter

MSI Lab Twitter
Яндекс.Деньги:

VISA/MasterCard:

PayPal:
PayPal USD
PayPal RUB
WMZ WMZ: Z375880088307
WMR WMR: R883546545943
YAD YAD: 4100170884493

Donate - лучшее спасибо автору
Количество благодарностей: 28

Разделы