mpv/DOCS/German/encoding.html

302 lines
16 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Konvertierung - MPlayer - The Movie Player for Linux</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="default.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
<H2><A NAME="encoding">2.4. Encodieren mit MEncoder</A></H2>
<P><B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder) ist ein einfacher Filmencoder,
entworfen um Filme, die mit <B>MPlayer</B> abspielbar sind (<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET</B>),
in ein anderes von <B>MPlayer</B> abspielbares Format (siehe unten) zu encodieren. Er kann mehrere Codecs zur
Encodierung benutzen, wie <B>DivX4</B> (1, 2 oder 3 Pass), libavcodec und <B>PCM</B>/<B>MP3</B>/<B>VBRMP3</B> Audio.
Er verf<72>gt auch <20>ber eine stream-copy-Funktion und kann die Gr<47>sse der Videos <20>ndern.</P>
<H3><A NAME="compilation">2.4.1. Kompilierung</A></H3>
<UL>
<LI><B>OPTIONAL</B> - Lies die Anleitungen zur <B>MPlayer</B> Kompilierung.</LI>
<LI><B>OPTIONAL (nur Linux)</B> - Downloade die neuesten <B>DivX4linux</B> Libs von
<A HREF="http://avifile.sourceforge.net/download.htm">avifile.sourceforge.net</A>
und installiere sie RICHTIG. Es wird ben<65>tigt f<>r das DivX4 (1/2 Pass) encodieren.
Weil er (zur Zeit) noch davon abh<62>ngig ist, ist MEncoder auf Linux beschr<68>nkt.</LI>
<LI><B>OPTIONAL</B> - <A HREF="codecs.html#xvid">downloade und installiere
<B>XViD</B></A>. Nicht sehr n<>tzlich, libavcodec's <I>mpeg4</I> Codec
kann viel schneller UND in besserer Qualit<69>t codieren als XViD oder DivX4/5.</LI>
<LI><B>OPTIONAL</B> - f<>r libavcodec Support, installiere libavcodec wie beschrieben in
<A HREF="codecs.html#libavcodec">ffmpegs DivX/libavcodec</A>.</LI>
<LI><B>OPTIONAL</B> - Downloade und kompiliere <B>libmp3lame</B> (von lame 3.89beta oder lame CVS).<BR>
<B>Warnung: Kompiliere Lame &lt; 3.90 auf keinen Fall mit <U>GCC 2.96</U>! Es wird nicht funktionieren.</B><BR>
Dies wird f<>r die CBR/VBR MP3 Audio Encodierung ben<65>tigt. Bedenke dass die <CODE>lame</CODE>
Binary allein nicht genug ist. <20>brigens: je weniger Optimierungen du f<>r lame
verwendest, desto besser wird die Qualit<69>t. Du kannst die Qualit<69>t mit <CODE>make test</CODE>
nach dem Kompilieren von lame testen. Das Ergebnis (eine Zahl) sollte kleiner als <B>30</B> sein.
Aber keine Panik wenn sie <B>400</B> oder <20>hnlich ist, du solltest keine mindere Qualit<69>t bemerken k<>nnen.
Oh, und wenn dein Compiler <CODE>make test</CODE> nicht ausf<73>hrt ... dann l<>sche <B>GCC 2.96</B>
oder upgrade Lame auf mindestens <B>3.90</B>.</LI>
<LI><B>OPTIONAL</B> - <CODE>libjpeg</CODE> und <CODE>libpng</CODE> -
wie in der <A HREF="documentation.html#installation">Installation</A>
Sektion beschrieben</LI>
</UL>
<P>Du bist fertig. Wie du m<>glicherweise weisst, ben<65>tigen andere Encoder <I>avifile</I>. <B>MEncoder</B> braucht diese
<EFBFBD>berhaupt nicht.</P>
<H3><A NAME="features">2.4.2. MEncoder Features</A></H3>
<UL>
<LI>Encodieren von der gro<72>en Reichweite an Dateiformaten und Decodern von <B>MPlayer</B></LI>
<LI>Encodieren von allen Codecs von <A HREF=codecs.html#libavcodec>libavcodec</A></LI>
<LI>Erzeugung von Dateien aus einer externen Tonspur</LI>
<LI>Encodieren von <B>V4L kompatiblem TV-Tunern</B></LI>
<LI>Encodieren/Multiplexen zu interleaved AVI-Datei mit Index</LI>
<LI>1, 2 oder 3 Pass Encodierung</LI>
<LI><B>VBR</B> MP3 Audio, <B>wichtiger Hinweis:</B> VBR MP3 Audio wird von Windows-Playern
nicht immer gut wiedergegeben. Andererseits ist <B>MEncoder</B>'s CBR Encodierung auf
Win32-Playern ausser Betrieb :)</LI>
<LI>PCM Audio</LI>
<LI>stream-copy</LI>
<LI>Eingangs A/V-Synchronisation (PTS-basierend, kann mit der -mc 0 Option ausgeschaltet werden)</LI>
<LI>Korrektur der FPS mit der <CODE>-ofps</CODE> Option (hilfreich beim Encodieren von 29.97fps VOB zu 24fps AVI)</LI>
<LI>Bildgr<EFBFBD>ssen<EFBFBD>nderung (rescaling)</LI>
<LI>Benutzung unseres m<>chtigen Plugin-Systems (crop, expand, flip, postprocess,
rotate, scale, rgb/yuv Umwandlung)</LI>
<LI>Encodieren von DVD/VOBsub- <B>UND</B> Text-Untertiteln in eine Ausgabedatei</LI>
<LI>Rippen von DVD Untertitel in das Vobsub Format</LI>
</UL>
<H4><I>Geplante Features:</I></H4>
<UL>
<LI>Erh<EFBFBD>hen der verf<72>gbaren En-/Decodierungs Formate/Codecs
(erzeugen von VOB Dateien mit DivX4/Indeo5/VIVO Streams :)</LI>
<LI>Audio Encodierung von v4l (FERTIG f<>r FreeBSD ?)</LI>
</UL>
<H4><A NAME="2pass">2.4.2.1. 2-Pass DivX4 Encodierung</A></H4>
<P><U><B>2-pass Encodierung:</B></U> Der Name kommt in der Tat daher, dass diese Methode die Datei <I>zwei Mal</I> encodiert.
Das erste Encodieren (1. <P>Pass</I> [=Durchlauf]) erzeugt einige tempor<6F>re Dateien (*.log) mit einer Dateigr<67><72>e
von nur wenigen, l<>sche sie nicht (du kannst die AVI l<>schen). Im zweiten Pass wird die Ausgabedatei erzeugt, unter
Verwendung der Bitraten-Daten der tempor<6F>ren Datei. Die endg<64>ltige Datei wird eine bessere Bildqualit<69>t
besitzen. Wenn dies das erst Mal ist das du davon h<>rst, solltest du einige Guides in Internet lesen.</P>
<P>Dieses Beispiel zeigt dir, wie du eine DVD in ein 2-Pass DivX4 AVI encodierst. Nur 2 Befehle sind erforderlich:<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - L<>sche diese Datei, welche von einer fr<66>heren
Encodierung kommen kann (Sie f<>hrt zu einem Konflikt mit der momentanen)<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -lavcopts vcodec=mpeg4:weitere_optionen -o film.avi -pass 1</CODE><BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -lavcopts vcodec=mpeg4:weitere_optionen -o film.avi -pass 2</CODE></P>
<P><U><B>3-pass Encodierung:</B></U> Dies ist eine Erweiterung der 2-Pass Encodierung,
in der die Kodierung von Audio in einem separaten Durchlauf vollzogen wird. Diese Methode
erlaubt die Untersuchung der empfohlenen Video-Bitrate um auf eine CD zu passen. Auch
wird der Ton nur einmal kodiert im Unterschied zum 2-Pass. Das Schema: </P>
<TABLE>
<TR><TD><CODE>rm frameno.avi</CODE></TD>
<TD><B>L<EFBFBD>sche st<73>rende tempor<6F>re Dateien</B></TD></TR>
<TR><TD><CODE>mencoder &lt;datei/DVD&gt; -ovc frameno -o frameno.avi</CODE></TD>
<TD><B><U>Erster Durchlauf:</U> Eine Audio-only avi Datei wird erzeugt, welche
NUR den verlangten Audiostream enth<74>lt. Vergiss nicht <CODE>-lameopts</CODE> zu setzen,
wenn du sie setzen musst. Wenn du einen langen Film encodierst, zeigt MEncoder
die empfohlenen Bitraten-werte an f<>r 650Mb, 700Mb und 800Mb Endgr<67>ssen,
wenn er diesen Durchlauf beendet hat.</B></TD></TR>
<TR><TD><CODE>mencoder &lt;datei/DVD&gt; -oac copy -pass 1 -ovc divx4 -divx4opts br=&lt;bitrate&gt;</CODE></TD>
<TD><B><U>Zweiter Durchlauf:</U> Integriert den ersten Durchlauf der DivX4 Video-Encodierung.
Optional kann die Video-Bitrate, welche am Ende des letzten Durchlaufes gezeigt wurde,
hier definiert werden.</B></TD></TR>
<TR><TD><CODE>mencoder &lt;datei/DVD&gt; -oac copy -pass 2 -ovc divx4 -divx4opts br=&lt;bitrate&gt;</CODE></TD>
<TD><B><U>Dritter Durchlauf:</U> Integriert den zweiten Durchlauf der DivX4 Video Encodierung.
Optional kann die Video-Bitrate, welche am Ende des letzten Durchlaufes gezeigt wurde,
In diesem Durchlauf wird der Ton vom <CODE>frameno.avi</CODE> in die endg<64>ltige Datei
eingef<65>gt und es ist alles bereit.</B></TD></TR>
</TABLE>
<H4>Beispiel einer 3-pass Encodierung:</H4>
<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - L<>sche diese Datei,
welche von einer fr<66>heren Encodierung kommen kann (Sie f<>hrt zu einem Konflikt mit
der momentanen)<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc frameno -o frameno.avi</CODE><BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -lavcopts vcodec=mpeg4:weitere_optionen -oac copy -o film.avi -pass 1</CODE><BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -lavcopts vcodec=mpeg4:weitere_optionen -oac copy -o film.avi -pass 2</CODE></P>
<P><U><B>2 oder 3-pass Encodierung unter Benutzung des internen libavcodec Kontrollers:</B></U>
Man kann optional libavcodec's internen 2 oder 3-pass Modus verwenden, welcher vielleicht zu einer
besseren endg<64>ltigen Genauigkeitrate f<>hrt als bei der Benutzung des externen, DivX4-inspirierten
2-pass Kontrollers mit libavcodec.</P>
<UL>
<LI><B>2-pass Encodierung:</B><BR>
<CODE>rm -f lavc_stats.txt</CODE><BR>
<CODE>mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 (Audio-Optionen) -o film.avi</CODE><BR>
<CODE>mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 (Audio-Optionen) -o film.avi</CODE></LI>
<LI><B>3-pass Encodierung:</B><BR>
<CODE>rm -f frameno.avi lavc_stats.txt</CODE><BR>
<CODE>mencoder -dvd 2 -ovc frameno (Audio-Optionen) -o frameno.avi</CODE><BR>
<CODE>mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o film.avi</CODE><BR>
<CODE>mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o film.avi</CODE></LI>
</UL>
<H4><A NAME="rescaling">2.4.2.2. Rescaling von Filmen</A></H4>
<P>Oftmals ist die <20>nderung der Bildgr<67><72>e erforderlich. Die Gr<47>nde daf<61>r k<>nnen verschieden sein,
Beispiele sind das Verkleinern des Ausgabenbildes oder das Encodieren von SVCD zu DivX. Bei gerippt DVDs
wurde meinst die Gr<47><72>e ge<67>ndert, zum Beispiel eine 4:3 DVD sollte 640x480 Pixel haben, insbesondere wenn
es auf eine CD passen soll und eine gute Bildqualit<69>t zugleich aufweisen soll.
SVCDs haben eine Gr<47><72>e von 480x480, wobei ihr Header jedoch die "Aspect Ratio" f<>r den Player enth<74>lt
(z.B.: 480x480 + 4:3 = 640x480). Wie auch immer, wenn du in eine AVI (DivX) Datei encodierst musst du
bedenken, dass der Header von AVI Dateien keine solche Information enth<74>lt. Darum ist die einzige M<>glichkeit
das <20>ndern das Ausl<73>sung.</P>
<P>Der Skalierungsprozess erfolgt durch den <I>'scale</I> Videofilter:
<CODE>-vop scale=X:Y</CODE>. Die Qualit<69>t kann durch die Option <CODE>-sws</CODE> angegeben werden.
Wenn nichts angegeben ist verwendet <B>MEncoder</B> 0:
fast bilinear.</P>
<P>Verwendung:<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder beispiel-svcd.mpg -lavcopts vcodec=mpeg4:weitere_optionen -vop scale=640:480 -sws 2 -o ausgabe.avi</CODE></P>
<H4><A NAME="copying">2.4.2.3. Stream-Copy</A></H4>
<P><B>MEncoder</B> kann Input-Streams auf zwei Arten behandeln: <B>encodieren</B> oder
<B>kopieren (copy)</B>. Diese Sektion erkl<6B>rt das <B>copying</B>.</P>
<UL>
<LI><B>Videostreams</B> (Option <CODE>-ovc copy</CODE>): Es k<>nnen nette Sachen gemacht werden :)<BR>
Wie das kopieren (nicht konvertieren) von FLI oder VIVO oder MPEG1 Video in eine AVI Datei! Nat<61>rlich kann nur <B>MPlayer</B>
solche Dateien abspielen :) Und vermutlich hat es auch keine <20>berlebensqualit<69>t. Das Kopieren von Videostream
kann n<>tzlicher sein, wenn man zum Beispiel nur den Audiostream encodieren will (z.B.: unkomprimiertes PCM
zu MP3).</LI>
<LI><B>Audiostreams</B> (Option <CODE>-oac copy</CODE>): siehe oben.</LI>
Es ist m<>glich eine externe Audiodatei (MP3, AC3, Vorbis) zu nehmen und diese
dem Ausgabestream hinzuzuf<75>gen. Benutze dazu die Option
<CODE>-audiofile &lt;dateiname&gt;</CODE>.</LI>
</UL>
<H4><A NAME="fixing">2.4.2.4. Reparieren von AVIs mit defektem Index oder Interleaving</A></H4>
<P>Einfache Sache. Wir kopieren einfach die Video- und Audiostreams und
<B>MEncoder</B> erzeugt das Index. Nat<61>rlich kann das keine Fehler in den
Video- und/oder Audiostreams l<>sen. Es kann auch Dateien mit kaputten Interleaving reparieren,
so dass die Option <CODE>-ni</CODE> f<>r diese nicht mehr gebraucht wird.</P>
<P>Befehl: <CODE>mencoder -idx eingabe.avi -ovc copy -oac copy -o ausgabe.avi</CODE></P>
<H4><A NAME="libavcodec">2.4.2.5. Encodierung mit der <I>libavcodec</I> Codec-Familie</A></H4>
<P><A HREF="codecs.html#libavcodec">libavcodec</A> bietet eine einfache Encodierung f<>r
viele interessante Video und Audio Formate (momentan sind deren Audio Codecs nicht
unterst<EFBFBD>tzt). Du kannst zu folgenden Codecs encodieren:</P>
<UL>
<LI>mjpeg - Motion JPEG</LI>
<LI>h263 - H263</LI>
<LI>h263p - H263 Plus</LI>
<LI>mpeg4 - DivX4</LI>
<LI>msmpeg4v2 - Micro$oft MPEG4 V2 (DivX alias MP43 predecessor)</LI>
<LI>msmpeg4 - das alte DivX</LI>
<LI>rv10 - ein alter RealVideo Codec</LI>
<LI>mpeg1video - MPEG1 video :)</LI>
</UL>
<P>Die erste Kolonne enth<74>lt den Codec-Name der nach dem <CODE>vcodec</CODE> Config <20>bergeben
werden sollte, wie z.B.: <CODE>-lavcopts vcodec=msmpeg4</CODE></P>
<P>Ein Beispiel mit MJPEG Kompression:<BR>
<CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -o titel2.avi -ovc lavc -lavcopts vcodec=mjpeg</CODE></P>
<H4><A NAME="image_files">2.4.2.6 Encodierung von mehreren Eingangsbildern (MJPEG/MPNG)</A></H4>
<P><B>MEncoder</B> kann Filme aus einer oder mehreren JPEG oder PNG Dateien.
durch eine einfache Kopierung der Frames kann es MJPEG (Motion JPEG) oder MPNG
(Motion PNG) Dateien erzeugen.</P>
<H4>Erkl<EFBFBD>rung des Prozesses</H4>
<P><B>MEncoder</B> <I>decodiert</I> das/die Eingangsbild(er) mit <CODE>libjpeg</CODE>
(wenn PNGs decodiert werden, wird die <B>libpng</B> benutzt).</P>
<P><B>MEncoder</B> f<>hrt die decodierten Bilder danach dem gew<65>hlten Videokompressor zu
(DivX4, Xvid, ffmpeg msmpeg4, etc...). Der eingebaute PNG-Decoder, kann momentan leider nur
RGB-Formate ausgeben und kann desshalb nicht mit Codecs, welche YUV als Input ben<65>tigen
(wie Divx 4 oder ffmpeg's msmpeg4), gebraucht werden.</P>
<H4>Beispiele</H4>
<P>Die Erkl<6B>rung der <CODE>-mf</CODE> Option kann unten, in der globalen
<A HREF=#options>Optionen</A> Sektion und in den Manpages gefunden werden.</P>
<P><I>Erstellung einer DivX4-Datei aus allen JPEG-Dateien im momentanen Verzeichnis:</I><BR>
&nbsp;&nbsp;<CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o ausgabe.avi</CODE></P>
<P><I>Erstellung einer DivX4-Datei aus einigen JPEG-Dateien im momentanen Verzeichnis:</I><BR>
&nbsp;&nbsp;<CODE>mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o ausgabe.avi</CODE></P>
<P><I>Erstellung einer Motion JPEG (MJPEG) Datei aus allen JPEG-Dateien im momentanen Verzeichnis:</I><BR>
&nbsp;&nbsp;<CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy -o ausgabe.avi</CODE></P>
<P><I>Erstellung einer unkomprimierten Datei aus allen PNG-Dateien im momentanen Verzeichnis:</I><BR>
&nbsp;&nbsp;<CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -o ausgabe.avi</CODE></P>
<P><I>Erstellung einer Motion PNG (MPNG) Datei aus allen PNG-Dateien im momentanen Verzeichnis:</I><BR>
&nbsp;&nbsp;<CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy -o ausgabe.avi</CODE></P>
<H4><A NAME="vobsub">2.4.2.7. Extrahieren von DVD Untertiteln in eine Vobsub Datei</A></H4>
<P><B>MEncoder</B> kann Untertitel von einer DVD extrahieren und sie als Datei
im Vobsub Format speichern. Dieses besteht aus einem Dateipaar (<CODE>.sub</CODE> und <CODE>.idx</CODE>)
und wird gew<65>hnlich in ein einziges <CODE>.rar</CODE> Archiv verpackt. <B>MPlayer</B>
kann diese mit den Optionen <CODE>-vobsub</CODE> und <CODE>-vobsubid</CODE> wiedergeben.</P>
<P>Man gibt dabei den Basisnamen (ohne <CODE>.idx</CODE> oder <CODE>.sub</CODE> Endung) der
Ausgabedatei mit der Option <CODE>-vobsubout</CODE> und den Index des
Untertitels der Ausgabedatei mit der Option <CODE>-vobsuboutindex</CODE> an.</P>
<P>Wenn die Eingabe nicht von einer DVD stammt, sollte die Option
<CODE>-ifo</CODE> verwendet werden, welche die <CODE>.ifo</CODE> Datei angibt, die zur
Erstellung der resultierenden <CODE>.idx</CODE> Datei ben<65>tigt wird.</P>
<P>Wenn die Eingabe nicht von einer DVD stammt und keine <CODE>.ifo</CODE> Datei vorhanden ist,
ben<EFBFBD>tigt man die <CODE>-vobsuboutid</CODE> Option um <B>MPlayer</B> zu sagen, welche
Sprachid f<>r die <CODE>.idx</CODE> Datei verwendet werden soll.</P>
<P>Jeder Aufruf f<>gt neue Untertitel dazu, falls die <CODE>.idx</CODE> und <CODE>.sub</CODE>
Dateien bereits existieren. Sie sollten also vor dem Starten gel<65>scht werden.</P>
<H4>Beispiele:</H4>
<P><I>Kopieren zweier Untertitel von einer DVD mit 3-pass Encodierung</I><BR>
&nbsp;&nbsp;<CODE>rm untertitel.idx untertitel.sub</CODE><BR>
&nbsp;&nbsp;<CODE>mencoder -dvd 1 -vobsubout untertitel -vobsuboutindex 0 -sid 2 -o frameno.avi -ovc frameno</CODE><BR>
&nbsp;&nbsp;<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 1</CODE><BR>
&nbsp;&nbsp;<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 2 -vobsubout untertitel -vobsuboutindex 1 -sid 5</CODE></P>
<P><I>Kopieren eines franz<6E>sischen Untertitels von einer MPEG Datei</I><BR>
&nbsp;&nbsp;<CODE>rm untertitel.idx untertitel.sub</CODE><BR>
&nbsp;&nbsp;<CODE>mencoder film.mpg -ifo film.ifo -vobsubout untertitel -vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>
<H3><A NAME="options">2.4.3. Verf<72>gbare Optionen</A></H3>
<P>F<EFBFBD>r eine komplette Liste der verf<72>gbaren Optionen sollte die Manpage durchsucht werden.</P>
</BODY>
</HTML>