EDIT 11/05/2010: Punkt 7.) angepasst: segmenter per Hand kompilieren, da mit den zusätzlichen libs für ffmpeg das normale Makefile nicht passt, hab das vorher nicht bedacht
EDIT 29/06/2010: Fehlende Libs ergänzt, danke für den Hinweis roupi
EDIT 14.11.2010: Bitte folgenden Post zum Bau des Segmenters beachten: HOWTO: iStreamdev auf yaVDR oder direkt die Anleitung hier von roupi und mwfv verwenden.
EDIT 07.12.2010: Da es momentan immer wieder Schwierigkeiten mt dem Bau von ffmpeg oder dem segmenter gibt und ich das aktuell nicht aktiv nutze / selber am Basteln bin, aktualisieren ich hier vorerst nicht mehr.
EDIT 13.12.2010: Wichtiges Posting von jondalar: HOWTO: iStreamdev auf yaVDR
Na da hab ich mir ja was eingebrockt ...
Vorweg: ich habs mit den Repo Paketen von ffmpeg und libx264 versucht, aber die tuns nicht. Verzeiht mir bitte, wenn ich nirgendwo ein "sudo" schreibe, es nervt nur...
Also los:
1.) Änderungen am Basissystem
tntnet Konfiguration geändert und auf Port 8080 gelegt
Firefox Startpage wegen Portänderung verlegt
Templates in /etc/yavdr/templates_custom angelegt für Firefox prefs.js und tntnet Konfig (falls ihr mir das mal mit einem Update zerballert ;-)) )
Neustart von tntnet
Kurzer Test, läuft! Coole Idee mit den Templates übrigens.
2.) Zusätzlich installierte Pakete
(ich hab versucht, es mir einfach zu machen und Pakete zu installieren, die wegen der Abhängigkeiten alles wichtige mit drauf packen, sprich nicht apache2, sondern direkt libapache2-mod-php5 usw.; bei php5 war ich mir nicht sicher, was ich noch an Grafikkram brauche, da hab ich einfach zugeschlagen):
subversion, git-core, libapache2-mod-php5, php5, php5-curl,php5-gd,php5-idn,php5-imagick,php5-xcache, libavcodec-dev, libavformat-dev, libavutil-dev, libfaac-dev, libfaad-dev,
libmp3lame-dev, libxvidcore-dev, libbz2-dev, yasm
(Hoffe, ich habe nix vergessen! Könnte aber durchaus sein, daß was zuviel ist, so fit bin ich nicht darin...)
3.) In der /etc/apache2/httpd.conf folgendes eintragen, damit QuickTime auf dem Iphone kapiert, was es gestreamt bekommt:
AddType application/x-mpegURL .m3u8
AddType video/MP2T .ts
Dann Apache restarten.
( 4 und 5 hab ich im Homevz gemacht)
4.) libx264 (wegen ffmpeg):
git clone git://git.videolan.org/x264.git
cd x264
./configure --prefix=/usr
make
make install
ldconfig
5.) ffmpeg:
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --prefix=/usr --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-x11grab
make
make install
LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
ldconfig
6.) iStreamdev holen und "installieren":
cd /var/www
git clone git://projects.vdr-developer.org/istreamdev.git
mkdir /var/www/istreamdev/ram
chown -R www-data.www-data istreamdev
Konfigurieren muß man das im Prinzip nicht mehr, da es eine default Konfiguration gibt, aber ich habe mich doch dazu entschieden.
Von daher: Im Verzeichnis /var/www/istreamdev die Datei config_default.php nach config.php kopieren und folgende Parameter anpassen: $user, $password, $vdrrecpath
Noch ein Hinweis zur dritten Zeile: der Autor der Software schlägt vor, ein Unterverzeichnis "ram" in /dev/shm anzulegen, www-data Schreibrechte zu geben und per softlink nach /var/www/istreamdev zu verlinken. Da ich aber anfänglich ja Schwierigkeiten hatte, habe ich versucht, alle Besonderheiten außen vor zu lassen und ein "normales" Verzeichnis statt der Ramdisk genommen.
Ach so, und wer den Verzeichnisnamen ändert, muß $httppath auch noch anpassen.
7.) HTTP Stream Segmenter (da hat sich Apple echt was feines ausgedacht, Hut ab!):
cd /var/www/istreamdev/segmenter
(make und make install werden wahrscheinlich nicht gehen, dann lieber direkt per Hand)
gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lz -lfaac -lmp3lame -lx264 -lfaad -lxvidcore -ltheora -ltheoraenc -ltheoradec -lpthread
strip segmenter
cp segmenter /usr/local/bin
ln -s /usr/local/bin/segmenter /usr/bin/segmenter
Alternativ zum letzten Schritt kann man auch in der config.php den Parameter $segmenterpath anpassen.
8.) Zugriffsrechte für VDR anpassen:
In svdrphosts.conf und streamdevhosts.conf mein heimisches Subnet mit aufgenommen.
9.) GAAAAAAANZ WICHTIG:
Mindestens (!) eine Gruppe in der channels.conf anlegen!!! Ich hatte ursprünglich nur meine channels.conf, die ich mit wirbelscan erzeugt hatte und habe mich gewundert, wieso auf dem Iphone keine Kanäle und kein EPG angezeigt wurden und die Seite hing. Bis dahin wußte ich gar nicht, daß man das gruppieren kann :schäm. Ich habs dann erst mit dem chanorg plugin versucht, daß machte aber nur Murks (Leerzeilen an stellen, wo sie nicht hingehören, man konnte immer nur einen Kanal in eine Gruppe aufnehmen, blabla) und hab schlußendlich einfach oberhalb meiner Kanalliste ":Programme" in eine Zeile geschrieben ;-). Damit läufts perfekt!
Neustart und Daumen drücken, sollte laufen!!
Optional 10.) Senderlogos:
Wer Senderlogos möchte, muß sich die runterladen und im Verzeichnis /var/www/istreamdev/logos abspeichern. Ich habs nach einem Hinweis einfach bei Wikipedia gemacht. Wichtig ist nur, daß die Logos "<Sendername>.png" (Groß-/Klein ist wichtig) benannt sind.
Jetzt nur noch vom Iphone aus die Seite aufrufen und schauen obs klappt. Bei mir gehts jedenfalls.
Viel Spaß beim Nachbasteln
EDIT: Oh Schei***, ich hab überlesen, daß ich das in einem neuen Thread machen sollte, kann das mal bitte bitte bitte einer der Mods abtrennen ???