[ANNOUNCE] iVDR 0.3.3, istreamdev 1.0.1, ffmpeg, segmenter Paket Installation

  • Vorwort


    Nach dem ich keine Lust mehr hatte nach jedem Neuinstallieren den iVDR incl. Abhängigkeiten neu zu bauen, habe ich fast alles in Pakete gebaut.
    Falls diese noch nicht optimal erstellt wurden müsst ihr das verzeihen da ich hier noch am üben bin ;)


    Die Binaries (ffmpeg, segmenter) liegen unter /usr/bin das eigentliche iVDR unter /var/www/ivdrdata, /var/lib/cgi-bin/ivdr und/oder /var/www/istreamdev.


    Getestet und gebaut hab ich die Pakete unter YaVDR 0.5, Ubuntu Precise, für Ubuntu Trusty kann ich leider segmenter nicht bauen.


    Das Repository kann man wie folgt einbinden:

    Code
    1. add-apt-repository ppa:frodo-vdr/stable-ivdr


    Falls Abhängigkeiten fehlen sollten müßt Ihr noch mein main Repository einbinden:

    Code
    1. add-apt-repository ppa:frodo-vdr/main


    Bei der Installation der Pakete ivdr oder istreamdev werden folgende Pakete automatisch mit installiert bzw. ersetzt:
    ffmpeg libx264-132 segmenter


    libav/ffmpeg habe ich geringfügig abgeändert da das Original von Ubuntu libx264 nicht mit eingebunden hatte im Original wird static vor shared in der debian/confflags definiert in der debian/rules führt das dazu das die Version ohne libx264 zu Zuge kommt.


    Wer libx264-132 selbst übersetzen möchte benötigt hierzu yasm in Version 1.2.0 dieser liegt in einem anderem Repository (ppa:frodo-vdr/main).


    iVDR
    Die Installation entspricht in etwa der Anleitung von Phil auf http://i-vdr.de/


    Nach dem einbinden des Repositories reicht ein

    Code
    1. sudo apt-get update
    2. sudo apt-get install ivdr


    Zur vollständigen Installation sind noch zwei Skripte auszuführen welche unter /usr/share/ivdr liegen.

    Code
    1. sudo /usr/share/ivdr/install_ivdr.sh


    und

    Code
    1. sudo /usr/share/ivdr/install_lighttpd.sh
    2. oder
    3. sudo /usr/share/ivdr/install_apache2.sh


    install_ivdr.sh: Erstellt fehlende Verzeichnisse und passt rc.local an um /dev/shm/ram beim booten zu erstellen.
    Einiges des Skripts install_ivdr.sh ist eventuell bereits in das Paket iVDR eingeflossen, so das es möglich ist das man dieses nicht mehr benötigt. Ich bin aber noch nicht dazu gekommen dies zu testen.


    install_lighttpd.sh: Installiert lighttpd und passt die Konfigurationsdateien von lighttpd für iVDR und YaVDR an (z.B. Port 80 -> 8080).


    install_apache2.sh: Installiert Apache und passt die Konfigurationsdateien von apache für iVDR und YaVDR an (z.B. Port 80 -> 8080).


    Nach der Installation ist iVDR unter folgender URL erreichbar:
    http://[yavdr host oder ip]:8080/cgi-bin/ivdr/ivdr.pl
    bei der Apache Installation reicht
    http://[yavdr host oder ip]:8080/ivdr


    istreamdev


    istreamdev kann nun auch installiert werden allerdings habe ich es nicht mit lighttpd hinbekommen, wer ivdr und istreamdev gleichzeitig installieren möchte sollte dies mit einem Apache Webserver tun.


    Code
    1. sudo apt-get update
    2. sudo apt-get install istreamdev
    3. sudo /usr/share/istreamdev/install_lighttpd.sh
    4. oder
    5. sudo /usr/share/istreamdev/install_apache2.sh


    Falls iVDR mit lighttpd installiert wurde wird das install_apache2.sh nicht ausgeführt.


    install_apache2.sh: Installiert Apache und passt die Konfigurationsdateien von apache für istreamdev und YaVDR an (z.B. Port 80 -> 8080).


    Der Benutzer und das Passwort werden in der /var/www/istreamdev/config.php gesetzt, dort lässt sich auch das Debuging aktivieren:
    Benutzer: istreamdev
    Passwort: iguest


    Nach der Installation ist istreamdev unter folgender URL erreichbar:
    http://[yavdr host oder ip]:8080/istreamdev


    Falls jemand die Konfiguration von istreamdev für lighttpd kennt darf er mir diese gerne zukommen lassen, dann bastle ich hierfür auch ein Installationsskript.
    Anstelle der Installationsskripte würde ich gerne Pakete bauen, bei meinen bisherigen Versuchen ging zwar damit die einmalige Installation, aber nach einem Update wegen höherer Paketversion fliegt der Paketmanager auf die Nase.

    Gruß
    Frodo

    Dieser Beitrag wurde bereits 11 Mal editiert, zuletzt von Frodo ()

  • Beim Streamen folgender Fehler:


    Something went wrong!
    http://0.0.0.0:3000/TS/1: Input/output error

    VDR1 yaVDR 0.6: Gehäuse: OrigenAE X15e Board: Giada MG-C1037-SL Grafik: GT620 CPU: Celeron 1037U Ram: 2GB DVB: CineS2 Festplatte: 2x1TB
    VDR2 yaVDR 0.6: Gehäuse: Streacom F7C Board: Zotac Z68ITX-B-E Grafik: GT430 CPU: Pentium G630 Ram: 8GB DVB: CineS2 Festplatte: 30GB mSata + 500GB 2,5
    VDR3 yaVDR 0.6:  Gehäuse: HP N36L Ram: 8GB DVB: 2 x CineS2 Festplatten: 2x 1,5TB und 2x2TB
    OctopusNet V1 + Rack 4xS2 + 8xS2

  • Ein bischen mehr Informationen wären schon angebracht ... Nicht nur den Fehler sondern auch ein paar Zeilen davor.


    Da könnte dann nämlich stehen wo der Fehler liegt (/tmp/iVDR/ivdr.log):

    Code
    1. [Mon Jun 3 16:30:08 2013] ivdr.pl: [tcp @ 0x1ff09e0] TCP connection to 0.0.0.0:3000 failed: Connection refused
    2. [Mon Jun 3 16:30:08 2013] ivdr.pl: http://0.0.0.0:3000/TS/1: Input/output error at components//istream.pl line 298.


    Ich schaue mal in mein Orakel und würde sagen Du hast ivdr nicht auf einem Deiner YaVDRs installiert sondern auf einem entfernten Rechner.


    In dem Fall müssen natürlich die Einstellungen angepasst werden, zumindest folgendes ist ein muss um zumindest die Grundfunktionen zu testen:


    Einstellungen -> VDR-Einstellungen -> Adresse: xxx.xxx.xxx.xxx
    Einstellungen -> VDR-Einstellungen -> Live-Stream: http://xxx.xxx.xxx.xxx:3000/TS/
    Die xxx.xxx.xxx.xxx sind durch die IP Adresse deines VDRs zu ersetzen ausserdem muss noch eine passende /var/lib/vdr/channels.conf vorhanden sein, usw. usw....


    Eventuell bringt aber auch ein nochmaliges

    Code
    1. apt-get update
    2. apt-get dist-upgrade

    den Erfolg. Bei meinen Tests wurden häufig nicht alle ffmpeg Libraries beim erstenmal aktualisiert,
    bisher hatte dies aber nie dazu geführt das es nicht ging, da bereits vorher die Libs installiert waren und hierdurch bereits passende Bilbliotheken vorliegen.


    Ich habe nun eine neue Version hochgeladen welche auch ein Skript beinhaltet zur apache2 Installation:

    Code
    1. sudo /usr/share/ivdr/install_apache2.sh

    Es kann nur einer der Webserver installiert werden, falls bereits apache oder lighttpd installiert sind bricht das Skript ab.
    Dies tue ich sicherheitshalber da ich die Konfiguration für iVDR anpasse und den Port auf 8080 ändere - wer bereits Apache oder lighttpd installiert hat weis sicherlich wie er selbst die Konfiguration anpassen kann.
    Eine zusätzliche Installation von z.B. istreamdev sollte aber kein Problem sein.


    Die iVDR URL bei der Apache Installation zum Aufruf kann auch verkürzt eingegeben werden:
    http://[yavdr host oder ip]:8080/ivdr

    Gruß
    Frodo

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Frodo ()

  • Hatte leider zu wenig Zeit, habs nur schnell mal installiert.
    Installiert hab ich es auf meinen beiden Yavdrs. Hatte mittlerweile sogar ein Bild auf dem iPhone (vom Origen aus).
    Werde Morgen mal genauer testen.
    Gruß und Danke für die Arbeit

    VDR1 yaVDR 0.6: Gehäuse: OrigenAE X15e Board: Giada MG-C1037-SL Grafik: GT620 CPU: Celeron 1037U Ram: 2GB DVB: CineS2 Festplatte: 2x1TB
    VDR2 yaVDR 0.6: Gehäuse: Streacom F7C Board: Zotac Z68ITX-B-E Grafik: GT430 CPU: Pentium G630 Ram: 8GB DVB: CineS2 Festplatte: 30GB mSata + 500GB 2,5
    VDR3 yaVDR 0.6:  Gehäuse: HP N36L Ram: 8GB DVB: 2 x CineS2 Festplatten: 2x 1,5TB und 2x2TB
    OctopusNet V1 + Rack 4xS2 + 8xS2

  • @Phil schön das Du auch noch hier im Forum aktiv bist. :)
    Mein Problem mit den Logos was ich vor längerer Teit in Deinem Beitrag gemeldet hatte konnte ich lösen, es lag einfach daran das ich zu viele Sender in der channels.conf hatte und diese nicht in iVDR eingeschränkt hatte. Mit maximal 250 Channels werden die Bilder angezeigt. Es funktionieren auch die Logos aus /usr/share/vdr/plugins/skinnopacity/logos vom skinnopacity. Wichtig ist anscheinend nur das es png-Images sind. Ohne Bilder ist das Menü etwas schneller, wer hier bedarf hat einfach den Pfad zu den Logos aus den Einstellungen entfernen.


    @all
    Falls bei den Streamarten was wichtiges fehlt oder Ihr besser Einstellungen kennt nur her damit. Ich habe die vorhanden Streamarten zwar getestet bin aber nicht unbedingt mit allen zufrieden.

    Gruß
    Frodo

  • @ Frodo
    Dein install_apache2.sh Script erzeugt bei mir folgenden Fehler:

    Code
    1. ...
    2. Enabling module perl.
    3. To activate the new configuration, you need to run:
    4. service apache2 restart
    5. Trigger für libc-bin werden verarbeitet ...
    6. ldconfig deferred processing now taking place
    7. /usr/share/ivdr/install_apache2.sh: Zeile 31: [: -l: Einstelliger (unärer) Operator erwartet.
    8. * Restarting web server apache2


    Musste den Symlink manuell setzen.


    Gruß
    Oli

    Mein Blog: www.oli82.de 
    Mein System: yaVDR 0.5a Headless @ ASRock H61M-ITX, i3-2120, 8GB RAM, 64 GB SSD, TT-budget S2-4100 DVB-S PCIe, BeQuiet L7 300W, Bitfenix Prodigy

  • So, VDR1 geht, aber VDR2 bringt Fehlermeldung:


    VDR1 yaVDR 0.6: Gehäuse: OrigenAE X15e Board: Giada MG-C1037-SL Grafik: GT620 CPU: Celeron 1037U Ram: 2GB DVB: CineS2 Festplatte: 2x1TB
    VDR2 yaVDR 0.6: Gehäuse: Streacom F7C Board: Zotac Z68ITX-B-E Grafik: GT430 CPU: Pentium G630 Ram: 8GB DVB: CineS2 Festplatte: 30GB mSata + 500GB 2,5
    VDR3 yaVDR 0.6:  Gehäuse: HP N36L Ram: 8GB DVB: 2 x CineS2 Festplatten: 2x 1,5TB und 2x2TB
    OctopusNet V1 + Rack 4xS2 + 8xS2

  • Das sieht so aus als könnte ivdr nicht auf das streamdev-plugin zugreifen.
    Du solltest die Einstellungen des Plugins mit denen des funktionierenden VDR vergleichen.

    Gruß
    Frodo

  • @ Frodo
    Dein install_apache2.sh Script erzeugt bei mir folgenden Fehler:

    Code
    1. ...
    2. Enabling module perl.
    3. To activate the new configuration, you need to run:
    4. service apache2 restart
    5. Trigger für libc-bin werden verarbeitet ...
    6. ldconfig deferred processing now taking place
    7. /usr/share/ivdr/install_apache2.sh: Zeile 31: [: -l: Einstelliger (unärer) Operator erwartet.
    8. * Restarting web server apache2


    Musste den Symlink manuell setzen.


    Gruß
    Oli


    Ist gefixed.


    [EDIT ON]
    Ich habe versucht die Installation mit apache oder lighthttp als Paket zu bauen,
    hierzu gibt es nun die Pakete ivdr-lighttpd und ivdr-apache2.


    Die Installation funktioniert ich weis aber nicht ob noch Fehler vorhanden sind, im speziellen das modifizieren der Port Nummern von 80 nach 8080 hat mir einige Probleme in den debian Install Scripts bereitet.
    Eventuell kommt es bei späteren Updates der Pakete zu Fehlermeldungen, dies hat zwar keine Nebenwirkungen auf die Installation ist aber falls dies zutrifft sehr unschön ...


    Die Pakete entferne ich wieder da sie bei Updates nicht funktionieren.
    [EDIT OFF]

    Gruß
    Frodo

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Frodo ()

  • Es gibt nun auch istreamdev - 1.0.1-0.5 als Paket, allerdings ist es mir nicht gelungen diesen streaming Client mit lighttpd zu nutzen weshalb es nur ein Skript füt apache gibt.


    In der Version < 1.0.1-0.5 ist noch der gleiche Bug wie bei iVDR.


    Die Installation ist identisch der von iVDR.

    Code
    1. sudo apt-get update
    2. sudo apt-get install istreamdev
    3. sudo /usr/share/istreamdev/install_apache2.sh


    ACHTUNG: Im Monent nur für apache geeignet:

    Gruß
    Frodo

  • Hallo
    Nach angleichen der setup.conf Einträge für streamdev-server läuft es nun auf beiden VDRs, jedoch ist die CPU-Last leider zu hoch.
    Hätte doch einen stärkeren Prozzi nehmen sollen.
    Gruß

    VDR1 yaVDR 0.6: Gehäuse: OrigenAE X15e Board: Giada MG-C1037-SL Grafik: GT620 CPU: Celeron 1037U Ram: 2GB DVB: CineS2 Festplatte: 2x1TB
    VDR2 yaVDR 0.6: Gehäuse: Streacom F7C Board: Zotac Z68ITX-B-E Grafik: GT430 CPU: Pentium G630 Ram: 8GB DVB: CineS2 Festplatte: 30GB mSata + 500GB 2,5
    VDR3 yaVDR 0.6:  Gehäuse: HP N36L Ram: 8GB DVB: 2 x CineS2 Festplatten: 2x 1,5TB und 2x2TB
    OctopusNet V1 + Rack 4xS2 + 8xS2

  • Ich habe bei mir auch die Erfahrung gemacht das Atom CPUs zu langsam sind. Bei kleiner Auflösung und SD Material funktioniert es aber dennoch.
    Bei istreamdev sind die Auflösungen deutlich kleiner als meine Versuche in iVDR:
    'edge' => '128k 64k 240x160'
    '3g' => '350k 64k 408x272'
    'wifi' => '512k 128k 480x320'


    Bei Gelegenheit werde ich diese Varianten in iVDR nachpflegen wobei das ja auch jeder selbst machen kann.


    Die andere Variante ist zusätzlich istreamdev installieren, aber am besten noch 2 Stunden warten im Moment ist noch ein Bug (-l anstatt -L) im apache install Skript.

    Gruß
    Frodo

  • Frodo und Phill, ich habe eine Frage zu "segmenter". Ist das hier dieselbe Source oder neuer/älter/besser/schlechter? http://m3u8-segmenter.inodes.org/


    Ist es wichtig, dass es von hier kommt? http://svn.assembla.com/svn/legend/segmenter/
    Ist das das Original von Chase Douglas?


    Gruß
    hepi

  • Die Sourcen die ich benutzt habe stammen von https://launchpad.net/~johnf-inodes, allerdings liesen sie sich nicht übersetzen beim copieren zwischen den Repositories.
    Erst durch einen Patch den ich über Google gefunden habe konnte ich segmenter für 64 Bit übersetzen.


    Aber Du hast Recht das Original stammt von Chase Douglas im Source Code steht sein Name und als Copyright 2009. John Francesco Ferlito hat das ganze paketiert und mit Man Pages angereichert.
    Die m3u8-segmenter und das segmenter Pakete von John Francesco Ferlito von seinem PPA sind defekt, weshalb ich mir selbst helfen musste.


    Ich vermute das m3u8-segmenter neuer ist, da es sich aber nicht übersetzen lies und sowohl der ivdr als auch der istreamdev Entwickler die Version ohne m3u8 verwendet haben, habe ich nicht weiter geforscht.


    Nachdem ich das geschrieben habe, analysierte ich warum sich m3u8-segmenter nicht bauen lies, dabei habe ich festgestellt das die Depends fehlten.


    Ein Austausch von segmenter durch m3u8-segmenter ist allerdings ohne Änderung des Aufrufs nicht möglich da sich die Syntax geändert hat:


    # m3u8-segmenter -h
    Usage: m3u8-sementer [OPTION]...


    HTTP Live Streaming - Segments TS file and creates M3U8 index.
    -i, --input FILE TS file to segment (Use - for stdin)
    -d, --duration SECONDS Duration of each segment (default: 10 seconds)
    -p, --output-prefix PREFIX Prefix for the TS segments, will be appended
    with -1.ts, -2.ts etc
    -m, --m3u8-file FILE M3U8 output filename
    -u, --url-prefix PREFIX Prefix for web address of segments, e.g. http://example.org/video/
    -n, --num-segment NUMBER Number of segments to keep on disk
    -h, --help This help



    # segmenter
    Usage: segmenter <input MPEG-TS file> <segment duration in seconds> <output MPEG-TS file prefix> <output m3u8 index file> <http prefix> [<segment window size>]


    Falls jemand das Paket benötigt ich hoffe das ich es ins Repository ppa:frodo-vdr/testing-vdr bekomme...

    Gruß
    Frodo

    Dieser Beitrag wurde bereits 6 Mal editiert, zuletzt von Frodo ()

  • Perfekt!!!! Dein Post kommt genau zur richtigen Zeit. Bin momentan dabei am compilen des segmenters schier zu verzweifeln, da er immer irgendwelche Fehlermeldungen hat. Passt Dein Paket auch für Quantal??? Ansonsten beschreib doch kurz, einem Anfänger in Sachen Compiling, wie Du das geschafft hast und wo ich die Quellen inklusive Patch finde.
    Ansonsten will ich folgendes mit dem m3u8 segmenter probieren, den ich übrigens einwandfrei compilen konnte:


    1. Symlink setzen -> aus m3u8-segmenter wird somit segmenter
    2. Abändern der Syntax in der istream.sh -> Hier kann man problemlos die Prefixes -i -d etc ergänzen.


    Allerdings habe ich es noch nicht probiert. Wenn der segmenter nur hier aufgerufen wird, müsste das logischerweise klappen.


    VG


    Christian

  • Ein Austausch von segmenter durch m3u8-segmenter ist allerdings ohne Änderung des Aufrufs nicht möglich da sich die Syntax geändert hat


    Danke für Deine Recherche und Auskunft. Ein Anpassen an die m3u8-Version lohnt sich ja primär nur dann, wenn entweder das Paketieren einfacher wird oder - besser noch - Features/Performance dazugewonnen werden. Ich kenne mich da aber so rein gar nicht aus bisher, ich habe noch einen alten iPod touch aus 2010, mit dem könnte ich Deine Pakete nächste Woche mal testen.


    EDIT: Von den Parametern her ähneln sich die beiden Versionen ja recht stark, nur das hier springt mir ins Auge:


    Code
    1. -n, --num-segment NUMBER Number of segments to keep on disk


    Hat das ein Äquivalent in der anderen Version? Ist das "[<segment window size>]"?


    Viele Grüße
    hepi

  • chris0478
    Ich habe die Pakete nur gegen precise gebaut: Die Quellen findest Du im Ubuntu Launchpad.
    Falls das bauen in der PPA Umgebung funktioniert findest du unter "add-apt-repository ppa:frodo-vdr/unstable-vdr" die Quantal Packete (~quantal), wenn sie funktioniere gib mir bescheid dann copiere ich sie nach testing-vdr.


    hepi
    Leider kann ich zu den Parametern nichts sagen, da hilft nur probieren.


    Ich habe segmenter gegen m3u8-segmenter versuchsweise getauscht und den Aufruf verändert.


    Folgende Aufrufe hatte ich probiert:
    /usr/bin/segmenter ./fifo 10 stream stream.m3u8 /ram/session0/ 20
    /usr/bin/m3u8-segmenter --input ./fifo --duration 10 --output-prefix stream --m3u8-file stream.m3u8 --url-prefix /ram/session0/ --num-segment 20


    Der Aufruf hat prinzipell funktioniert allerdings bleibt bei m3u8-segmenter das Bild stehen oder ist gleich nur schwarz und nur der Ton läuft weiter.
    Ich habe das ganze mit einigen Auflösungen durchprobiert, das Problem tritt wohl nicht bei allen auf. Da ich aber nur wenige Minuten probiert habe muss das nichts bedeuten.

    Gruß
    Frodo

    Dieser Beitrag wurde bereits 4 Mal editiert, zuletzt von Frodo ()