Mercurial > mplayer.hg
view DOCS/German/encoding.html @ 4956:84f465d2ff16
KEY_ENTER->quit binding. why doesn't 'pt_step 1' exits if no more file left?
author | arpi |
---|---|
date | Wed, 06 Mar 2002 21:59:24 +0000 |
parents | e99d47acfce6 |
children | 47c614b4434e |
line wrap: on
line source
<HTML> <BODY BGCOLOR=white> <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <P><B><A NAME=2.4>2.4. Encodieren mit MEncoder</A></B></P> <P><B><A NAME=2.4.1>2.4.1. Übersicht</B></P> <P><B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder) ist ein einfacher Filmencoder, entworfen um Filme, die mit MPlayer abspielbar sind (<B>AVI/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET</B>), in ein anderes von MPlayer 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ügt auch über eine stream-copy-Funktion und kann die Grösse der Videos ändern.</P> <P><B><A NAME=2.4.2>2.4.2. Kompilierung</B></P> <UL> <LI><B>OPTIONAL</B> - Lies die Anleitungen zu <B>MPlayer</B>, sie enthält Infos wie man z.B. <I>libdvdread</I> für <B>DVD</B> Unterstützung installiert.</LI> <LI><B>OPTIONAL</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ötigt für das DivX4 (1/2 Pass) encodieren. Weil er (zur Zeit) noch davon abhängig ist, ist MEncoder auf Linux beschränkt.</LI> <LI><B>OPTIONAL</B> - für libavcodec Support, installiere libavcodec wie beschrieben in <A HREF="codecs.html#2.2.1.2">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 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ötigt. Bedenke dass die <CODE>lame</CODE> Binary allein nicht genug ist. Übrigens: je weniger Optimierungen du für lame verwendest, desto besser wird die Qualität. Du kannst die Qualitä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 ähnlich ist, du solltest keine mindere Qualität bemerken können. Oh, und wenn dein Compiler <CODE>make test</CODE> nicht ausführt ... dann lösche <B>GCC 2.96</B>.</LI> </UL> </P> <P>Du bist fertig. Wie du möglicherweise weisst, benötigen andere Encoder <I>avifile</I>. <B>MEncoder</B> braucht diese überhaupt nicht.</P> <P><B><A NAME=2.4.3>2.4.3. MEncoder Features</B></P> <UL> <LI>Encodieren von der großen Reichweite an Dateiformaten und Decodern von <B>MPlayer</B></LI> <LI>Encodieren von allen Codecs von <A HREF=codecs.html#2.2.1.2>libavcodec</A></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 <B>DivX4</B> Video</LI> <LI><B>VBR</B> MP3 Audio <B>WICHTIGER HINWEIS</B> : VBR MP3 Audio wird von Windows Playern nicht immer gut wiedergegeben! Wenn du vor hast, AVIs hauptsächlich für Windows zu encodieren, encodiere sie mit CBR!</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össenänderung</LI> </UL> </P> <P><B><I>Geplante Features</I></B> : <UL> <LI>Verwendung von Audio auf eigenen Dateien (AC3, MP3, OGG)</LI> <LI>Erhöhen der verfügbaren En-/Decodierungs Formate/Codecs (erzeugen von VOB Dateien mit DivX4/Indeo5/VIVO Streams :)</LI> <LI>Audio Encodierung von v4l</LI> </UL> </P> <P><B><A NAME=2.4.3.1>2.4.3.1. 2-Pass DivX4 Encodierung</B></P> <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äre Dateien (*.log) mit einer Dateigröß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ären Datei. Die endgültige Datei wird eine bessere Bildqualitä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> rm frameno.avi</CODE> - Lösche diese Datei, welche von einer früheren Encodierung kommen kann (Sie führt zu einem Konflikt mit der momentanen)<BR> <CODE> mencoder -dvd 2 -divx4opts br=1100 -o film.avi -pass 1<BR> mencoder -dvd 2 -divx4opts br=1100 -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> <P> <TABLE> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <CODE>rm frameno.avi</CODE></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <B>Lösche störende temporäre Dateien</B></TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <CODE>mencoder <datei/DVD> -ovc frameno -o frameno.avi</CODE></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <B><U>Erster Durchlauf</U> : Eine Audio-only avi Datei wird erzeugt, welche NUR den verlangten Audiostream enthä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össen, wenn er diesen Durchlauf beendet hat.</B></TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <CODE>mencoder <datei/DVD> -oac copy -pass 1 -divx4opts br=<bitrate></CODE></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <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><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <CODE>mencoder <datei/DVD> -oac copy -pass 2 -divx4opts br=<bitrate></CODE></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <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ültige Datei eingefügt und es ist alles bereit!</B></TD> </TR> </TABLE> </P> <P><B>Beispiel einer 3-pass Encodierung :</B></P> <P><CODE> rm frameno.avi</CODE> - Lösche diese Datei, welche von einer früheren Encodierung kommen kann (Sie führt zu einem Konflikt mit der momentanen)<BR> <CODE> mencoder -dvd 2 -ovc frameno -o frameno.avi<BR> <CODE> mencoder -dvd 2 -divx4opts br=1100 -oac copy -o film.avi -pass 1<BR> mencoder -dvd 2 -divx4opts br=1100 -oac copy -o film.avi -pass 2</CODE> </P> <P><B><A NAME=2.4.3.2>2.4.3.2. Rescaling von Filmen</B></P> <P>Oftmals ist die Änderung der Bildgröße erforderlich. Die Gründe dafü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öße geändert, zum Beispiel eine 4:3 DVD sollte 640x480 Pixel haben, insbesondere wenn es auf eine CD passen soll und eine gute Bildqualität zugleich aufweisen soll. SVCDs haben eine Größe von 480x480, wobei ihr Header jedoch die "Aspect Ratio" für den Player enthä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ält. Darum ist die einzige Möglichkeit das Ändern das Auslösung.</P> <P><B>MEncoder</B> kann Eingansbilder skalieren, falls diese im YV12-Format kommen (z.B.: ffdivx, odivx Treiber oder mpeg1/2). Die Ausgabegröße wird mit der <CODE>-x</CODE> und <CODE>-y</CODE> Option angeben. Zusätzlich gibt es noch einige Filter für Rescaling in <B>MEncoder</B>, lies dazu in der Manpage ! Diese können mit der <CODE>-sws</CODE> Option ausgewählt werden. Wenn nichts angeben wird, verwendet <B>MEncoder</B> 0 : fast bilinear.</P> <P>Rescaling ist sehr einfach:<BR> <CODE> mencoder beispiel-svcd.mpg -divx4opts br=1300 -x 640 -y 480 -sws 2 -o ausgabe.avi</CODE></P> <P><B><A NAME=2.4.3.3>2.4.3.3. Stream-Copy</B></P> <P><B>MEncoder</B> kann Input-Streams auf zwei Arten behandeln: <B>encodieren</B> oder <B>kopieren (copy)</B>. Diese Sektion erklärt das <B>copying</B>.</P> <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ürlich kann nur <B>MPlayer</B> solche Dateien abspielen :) Und vermutlich hat es auch keine Überlebensqualitä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> </UL> </P> <P><B><A NAME=2.4.3.4>2.4.3.4. Reparieren von AVIs mit defektem Index oder Interleaving</B></P> <P>Einfache Sache. Wir kopieren einfach die Video- und Audiostreams und <B>MEncoder</B> erzeugt das Index. Natü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 eingabe.avi -ovc copy -oac copy -o ausgabe.avi</CODE></P> <P><B><A NAME=2.4.3.5>2.4.3.5. Encodierung mit der <I>libavcodec</I> Codec-Familie</B></P> <P><A HREF="codecs.html#2.2.1.2">libavcodec</A> bietet eine einfache Encodierung für viele interessante Video und Audio Formate (momentan sind deren Audio Codecs nicht unterstützt). Du kannst zu folgenden Codecs encodieren:</P> <P> <UL> <LI>mjpeg - Motion JPEG</LI> <LI>h263 - H263</LI> <LI>h263p - H263 Plus</LI> <LI>mpeg4 - DivX4</LI> <LI>msmpeg4 - das alte DivX</LI> <LI>rv10 - ein alter RealVideo Codec</LI> <LI>mpeg1video - MPEG1 video :)</LI> </UL> </P> <P>Die erste Kolonne enthält den Codec-Name der nach dem <CODE>vcodec</CODE> Config übergeben werden sollte, wie z.B.: <CODE>-lavcopts vcodec=msmpeg4</CODE></P> <P>Ein Beispiel mit MJPEG Kompression :<BR> <CODE> mencoder -dvd 2 -o titel2.avi -ovc lavc -lavcopts vcodec=mjpeg</CODE></P> <P><B><A NAME=2.4.4>2.4.4. Syntax</B></P> <P> <CODE>mencoder [Optionen] [Eingangsdatei] [Optionen] ...</P> <P><B><A NAME=2.4.5>2.4.5. Verfügbare Optionen</B></P> <P>HINWEIS: <B>Lies die Manpage</B> für alle verfügbaren Optionen!</B></P> <P> Da <B>MEncoder</B> die gleiche Codebasis wie <B>MPlayer</B> eingebaut hat, gibt es viele <B>MPlayer</B> Optionen, welche auch in <B>MEncoder</B> zur Verwendung kommen! Wie du siehst, kannst du die Option <CODE>-sid</CODE> verwenden um DVD mit Untertitel zu zu rippen oder <CODE>-noidx</CODE> um kaputte Indexe des Eingangs AVI zu missachten. <B>Sei klug!</B> </P> <TABLE BORDER=1> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-ss</I> Zeit</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Startet die Encodierung von der gegebenen Zeit an (er kann nur von Keyframes aus starten !) </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-endpos</I> Zeit</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Stoppt die Encodierung zu der gegebenen Zeit. Lies die Manpage für Beispiele ! </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-o</I> Dateiname</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> definiert den Namen der Ausgabedatei </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-x</I> Breite in Pixel</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> ändert die Videoausgabe auf die angegebene Anzahl von Pixel </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-y</I> Höhe in Pixel</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> ändert die Videoausgabe auf die angegebene Anzahl von Pixel </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-sws</I> 0-2</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Arte der Scaling-Methode<BR> 0 - fast bilinear<BR> 1 - bilinear<BR> 2 - bicubic (beste Qualität)<BR> </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-ovc</I> Codecname</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Encodiert mit dem angegebenen Codec (Codecnamen sind von codecs.conf). Beispiele:<BR> <B>help</B> - zeigt eine Liste der verfügbaren Codecs an<BR> <B>null</B> - erzeugt keinen Videostream in dem Ausgabe-AVI<BR> <B>raw</B> - erzeugt einen unkomprimierten Video<BR> <B>rawrgb</B> - ?<BR> <B>copy</B> - kein Encodieren, kopiert den Stream (nur von AVI/ASF zur Zeit)<BR> <B>divx4</B> - encodiert zu DivX4<BR> <B>lavc</B> - encodiert mit einem Codec von libavcodec<BR> <B>vfw</B> - encodiert mit einer Windows DLL<BR> </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-oac</I> Codecname</TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Encodiert mit dem angegebenen Codec (Codecnamen sind von codecs.conf). Beispiele:<BR> <B>help</B> - zeigt eine Liste der verfügbaren Codecs an<BR> <B>copy</B> - kein Encodieren, kopiert den Stream (nur von AVI/ASF zur Zeit)<BR> <B>pcm</B> - encodierten zu einem unkomprimiertem PCM<BR> <B>mp3lame</B> - encodiert zu MP3 (verwendet Lame)<BR> </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-divx4opts</I></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Wenn du zu DivX4 encodierst kannst du hier die Parameter angeben, wie z.B.:<BR> <CODE>-divx4opts br=1800:deinterlace:key=250</CODE><BR> Allgemeine Optionen: <B>(Lies in der Manpage für die vollständige Liste!)</B><BR> <B>help</B> - zeigt die Hilfe<BR> <B>br</B>=XXX - gibt die Bitrate in kBit <4-16000> oder Bit <16001-24000000> an<BR> <B>q</B>=XXXX - Qualität (1-schnellste, 5-beste - standard 5)<BR> <B>key</B>=XXXX - Keyframe Interval<BR> </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-lavcopts</I></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Wenn du mit der libavcodec encodierst, kannst du deren Parameter hier angeben, wie:<BR> <CODE>-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250</CODE><BR> Häufige Optionen: <B>(Lies in der Manpage für die vollständige Liste!)</B><BR> <B>help</B> - zeigt die Hilfe<BR> <B>vcodec</B>=XXX - wählt den Videocodec (Siehe in der libavcodec Sektion unten nach für die vollständige Liste)<BR> <B>vbitrate</B>=XXX - gibt die Bitrate in kbit <4-16000> oder bit <16001-24000000> an<BR> <B>vhq</B> - hohe Qualität<BR> <B>keyint</B>=XXX - Keyframe Interval<BR> </TD> </TR> <TR> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <I>-lameopts</I></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> Wenn du zu MP3 mit libmp3lame encodierst kannst du hier die Parameter angeben, wie z.B.:<BR> <CODE>-lameopts q=3</CODE><BR> <CODE>-lameopts br=192:cbr</CODE><BR> Allgemeine Optionen: <B>(Lies in der Manpage für die vollständige Liste!)</B><BR> <B>help</B> - zeigt die Hilfe<BR> <B>cbr</B> - wählt <B>CBR</B> MP3 (standard ist <B>VBR</B>)<BR> <B>br</B>=XXX - definiert die Bitrate in <0-1024> (dies ist nur für <B>CBR</B>!)<BR> <B>q</B>=XXXX - Qualität (0-höchste, 9-schnellste - standard 0) (dies ist nur für <B>VBR</B>!)<BR> </TD> </TR> </TABLE> <P><B><A NAME=2.4.6>2.4.6. Beispiele</B></P> <P>Die Verwendung von <B>MEncoder</B> ist das Einfachste auf das Erde. Siehe folgendes:</P> <P>Encodierung von DVD, Titel 2:<BR> <CODE> mencoder -dvd 2 -o titel2.avi</CODE></P> <P>Das gleiche, aber mit der libavcodec Familie, MJPEG Kompression :<BR> <CODE> mencoder -dvd 2 -o titel2.avi -ovc lavc -lavcopts vcodec=mjpeg</CODE></P> <P>Encodierung von DVD, Title 2, mit Rescaling:<BR> <CODE> mencoder -dvd 2 -x 640 -y 480 -sws 2 -o titel2.avi</CODE></P> <P>Encodierung von HTTP:<BR> <CODE> mencoder http://mplayer.hq/beispiel.avi -o beispiel.avi</CODE></P> <P>Encodierung von Pipe:<BR> <CODE> rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -</CODE></P> <P>Encodierung von mehreren *.vob-Dateien:<BR> <CODE> cat *.vob | mencoder <options> -</CODE></P> <P>Encodierung vom Tuner (für Tuner-Option <A HREF="documentation.html#2.5">siehe die TV-Input Sektion!</A>):<BR> <CODE> mencoder -tv on:driver=v4l:width=640:height=480 <options></CODE></P> <P><B><I>Lies die MEncoder Manpage</I> </B>um alle verfügbaren Optionen zu sehen. <P> </FONT> </BODY> </HTML>