easyVDR

Normale Version: iVDR v0.3.3 - Installation auf easyVDR 1.0
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Liebe easyVDR-Gemeinde,

zuerst einmal ein herzliches Dankeschön von mir an alle Entwickler und Mitwirkenden, die hinter diesem Projekt stehen - tolle Arbeit !!

Da ich bemerkt habe, dass es noch kein aktuelles HowTo zur Erweiterung des easyVDR 1.0 um das sehr interessante Projekt iVDR http://i-vdr.de/ (dzt. Version 0.3.3) inkl. Streaming gibt, möchte ich an dieser Stelle meine "Schritt für Schritt"-Anleitung präsentieren.

Ziel dieser Anleitung:
easyVDR um die Softwarekomponente "iVDR" zu erweitern, um ein VDR-Remote-Frontend für iPhone/iPad zur Verfügung stellen zu können. Zusätzlich bietet iVDR auch Streaming-Funkionalität. Somit lassen sich VDR-Aufnahmen auf dem iPhone/iPad via Streaming ansehen.

Voraussetzungen für dieses HowTo:
  • easyVDR 1.0 (am besten eine frische Standard-Installation)
  • bestehende Internetverbindung für das Downloaden diverser Pakete
  • etwas Zeit und Geduld  Wink

Anmerkungen zu diesem HowTo:
Ich halte mich grundsätzlich an die Installationsanleitung des iVDR-Entwicklers, gehe jedoch auf diverse kleine Adaptierungen/Ergänzungen ein, um das Ding schlußendlich ins Laufen zu bringen, ohne mehrere Stunden dafür opfern zu müssen. Manche Schritte sind vielleicht etwas zu detailliert beschrieben. Ich möchte aber auch Nicht-Linux-Experten (wie meine Wenigkeit) die Möglichkeit des Nachvollziehens bieten. ;D

Schritt 1: Administrator-Terminal öffnen
Dies kann beispielsweise via easyVDR-Toolmenü erfolgen. Also zb mit "<STRG>+<ALT>+<F2>" auf die Konsole 2 wechseln, und sich mit dem user "easyvdr" und Passwort "easyvdr" anmelden. Nach kurzer Zeit erschein das Toolmenü. Hier wählen wir zuerst mit <Pfeiltaste-Rechst>ganz unten "Admin werden" aus, bestätigen mit <ENTER> und geben anschließend nochmals "easyvdr" ein. Danach wählen wir den Punkt "Admin-Terminal" aus und bestätigen mit <ENTER>. Und schon haben wir unser Admin-Terminal

Schritt 2: Herunterladen und Installation notwendiger Pakete (perl, ivdr, ivdr-patch ...)
Nachdem wir also unser Admin-Terminal geöffnet haben, geben wir die folgenden Zeilen ein:
Code:
sudo apt-get install perl-modules libhtml-parser-perl libwww-perl libxml-simple-perl
sudo wget http://i-vdr.de/downloads/ivdr-0.3.3.tar.gz
sudo wget http://i-vdr.de/downloads/fix0.3.3/vdr.pm.gz
Hinweis: Nach Eingabe der ersten Zeile bestätigen wir die Nachfrage, ob wir die Pakete installieren wollen mit "J" sofern diese noch nicht installiert sind.

Schritt 3: Entpacken und Kopieren des iVDR-Quellcodes/Scripts
Code:
sudo tar -xf ivdr-0.3.3.tar.gz
sudo mv vdr.pm.gz vdr.pm
sudo mv ivdrdata /var/www/
sudo mv cgi-bin /usr/lib/cgi-bin/ivdr
sudo mv vdr.pm /usr/lib/cgi-bin/ivdr/components/
Erläuterung: Dadurch sollte das iVDR-Archiv entpackt und nach /usr/lib/cgi-bin/ivdr bzw. /var/www verschoben worden sein. Weiters wurde auch noch der iVDR-Fix "vdr.pm" entsprechend verschoben.

Schritt 4: iVDR-Config-DB-File und zusätzliche Datei erstellen und Zugriffsberechtigungen anpassen/Scripts
Code:
sudo touch /usr/lib/cgi-bin/ivdr/components/ivdr.db
sudo chmod 666 /usr/lib/cgi-bin/ivdr/components/ivdr.db
sudo touch /usr/lib/cgi-bin/ivdr/markedfiles.log
sudo chmod 666 /usr/lib/cgi-bin/ivdr/markedfiles.log
sudo ln -s /etc/lighttpd/conf-available/10-cgi.conf /etc/lighttpd/conf-enabled
sudo cp -R /usr/lib/cgi-bin/ivdr /var/www/cgi-bin/
sudo chmod 666 /var/www/cgi-bin/markedfiles.log
sudo chmod 666 /var/www/cgi-bin/components/ivdr.db
Erläuterung: Vom iVDR-Autor war gedacht, dass die iVDR-Perl-Scripts unter "/usr/lib/cgi-bin/ivdr" abgelegt werden. Da ich aber den mit easyVDR mitgelieferten Webserver "lighttpd" nutzen möchte, kopiere ich die Perl-Scripts nach "/var/www/cgi-bin/". Weiters muss man noch beim Webserver CGI auf enable setzen. Dies wird über das Setzen des Symlinks "ln -s /etc/lighttpd/conf-available/10-cgi.conf /etc/lighttpd/conf-enabled" erledigt.

iVDR mit seiner Basisfunktionalität ist nun fertig. Bevor man jedoch iVDR das erste Mal aufrufen kann, muss man zuvor den Webserver restarten:
Code:
sudo /etc/init.d/lighttpd restart
Danach sollte der Aufruf von iVDR gelingen. Im Webbrowser "http://<IP-Adresse des easyVDR>/cgi-bin/ivdr.pl" eingeben.

Hinweis: Für eine korrekte Funktion von iVDR wird das VDR-PLUGIN "SVDRpservice" benötigt. Dies kann über das Toolmenü oder aber auch per OSD bequem nachinstalliert werden. Zu beachten ist noch, dass sich der Standard-Port von "SVDRpservice" von 2001 auf 6419 geändert hat. Dies ist bei den iVDR-Konfigurationsschritten via Browser zu ändern. Auf die iVDR-Konfiguration im Webbrowser möchte ich an dieser Stelle nicht näher eingehen.

Schritt 5: iVDR-Streaming installieren
Um eine VDR-Aufnahme via HTTP-Stream zur Verfügung stellen zu können, benötigen wir ein Software-Paket names "segmenter". Es gibt mittlerweile mehrer Varianten dieser Software - ich habe mich für die Version von "http://svn.assembla.com/svn/legend/segmenter" entschieden.
Um diese Software compilieren zu können, bedarf es noch einiger Vorbereitungsarbeiten.

Zuerst benötigen wir eine älter Version von "ffmpeg", da sich der "segmenter" nicht mit der aktuellen ffmpeg-Version anstandslos kompilieren lässt.

Code:
sudo apt-get install libavcodec-dev libfaac-dev libavutil-dev libavformat-dev libfaad-dev libmp3lame-dev libxvidcore-dev libbz2-dev libtheora-dev subversion git-core
Erläuterung: Diese Zeile lädt notwendige Bibliotheken herunter und installiert diese. Weiters wird auch das später noch benötigte "subversion" und "git-core" installiert.

Nun holen wir uns eine alte Version von "ffmpeg". Da wir nun bereits alle erforderlichen Bibliotheken installiert haben, können wir nach dem Entpacken des Snapshots mit dem Kompilieren von ffmpeg fortfahren:
Code:
sudo wget http://dl.dropbox.com/u/5503/blog.kyri0s.org/ffmpeg-export-snapshot-2009-12-02.tar.bz2
sudo tar -xvjf ffmpeg-export-snapshot-2009-12-02.tar.bz2
cd ffmpeg-export-2009-12-01
./configure --enable-gpl --enable-nonfree --enable-libfaac --enable-libmp3lame --enable-libxvid --prefix=/usr/lib/ivdr_ffmpeg
make
make install
cd ..
Erläuterung: Durch "--prefix=/usr/lib/ivdr_ffmpeg" steht das alte ffmpeg nach dem "make install" in "/usr/lib/ivdr_ffmpeg" bereit. Das Kompilieren kann je nach Rechnerleistung etwas länger dauern. ;-)

Nachdem das Kompilieren erfolgreich beendet wurde, kann mit dem Bauen des Segmenters begonnen werden:
Code:
sudo svn checkout http://svn.assembla.com/svn/legend/segmenter/ segmenter
cd segmenter
gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lfaac -lmp3lame -lfaad -lxvidcore -I/usr/lib/ivdr_ffmpeg/include -L/usr/lib/ivdr_ffmpeg/lib
strip segmenter
sudo cp segmenter /usr/bin/
cd ..
Erläuterung: Zuerst wird der Sourcecode heruntergeladen und anschließend kompiliert. Wichtig dabei sind die beiden letzten Parameter "-I/usr/lib/ivdr_ffmpeg/include -L/usr/lib/ivdr_ffmpeg/lib". Somit werden die zuvor erstellten ffmpeg-Bibliotheken der alten Version verwendet. Abschließend wird das fertig kompilierte Programm "segmenter" nach "/usr/bin/" kopiert.

Jetzt brauchen wir nur noch ein Verzeichnis erstellen, in dem die Streaming-Files abgelegt und via Webserver zur Verfügung gestellt werden können.
Code:
mkdir /media/easyvdr01/ivdrstream
sudo chmod 777 /media/easyvdr01/ivdrstream
sudo ln -s /media/easyvdr01/ivdrstream /var/www/ivdrstream
Erläuterung: Die Streams werden unter "/media/easyvdr01/ivdrstream" erzeugt. Über den Symlink "/var/www/ivdrstream" sind die Streams über den Webserver verfügbar. Es wäre beispielsweise auch möglich, das ivdrstream-Verzeichnis innerhalb einer RAM-Disk abzulegen.

Im Anhang ist noch ein kleines Shell-Script, dass die oben erwähnten Befehle beinhaltet, sodass man nicht alles mühsam abtippen muss. Benutzung des Scripts auf eigene Gefahr - für etwaige Fehler/ungewollte Sideeffects übernehme ich keine Verantwortung. Das Script am besten in das Home-Verzeichnis des users "easyvdr" unter "/home/easyvdr" kopieren und mittels "chmod 777 /home/easyvdr/ivdr-install.sh" ausführbar machen und anschließend in das Home-Verzeichnis wechseln und das Script ausführen.

Abschließend noch eine kurze Zusammenstellung der notwendigen Einstellungen von iVDR via Webbrowser:
Unter den VDR Einstellungen:
[tt]
- SVDRP-Port: 6419
- Aufzeichnungen: /media/easyvdr01/video0
- EPG-Bilder: /media/easyvdr01/epgimages[/tt]

Unter den Streamingeinstellungen:
[tt]
- Aktiviert: auf "JA" setzen
- segmenter: /usr/bin/segmenter
- Arbeitsverzeichnis: /media/easyvdr01/ivdrstream
- URL: /ivdrstream
- Exportverzeichnis: /media/easyvdr01/ivdrstream[/tt]

Weiters muss man noch unter Streamarten zumindest einen Konfigurationssatz anlegen.


Schritt 6: Fertig!

Ich hoffe, die Anleitung ist für jedermann verständlich, nachvollziehbar und lässt sich bei jedem easyVDR umsetzen.
Vielleicht findet sich ja ein Linux-Guru, erbarmt sich meines unrühmlichen Shell-Scripts und verwandelt es zu einer besseren Installationsroutine inkl. Deinstallationsoption bzw. erstellt ein VDR-Addon.  Big Grin

Cya,
tux76
Ui,
wenn das funktioniert, dann Respekt. Und das als erster Post im Forum!


Herzlich Willkommen und vielen Dank (Karma+1) dafür. Muss ich ja direkt mal testen heute Abend!


Till
Hi Tux!

Klingt sehr nett und mein Bauch sagt, dass man das dann auch direkt als Paket bauen kann Wink Aber hier ist Andy gefragt. Wär natürlich klasse. Danke für den Einsatz und das How-To, auch wenn ich damit nichts tun kann Wink

Gruß

David
Hi Tux,

zuerst einmal wilkommen und Danke für den tollen Post!

Habe ich das richtig verstanden, dass Du zum bauen des Segmenters ein anderes ffmpeg benötigst, und dieses parallel auf dem system zu dem originalen der 1.0 liegen kann?

Nutzen so gar unterschiedliche Applikationen des VDR unterschiedliche ffmpeg?

Danke im Voraus
Michel
Hi,

Zitat:Habe ich das richtig verstanden, dass Du zum bauen des Segmenters ein anderes ffmpeg benötigst, und dieses parallel auf dem system zu dem originalen der 1.0 liegen kann?
Ich denke das man diese Aktion einmal auf einem System machen kann und dann wird der fertige Segmenter über ein deb-Paket weitergereicht.

Es würde dann auch das Nachinstallieren von einem "fremden" ffmepg-Paket" und dem hier
Code:
sudo apt-get install libavcodec-dev libfaac-dev libavutil-dev libavformat-dev libfaad-dev libmp3lame-dev libxvidcore-dev libbz2-dev libtheora-dev subversion git-core
entfallen.

!!! Aber diese muß auf jedes Gerät, ansonsten geht kein iVDR
Code:
sudo apt-get install perl-modules libhtml-parser-perl libwww-perl libxml-simple-perl

Der Rest geht dann aber prima in ein deb-Paket.

Grüße
TVIA
Hallo,

@Michel:
Ja, Deine Vermutung ist korrekt. Der Segmenter (zumindest die Version von Chase Douglas) lässt sich leider nur mit einer älteren ffmpeg-Version compilieren.
Unter Umständen ließe sich auch die Weiterentwicklung von John Ferlito (http://m3u8-segmenter.inodes.org) dafür verwenden. Dies habe ich aber noch nicht probiert.


Grüße,
Tux
Moin,
also erstmal ein +1 von mir. Vielen Dank für diese tolle Anleitung.

Allerdings hat sich bei dir ein Fehler eingeschlichen. Die vdr.pm.gz ist gepackt und somit müsste statt dem "mv" "gunzip" stehen.

Viele Grüsse
Duffy
Hallo tux76,

Auch von mir ein riesiges Dankeschön für die tolle Anleitung.
Das gleiche herzliche Dankeschön geht übrigens an das ganze Team das hinter easyvdr steht. Dank solcher Aktivitäten können auch Leute wie ich sich überhaupt an solche Projekte heranwagen.

Den Rest des Posts bitte ignorieren, war mein Fehler.
Läuft jetzt einwandfrei ( lesen muesste man können :-)
Hallo,
ich habe deine Anleitung im Wiki verlinkt. Dort ist für die 0.8er Version eine Beschreibung vorhanden.

Gruß Ingo
Hallo,
vielen Dank für die Anleitung!

Soweit bekomme ich iVDR auch ans Laufen.
Nur bei dem Segmenter habe ich ein Problem.

Sobald ich:
"gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lfaac -lmp3lame -lfaad -lxvidcore -I/usr/lib/ivdr_ffmpeg/include -L/usr/lib/ivdr_ffmpeg/lib"

ausführe, bekomme ich die Fehlermeldung aus dem Anhang.
Kann einer helfen?

Hallo vdrbär,

(24.10.2012, 15:15)vdrbär link schrieb: [ -> ]Hallo,
vielen Dank für die Anleitung!

Soweit bekomme ich iVDR auch ans Laufen.
Nur bei dem Segmenter habe ich ein Problem.

Sobald ich:
"gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lfaac -lmp3lame -lfaad -lxvidcore -I/usr/lib/ivdr_ffmpeg/include -L/usr/lib/ivdr_ffmpeg/lib"

ausführe, bekomme ich die Fehlermeldung aus dem Anhang.
Kann einer helfen?

Die Fehlermeldung lässt vermuten, dass beim Kompilieren des alten ffmpeg etwas nicht ganz nach Plan verlaufen ist. Hat sich das alte ffmpeg zuvor ohne Fehler bauen lassen?

Beste Grüße,
tux76
Hallo zusammen,
ich habe mir die Anleitung angesehen und mit meinem Linux Wissen verglichen. Leider habe ich da meine Zweifel das ich die Installation wirklich erfolgreich durchführen könnte.  :-[

Daher an dieser Stelle meine bescheidene Frage / Anregung ob es nicht möglich ist die Schritte in ein Script zu verpacken. Damit hätten auch unwissende wie ich die Möglichkeit diese Funktion zu nutzen.

Gruß Ingo
Also das alte FFMPEG nochmal compilieren, d.h. mit "Schritt 5" nochmal beginnen?

(25.10.2012, 05:45)tux76 link schrieb: [ -> ]Hallo vdrbär,

[quote author=vdrbär link=topic=14091.msg126596#msg126596 date=1351084505]
Hallo,
vielen Dank für die Anleitung!

Soweit bekomme ich iVDR auch ans Laufen.
Nur bei dem Segmenter habe ich ein Problem.

Sobald ich:
"gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lfaac -lmp3lame -lfaad -lxvidcore -I/usr/lib/ivdr_ffmpeg/include -L/usr/lib/ivdr_ffmpeg/lib"

ausführe, bekomme ich die Fehlermeldung aus dem Anhang.
Kann einer helfen?

Die Fehlermeldung lässt vermuten, dass beim Kompilieren des alten ffmpeg etwas nicht ganz nach Plan verlaufen ist. Hat sich das alte ffmpeg zuvor ohne Fehler bauen lassen?

Beste Grüße,
tux76
[/quote]
Servus

Erst mal RESPEKT für diese Anleitung - ist durchgelaufen, ich hatte danach beim Aufrufen der Seite folgenden Fehler:
Code:
[tt]Unrecognized character \x1F; marked by <-- HERE after <-- HERE near column 1 at blablabla[/tt]
liegt anscheinend an der zeile
Code:
sudo mv vdr.pm.gz vdr.pm
sollte wohl heißen
Code:
sudo gunzip vdr.pm.gz vdr.pm


Gruß

bene
Hallo tux76,

HUT AB! Starke Anleitung! Läuft problemlos durch.
Allerdings bekomme ich auch den gleichen Fehler:
Zitat:Unrecognized character \x1F; marked by <-- HERE after <-- HERE near column 1 at components//vdr.pm line 1.

Code:
sudo gunzip vdr.pm.gz vdr.pm
statt
Code:
sudo mv vdr.pm.gz vdr.pm

bringt bei mir aber auch nicht die Lösung, da kommt dann
gzip: vdr.pm: unknown suffix -- ignored

Was mache ich falsch?

Im Voraus vielen Dank und Gruß
PaulElch
Hallo zusammen,

auch ich schließe mich an - coole Anleitung, jedoch erscheint auch der Fehler:

Code:
Software error: [Mon Dec  3 15:20:37 2012] ivdr.pl: Unrecognized character \x1F; marked by <-- HERE after <-- HERE near column 1 at components//vdr.pm line 1. Compilation failed in require at /var/www/cgi-bin/ivdr.pl line 478.

Das gz-File läßt sich wie folgt auspacken lassen (ohne Target-Name):

Code:
sudo gunzip vdr.pm.gz

Grüße, EsJ
Nur entpacken reicht denk ich nicht - ich meine mich erinnern zu können, daß man das hier noch machen musste:

Code:
sudo mv vdr.pm /usr/lib/cgi-bin/ivdr/components/
ist im Skript 3 Zeilen weiter unten - wenns falsch entpackt wurde wirds auch falsch weiterkopiert. Wenn mans richtig entpackt hat muss man auch noch die richtige Version kopieren

gruß

Hi kaiserbene,

das paßt im Skript schon so. Aus vdr.pm.gz wird vdr.pm und das wird dann auch erfolgreich verschoben.
Das Problem liegt wohl eher an Perl oder an Abhängigkeiten davon - da muss ich jedoch ganz abwinken.

Grüße, EsJ
Den Fehler hatte ich auch:
Code:
Software error: [Mon Dec  3 15:20:37 2012] ivdr.pl: Unrecognized character \x1F; marked by <-- HERE after <-- HERE near column 1 at components//vdr.pm line 1. Compilation failed in require at /var/www/cgi-bin/ivdr.pl line 478.

Die Datei vdr.pm wurde laut Anleitung nach /usr/lib/cgi-bin/ivdr/components/ kopiert. Da dies kein Suchpfad für perl ist habe ich vdr.pm nach
/usr/lib/perl5 kopiert und alle anderen Vorkommen der Datei gelöscht. Da hat es dann sofort funktioniert.

Vielen Dank für die Anleitung.

Gruß
Huttich
Hallo huttich,

cool, das war es! Eigentlich ja ganz einfach, wenn man es weiß!  Wink K+

Grüße, EsJ
Bei mir hats nun auch geklappt!
Vielen Dank euch allen für die Hilfe!

Gruß
PaulElch
noch eine kurze Frage: Auf welchen Port muss ich in meiner Fritzbox weiterleiten wenn ich von extern auf iVDR zugreifen möchte? Ich nutze lighthttpd (standard unter easyvdr)
Hallo PaulElch,

auf Port 80.
Ohne SSL und Authentifizierung ist das aber nicht zu empfehlen. Vielleicht helfen dir
http://wiki.ubuntuusers.de/lighttpd#SSL und http://wiki.ubuntuusers.de/lighttpd#HTTP...ifizierung weiter. Ausprobiert habe ich es jedoch noch nicht.

Alternativ kannst du ggf. auch über deine Fritzbox einen VPN-Tunnel aufbauen, dann reicht ein Forwarding auf Port 80. Auf der AVM-Website sollten die benötigten Information dazu zu finden sein. Weiterer  Vorteil: Du kannst auch auf weitere Ressourcen in deinem Netz transparent zugreifen.

Grüße, EsJ
Hallo tux76,

vielen Dank für die Super-Anleitung.
Installation hat bei mir auf anhieb geklappt.

Mein kleines Problem ist, dass ich keinen Stream auf mein Ipad oder Iphone bekomme.

Was mache ich falsch oder was habe ich vergessen!!!!!

Danke & Viele Grüße
fuebi
Hallo Fritz,

(17.01.2013, 14:40)fuebi link schrieb: [ -> ]Mein kleines Problem ist, dass ich keinen Stream auf mein Ipad oder Iphone bekomme.
geht "stream-dev"  über  VLC etc.?

Gruss
Wolfgang
Seiten: 1 2