[ANNOUNCE] - XMLAPI Plugin und Windows 10 App/ Android App

  • Das Plugin kann nun auch HLS (HTTP Live Streaming) Streams erzeugen. Ein Segmenter ist dabei direkt im Plugin integriert und die M3U8 und die Segemente werden dabei nicht in Dateien geschrieben sondern direkt in Buffer geschrieben, welche der im Plugin integrierte Webserver bereit stellt. Das ganze hat den Vorteil, dass das Plugin den Zugriff auf die M3U8 überwachen kann und den Stream und somit den Transcodingprozess automatisch beenden kann sobald kein Client mehr darauf zu greift.

  • So die Android App steht jetzt auch in Grundzügen.
    Ist noch nicht sonderlich hübsch aber dafür funktional :]



    Features:

    • Mehrere VDRs konfigurierbar
    • Gruppierte Kanalliste mit Suchfunktion und der Möglichkeit auf ein ausgewählten Kanal zu schalten
    • Wiedergabe von transkodierten Live-Streams (direkt in der App -> kein zusätzlicher Player erforderlich)
    • Wiedergabe von transkodierten Aufnahme-Streams mit diversen Sprungoptionen da Spulen bei transcodierten Streams nicht möglich ist
    • EPG mit diversen Filter- und Suchoptionen
    • Aufnahmen ansehen/löschen/wiederherstellen/endgültig löschen
    • Timer -> manuell anlegen/löschen oder direkt aus Epg-Eintrag erstellen
    • Fernbedienung


    Voraussetzungen:

    • VDR :rolleyes:
    • XMLAPI Plugin V1.4.0 oder neuer
    • Streamdev-Server
    • ffmpeg
    • Optional ein SSL-Zertifikat, wenn alles verschlüsselt über die Bühne gehen soll
    • Smartphone mit Android 5.0 oder neuer


    Was geht noch nicht:

    • Timer bearbeiten
    • Die App ist noch nicht für Tablets optimiert, da mir da noch ein Konzept fehlt. Außerdem ist die Motivation nicht so hoch, da ich selbst kein Tablet besitze


    Wo gibts die App:


    Derzeit nur als APK und zwar HIER
    Wenn die gröbsten Fehler ausgemerzt sind kommt sie auch in den Store


    Hier gibts noch paar Screenshots:
    Screenshots



    Viel Spaß beim testen
    Gruß Karl

  • sehr schön... komme erst morgen zum testen.
    wo bleibt iOS ;)

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

  • So die Android App steht jetzt auch in Grundzügen.
    Ist noch nicht sonderlich hübsch aber dafür funktional :]
    ...
    Viel Spaß beim testen


    Moin,


    die Android-App sieht ja echt vielversprechend aus.


    Ich scheitere leider schon beim bauen des Plugins. Dürfte daran liegen, dass bei mir bereits ffmpeg 3 zu Einsatz kommt:



    Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Für Arch Linux gibt es auch noch ein ffmpeg2.8 Paket - wie man Software dagegen baut, indem man den PKG_CONFIG_PATH entsprechend übersteuert, kannst du dir z.B. in diesem PKGBUILD für softhddevice von Copperhead ansehen: https://github.com/VDR4Arch/vd…vdr-softhddevice/PKGBUILD


    Edit: da muss man beim Makefile des Plugins wohl noch nacharbeiten, damit es sich die Informationen zu den ffmpeg-Bibliotheken per pkgconfig holt...


    Edit 2:


    Dann kann man es so bauen:

    Code
    PKG_CONFIG_PATH="/usr/lib/ffmpeg2.8/pkgconfig" make

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Edited once, last by seahawk1986 ().

  • Erster Test. Grundsätzlich läuft das. Leider hat mein Fire HDX nur Android 4.4.4, sodass ich auf das Galaxy S4 meines Sohnes ausweichen musste.
    Schade, dass es erst ab 5.0 läuft, da das HDX mit Sicherheit kein Update mehr erfahren dürfte.
    Ich habe bei meinem VDR das Problem, dass die configs beim Start in /etc/vdr/plugins/xmlapi erstellt werde, das plugin selbst aber danach in /var/lib/vdr/plugins/xmlapi sucht. Rüberkopiert, "Fehler" behoben.
    Super finde ich, dass sich User und Admin getrennt administrieren lassen.
    Ist es auch möglich, den Stream im lokalen Netz auch ohne Transcoding an das Device weiterzuleiten? Würde etwas CPU-Last sparen.
    Probleme habe ich bei (crypted) 1080i Streams. Da will das Ding nur manchmal oder eben gar nicht.


    Öfftentlich 720p lief. Siehe Bild. Für den ersten Wurf sehr, sehr anständig. Wo kommen die Senderlogos in deinen Screenshots her?
    Schriftgröße könnte etwas kleiner oder einstellbar sein

  • Quote

    Leider hat mein Fire HDX nur Android 4.4.4, sodass ich auf das Galaxy S4 meines Sohnes ausweichen musste.

    Muss ich mal schauen ob ich es für Android 4.4 downgegrade kriege.

    Quote

    Ist es auch möglich, den Stream im lokalen Netz auch ohne Transcoding an das Device weiterzuleiten? Würde etwas CPU-Last sparen.

    Nein :)
    Da Android standardmäßig kein MPEG2 kann wird das schwierig.
    Das würde zwar am Server CPU-Last sparen aber auf dem Smartphone die CPU-Last steigern.

    Quote

    Probleme habe ich bei (crypted) 1080i Streams. Da will das Ding nur manchmal oder eben gar nicht.

    Keine Ahnung ob du das mit einem CI-Modul oder irgendwelchen illegalen Plugins betreibst.
    Ich hatte die Probleme auch und wie es sich raus stellte, ist das wohl ein Bug in Streamdev
    Nach dem Patchen von Streamdev, hatte ich die Probleme nicht mehr.

    Quote

    Wo kommen die Senderlogos in deinen Screenshots her


    Die Logos habe ich mir von verschiedenen Stellen zusammengesammelt.
    Unter anderem von 3PO
    Die müssen dann unter /var/lib/vdr/plugins/xmlapi/logos abgelegt werden.

    Quote

    Schriftgröße könnte etwas kleiner oder einstellbar sein

    Im Emulator sah alles viel kleiner aus :rolleyes:


    seahawk1986
    Danke für den Patch.
    Werde ich integrieren

  • So habe eine neue Version hochgeladen.


    Die App sollte jetzt auch mit Android 4.4 funktionieren.
    Sonst habe ich nur die Schrift an manchen Stellen verkleinert und diverse Bugs beseitigt die unter Android 4.4 auftraten.


    Falls die Streams unter Android 4.4 nicht gehen, liegt das bestimmt daran, dass das Gerät mit dem H264 Main Profile nicht klar kommt.


    Dazu die presets.ini bearbeiten und -vprofile main gegen -vprofile baseline tauschen.


    Wenn verschlüsselte Sender nicht gehen kann man auch probieren die -analyzeduration in den Presets anzupassen. Also von z.B. von 1M auf 2M oder 3M wechseln.

  • Moin,


    anbei ein patch, damit xmlapi mit ffmpeg3 baut:



    Erster Eindruck von der Android-App:
    Funktioniert auf meinem Nexus 5X gut, sehr schön.


    Mein VDR kommt bei der HD-Transkodierung allerdings ziemlich ins schwitzen, ich werde mal über die ffmpeg presets.ini versuchen, nvenc oder intel quicksync zu verwenden (gibts hier ja schon einen thread von jrie oder hannemann dazu).


    Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Läuft jetzt auch auf dem Fire HDX mit Android 4.4.4! Vielen Dank!
    Logos sehe ich noch immer keine, obwohl ich sie in das von Dir benannte Verzeichnis geschmissen hab.
    Sieht auch auf dem 7" Tablet sehr anständig aus. Landscape (außer im Playbackmode) ist gar nicht vorgesehen?
    Ist etwas umständlich, wenn man das Tablet zur Bedienung immer erst drehen muss. Insbesondere in der Badewanne ;)
    Wäre es möglich, die App so konfigurierbar zu machen, dass das Playback nicht sofort startet, wenn man auf einen seiner tippt?
    Leider habe ich auch keinerlei Einflussmöglichkeiten, wenn der Stream mal im Landscapemode läuft. Hilft nur, Device drehen.
    Derweil experimentiere ich mal mit den presets. Sieht alles schon sehr beachtlich aus.

    Images

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

    Edited once, last by sh4 ().

  • Tach,


    beim Abspielen von bestimmten Aufnahmen bekomme ich einen error. Vermutlich müssen Sonderzeichen im filenamen wie ")" irgendwie escaped bzw. der filename mit quotes umschlossen werden:


    Code
    Jul 31 16:48:41 vdrone vdr[906]: [1301] xmlapi: request /recstream.ts?filename=/srv/vdr/video/Heiter_bis_toedlich/Hubert_und_Staller_(78)/2016-04-13.18.44.1-0.rec&preset=Nvenc_mid
    Jul 31 16:48:41 vdrone vdr[906]: [1301] xmlapi: FFmpeg Cmd=ffmpeg -analyzeduration 1M  -i "concat:$(ls -1 /srv/vdr/video/Heiter_bis_toedlich/Hubert_und_Staller_(78)/2016-04-13.18.44.1-0.rec/*.ts | perl -0pe 's/\n/|/g;s/\|$//g')" -f mpegts -c:v nvenc_h264 -bufsize 2000k -maxrate 1200k -g 50 -map 0:v -map a:0 -vf "yadif=0:-1:1, scale=640:360" -preset medium -vprofile main  -acodec libmp3lame -ab 96k -ar 44100 -ac 2 -async 1 pipe:1
    Jul 31 16:48:42 vdrone vdr[906]: [1301] xmlapi: Stream started
    Jul 31 16:48:42 vdrone vdr[906]: sh: command substitution: line 1: syntax error near unexpected token `('
    Jul 31 16:48:42 vdrone vdr[906]: sh: command substitution: line 1: `ls -1 /srv/vdr/video/Heiter_bis_toedlich/Hubert_und_Staller_(78)/2016-04-13.18.44.1-0.rec/*.ts | perl -0pe 's/\n/|/g;s/\|$//g')"'
    Jul 31 16:48:42 vdrone vdr[906]: [1301] xmlapi: Stream stopped

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Transcodieren mit nvenc (wie hier beschrieben) funktioniert auch, damit läuft dann auch HD mit 50% CPU auf meiner Maschine.
    Voraussetzung ist ein ffmpeg binary mit nvenc-Unterstützung.


    Meine aktueller preset-Eintrag (schraube aber noch dran rum :)

    Code
    [Nvenc_mid]
    Cmd=-analyzeduration 1M {start} -i "{infile}" -f mpegts -c:v nvenc_h264 -bufsize 2000k -maxrate 1200k -g 50 -map 0:v -map a:0 -vf "yadif=0:-1:1, scale=640:360" -preset medium -vprofile main  -acodec libmp3lame -ab 96k -ar 44100 -ac 2 -async 1 pipe:1
    MimeType=video/mpeg
    Ext=.ts

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Logos sehe ich noch immer keine, obwohl ich sie in das von Dir benannte Verzeichnis geschmissen hab.


    Geh mal ins Menü "Einstellungen" und dann mit back wieder zurück.
    Dann läd die app die channnellist neu, danach waren bei mir die logos da ....

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Abend

    Quote

    beim Abspielen von bestimmten Aufnahmen bekomme ich einen error. Vermutlich müssen Sonderzeichen im filenamen wie ")" irgendwie escaped bzw. der filename mit quotes umschlossen werden:


    Jupp da fehlten paar Quotes.
    Ist in der aktuellen GIT behoben.
    Dein Patch, damits mit ffmpeg3 compiliert, ist auch eingeflossen.
    Der Patch von Seahawk1986 auch

  • Danke für die fixes.


    Sieht so aus, als ob du den ffmpeg3 patch 1:1 übernommen hast. Baut es denn dann noch mit ffmpeg 2.x?


    Ansonsten habe ich mich mal an einer Versionsprüfung für ffmpeg versucht:


    Aufnahmen mit Sonderzeichen wie "(" laufen jetzt :)

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein


  • Geh mal ins Menü "Einstellungen" und dann mit back wieder zurück.
    Dann läd die app die channnellist neu, danach waren bei mir die logos da ....

    exakt so war es, danke

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

  • Hatte grade einen segfault beim Versuch, 10 min "vorzuspulen". Vielleicht kann man ja anhand des backtraces was erkennen.


    Ansonsten ist die app richtig klasse. Livestreaming ist bei mir über mehrere Stunden absolut stabil.
    Läuft auf "allen meinen Androiden" (phone, 8 und 10 Zoll Tablet, Android 6.0 / 7.0)


    Vielen Dank für die Entwicklung der Android-App, obwohl du sie selbst ja offensichtlich gar nicht brauchst .. :)





    Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!