Linux/Videoverarbeitung

Aus VivaLV
Zur Navigation springen Zur Suche springen

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

LAME (MP3-Encoder/Decoder)

http://freshmeat.net/projects/lame/

ffmpeg

xvid

divxdecore

mjpegtools (mpeg2enc, mplex, ...)

transcode (tcprobe, tcextract, tcrequant, ...)

gtranscode

ogg/vorbis libs

ogg/vorbis decode/encode

http://www.vorbis.com/

mplayer

dvdauthor (inkl. mpeg2desc)

qdvdauthor

http://qdvdauthor.sourceforge.net/

y4mscaler

http://www.mir.com/DMG/Software/

Avidemux (AVI- und MPEG-Editor)

http://fixounet.free.fr/avidemux/

vcdimager (vcdxrip)

http://www.gnu.org/software/vcdimager/vcdimager.html