Hallo,
ich hab' mal ein kleines Script geschrieben um eine Aufnahme für den iPod zu konvertieren. Ist mein erstes Script für den VDR, also noch ziemlich verbesserungswürdig.
Was braucht es?
Das Script benötigt ffmpeg mit Unterstützung für aac-Ton (ist manchmal nicht eincompiliert). Ich habe es auf meiner Gen2vdr (1.0 rc4) entwickelt und nur dort getestet.
Es wird in die Datei /etc/vdr/reccmds.conf eingebaut und steht dann bei den Aufnahmen zur Verfügung
Was tut es?
Es konvertiert die ausgewählte Aufnahme in eine Datei "output.m4v" in den Ordner /film (dieser ist bei gen2vdr über samba freigegeben).
Was tut es (noch) nicht?
Es konvertiert nur kurze Aufnahmen die aus einer Datei "001.vdr" bestehen. Ich bin noch am überlegen wie man das geschickt erweitern kann, dass er auch eine 002.vdr konvertiert und diese dann mit der vorher konvertierten Datei zusammenbackt. Anregungen sind gefragt! Wer hat sowas schonmal gemacht?
Es blockiert den VDR für die Zeit der Konvertierung. Das führt zu einem Absturz meines VDR's. Nach einem "/etc/init.d/vdr restart" geht alles wieder.
Es gibt noch keine Nachricht wenn die Konvertierung beendet ist.
Die beiden letzten Punkte hängen zusammen. Wenn ich den Aufruf von ffmpeg mit einem angehängten & in den Hintergrund schicke, stürzt zwar VDR nicht ab, aber er sagt immer noch nix wenn er fertig ist.
Wie kann man das besser machen? Hilfe ist gefragt.
Hier das Script:
#!/bin/bash
# konvertiert eine ausgewählte Aufnahme
# verwendet ffmpeg
# Zielformat: mpeg4 320x240 für iPod
# beispiel manueller Aufruf: ffmpeg -i 001.vdr -vcodec xvid -s 320x240 -b 850 -acodec aac -ac 2 -ab 64 -ar 44100 -f mp4 "4400.m4v"
# Deklariere Variablen
# Videocodec
video="xvid"
# Audiocodec
audio="aac"
# Pfad zur Aufnahme
pfad="$1/001.vdr"
# Name der Ausgabedatei
nam="output.m4v"
#Pfad für Ausgabedatei
apfad="/film/"
# Übergabeparameter für ffmpeg
string1="-i $pfad -vcodec $video -s 320x240 -b 850 -acodec $audio -ac 2 -ab 64 -ar 44100 -f mp4 $apfad$nam"
/usr/bin/ffmpeg $string1
echo "Konvertierung von $nam beendet"
Alles anzeigen