Konvertieren von VDR Aufnahmen

13 Mai 2013 von Oli82 Kommentieren »

Auch wenn Speicherplatz derzeit so günstig wie noch nie ist, mach es natürlich Sinn, seine aufgenommenen Sendungen in ein platzsparendes Format zu wandeln.

Hier sind wir wieder bei dem Headless-Problem. Nutzt man den VDR auch als Receiver, gibt es wohl einige Plugins, die das Konvertieren der Aufnahmen aus dem OSD heraus ermöglichen. Im VDR-Portal bin ich auf Traco aufmerksam geworden, was eine Weiterentwicklung von Vdrtranscode ist. Traco nutzt HandbrakeCLI um aus dem ts-File der VDR Aufnahme
ein Video in H264 zu erzeugen.

Die Installation

Es gibt zwar ein *.deb-Paket, was aber nicht immer dem aktuellen Stand entspricht. Holger bietet aber eine Repository auf GitHub an, in dem immer die neusten Änderungen berücksichtigt werden.

Die Schritte beziehen sich auf die Traco-Revision vom 13.Juni. 2013

# Zuerst installiert man die Voraussetzungen für Traco:
sudo apt-get update
sudo apt-get install git-core
sudo apt-get install libproc-daemon-perl

# PPA Quellen hinzufügen:
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake-cli 

# Traco von Git clonen und installieren:
git clone https://github.com/kakadoo/traco.git
cd traco
sudo cp -p *.pl /usr/bin/.
sudo cp -p traco.conf /etc/vdr/.
sudo cp -rp lib/Traco /usr/lib/perl5/.
sudo cp -p debian/init.d/tracosrv.sh /etc/init.d/.
sudo chmod +x /etc/init.d/tracosrv.sh

Nun muss man noch die /etc/vdr/traco.conf nach seinen Bedürfnissen anpassen.

Ich habe die Einstellungen auf so wie vorgegeben belassen. Nur die Pfade, das Profil und den Dateinamen habe ich angepasst:

## General settings
# Pfad zum Aufnahmeverzeichnis:
Indir = /srv/vdr/video.00
# Pfad zum Ausgabe-/ Videoverzeichnis
Outdir = /srv/video
# Die Profile sind in der Datei Tracoprofile.pm definiert
defaultprofile=SD
# Zur einfacheren Suche unter Linux sollten die Klammern entfernt werden 😉
# Neu seit dem 13. Juni 2013: Es können nun auch Episodentitel mit übergeben werden!
filenameformat=%t-%d.%m.%y.%c

Der Tracodienst muss noch so konfiguriert werden, dass er beim Booten automatisch gestartet wird:

sudo /etc/init.d/tracosrv.sh start
sudo update-rc.d tracosrv.sh defaults

Somit ist Traco installiert und konfiguriert.

Bedienung

Traco erzeugt nun nach der Aufnahme die Datei vdrtranscode.xml im Aufnahmeverzeichnis.

Beispieldatei vdrtranscode.xml:

<status>offline</status>
<vdrinfo>
<title>Grimm</title>
<frames>25</frames>
<starttime>1367867700</starttime>
<endtime>1367871300</endtime>
<src_audio track="0">stereo</src_audio>
</vdrinfo>
<files>00001.ts</files>
<profile name="SD">
<name>SD (480p) Profile with HQ Bitrate</name>
<resolution>480p</resolution>
<container>mp4</container>
<pixel>852</pixel>
<ypixel>480</ypixel>
<anamorph>--loose-anamorphic</anamorph>
<modulus>8</modulus>
<quality>1200</quality>
<audiotracks>all</audiotracks>
<codec>-2 -T -e x264</codec>
<codecopts>-x ref=2:mixed-refs:bframes=2:b-pyramid=1:weightb=1:analyse=all:8x8dct=1:subme=7:me=umh:merange=24:trellis=1:no-fast-pskip=1:no-dct-decimate=1:direct=auto</codecopts>
</profile>

Ist die xml vorhanden, kann man mit folgendem Befehl die Rohdatei erstellen, die später für die Konvertierung genutzt wird:

tracoadm.pl status prepare_traco_ts /srv/vdr/video.00/FILM/MeinFilm.rec
# nicht wundern, das Script antwortet nur mit "tracoadm exit with done" auf den Befehl.

In der daraus resultierende vdrtranscode.ts sind schon die Schnittmarken und Parameter für die spätere Ausgabedatei berücksichtigt!. Will die Schnittmarken selbst setzen, muss das natürlich vorher geschehen.

In der XML ändert sich der Status nun von <status>offline</status> zu <status>online</status>. Mit dem folgenden Befehl startet nun die eigentliche Konvertierung:

tracoadm.pl status ready /srv/vdr/video.00/FILM/MeinFilm.rec

Je nach Rechnerleistung dauert die Konvertierung eine ganze Weile. mit top oder htop kann man sich die Systemauslastung anzeigen lassen. Bei meinem i3 sieht das wie folgt aus:

image_S033

HandbrakeCLI bei der Arbeit. Es lebe HT

Sobald die Konvertierung fertig ist, findet man den Film (bei mir) unter /srv/video/Tiel-Tag.Monat.Jahr.mp4.

Bedienung über das VDR OSD

Es ist auch möglich, Traco über das OSD des VDR zu bedienen.  Möchte man Traco über da sOSD nutzen, benötigt man noch reccmds, die im Traco Paket enthalten sind:

sudo cp debian/vdr/command-hooks/reccmds.traco.conf.sample /usr/share/vdr/command-hooks/reccmds.traco.conf
sudo chown vdr:vdr /usr/share/vdr/command-hooks/reccmds.traco.conf
sudo restart vdr

Das OSD ist auch bei einem Headless Server verfügbar. Mehr dazu hier

Fehlersuche

Sollte es Probleme mit Traco (hohe CPU Last, keine Konvertierung etc.) geben, können folgende Befehle hilfreich sein:

# Tracosrv beenden:
sudo /etc/init.d/tracosrv.sh stop

# Start in Vordergrund
sudo perl tracosrv.pl -f

# Debugging = mehr Ausgabe 
sudo perl tracosrv.pl -d

# zum debuggen
sudo perl tracosrv.pl -f -d

# Aktuelle Source holen:
~/traco$ sudo git pull https://github.com/kakadoo/traco.git
Werbung

Schreibe einen Kommentar


Deprecated: Function set_magic_quotes_runtime() is deprecated in /www/htdocs/w00b99e6/blog/counter/counter.php on line 61

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: Function set_magic_quotes_runtime() is deprecated in /www/htdocs/w00b99e6/blog/counter/counter.php on line 1794