Installation Stream2Dream

Die Linux Version von Stream2Dream gibt es hier. Samba haben wir in der Ubuntu Grundinstallation bereits installiert. Wir brauchen jetzt also noch Perl.

Vorbereitungen

Installation Perl

apt-get install perl

So, jetzt ist noch wichtig, dass diese beiden Module installiert sind:

IO::Socket
Date::Format

Folgende Befehle ausführen. Sind die Module bereits installiert, wird das der Installscript bemerken und abbrechen.

perl -MCPAN -e shell

Jetzt kommt man ins Perl Shell. Nun diese Befehle eingeben:

install IO::Socket
install Date::Format

Um Shell zu verlassen:

quit

Installation VLC Player

Damit wir auch MPEG-4 AVC / AAC Codec Videos mit VLC streamen können, müssen wir alles selber builden. Ansonsten werden bei AAC Codierten Videos kein Audio ausgegeben. Ist zwar aufwändiger in der Installation, aber dafür klappt es nachher auch wirklich mit dem Streaming 🙂

FFMpeg

Zuerst allerneuste ffmpeg Version installieren.

Das ist die Grundanleitung http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

Damit allerdings alles klappt, müssen die Libraries SHARED installiert werden. Ausserdem mit PIC.

Als erstes bestehende Packages entfernen

apt-get remove ffmpeg x264 libvpx-dev libx264-dev

Dann Abhängigkeiten Installieren

apt-get update
apt-get -y install autoconf build-essential libhal-dev checkinstall git libfaac-dev libgpac-dev \
 libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libtheora-dev \
 libtool libvorbis-dev pkg-config texi2html yasm zlib1g-dev libxvidcore-dev libmp4v2-0 libavcodec-extra-52 ubuntu-restricted-extras
x264

H.264 video encoder

cd
git clone --depth 1 git://git.videolan.org/x264
cd x264
./configure --enable-shared --enable-pic
make
checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
 awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
 --fstrans=no --default
fdk-aac

AAC audio encoder.

cd
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure  --enable-shared --with-pic
make
checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \
 --deldoc=yes --fstrans=no --default
libvpx

VP8 video encoder and decoder.

cd
git clone --depth 1 http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure  --enable-shared --enable-pic
make
checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \
 --deldoc=yes --fstrans=no --default
FFmpeg
cd
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame \
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora \
 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree \
 --enable-version3 --enable-pic --enable-shared --enable-libxvid
make
checkinstall --pkgname=ffmpeg --pkgversion="7:$(date +%Y%m%d%H%M)-git" --backup=no \
 --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe

Ganz wichtig, damit am schluss alle Libraries stimmen

ldconfig

nochmals ausführen. Sonst kann es nachher beim VLC zu shared module fehlern kommen wie z.b.

[0xa0aca68] main decoder warning: cannot load module `/usr/local/lib/vlc/codec/libavcodec_plugin.so' (libavutil.so.54: cannot open shared object file: No such file or directory)

VLC

Da braucht es zuerst noch diverse Libraries:

sudo apt-get install lua5.1 liblua5.1-0-dev libusb-1.0-0-dev libmadlib libmad0 libmad0-dev libavcodec-dev libavformat-dev libswscale-dev libpostproc-dev liba52-dev libxcb1-dev libxcb-shm0-dev libxcb-xv0-dev libx11-xcb-dev libgl1-mesa-dev libqt4-dev libasound2-dev libgcrypt-dev zlib1g-dev libdvbpsi-dev libfaad-dev libtwolame-dev libflac-dev libmpeg2-4-dev

Die aktuellste Version gibt es hier: http://www.videolan.org/vlc/download-sources.html

mkdir /usr/local/software
cd /usr/local/software
wget http://download.videolan.org/pub/videolan/vlc/2.0.4/vlc-2.0.4.tar.xz
tar xfv vlc-2.0.4.tar.xz cd vlc-2.0.4 ./configure --enable-dvbpsi --disable-xcb --enable-merge-ffmpeg --enable-faad --enable-twolame --enable-flac --enable-libmpeg2 --with-pic make make install

Installation Stream2Dream

Aktuelle Stream2Dream Version herunterladen und ins Verzeichnis

/usr/local/bin

kopieren und konfigurieren. Darauf achten, dass bei

$vlc =

zum Binary cvlc gelinkt wird (Command Line Version). Sonst gibt es Interface Fehler, weil wir keine X Oberfläche haben.

chmod 775 /usr/local/bin/stream2dream.pl

Und jetzt noch Script beim Boot automatisch starten

vi /etc/rc.local
# By default this script does nothing. 

# sudo -uVideoUser /usr/local/bin/stream2dream.pl
# damit wir eine eigene bash ($HOME) haben
su - VideoUser -c /usr/local/bin/stream2dream.pl
exit 0

 

Fehlermeldungen

main libvlc error: cannot open config file (/root/.config/vlc/vlcrc): Permission denied

VLC media player 1.1.9 The Luggage (revision exported)
[0x1930120] main libvlc error: cannot open config file (/root/.config/vlc/vlcrc): Permission denied
Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS")
Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE")
[0x1a51a30] inhibit interface error: Failed to connect to the D-Bus session daemon: //bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.

Fix: stream2dream nicht per sudo, sondern su ausführen. So erhalten wir eine bash ($HOME) Verzeichnis mit permission. per sudo ist $HOME root, mit su ist es videouser.

 su - VideoUser  -c /usr/local/bin/stream2dream.pl

/usr/local/lib/libavformat.a: could not read symbols: Bad value

Wenn alles korrekt installiert wurde, reicht wahrscheinlich ein ldconfig auszuführen

 ldconfig

avcodec encoder error: cannot open encoder

Wahrscheinlich wurde ffmpeg (und/oder) vlc direkt aus den Packages installiert. Wenn alles aus den Sources wie oben beschrieben installiert wird, klappts!

[mpeg2video @ 0x2923c50]a vbv buffer size is needed, for encoding with a maximum bitrate
[0x26252f8] avcodec encoder error: cannot open encoder
[0x26252f8] main encoder error: Streaming/Transkodierung fehlgeschlagen
[0x26252f8] main encoder error: VLC konnte den Encoder nicht öffnen.
[0x26252f8] main encoder debug: no encoder module matching "any" could be loaded
[0x26252f8] main encoder debug: TIMER module_need() : 22.442 ms - Total 22.442 ms / 1 intvls (Avg 22.442 ms)
[0x1769bb8] stream_out_transcode stream out error: cannot find video encoder (module:any fourcc:mpgv). Take a look few lines earlier to see possible reason.
[0x2624eb8] main generic debug: removing module "avcodec"
[0x2624eb8] avcodec generic debug: ffmpeg codec (MPEG-4 Video) stopped
[0x1769bb8] stream_out_transcode stream out error: cannot create video chain
[0x236d418] main decoder error: cannot create packetizer output (mp4v)

Diverses

VLC forcieren mit FFMPEG zu demuxen

/usr/local/bin/cvlc  --demux ffmpeg [...]

VLC Debuggen

/usr/local/bin/cvlc -vvv [...]

VLC aufrufen

Um einfach zu testen, ob vlc das machen würde, was wir mit Stream2Dream bezwecken, kann man es einfach mal so aufrufen. So sieht man eventuelle Fehlermeldungen sofort ohne jedesmal den Stream über die Dreambox zu starten. Achte natürlich darauf, dass du eine Video Datei nimmst, die bei Dir auf dem Server liegt.

/usr/local/bin/cvlc -vvv  -I telnet "file:///home/mediacenter/movies/_Series/Lie to me/Season 1/s01e01.avi" ":sout=#transcode{vcodec=mpgv,vb=8192,fps=25,acodec=mpga,ab=192,channels=2,samplerate=48000,soverlay}:duplicate{dst=std{access=file,mux=ts,dst="/home/mediacenter/movies/MPStream.ts"}}"

.

  • *

    Du kannst diese HTML tags verwenden: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Kommentar-Feed für diesen Beitrag
nach oben