Mercurial > mplayer.hg
diff DOCS/de/encoding.html @ 9332:a604236b0dd6
Rename documentation directories to two-letter language codes.
author | diego |
---|---|
date | Sat, 08 Feb 2003 00:00:00 +0000 |
parents | DOCS/German/encoding.html@92dbac2e0b79 |
children | 883f38591d47 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/de/encoding.html Sat Feb 08 00:00:00 2003 +0000 @@ -0,0 +1,376 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + +<HEAD> + <TITLE>Encodieren - MEncoder - The Movie Encoder 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">7. Encodieren mit MEncoder</A></H2> + +<P>Eine komplette Auflistung aller MEncoder-Optionen und aller Beispiele +findest du in der man-page. Einige sinnvolle Beispiele und detaillierte +Anleitungen, wie die diversen Parameter benutzt werden, findest du in den +<A HREF="../tech/encoding-tips.txt">Encodierungstipps (englisch)</A>, die +von mehreren Emails auf der +<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">mplayer-users</A> +zusammengetragen wurden. Durchsuche auch das +<A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">Archiv</A>. Dort findest +du eine Unmenge an Diskussionen über alle möglichen Themen rund um +die Encodierung mit MEncoder.</P> + +<H3><A NAME="2pass">7.1 MPEG4-Encodierung ("DivX") in zwei oder drei +Durchläufen </A></H3> + +<P><U><B>2-pass-Encodierung:</B></U> Der Name kommt in der Tat daher, dass +diese Methode die Datei <I>zweimal</I> encodiert. Das erste Encodieren (1. +<P>Pass</I> [=Durchlauf]) erzeugt einige temporäre Dateien (*.log) mit +einer Dateigröße von nur wenigen MB. Lösche sie nicht (das AVI +kannst du aber löschen). Im zweiten Pass wird die Ausgabedatei unter +Verwendung der Bitraten-Daten der temporären Datei erzeugt. Die +endgültige Datei wird deswegen eine weitaus bessere Bildqualität +besitzen. Wenn dies das erst Mal ist, dass du davon hörst, solltest du +einige Guides im Internet lesen.</P> + +<P>Dieses Beispiel zeigt dir, wie du mit 2 Passes eine DVD in ein MPEG4-AVI +("DivX") encodierst. Nur 2 Befehle sind erforderlich:<BR> + +<CODE> rm frameno.avi</CODE> - Lösche diese Datei, + welche von einer früheren 3-Pass-Encodierung kommen kann (Sie führt zu + einem Konflikt mit der momentanen Encodierung).<BR> + +<CODE> mencoder -dvd 2 -lavcopts +vcodec=mpeg4:vpass=1 -oac copy -o film.avi</CODE><BR> + +<CODE> mencoder -dvd 2 -lavcopts +vcodec=mpeg4:vpass=2 -oac copy -o film.avi</CODE></P> + +<P><U><B>3-Pass-Encodierung:</B></U> Dies ist eine Erweiterung der +2-Pass-Encodierung, in der die Encodierung von Audio in einem separaten +Durchlauf erledigt wird. Diese Methode erlaubt es MEncoder, +Vorschläge für die Videobitrate zu machen, sodass das Ergebnis auf +eine CD passt. Auch wird der Ton im Unterschied zum 2-Pass nur einmal +encodiert. Das Schema: </P> + +<OL> + <LI>Lösche die alte Datei: + <P>CODE>rm frameno.avi</CODE></P></LI> + <LI>Erster Durchlauf: + <P><CODE>mencoder <file/DVD> -ovc frameno -oac mp3lame -lameopts + vbr=3 -o frameno.avi</CODE></P> + + <P>Hierbei wird ein AVI erstellt, das <B>nur</B> die gewählte + Audiospur enthält. Vergiss nicht, die <CODE>-lameopts</CODE> deinen + Wünschen anzupassen. Wenn du einen langen Film encodierst, so gibt + dir MEncoder am Schluss die empfohlenen Videobitraten aus, damit + ein resultierender Film auf eine 650MB-, eine 700MB- oder eine 800MB-CD + passt.</P></LI> + <LI>Zweiter Durchgang: + <P><CODE>mencoder <file/DVD> -oac copy + -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=<bitrate> + </CODE></P> + <P>Genauso wie der erste Durchgang vom DivX4-Beispiel oben. Gib hier die + nach dem ersten Durchlauf von MEncoderempfohlene oder eine andere + von dir gewählte Videobitrate an.</LI></P> + <LI>Dritter Durchgang: + <P><CODE>mencoder <file/DVD> -oac copy + -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=<bitrate> + </CODE></P> + <P>Genauso wie der zweite Durchgang vom DivX4-Beispiel oben. Gib hier die + gleiche Bitrate wie im ersten Durchgang an, es sei denn, du weißt + genau, was du tust. In diesem Durchgang wird die im + ersten Durchgang encodierte Audiospur in die endgültige Datei + eingefügt. Nun ist alles fertig!</LI></P> +</OL> + +<H4>Beispiel einer 3-Pass-Encodierung:</H4> + +<CODE> rm frameno.avi</CODE> - Lösche diese Datei, + welche von einer früheren 3-Pass-Encodierung kommen kann (Sie führt + zu einem Konflikt mit der momentanen Encodierung).<BR> + +<CODE> mencoder -dvd 2 -ovc frameno + -o frameno.avi -oac mp3lame -lameopts vbr=3<BR> + + mencoder -dvd 2 -ovc lavc + -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR> + + mencoder -dvd 2 -ovc lavc + -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P> + + +<H2><A NAME="mpeg">7.2 In das MPEG-Format encodieren</A></H2> + +<P>MEncoder kann MPEG-Dateien (MPEG-PS) erstellen. Das ist wahrscheinlich +nur in Kombination mit dem <I>mpeg1video</I>-Codec der libavcodec sinnvoll, +da alle Player (bis auf MPlayer) MPEG1-Video und MPEG1 Layer 2 (MP2)-Audio +in MPEG-Dateien erwarten.</P> + +<P>Dieses Feature ist momentan nicht wirklich nützlich, mal davon +abgesehen, dass es wahrscheinlich noch einige Fehler enthält. Schlimmer +ist aber, dass MEncoder momentan kein MPEG1 Layer 2 (MP2)-Audio erzeugen +kann, das alle anderen Player in einer MPEG-Datei erwarten.</P> + +<P>Das Ausgabeformat von MEncoder kann mit <CODE>-of mpeg</CODE> auf MPEG +geändert werden.</P> + +<P>Beispiel:<BR> + <CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video + -oac copy <weitere Optionen> media.avi -o ausgabe.mpg</CODE></P> + + + +<H3><A NAME="rescaling">7.3 Skalierung von Filmen</A></H3> + +<P>Oftmals ist die Änderung der Bildgröße erforderlich. Die +Gründe dafür können verschieden sein: Dateigröße +verringern, Netzwerkbandbreite nicht überlasten etc. Viele Leute skalieren +das Bild auch, wenn sie von DVD zu SVCD oder DivX-AVI konvertieren. <B>Das ist +allgemein schlecht.</B> Wenn du das vermeiden willst, dann lies den Abschnitt +über das <A HREF="#aspect">Beibehalten des +Höhen-/Breitenverhältnisses</A>.</P> + +<P>Der Skalierungsprozess erfolgt durch den <I>'scale</I>-Videofilter: +<CODE>-vop scale=breite:hoehe</CODE>. Die Qualität kann durch die Option +<CODE>-sws</CODE> angegeben werden. Wenn nichts angegeben ist, verwendet +MEncoder 0: schnelle bilienare Filterung ('fast bilinear').</P> + +<H4>VERWENDUNG</H4> + +<CODE> mencoder beispiel-svcd.mpg -ovc lavc -lavcopts + vcodec=mpeg4 -vop scale=640:480 -sws 2 -oac copy -o ausgabe.avi</CODE></P> + +<H3><A NAME="copying">7.4 Stream-Kopiermodus</A></H3> + +<P>MEncoder kann Input-Streams auf zwei Arten bearbeiten: +<B>encodieren</B> oder <B>kopieren (copy)</B>. Diese Sektion erklärt die +<B>Stream-Kopie</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 ist nur + MPlayer in der Lage, solche Dateien abspielen :) Und vermutlich ist + das auch absolut nicht praxisrelevant. 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>): geht genauso.</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 <dateiname></CODE>.</LI> +</UL> + + +<H3><A NAME="fixing">7.5 Reparieren von AVIs mit defektem Index oder +schlechtem Interleaving</A></H3> + +<P>Trivial. Wir kopieren einfach die Video- und Audiostreams, und +MEncoder erzeugt den Index. Natürlich kann das keine Fehler in den +Video- und/oder Audiostreams beheben. Es kann auch Dateien mit kaputten +Interleaving reparieren, sodass 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> + +<H3><A NAME="appending">7.5.1 Aneinanderhängen mehrerer AVI-Dateien</A> +</H3> + +<P>Ein Nebeneffekt des oben erwähnten Reparierens ist, dass MEncoder +damit auch zwei oder mehrere aneinandergehängte AVI-Dateien reparieren +kann:</P> + +<P>Kommando: <CODE>cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o +ausgabe.avi -</CODE></P> + +<P><B>Anmerkung:</B> Hier wird angenommen, dass <CODE>1.avi</CODE> und +<CODE>2.avi</CODE> den gleichen Codec verwenden, die gleiche Auflöung und +Streamrate besitzen etc., und wenigstens 1.avi darf nicht defekt sein. +Eventuell musst du, wie <A HREF="#fixing">oben</A> beschrieben, die +Quelldateien erst reparieren.</P> + +<H3><A NAME="libavcodec">7.6 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 +werden 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 - ISO-Standard-MPEG4 (kompatibel zu DivX5, XviD)</LI> + <LI>msmpeg4 - pre-Standard-MPEG4-Variante von MS, v3 (aka DivX3)</LI> + <LI>msmpeg4v2 - pre-Standard-MPEG4-Variante von MS, v2 (wird in alten + ASF-Dateien benutzt)</LI> + <LI>rv10 - ein alter RealVideo-Codec</LI> + <LI>mpeg1video - MPEG1-Video :)</LI> + <LI>huffyuv - verlustfreie Kompression</LI> +</UL> + +<P>Die erste Spalte enthält den Codec-Namen, den du nach dem +<CODE>vcodec</CODE>-Stichwort übergibst, wie z.B.: +<CODE>-lavcopts vcodec=msmpeg4</CODE></P> + +<P>Ein Beispiel mit MJPEG-Compression:<BR> +<CODE> mencoder -dvd 2 -o titel2.avi -ovc lavc -lavcopts +vcodec=mjpeg -oac copy</CODE></P> + +<H3><A NAME="image_files">7.7 Encodierung von mehreren Einzelbildern + (JPEGs, PNGs oder TGAs)</A></H3> + +<P>MEncoder kann aus mehreren JPEG-, PNG- oder TGA-Einzelbildern +einen Film erstellen. Durch einfaches Kopieren der Bilder kann er MJPEG- +(Motion JPEG), MPNG- (Motion PNG) oder MTGA-Filme (Motion TGA) erzeugen.</P> + +<P>So läuft dieser Prozess ab:</P> + +<OL> + <LI>MEncoder <I>decodiert</I> das/die Eingangsbild(er) mit + <CODE>libjpeg</CODE> (wenn PNGs decodiert werden, wird die <B>libpng</B> + benutzt).</LI> + <LI>MEncoder führt die decodierten Bilder danach dem + gewählten Videokompressor zu (DivX4, Xvid, ffmpeg msmpeg4, etc...). + </LI> +</OL> + +<H4>Beispiele</H4> + +<P>Die Erklärung der <CODE>-mf</CODE>-Option kann in der Manpage gefunden +werden.</P> + +<P><I>Erstellung einer DivX4-Datei aus allen JPEG-Dateien im aktuellen +Verzeichnis:</I><BR> + + <CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 + -o ausgabe.avi \*.jpg</CODE></P> + +<P><I>Erstellung einer DivX4-Datei aus einigen JPEG-Dateien im aktuellen +Verzeichnis:</I><BR> + + <CODE>mencoder -mf on:w=800:h=600:fps=25 + -ovc divx4 -o ausgabe.avi frame001.jpg,frame002.jpg</CODE></P> + +<P><I>Erstellung einer Motion JPEG-Datei (MJPEG) aus allen JPEG-Dateien im +aktuellen Verzeichnis:</I><BR> + + <CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc copy + -o output.avi \*.jpg</CODE></P> + +<P><I>Erstellung einer unkomprimierten Datei aus allen PNG-Dateien im +momentanen Verzeichnis:</I><BR> + + <CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb + -o output.avi \*.png</CODE></P> + +<P><B>Anmerkung:</B> Die Breite muss ein Vielfaches von 4 betragen, was eine +Beschränkung des RGB-AVI-Formates ist.</P> + +<P><I>Erstellung einer Motion PNG-Datei (MPNG) aus allen PNG-Dateien im +momentanen Verzeichnis:</I><BR> + + <CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy + -o output.avi \*.png</CODE></P> + +<P><I>Erstellung einer Motion TGA-Datei (MTGA) aus allen TGA-Dateien im +aktuellen Verzeichnis:</I><BR> + + <CODE>mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy + -o output.avi \*.tga</CODE></P> + +<H3><A NAME="vobsub">7.8 Extrahieren von DVD-Untertiteln in eine +Vobsub-Datei</A></H3> + +<P>MEncoder 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. MPlayer kann diese mit den +Optionen <CODE>-vobsub</CODE> und <CODE>-vobsubid</CODE> wiedergeben.</P> + +<P>Du gibst mit <CODE>-vobsubout</CODE> den Basisnamen der Ausgabedatei (ohne +<CODE>.idx</CODE>- oder <CODE>.sub</CODE>-Endung) und mit +<CODE>-vobsuboutindex</CODE> den Index des Untertitels der Ausgabedatei +an.</P> + +<P>Wenn die Eingabe nicht von einer DVD stammt, solltest du mit der Option +<CODE>-ifo</CODE> die Datei angeben, 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ötigst du die +<CODE>-vobsuboutid</CODE>-Option, um MPlayer zu sagen, welche Sprach-ID +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 im Bedarfsfall +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> + + <CODE>rm untertitel.idx untertitel.sub</CODE><BR> + + <CODE>mencoder -dvd 1 -vobsubout untertitel -vobsuboutindex 0 -sid +2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR> + + <CODE>mencoder -dvd 1 -oac copy -ovc divx4 -divx4opts +pass=1</CODE><BR> + + <CODE>mencoder -dvd 1 -oac copy -ovc divx4 -divx4opts pass=2 + -vobsubout untertitel -vobsuboutindex 1 -sid 5</CODE></P> + + +<P><I>Kopieren eines französischen Untertitels von einer MPEG-Datei</I><BR> + + <CODE>rm untertitel.idx untertitel.sub</CODE><BR> + + <CODE>mencoder film.mpg -ifo film.ifo -vobsubout untertitel +-vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P> + +<H3><A NAME="aspect">7.9 Das Höhen-/Breitenverhältnisses erhalten +</A></H3> + +<P>DVDs und SVCDs (z.B. MPEG1/2) enthalten einen Wert, der das Verhältnis +zwischen der Ausgebehöhe und der Ausgebebreite enthält. Der Player +sorgt dann durch Skalierung dafür, dass dieses Verhältnis erreicht +wird, sodass wir Menschen keine Eierköpfe sehen (Beispiel: die +Bildmaße betragen 480x480, das gespeicherte Verhältnis beträgt +4:3, und der Player spielt den Videostream dann bei 640x480 ab). Wenn du +allerdings solche Dateien in ein AVI umwandelst, dann musst du beachten, dass +das AVI-Format das Höhen-/Breitenverhältnis <B>nicht</B> speichern +kann. Die Skalierung beim Encodieren ist ein zeitraubender und +qualitätsmindernder Prozess. Es sollte doch eine bessere Möglichkeit +geben!?</P> + +<P>Ganz genau - die gibt es.</P> + +<P>MPEG4 enthält ein einzigartiges Feature: Im Videostream selber kann +das Höhen-/Breitenverhältnis gespeichert werden. Jop, genauso wie +bei MPEG1/2 (DVD, SVCD). Leider gibt es bisher <U>keinen</U> Videoplayer, der +dieses Feature unterstützt. Bis auf MPlayer natürlich.</P> + +<P>Dieses Feature kann nur in Verbindung mit dem <CODE>mpeg4</CODE>-Codec der +<B>libavcodec</B> genutzt werden. Denke immer daran, dass - auch wenn +MPlayer die Datei richtig wiedergeben wird - alle anderen Player ein +falsches Höhen-/Breitenverhältnis anzeigen werden.</P> + +<P>Du solltest ernsthaft in Erwägung ziehen, die eventuell vorhandenen +schwarzen Balken oberhalb und unterhalb des Bildes wegzuschneiden. Lies +in der man-Page dazu, wie du die <CODE>cropdetect</CODE>- und +<CODE>crop</CROP>-Filter benutzt.</P> + +<H4>BENUTZUNG</H4> + +<P><CODE>$ mencoder beispiel-svcd.mpg -ovc lavc -lavcopts + vcodec=mpeg4:aspect=16.0/9.0 -vop crop=714:548:0:14 -oac copy -o + ausgabe.avi</CODE></P> + +</BODY> +</HTML>