drw-r--r-- 2 hmk hmk 4096 May 15 18:39 .
Linux-smalltalk
Anzeige
#1967
geschrieben 18. Mai 2009 - 08:06
Hmm...hast du mal das Dateisystem auf Fehler überprüft?
#1968
geschrieben 18. Mai 2009 - 10:30
#1969
geschrieben 18. Mai 2009 - 12:11
#1970
geschrieben 18. Mai 2009 - 12:26
#1971
geschrieben 18. Mai 2009 - 20:25
Ach...Code ist unter GPL, BWL, VWL...sucht euch irgendetwas aus.
#
#
# deps
#
# mplayer
# dvdauthor
# dvd+rw-tools
# without trailing slash
OUTPUT_FOLDER=/home/witi/movies
# encoding threads
THREADS=2
# delete output folder?
DELETE_OUTPUT_FOLDER=false
INPUT_VIDEO=$1
# subtitle
INPUT_SUBTITLE=$2
SUBTITLE_FONT=devedesans.ttf
SPUMUX_CONFIG=spc.xml
function createDvdMpeg {
mencoder -srate 48000 -af lavcresample=48000 -oac lavc -aid 1 -ovc lavc \
-of mpeg -mpegopts format=dvd:tsaf -ofps 25 -vf expand=720:576,harddup -lavcopts \
threads=$THREADS:trell:mbd=2:vcodec=mpeg2video:vrc_buf
_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=1
5
:vstrict=0:acodec=ac3:abitrate=192:aspect=4/3 \
-o "$OUTPUT_FOLDER/$OUTPUT_FILE" "$INPUT_VIDEO" 2> /dev/null
if [ $? -gt 0 ]; then
echo "could not create mpeg file $OUTPUT_FOLDER/$OUTPUT_FILE of $INPUT_VIDEO"
exit 2;
fi
}
function addSubtitle {
CONF="$OUTPUT_FOLDER/$SPUMUX_CONFIG"
# Output file with subtitle
OUTPUT_FILE_WITH_SUBTITLE="${MOVIE_NAME}_sub.mpg"
cat >> $CONF << EOF
<subpictures>
<stream>
<textsub filename="$INPUT_SUBTITLE"
fontsize="28.0" font="$SUBTITLE_FONT"
force="yes" movie-fps="25" subtitle-fps="25"
movie-width="720" movie-height="576"
horizontal-alignment="center"
/>
</stream>
</subpictures>
EOF
# multiplex subtitle
spumux -s 0 -m dvd $CONF < "$OUTPUT_FOLDER/$OUTPUT_FILE" > "$OUTPUT_FOLDER/$OUTPUT_FILE_WITH_SUBTITLE" 2> /dev/null
if [ $? -gt 0 ]; then
echo "could not create subtitle for config $CONF"
exit 3;
fi
# rename to $OUTPUT_FILE
mv "$OUTPUT_FOLDER/$OUTPUT_FILE_WITH_SUBTITLE" "$OUTPUT_FOLDER/$OUTPUT_FILE"
}
function createDvdStructure {
# TODO
# Subtitle languages?
dvdauthor -t -s en -o "$DVD_FOLDER" "$OUTPUT_FOLDER/$OUTPUT_FILE" 2> /dev/null
if [ $? -gt 0 ]; then
echo "could not create dvd structure in $DVD_FOLDER"
exit 4;
fi
dvdauthor -T -o "$DVD_FOLDER" 2> /dev/null
if [ $? -gt 0 ]; then
echo "could not create dvd structure in $DVD_FOLDER"
exit 5;
fi
}
function burn {
growisofs -dvd-compat -Z /dev/dvd -dvd-video -V "$MOVIE_NAME" "$DVD_FOLDER" 2> /dev/null
if [ $? -gt 0 ]; then
echo "could not burn folder $DVD_FOLDER"
exit 6;
fi
eject
}
# $INPUT_VIDEO without extension.
MOVIE_NAME=$(echo $INPUT_VIDEO | sed -r -e 's/(.*\/)?(.*)\..*/\2/')
# $OUTPUT_FILE_WITHOUT_EXT with mpg extension.
OUTPUT_FILE=$MOVIE_NAME.mpg
# DVD Folder
DVD_FOLDER=$OUTPUT_FOLDER/$MOVIE_NAME
if [ ! -f "$INPUT_VIDEO" ]; then
echo $INPUT_VIDEO not found
exit 1
fi
# create output folder
if [ ! -d "$OUTPUT_FOLDER" ]; then
mkdir $OUTPUT_FOLDER
else
# empty it
rm -rf $OUTPUT_FOLDER/*
fi
createDvdMpeg
if [ -f "$INPUT_SUBTITLE" ]; then
addSubtitle
fi
createDvdStructure
burn
if [ "$DELETE_OUTPUT_FOLDER" = true ]; then
rm -rf $OUTPUT_FOLDER
fi
# resources
#
# http://www.mplayerhq...at-vcd-dvd.html
# http://irrepupavel.c...with_subtitles/
# http://www.linux.com.../feature/139221
# http://www.elien.de/wiki/LinuxDVD,,,de
Kurze Dokumentation sollte natürlich auch nicht fehlen:
Das Script benötigt mplayer (mencoder zum Erstellen der DVD-kompatiblen MPEG-Datei), dvdauthor (zum Multiplexen eines Untertitels und Erstellen der DVD-Struktur) und dvd+rw-tools (growisofs zum Brennen der DVD).
Der Aufruf des Scripts erwartet zwei Parameter, den Pfad zur konvertierenden Datei und eine optionale Untertitel-Datei, die multiplext (was für ein Wort) wird.
./createDVD.sh meinFilm.avi meinFilm_en.srt
Folgende Variablen könnt und solltet ihr auch anpassen:
OUTPUT_FOLDER - Pfad der erzeugten Dateien
THREADS - Anzahl der Threads die mencoder verwenden soll. Sollte der Anzahl eurer CPUs/Kerne entsprechen
DELETE_OUTPUT_FOLDER - true, wenn nach einem erfolgreichen Erstellen und Brennen der DVD, der OUTPUT_FOLDER gelöscht werden soll. Ansonsten false
SUBTITLE_FONT - Achtung. Falls ihr Untertitel verwendet, muss die dort verwendete TTF-Datei unter ~./spumux/ liegen!
Optimierungen, Verschönerungen und sonstige Sachen jeglicher Art sind natürlich herzlich Willkommen.
Angehängte Datei(en)
-
createDVD.txt (2,92K)
Anzahl der Downloads: 259
Dieser Beitrag wurde von Witi bearbeitet: 18. Mai 2009 - 20:31
Änderungsgrund: Edith meint, ich könnte den Quellcode wegen entsprechender Einrückungen als Datei hochladen
#1972
geschrieben 18. Mai 2009 - 21:23
greetz
Tommy
#1973 _lustiger_affe_
geschrieben 18. Mai 2009 - 21:51
Zitat
[[ $? -gt 0 ]] && echo "Error"; exit $Zahl
getopt wäre schön für die Parameter, sowie mktemp für nicht kollisionsgefährdete Dateien/Ordner. Das sed-Statement ginge in awk auch einfacher.
Edit, warum nicht gleich eine ordentliche error-Function?
function die() { echo "$2" exit "$1" }und callen z.B.
[[ $? -gt 0 ]] && die "FOO did very bad BAR" 17
Dieser Beitrag wurde von lustiger_affe bearbeitet: 18. Mai 2009 - 21:54
#1974
geschrieben 19. Mai 2009 - 17:06
Zitat
legt mir nämlich eth0 statt eth0:1 auf br0
wie könnte ich das anders machen?
#1975
geschrieben 20. Mai 2009 - 06:50
funky_monkey sagte:
funky_monkey sagte:
funky_monkey sagte:
Habe bei phoronix eben den Artikel zu moblin v2 gelesen. Das GUI finde ich ziemlich nett, weiß einer ob das zufällig irgendwo einzeln verfügbar ist?
#1976 _lustiger_affe_
geschrieben 20. Mai 2009 - 16:44
#1977
geschrieben 01. Juni 2009 - 01:43
#1978 _lustiger_affe_
geschrieben 10. Juni 2009 - 14:44
#1979
geschrieben 11. Juni 2009 - 06:25
Aber wenigstens ist der hässliche Tuz weg.
#1980 _lustiger_affe_
geschrieben 11. Juni 2009 - 15:27
Zitat