[Release] Amazon Prime Instant Video

  • Gibt es eigentlich eine einfache Antwort auf die Frage wieso das mit der Umstellung der Verschlüsselung von Amazon keine Probleme beim Abspielen im Browser macht, aber in Kodi? Da wird doch Winedevine genutzt wie in Chrome auch. Man extrahiert das ja sogar von dort. Ist für Entwickler jetzt vielleicht ne doofe Frage und darf auch ignoriert werden.

    Ein Amazon Video geht diesen Weg:

    a.)Input (h.264 encrypted) -> b.) Decrypt(->h.264 decrypted) -> c.) Decode(->YUV Image) -> d.)Rendering()

    Schritt c.) Decoding wird von kodi abgehandelt, und zwar bestmöglich. Dort, wo h/w decoding möglich ist, nutzt kodi h/w decoding.
    Nur durch h/w decoding ist es überhaupt möglich, anspruchsvolle Filme auf Geräten wie RPI2 / Odroid darzustellen, der CPU ist (oft) nicht performant genug.

    Daher sind in Inputstream.mpd a.) und b.) implementiert, c.) macht dann kodi.

    libwidevine nach der neuen Verschlüsselung macht nun a + b + c. c) wird nicht h/w unterstützt gemacht, sondern in einer software Implementierung in libwidevine.
    Dies bedeutet, dass inputstream.mpd nun kodi keine h.264 decrypted streams mehr geben kann, sondern bereits dekodierte YUV Bilddaten. Das ist weder in kodi noch in inputstream implementiert.

    Chrom(ium) machen schon immer a+b+c in libwidevine, das ist aber auch der Grund, warum ihr auf rpi2 / odroid cx mit dem Browser kein amazon schauen könnt.

  • Ah ...ok. Danke für deine ausführliche Antwort. =)

    Klingt für mich aber nach einem nicht so leicht zu lösenden Problem.

    Ihr müsst Kodi jetzt also beibringen, dass es auch bereits kodierte YUV Bilddaten "frisst"? Oder könnte man den bereits dekodierten Sream einfach wieder einpacken (rekodieren) und dann an Kodi schicken? Und dann müsste es Kodi wieder dekodieren. Dann macht man diesen Schritt aber ja quasi gleich 3 Mal. Also wohl eher blöde Idee.

    Oder kann man dem libwinedevine (wie bei der alten Verschlüsselung) irgendwie den Schriit c) abgewöhnen, so dass das Decoding wieder in Kodi stattfinden kann?

    Habt ihr da schon eine bestimmte Richtung, in die ihr arbeitet? =)

  • Ihr müsst Kodi jetzt also beibringen, dass es auch bereits kodierte YUV Bilddaten "frisst"? Oder könnte man den bereits dekodierten Sream einfach wieder einpacken (rekodieren) und dann an Kodi schicken? Und dann müsste es Kodi wieder dekodieren. Dann macht man diesen Schritt aber ja quasi gleich 3 Mal. Also wohl eher blöde Idee.

    Oder kann man dem libwinedevine (wie bei der alten Verschlüsselung) irgendwie den Schriit c) abgewöhnen, so dass das Decoding wieder in Kodi stattfinden kann?

    libwidewine das angewöhnen, würde einen Eingriff bedeuten, den wir hier nicht mehr diskutieren dürften :)

    Wir machen das wohl ein bisschen um die Ecke. Kodi bekommt b+c mit dem Hinweis, dass es verschlüsselt ist, dann nimmt kodi einen dekoder (der entwickelt werden muss), der aber nichts weiter tut als mit den Daten die er bekommen hat wieder inputstream aufzurufen und YUV Bild zu holen. Das passt dann wieder ins kodi konzept, da ein Dekoder ja das YUV Bild ausgibt (das ist die Aufgabe vom Dekoder).

    Ja, ist ein bisschen was zu tun, leider, und derzeit laufen wohl eher Anstrengungen in Richtung android, da das da etwas anders gelöst ist.
    Crux ist nur, dass derzeit auf Android nur die Filme laufen, die unter linux nicht laufen, und die andere nicht. Da ist noch was in kodi nachzuziehen.

    Tja, was soll ich sagen :) viele Baustellen.

  • Mensch ... warum muss es euch Amazon aber auch so schwer machen.
    Das mit der Umstellung hätte doch echt nicht sein müssen.

    Also ich wäre ja hauptsächlich an der Lösung für Android interessiert, daher fände ich das natürlich toll, wenn es da vielleicht mit der DRM Integration im System sogar früher klappen würde mit einer Lösung. Als ich angefangen hatte, hier reinzuschauen, war der Stand noch der, dass es wohl auf Android eher nie was werden wird. Und jetzt scheint es da sogar am meisten Fortschritt zu geben. :)

    Aber wieso läuft auf Android was unter Linux nicht läuft? In beiden Fällen trotz alter Verschlüsselung? Dachte zumindest Inhalte mit der alten würden auf allen Plattformen funktionieren. Oder funktioniert auf Andoid etwa die neue schon, aber dafür die alte nicht? ;)

  • @Sandmann
    Hätte da einen Feature Request:
    Da ich die Steuerung von Amazon-VOD im InternetExplorer über Eventghost machen wollte (bzgl. MCE Maappings, System Lautstärke usw.) habe ich kleine Änderungen am plugin vorgenommen .
    So kann ich nun mit der MCE & Yatse das Amazon VOD steuern, sogar die System Lautstärke :)

    Wäre toll wenn es da eine Auswahlmöglichkeit für das senden von keys exkl. 0-9 (bei mir noch nicht inkludiert) bzgl. Pin geben würde.

    Habe das derzeit hardcoded in der default.py wie folgt gelöst und das AUto Update ausgeschaltet:

    Bei meiner Lösung funktioniert das Pin eingeben noch nicht. Muss ich erst in Eventghost umsetzen, sollte aber auch gehen.
    EG erhält alle Events und führt dann die entsprechenden Makros aus.

    Im Anhang die original default.org und veränderte default.py (kann schön mit beyondcompare oder ähnlichem verglichen werden).

    Im Prinzip könnte eine Konfigurierbare Lösung im Addon so Aussehen:

    • Setting für Remote Control Programm Executable -> ich würde es auf C:\\Program Files (x86)\\EventGhost\\Eventghost.exe setzen, standard für windows ist userinput.exe
    • Setting für Remote Control Programm Parameters -> ich würde es auf "-e" setzen, standard für windows ist "key "
    • Die Zeile mouse wenn ich so recht überlege müsste gar nicht abgeändert werden, ich könnte ja auch auf das "mouse" event in EG reagieren
    • Setting für Remote Control Programm präfix-> ich würde es auf "kodi.amazon.vod." setzen, standard für windows ist ""

    Was hältst du davon?
    Wäre das realisierbar?

    Danke
    pOpY

  • Aber wieso läuft auf Android was unter Linux nicht läuft?

    Weil mediacodec für Audio nicht in kodi implementiert ist. Und mediacodec ist die API, die wir hier einsetzen müssen, um encryptete Audio streams zu entschlüsseln.
    Es ist schon ein kleiner konzeptioneller Unterschied bei DRM zwischen libWidevine und Android, der Unterbau ist zwar irgendwie der gleiche, aber die Schnittstellen anders.

    Aus meiner Sicht ist libwidevine unter linux eine Notlösung, und in Android ist ein wirkliches Konzept vorhanden.

  • Could you post an example of a movie that works on linux but doesn't on Android?

    This differs from country to country. You'll have a good chance if you find a movie wich is for longer time available on amazon.
    If you go to the kodi [definition='1','0']log[/definition] file, grep the line with the path of the .mpd file (search for corrected.mpd), download it, and verify that Audio's Adaptionset have a ContentProtection elements.

    If you find one with ContentProtection in audio AdaptationSet, it will play under linux, but not droid.

  • Gibt es eine Möglichkeit, dass das Browserfenster, dass nach dem Start im Fokus steht, durch „ESC“-Drücken geschlossen werden kann?

    Hast du eine Fernbedienung im Einsatz. Da gibt es die Möglichkeit die Kodi Befehle während des Abspielens weiterzuleiten.
    Die Option findest du unter Amazon VOD - Konfigurieren - Verschiedenes - 2te oder 3te Option von unten (nur so aus dem kopf).

    Falls du keine Fernbedienung hast kannst du das sicher über Eventghost realisieren.

  • So,

    nach dem Update von LibreELEC auf 7.90.008 und dem Amazon Addon gibts jetzt das Bild auch nicht mehr. Kein Bild und kein Ton, egal ob mit Inputstream oder über den Browser. Der Stream wird aber geladen (Netzwerkmonitor am Router), Log hab ich noch nicht angeschaut...

  • @popy:
    Also wenn ich das richtig verstehe, verwendest du EG zur Erzeugung von Systemevents, um die dann mit EG zu verarbeiten?
    Dazu würde ich mal schauen, ob da nicht Python eine Möglichkeit bietet, um den Umweg über EG wegzulassen.

    Die Yatze hat bei dir nicht funktioniert?
    Mal abgesehen von der Videosteuerung, da bei Browserwiedergabe ja eigentlich kein Video im Kodi abgespielt wird und daher die App nicht umspringt. Wobei sich die Tasten ja programmieren lassen.

    Hast du schon mal das xbmc Plugin für EG, zwecks der MCE Remote, probiert?
    Das sendet auch die Steuerbefehle an den Kodi, welche dann vom Addon verarbeitet werden und an den Browser senden.

  • Kurze Frage zur "Fallback"-Funktion:
    Hier sollte doch bei nicht möglicher Verwendung von inputstream, automatisch auf die im Fallback eingestellte Variante umgeswitcht werden - oder habe ich da etwas falsch verstanden?
    Das funktioniert bei mir nämlich nicht...
    Inputstream oder script/batch-Varianten direkt eingestellt funktionieren allerdings ohne Probleme.

    PS: Dem Nachwuchs und den Eltern alles, alles Gute @Sandmann

    Spoiler anzeigen

    WOHNZIMMER-HTPC:Asus H270M-Plus,i3-7100,Kingston 4GB,Milhouse nb,Samsung 128GB SSD,Silverstone LC-16,iMon+IR6,DVBViewer,Harmony Hub/Touch/KeyboardSERVER-HTPC:Asus Prime H270-Plus,i5-7500,Kingston 8GB,WIN10 Pro64,Samsung SSD,2xCineS2V6 unicable,Alphacrypt Classic mit MTD/HD+,VU+DUO4K/SKY CI+,DVBViewer-Server,Lights Out2SCHLAFZIMMER:Shield TV Pro 19, Maven Nerdsbuild, DVBViewerBAD:WeTekHub CE 9.0.3,Testmaschine, DVBViewerMobil-HTPC:Acer Iconia W700P,Milhouse nb,TVMosaicWohnzimmer:NVIDIA Shield TV Pro 19,Maven Nerdsbuild

  • @popy:
    Also wenn ich das richtig verstehe, verwendest du EG zur Erzeugung von Systemevents, um die dann mit EG zu verarbeiten?
    Dazu würde ich mal schauen, ob da nicht Python eine Möglichkeit bietet, um den Umweg über EG wegzulassen.

    Die Yatze hat bei dir nicht funktioniert?
    Mal abgesehen von der Videosteuerung, da bei Browserwiedergabe ja eigentlich kein Video im Kodi abgespielt wird und daher die App nicht umspringt. Wobei sich die Tasten ja programmieren lassen.

    Hast du schon mal das xbmc Plugin für EG, zwecks der MCE Remote, probiert?
    Das sendet auch die Steuerbefehle an den Kodi, welche dann vom Addon verarbeitet werden und an den Browser senden.


    Ja genau, bei jedem Tastendruck wird ein Event in Eventghost erzeugt dass ich dann weiterverarbeite.
    Hatte mich mit Eventghost beschäftigt um das "wo steuere ich Lautstärke" Problem zu lösen.
    So wie ich es oben gepostet habe funktioniert es nun super für mich.

    Problem mit der Lautstärke und Yatse ist folgendes:

    • Yatse steuert nur die Kodi Lautstärke -> komfortabel auch per Lautstärkewippe am Smartphone/Tablet
      Somit muss die System/Windows & TV Lautstärke auf ~75% erhöht werden um etwa die komplette Range auszunutzen.
    • Somit ergibt sich folgendes Problem -> andere Programme (Youtube & Amazon VOD im Browser) haben eine viel zu hohe Lautstärke und müssen wieder runtergeregelt werden.
      Dies habe ich mit Eventghost gelöst:

      • Startet der IE wird die Systemlautstärke auf 15% reduziert
      • Kommt über Yatse (oder MCE) ein Kodi Ändere Lautstärke, parst Eventghost das Event und setzt entsprechend die System/Windows Lautstärke

    Habe mir das nochmals durchgedacht, folgendes mache ich jetzt mehr/anders über meine Eventghost Events & Plugin Änderung:

    • MCE Rewind & Previous machen Cursor Taste links -> Zurückspulen um 10 Sekunden
    • MCE Forward & Skip mach Cursor Taste rechts -> Vorspulen um 10 Sekunden

      • Ich Vermute in der Funktion Input() könnte man zusätzlich zu Left/Right auf Rewind/Forward/Skip- /+ reagieren?
        Somit wäre das ohne Eventghost gelöst.
    • Cursor Taste Auf (von Yatse & MCE) & Volume Up -> Stellen Kodi Volume um-> Eventghost empfängt das als JSON Event und macht bei Amazon VOD aktiv System Volume Auf draus
    • Cursor Taste Ab (von Yatse & MCE) & Volume Down -> Stellen Kodi Volume um-> Eventghost empfängt das als JSON Event und macht bei Amazon VOD aktiv System Volume Ab draus

      • Wenn das Plugin z.B.: Zusätzlich auf Volume Up/Down reagiert und eine Option hätte zum umstellen der Kodi Lautstärke anstatt up/down weitersenden, wäre auch das Problem gelöst.

    Ich weiß das hört sich sehr kompliziert an, ev hat jemand eine bessere Lösung mit dem Lautstärken Dilemma :)
    Eine wäre, wie schon oft von Kodi Usern gewünscht dass man die System Lautstärke regeln kann und nicht eine Kodi interne!

    pOpY

  • Passieren tut dann gar nichts.
    Hab hier kurz den Ausschnitt (jetzt den Richtigen :whistling: ) eingefügt, der den Fehler beinhalten sollte....

    Vielen Dank!

    Bilder

    Spoiler anzeigen

    WOHNZIMMER-HTPC:Asus H270M-Plus,i3-7100,Kingston 4GB,Milhouse nb,Samsung 128GB SSD,Silverstone LC-16,iMon+IR6,DVBViewer,Harmony Hub/Touch/KeyboardSERVER-HTPC:Asus Prime H270-Plus,i5-7500,Kingston 8GB,WIN10 Pro64,Samsung SSD,2xCineS2V6 unicable,Alphacrypt Classic mit MTD/HD+,VU+DUO4K/SKY CI+,DVBViewer-Server,Lights Out2SCHLAFZIMMER:Shield TV Pro 19, Maven Nerdsbuild, DVBViewerBAD:WeTekHub CE 9.0.3,Testmaschine, DVBViewerMobil-HTPC:Acer Iconia W700P,Milhouse nb,TVMosaicWohnzimmer:NVIDIA Shield TV Pro 19,Maven Nerdsbuild

    2 Mal editiert, zuletzt von debutanker (10. November 2016 um 21:43)

  • Hey,

    erstmal vielen Dank an die Leute, die hier ihre Freizeit und viel Mühe reinstecken, dass das ganze läuft! Großartiges Projekt!

    Ich hab eine Frage, auch auf die Gefahr hin, mich als Idioten zu outen:

    Ich hab mir einen Pi3 zugelegt und versuche den als Mediathek laufen zu lassen. Dazu hab ich Libreelec installiert und danach auf die Version von Milhouse geupdated. Danach das Repo von sandmann installiert, den neusten inputstream.mpd aktiviert und das Amazon-Addon installiert. Soweit so Standard

    Das Amazon Addon tut an sich auch. Einige Filme und Serien kann ich anschauen, bei einigen kommt die Meldung, dass aufgrund von Amazons Änderungen bezüglich DRM der Inputstream nicht tut.
    Meine Frage (wozu ich im Internet nirgendwo was gefunden habe): ist das so normales Verhalten oder hab ich irgendeine Installation/Einstellung verbockt? Also, dass einige Filme und Serien gehen und andere wiederrum nicht.

    Gruß

  • @someuser123
    Hast alles richtig gemacht - nur Amazon nicht... :D

    • wegen DRM-Anpassungen seitens Amazon, bleibt bei manchen Videos das Bild schwarz - der Ton wird wiedergegeben bzw. eine Fehlermeldung wird ausgegeben.
      Das Problem ist bekannt und es wird daran gearbeitet. Bis dahin sollte, wenn möglich, eine andere Wiedergabemethode verwendet werden.

    Die andere Methode geht bei deinem System allerdings nicht....

    Spoiler anzeigen

    WOHNZIMMER-HTPC:Asus H270M-Plus,i3-7100,Kingston 4GB,Milhouse nb,Samsung 128GB SSD,Silverstone LC-16,iMon+IR6,DVBViewer,Harmony Hub/Touch/KeyboardSERVER-HTPC:Asus Prime H270-Plus,i5-7500,Kingston 8GB,WIN10 Pro64,Samsung SSD,2xCineS2V6 unicable,Alphacrypt Classic mit MTD/HD+,VU+DUO4K/SKY CI+,DVBViewer-Server,Lights Out2SCHLAFZIMMER:Shield TV Pro 19, Maven Nerdsbuild, DVBViewerBAD:WeTekHub CE 9.0.3,Testmaschine, DVBViewerMobil-HTPC:Acer Iconia W700P,Milhouse nb,TVMosaicWohnzimmer:NVIDIA Shield TV Pro 19,Maven Nerdsbuild

  • Deaktiviert.
    Wie gesagt funktioniert script/batch bei mir wenn ich es direkt einstelle auch ohne Probleme nur eben mit dem fallback nicht?!

    Spoiler anzeigen

    WOHNZIMMER-HTPC:Asus H270M-Plus,i3-7100,Kingston 4GB,Milhouse nb,Samsung 128GB SSD,Silverstone LC-16,iMon+IR6,DVBViewer,Harmony Hub/Touch/KeyboardSERVER-HTPC:Asus Prime H270-Plus,i5-7500,Kingston 8GB,WIN10 Pro64,Samsung SSD,2xCineS2V6 unicable,Alphacrypt Classic mit MTD/HD+,VU+DUO4K/SKY CI+,DVBViewer-Server,Lights Out2SCHLAFZIMMER:Shield TV Pro 19, Maven Nerdsbuild, DVBViewerBAD:WeTekHub CE 9.0.3,Testmaschine, DVBViewerMobil-HTPC:Acer Iconia W700P,Milhouse nb,TVMosaicWohnzimmer:NVIDIA Shield TV Pro 19,Maven Nerdsbuild

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!