Udrec suite slackware

Aus TuxBoxWIKI
Version vom 23. August 2011, 07:09 Uhr von WikiBot (Diskussion | Beiträge) (Bot: Fixing redirects)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche


Allgemeines

Dieser Artikel beschreibt die Installation und Konfiguration der udrec_suite unter Slackware Linux. Den Originaltext findet Ihr hier.


Voraussetzungen

Download der nötigen Software

Benötigt wird natürlich die udrec_suite an sich: http://udrecsuite.sourceforge.net/

Weiterhin wird noch die Runtime-Umgebung mono sowie die Mono Class Library mcs benötigt, welche hier bezogen werden können: http://www.mono-project.com/downloads/

ffmpeg gibt es in einer aktuellen Version von: http://www.videolan.org/vlc/download-sources.html

transcode wird zum transcodieren der Aufnahmen benötigt: http://www.transcoding.org/cgi-bin/transcode

Um Streams zu schneiden benötigt udrec_suite das Programm gopchop: http://outflux.net/unix/software/GOPchop/

Der Video-LAN-Client (vlc) wird für die Wiedergabe von mpeg-Dateien über den movieplayer der DBox2 benötigt: http://www.videolan.org/vlc/

Weiterhin werden für den vlc noch einige Libraries benötigt, welche ebenfalls von dessen Downloadseite bezogen werden können. Dies sind: faac, libcddb, libdvbpsi, libebml, libiconv, libmatroska, libmodplug, libspeex, live, openslp, pa-v19, x264.

Für das Verarbeiten von EPG-Daten wird weiterhin xmltv benötigt: http://sourceforge.net/projects/xmltv


Benötigte Pakete

Folgende Pakete müssen vor Beginn der Installation bereits installiert sein:

qt toolame mjpegtools
imagemagick j2sdk lame
perl libogg x11-xvfb
libvorbis glib sdl
glib2 x11 freetype
libdvdread gtk+ mpeg2dec
gtk+2 pango atk
x11-devel xine-lib xine-ui
cdrtools dvdauthor libcdio
libmad a52dec faad2
flac fribidi libdvdcss
libdvdna libid3tag libtheora
vcdimager libmng bc
x11-fonts-misc


Links zu Dokumentation

Dokumentation, unter anderem auch zur Installation der udrec_suite, findet sich auf der Projektseite: http://udrecsuite.sourceforge.net/doku_udrec_suite.html


Installation

Benötigte Perl-Module installieren

# perl -MCPAN -e shell
CPAN> force install IPC::Shareable
CPAN> quit


mono installieren

# tar xpvfz mono-1.0.5.tar.gz
# cd mono-1.0.5
# ./configure
# make
# make install
# ldconfig

# tar xpvfz mcs-1.0.5.tar.gz
# cd mcs-1.0.5
# ./configure
# make
# make install


ffmpeg installieren

# ./configure --prefix=/usr --enable-pp --enable-gpl
# make
# make install
# cd libavcodec/libpostproc
# make
# make install
# ldconfig

Das Quellverzeichnis darf man nach der Installation noch nicht löschen, da es später für die Installation von vlc noch benötigt wird.


transcode installieren

# tar xpvfz transcode-0.6.14.tar.gz
# cd transcode-0.6.14
# ./configure
# make
# make install


GOPchop installieren

Leider gibt es noch ein paar Fehler in der Version 1.1.3 von gopchop, weshalb es nötig ist, die Sources selbst zu editieren.

Als erstes muss in die Datei src/Main.cpp zu den anderen #include Anweisungen die Zeile

#include <locale.h>

hinzugefügt werden. Weiterhin müssen in dieser Datei in den Zeilen 260, 1287 und 1304 die Casting-Ausdrücke geändert werden:

260: (void *)str = g_realloc(str, strlen(text) + 1);
260: str = (gchar *)g_realloc(str, strlen(text) + 1);
1287, 1304: (void *)loc = [...] durch loc = (uint8_t *)[...]

ersetzt werden. Dieser Fehler existiert auch in der Datei src/MPEG2Parser.cpp, in der er in der selben Form wie oben korrigiert werden muss, und zwar in den Zeilen:

179: (PES_packet_header_t *)
210: (uint8_t *)
227: (uint8_t *)
282: (PES_packet_internals_t *)
302: (uint8_t *)
314: (uint8_t *)
323: (uint8_t *)
352: (PES_packet_additional_copy_info_t *)
375: (PES_packet_extension_t *)
383: (uint8_t *)
392: (uint8_t *)
465: (uint8_t *)
507: (system_header_t *)
535: (stream_id_t *)
562: (pack_header_t *)
746: (uint8_t *)
# tar xpvfz gopchop-1.1.3.tar.gz
# cd gopchop-1.1.3
# ./configure
# make
# make check
# make install


Libraries für vlc installieren

Die fehlenden Libraries für vlc werden alle nach dem selben Schema kompiliert, der einzige Unterschied liegt im Entpacken ob es ein Gzip- oder Bzip2-Archiv ist.

# tar xpvfz archiv-x.x.x.tar.gz
# tar xpvfj archiv-x.x.x.tar.bz2

Anschließend wird mit normal die Library kompiliert und installiert.

# ./configure --prefix=/usr
# make
# make install

Anders installiert werden folgende Libraries:

libebml-0.7.1:

# cd make/linux
# make
# make install

libmatroska-0.7.3:

# cd make/linux
# make
# make install

x264-20041029:

# make
# cp x264 /usr/bin
# cp libx264.a /usr/lib
# cp x264.h /usr/include

live:

# ./genMakefiles linux
# cd ..
# cp -r live /usr/lib/


vlc installieren

# tar xpvfz vlc-0.8.1.tar.gz
# cd vlc-0.8.1
# ./configure --disable-wxwindows --disable-skins2 --with-ffmpeg-tree=/usr/src/ffmpeg-20041113
# make
# make install


xmltv installieren

Zuerst müssen die nötigen CPAN-Module installiert werden:

# perl -MCPAN -e shell
CPAN> install Class::MethodMaker
CPAN> install HTML::Tagset
CPAN> install Term::ReadKey
CPAN> force install Tk
CPAN> install URI
CPAN> install XML::LibXML::Common
CPAN> install XML::NamespaceSupport
CPAN> install XML::Parser
CPAN> install HTML::Parser
CPAN> install XML::SAX
CPAN> install Bundle::LWP
CPAN> install Compress::Zlib
CPAN> install Date::Manip
CPAN> install HTML::TableExtract
CPAN> install HTML::Tree
CPAN> install Lingua::EN::Numbers::Ordinate
CPAN> install Lingua::Preferred
CPAN> install PerlIO::gzip
CPAN> install SOAP::Lite
CPAN> install Term::ProgressBar
CPAN> install Tk::TableMatrix
CPAN> install Unicode::String
CPAN> force install WWW::Mechanize
CPAN> install XML::LibXML
CPAN> install XML::Twig
CPAN> install XML::Writer
CPAN> quit

Nun kann xmltv installiert werden:

# tar xpvfj xmltv-0.5.38.tar.bz2
# cd xmltv-0.5.38
# perl Makefile.PL
# make
# make test
# make install 


udrec_suite installieren

In folgenden Dateien sind Änderungen nötig, die vor dem Kompilieren durchgeführt werden müssen:

usgui.cpp:

807: QString fopt((UsguiConfig::getDvdFormatOptions()).c_str());
808: QString bopt((UsguiConfig::getDvdBurnOptions()).c_str());

udrecxmlfile.cpp:

54: channelName = ((*iter).content).c_str();
63: epgTitle = tmp.c_str();

fileoperations.cpp:

#include "stdlib.h"

Die Installation gestaltet sich relativ einfach wenn erstmal alle Voraussetzungen erfüllt sind:

# tar xpvfz udrec_suite-0.4.1.tar.gz
# cd udrec_suite-0.4.1
# ./configure --enable-bootstart=yes --prefix=/usr
# make
# make install


Konfiguration

Die Konfiguration der udrec_suite findet in der Datei /etc/udrec_suite/ud_suite.conf statt. Da diese Datei recht gut kommentiert ist, hier nur eine beispielhafte Konfiguration:

ud_suite.conf

Außerdem muss noch der Benutzer angelegt und die Startdateien kopiert werden, da die Installation der udrec_suite diese nicht in die von Slackware genutzten Verzeichnisse installiert.

# useradd -g users -d /home/record -s /bin/bash udrec
# mkdir /home/record
# cd /home/record
# mkdir dvd iso nfs ready ts temp temp/xmltv
# touch /home/record/temp/spool
# chown -R udrec:users /home/record
# mv /etc/init.d/* /etc/rc.d/init.d/
# mv /etc/rc3.d/* /etc/rc.d/rc3.d/
# rm -r /etc/init.d
# rm -r /etc/rc3.d

Nun müssen noch die Logfiles angelegt werden und die entsprechenden Rechte gesetzt werden:

# touch /var/log/ud_daemon.log
# touch /var/log/ud_suite.log
# touch /var/log/vlc_http.log
# chown udrec:users /var/log/ud_*
# chown udrec:users /var/log/vlc_http.log

Abschließend muss noch eine Änderung im Start-/Stop-Script /etc/init.d/udrec_suite gemacht werden, Zeile 66:

su - $UDREC_USER -c "$XVFB -screen $NEXT_DISP 640x480x8 \ :$NEXT_DISP >/dev/null 2>&1 &"

Und in Folge desssen noch ein kleine Änderung in /usr/bin/ud_suite.pl (Zeile 102), sowie in ud_mpg2ts.pl (Zeile 44) und ud_demux.pl (Zeile 41):

my $xvfb_display = `ps -ef | egrep ".*vfb" | head -1`;