Die Installation von Clipbucket ist eigentlich trivial, die Einrichtung ist allerdings mit einigen Hürden versehen. Daher werde ich hier die einzelnen Schritte bis zu einer funktionierenden Videoplattform erklären. Die Installation setzt voraus, dass PHP und MySQL bereits installiert und konfiguriert sind.
Herunterladen
Als erstes muss Clipbucket heruntergeladen werden. Die gepackte Version findet man unter dem Link http://sourceforge.net/projects/clipbucket/files/ClipBucket%20v2/
Datenbank und Datenbankbenutzer anlegen
Das Erstellen der Datenbank und des Datenbankbenutzers hängt von der installierten Software eures Webservers ab. Einfach geht dies mit PHPMyAdmin, was hier nicht genauer erklärt wird. Etwas schwieriger geht dies mit der Konsole von mysql.
Dort dann:
create database streaming;
grant usage on streaming.* to clipbucket_user@localhost identified by 'PASSWORD';
grant all privileges on streaming.* to clipbucket_user@localhost;
Entpacken
Die heruntergeladene Datei entpackt man in einem beliebigen Verzeichnis, das nicht das Verzeichnis des Webservers ist. In dem entpackten Ordner befindet sich ein Ordner “upload”, der die eigentlichen Dokumente enthält. Dann öffnet man im Browser die Adresse http://yourwebsite.com/install und klickt dort auf “Fresh Installation”.
Befehle, die dazu auf der Konsole ausgeführt werden (bitte den Link an die aktuelle Version von Clipbucket anpassen):
wget http://sourceforge.net/projects/clipbucket/files/ClipBucket%20v2/\
clipbucket-2.4-RC2-645.zip
unzip clipbucket-2.4-RC2-645.zip
cp upload/* /var/www/streaming/ -r
chown www-data:www-data /var/www/streaming/ -R
Anmelden
Direkt nach der Installation anmelden und das Admin Passwort ändern. Alle weiteren Schritte benötigen noch Vorarbeit, da die benötigten Pakete und Programme installiert werden müssen.
Benötigte Programme installieren
Bei Debian lassen sich die meisten Programme direkt mit aptitude/apt-get installieren. Folgender Befehl macht das.
sudo aptitude install gpac flvtool2 libx264-dev libtheora-dev libfaac-dev\
libmp3lame-dev libvorbis-dev libxvidcore-dev build-essential yasm checkinstall
Dabei fehlt noch das Programm ffmpeg, das in Debian nicht alle Funktionen bereitstellt und daher per Hand installiert werden muss.
FFMPEG kompilieren
Die folgenden Befehle werden dazu benötigt (bitte den Link an die aktuelle Version von FFMPEG anpassen):
cd /usr/local/src
wget http://ffmpeg.org/releases/ffmpeg-0.6.3.tar.gz
tar xzf ffmpeg-0.6.3.tar.gz
cd ffmpeg-0.6.3
./configure --enable-libx264 --enable-libxvid --enable-libfaac --enable-libvorbis\
--enable-libmp3lame --enable-libtheora --enable-postproc --enable-pthreads\
--enable-gpl --enable-nonfree
make
checkinstall --pkgname=ffmpeg --pkgversion "0.6.3" --backup=no --default
Uploading and Conversion Settings anpassen
Zur Seite http://yourwebsite.com/admin_area/main.php#current_2 gehen. (Admin-Panel -> Website Configurations -> Uploading and Conversion Settings)
- /usr/bin/local/php auf /usr/bin/php ändern, sofern notwendig
- /usr/bin/ffmpeg auf /usr/local/src/ffmpeg-0.6.3/ffmpeg
- Haken bei “Server Friendly Conversion” setzen
- Unten auf “Update Settings” klicken
Dann unter http://yourwebsite.com/admin_area/cb_mod_check.php prüfen, ob alles OK ist. Bei “MODULES VERSION” ist bei ffmpeg möglicherweise ein Ausrufezeichen, was man aber vernachlässigen kann, wenn bei “CHECKING FFMPEG CODECS” alles grün ist.
Cronjob einrichten
Die Default Cronjobs von Clipbucket sollen wie folgt aussehen (in /etc/crontab):
*/5 * * * * root php -q /var/www/streaming/actions/video_convert.php
5 * * * * root php -q /var/www/streaming/actions/verify_converted_videos.php
7 4,10,16,22 * * * root php -q /var/www/streaming/actions/update_cb_stats.php
Damit startet die Konvertierung in Flash Videos alle fünf Minuten, das Verifizieren der Videos stündlich und das Aktualisieren der Statistiken vier mal am Tag. Ich persönlich verwende diese Cronjobs nicht, da sie bei mir dazu geführt haben, dass immer wieder ein neuer Konvertierungsprozess gestartet wird und der Rechner immer langsamer wird, bis er nicht mehr reagiert. Ich habe mir dazu ein Script geschrieben, dass eine neue Konvertierung nur startet, wenn keine mehr läuft.
#!/bin/bash
TIME=$(date)
case "$1" in
convert)
STATE=$( ps aux |grep ffmpeg |grep root -c )
if [ "$STATE" -gt 1 ]
then echo "$TIME: Prozess laeuft noch - gehe schlafen"
else
echo "$TIME: Kein Prozess gefunden - starte konvertieren"
php -q /var/www/streaming/actions/verify_converted_videos.php
php -q /var/www/streaming/actions/update_cb_stats.php
php -q /var/www/streaming/actions/video_convert.php &
fi
;;
*)
echo "Usage: ./clipbucket_script.sh convert"
exit 1
;;
esac
exit 0
Mein Cronjob sieht dann so aus:
*/5 * * * * root /usr/local/sbin/clipbucket_script.sh convert
Optional – Ordner zur Speicherung der Videos ändern
Clipbucket speichert von Haus aus alle Videos im Ordner “files”, also direkt im Ordner der Website. Bei meiner Konfiguration wollte ich dies nicht und Clipbucket lässt es nicht zu, dass man den Ordner ändert. Also blieben die Möglichkeiten mount bind oder einen Link zu setzen. Die Variante mount bind funktioniert leider nicht, daher muss ein Link her. Dazu verschiebt man den Ordner “files” in das gewünschte Verzeichnis und setzt dann einen Link.
mv /var/www/streaming/files /neuer/pfad/
ln -s /neuer/pfad/files /var/www/streaming/files
Clipbucket verlangt dabei, dass das Verzeichnis “files” dem Benutzer www-data gehört und die Dateirechte auf 0777 gestellt sind. Über den Sinn oder Unsinn dieser Vorgaben werde ich mich an dieser Stelle nicht auslassen. Ihr könnt dies einfach mit den folgenden zwei Befehlen umsetzen.
chown www-data:www-data /var/www/streaming/files/ -R
chmod 777 /var/www/streaming/files/ -R