view DOCS/German/encoding.html @ 7574:87f57e23e301

fixing RV10 streamcopy - detect packet format (simple single frame vs. slices with extra header + offset tab) based on codec header instead of demuxer type
author arpi
date Tue, 01 Oct 2002 21:30:10 +0000 (2002-10-01)
parents 7e654203b6b2
children e4c5ee3aa3e9
line wrap: on
line source
<!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�gt auch �ber eine stream-copy-Funktion und kann die Gr�sse der Videos �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�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> - <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�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�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>
    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�tigen andere Encoder <I>avifile</I>. <B>MEncoder</B> braucht diese
�berhaupt nicht.</P>


<H3><A NAME="features">2.4.2.  MEncoder Features</A></H3>

<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#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�ssen�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�hen der verf�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�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>&nbsp;&nbsp;&nbsp;&nbsp;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>&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�sche st�rende tempor�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�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><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�ltige Datei
    eingef�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�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�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 �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>Der Skalierungsprozess erfolgt durch den <I>'scale</I> Videofilter:
<CODE>-vop scale=X:Y</CODE>. Die Qualit�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�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�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>
    Es ist m�glich eine externe Audiodatei (MP3, AC3, Vorbis) zu nehmen und diese
    dem Ausgabestream hinzuzuf�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�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�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�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>&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�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�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�tigen 
(wie Divx 4 oder ffmpeg's msmpeg4), gebraucht werden.</P>

<H4>Beispiele</H4>

<P>Die Erkl�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�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�tigt wird.</P>

<P>Wenn die Eingabe nicht von einer DVD stammt und keine <CODE>.ifo</CODE> Datei vorhanden ist,
ben�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�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�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�gbare Optionen</A></H3>

<P>F�r eine komplette Liste der verf�gbaren Optionen sollte die Manpage durchsucht werden.</P>


</BODY>
</HTML>