Linux/Videoverarbeitung
Scripts
Hinweise
Die Qualität und Länge des Ergebnisses bei Umrechnung nach MPEG2 ist von 3 Parametern für mpeg2enc (von mjpegtools) abhängig:
- -b (max. Bitrate, nicht über 10000)
- -q (Qualität, kleiner ist besser, aber <4 macht keinen Sinn)
- -K (Matrix, z.B. "tmpgenc" oder "hi-res")
Die tatsächliche Länge kann man nicht vorhersagen, da die Bitrate variabel und die Qualität konstant ist, im Gegensatz zu anderen Encodern, wo es umgekehrt gemacht wird. Daher ist es sehr stark vom Quellmaterial abhängig. Bei einer Filmlänge von 44 Minuten bekomme ich z.B. ca. 600 MB mit "-q 5 -K tmpgenc" und 700-1000 MB mit "-q4 -K hi-res", wenn das Quellmaterial 16:9 ist. Ich bin mit "-q4 -K hi-res" aber auch schon auf 1.7 GB gekommen mit Vollbild (4:3) Quellmaterial.
PAL, AVI, 4:3, DivX, MP3 (44.1 KHz) -> MPEG2 (720x576), AC3
rm "$1.fifo" mkfifo "$1.fifo" nice transcode -k --write_pid transcode.pid -i "$1" -V -M 4 -y yuv4mpeg -o "$1.fifo" --ext none,none & cat "$1.fifo" | nice /work/videotools/y4mscaler/y4mscaler -S option=sinc:8 -v 0 -I sar=4:3 -O size=720x576 | nice mpeg2enc -v 0 -I 0 -f 8 -b 9000 -n n -a 2 -o "$1.m2v" -q 4 -K hi-res -D 10 -4 2 -2 1 -R 2 rm "$1.fifo" nice tcextract -i "$1" -a 0 -x mp3 >"$1.mp3" nice ffmpeg -i "$1.mp3" -acodec ac3 -ab 224 -ar 48000 "$1.ac3" rm "$1.mp3" mplex -f 8 -o "$1.mpg" "$1.m2v" "$1.ac3"
PAL, OGM, 16:9, DivX (640x352), 3xOGG (48 KHz) -> MPEG2 (720x576), AC3
ogmdemux $1 oggdec $1-a2.ogg nice ffmpeg -i $1-a2.wav -acodec ac3 -ab 224 $1.ac3 rm $1-a2.wav rm $1-a1.ogg rm $1-a2.ogg rm $1-a3.ogg rm "$1.fifo" mkfifo "$1.fifo" nice transcode -k --write_pid transcode.pid -i "$1-v1.avi" -V -y yuv4mpeg -o "$1.fifo" --ext none,none & cat "$1.fifo" | nice /work/videotools/y4mscaler/y4mscaler -S option=sinc:8 -v 0 -I sar=16:9 -I active=640x352+0+0 -O size=720x576 -O active=720x416+0+80 | nice mpeg2enc -v 0 -I 0 -f 8 -b 9000 -n n -a 2 -o "$1.m2v" -q 5 -K tmpgenc -D 10 -4 2 -2 1 -R 2 rm "$1.fifo" mplex -f 8 -o "$1.mpg" "$1.m2v" "$1.ac3"
NTSC, AVI, 16:9, DivX (640x352), MP3 (48 KHz) -> MPEG2 (720x480), AC3
rm "$1.fifo" mkfifo "$1.fifo" nice transcode -k --write_pid transcode.pid -i "$1" -V -N 0x2000 -b 224 -M 4 -y yuv4mpeg -o "$1.fifo" -m "$1.ac3" --ext none,none & cat "$1.fifo" | nice /work/videotools/y4mscaler/y4mscaler -S option=sinc:8 -v 0 -I sar=16:9 -I active=640x352+0+0 -O size=720x480 -O active=720x352+0+64 | nice mpeg2enc -v 0 -I 0 -f 8 -b 9000 -F 4 -n n -p -a 2 -o "$1.m2v" -q 4 -K hi-res -D 10 -4 2 -2 1 -R 2 rm "$1.fifo" mplex -f 8 -o "$1.mpg" "$1.m2v" "$1.ac3" # -x mplayer als transcode Option, wenn transcode für das AVI einen Fehler meldet
NTSC, AVI, 16:9, DivX (608x336), MP3 (48 KHz) -> MPEG2 (720x480), AC3
rm "$1.fifo" mkfifo "$1.fifo" nice transcode -k --write_pid transcode.pid -i "$1" -V -N 0x2000 -b 224 -M 4 -y yuv4mpeg -o "$1.fifo" -m "$1.ac3" --ext none,none & cat "$1.fifo" | nice /work/videotools/y4mscaler/y4mscaler -S option=sinc:8 -v 0 -I sar=16:9 -I active=608x336+0+0 -O size=720x480 -O active=720x354+0+63 | nice mpeg2enc -v 0 -I 0 -f 8 -b 9000 -F 4 -n n -p -a 2 -o "$1.m2v" -q 4 -K hi-res -D 10 -4 2 -2 1 -R 2 rm "$1.fifo" mplex -f 8 -o "$1.mpg" "$1.m2v" "$1.ac3" # -x mplayer als transcode Option, wenn transcode für das AVI einen Fehler meldet
NTSC, AVI, 16:9, DivX (640x368), MP3 (48 KHz) -> MPEG2 (720x480), AC3
rm "$1.fifo" mkfifo "$1.fifo" nice transcode -x mplayer -k --write_pid transcode.pid -i "$1" -V -N 0x2000 -b 224 -M 4 -y yuv4mpeg -o "$1.fifo" -m "$1.ac3" --ext none,none & cat "$1.fifo" | nice /work/videotools/y4mscaler/y4mscaler -S option=sinc:8 -v 0 -I sar=16:9 -I active=640x368+0+0 -O size=720x480 -O active=720x368+0+56 | nice mpeg2enc -v 0 -I 0 -f 8 -b 9000 -F 4 -n n -p -a 2 -o "$1.m2v" -q 4 -K hi-res -D 10 -4 2 -2 1 -R 2 rm "$1.fifo" mplex -f 8 -o "$1.mpg" "$1.m2v" "$1.ac3" # -x mplayer als transcode Option, wenn transcode für das AVI einen Fehler meldet
NTSC, SVCD, 4:3, MPEG2 (480x480), MP2 (44.1 KHz) -> MPEG2 (720x480), AC3
Um das MPEG2 von CD zu lesen muss man vcdxrip verwenden.
rm "$1.fifo" mkfifo "$1.fifo" nice transcode -k --write_pid transcode.pid -i "$1" -f 23.976 -J ivtc -V -M 4 -y yuv4mpeg -o "$1.fifo" --ext none,none & cat "$1.fifo" | nice /work/videotools/y4mscaler/y4mscaler -S option=sinc:8 -v 0 -O size=720x480 | nice mpeg2enc -v 0 -I 0 -f 8 -b 9000 -F 4 -n n -p -a 2 -o "$1.m2v" -q 4 -K tmpgenc -D 10 -4 2 -2 1 -R 2 rm "$1.fifo" nice tcextract -i "$1" -a 0 -x mp2 >"$1.mp2" nice ffmpeg -i "$1.mp2" -acodec ac3 -ab 224 -ar 48000 "$1.ac3" rm "$1.mp2" mplex -f 8 -o "$1.mpg" "$1.m2v" "$1.ac3"
MPEG2 requantisieren (nur Video)
nice tcrequant -i "$1".m2v -o "$1"_r.m2v -f $2
-f = Faktor der Verkleinerung
MPEG2, MP2 (44.1 KHz) -> MPEG2, AC3
let offset=`mpeg2desc -m < "$1"` rm "$1.fifo.m2v" rm "$1.fifo.mp2" rm "$1.fifo.ac3" mkfifo "$1.fifo.m2v" mkfifo "$1.fifo.mp2" mkfifo "$1.fifo.ac3" nice mpeg2desc -a0 < "$1" > "$1.fifo.mp2" & nice mpeg2desc -v0 < "$1" > "$1.fifo.m2v" & nice ffmpeg -y -i "$1.fifo.mp2" -acodec ac3 -ab 224 "$1.fifo.ac3" & nice mplex -O "$offset"mpt -f 8 -o "$1.mpg" "$1.fifo.m2v" "$1.fifo.ac3" rm "$1.fifo.m2v" rm "$1.fifo.mp2" rm "$1.fifo.ac3"
Video-DVD erstellen
dvdauthor -o /Verzeichnis -x dvd.xml
dvd.xml:
<dvdauthor><vmgm /><titleset><titles> <pgc><vob file="File1.mpg" /></pgc> <pgc><vob file="File2.mpg" /></pgc> </titles></titleset></dvdauthor>
Video-DVD brennen
growisofs -dvd-video -Z /dev/sr0 /Verzeichnis
Audio-Spur bei einem AVI austauschen
AVI mit Avidemux laden. Eventuelle Fragen nach Build VBR time map und Index Rebuild positiv beantworten. Dann im Menü Audio/Main Track wählen und in der Combobox External [Typ] (z.B. "External MP2/3") selektieren. Nach "OK" die neue Audio-Spur von Platte aussuchen. Dann im Menü Audio/Build VBR Time Map wählen und das AVI wieder abspeichern (mit Copy als Format bei Video und Audio).
VP9 Video mit Untertiteln nach H264 konvertieren
ffmpeg -i video.mkv -map 0 -c:s mov_text video.mp4
Tools
OGM Tools
http://www.bunkus.org/videotools/ogmtools/
bbmpeg
- Homepage: http://members.cox.net/beyeler/bbmpeg.html
- Linux-Port: http://home.mindspring.com/~beyeler/bbtool17-2-linux.tar.gz, http://www.pxh.de/fs/svcd/software/bbtool17-2-linux.tar.gz
LAME (MP3-Encoder/Decoder)
http://freshmeat.net/projects/lame/
ffmpeg
- Paket "sdl-devel" installieren
- http://ffmpeg.sourceforge.net/
xvid
- http://www.xvid.org/
- cd /build/generic
- ./configure
- make
- make install
divxdecore
- http://www.projectmayo.com/projects/detail.php?projectId=4
- download divx4linux*.zip
- cp libdivxdecore.so.0.0.0 /usr/lib/libdivxdecore.so
- cp libdivxencore.so.0.0.0 /usr/lib/libdivxencore.so
mjpegtools (mpeg2enc, mplex, ...)
- NICHT Paket "mjpegtools" von Suse installieren!
- "mjpegtools" und "mjpegtools-devel" RPMs von http://mjpeg.sourceforge.net/ installieren
transcode (tcprobe, tcextract, tcrequant, ...)
- Paket "nasm" installieren
- LAME installieren
- ffmpeg installieren
- xvid installieren
- divxdecore installieren
- mjpegtools installieren
- http://www.theorie.physik.uni-goettingen.de/~ostreich/transcode/
- http://www.zebra.fh-weingarten.de/~transcode/
gtranscode
- Paket "gtk-devel" installieren
- http://freshmeat.net/projects/gtranscode/
ogg/vorbis libs
- http://www.xiph.org/ogg/vorbis/
- libogg-1.1.tar.gz
- libvorbis-1.0.1.tar.gz
ogg/vorbis decode/encode
mplayer
- ogg/vorbis-libs installieren
- http://www.mplayerhq.hu/
dvdauthor (inkl. mpeg2desc)
- Pakete "libxml2-devel" und "libdvdread-devel" installieren
- http://dvdauthor.sourceforge.net/
qdvdauthor
http://qdvdauthor.sourceforge.net/
y4mscaler
http://www.mir.com/DMG/Software/
Avidemux (AVI- und MPEG-Editor)
http://fixounet.free.fr/avidemux/