23.07.2012, 23:20
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:
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:
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
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
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:
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.
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:
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:
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.
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.
Cya,
tux76
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
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
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/
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
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
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
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 ..
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 ..
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
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.
Cya,
tux76