mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 15:22:09 +00:00
fa7754e2f5
pp=fd video filter with yadif as it's soooo much better r21079: Add a new MPEG encoding example using lavf r21152: typo: Bitrate is printed in kb/s, not Mb/s on the status line. r21153: Miscellaneous updates for the introduction and the requirements section. r21154: Remove outdated and superfluous sound card section. r21155: Remove outdated and superfluous video cards section. r21168: x264 supports interlaced encoding for some time git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21183 b3059339-0415-0410-9bf9-f77b7e298cf2
742 lines
26 KiB
XML
742 lines
26 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- in sync with r21079 -->
|
|
<chapter id="mencoder">
|
|
<title>Allgemeiner Gebrauch von <application>MEncoder</application></title>
|
|
|
|
<para>
|
|
Eine komplette Liste der <application>MEncoder</application>-Optionen
|
|
und Beispiele findest du in der Manpage. Eine Reihe praktischer Beispiele
|
|
und detaillierter Anleitungen zur Anwendung verschiedener Encodier-Parameter
|
|
findet du in den
|
|
<ulink url="../../tech/encoding-tips.txt">Encodier-Tipps (im Moment nur auf englisch)</ulink>,
|
|
die aus verschiedenen Mailing-Listen-Threads von MPlayer-Nutzern
|
|
zusammengestellt wurden.
|
|
Durchsuche die
|
|
<ulink url="http://lists.mplayerhq.hu/pipermail/mplayer-users/">Archive</ulink>
|
|
nach einer Fülle von Diskussionen über alle Aspekte und Probleme mit
|
|
der Encodierung mittels <application>MEncoder</application>.
|
|
</para>
|
|
|
|
<sect1 id="menc-feat-selecting-codec">
|
|
<title>Auswahl der Codecs und Containerformate</title>
|
|
|
|
<para>
|
|
Audio- und Videocodecs für die Encodierung werden mit den Optionen
|
|
<option>-oac</option> und <option>-ovc</option> respektive gewählt.
|
|
Gib zum Beispiel folgendes ein:
|
|
<screen>mencoder -ovc help</screen>
|
|
um alle von der <application>MEncoder</application>-Version auf deinem Rechner
|
|
unterstützten Video-Codecs aufzulisten.
|
|
Die folgenden Wahlmöglichkeiten stehen zur Verfügung:
|
|
</para>
|
|
<para>
|
|
Audiocodecs:
|
|
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row><entry>Audiocodecname</entry><entry>Beschreibung</entry></row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>mp3lame</entry>
|
|
<entry>Encodiere nach VBR-, ABR- oder CBR-MP3 mittels LAME</entry>
|
|
</row>
|
|
<row>
|
|
<entry>lavc</entry>
|
|
<entry>Verwende einen der Audiocodecs von
|
|
<link linkend="menc-feat-enc-libavcodec-audio-codecs"><systemitem class="library">libavcodec</systemitem></link>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>faac</entry>
|
|
<entry>FAAC AAC Audio-Encoder</entry>
|
|
</row>
|
|
<row>
|
|
<entry>toolame</entry>
|
|
<entry>MPEG Audio Layer 2 Encoder</entry>
|
|
</row>
|
|
<row>
|
|
<entry>twolame</entry>
|
|
<entry>MPEG Audio Layer 2 Encoder basierend auf tooLAME</entry>
|
|
</row>
|
|
<row>
|
|
<entry>pcm</entry>
|
|
<entry>Unkomprimiertes PCM-Audio</entry>
|
|
</row>
|
|
<row>
|
|
<entry>copy</entry>
|
|
<entry>Nicht neu codieren, kopiere einfach nur komprimierte Frames</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
|
|
<para>
|
|
Video-Codecs:
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row><entry>Videocodecname</entry><entry>Beschreibung</entry></row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>lavc</entry>
|
|
<entry>Verwende einen der Video-Codecs von
|
|
<link linkend="menc-feat-enc-libavcodec-video-codecs"><systemitem class="library">libavcodec</systemitem></link>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>xvid</entry>
|
|
<entry>Xvid, MPEG-4 Advanced Simple Profile (ASP) Codec</entry>
|
|
</row>
|
|
<row>
|
|
<entry>x264</entry>
|
|
<entry>x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 Codec</entry>
|
|
</row>
|
|
<row>
|
|
<entry>nuv</entry>
|
|
<entry>NuppelVideo, von Echtzeit-Anwendungen verwendet</entry>
|
|
</row>
|
|
<row>
|
|
<entry>raw</entry>
|
|
<entry>Unkomprimierte Video-Frames</entry>
|
|
</row>
|
|
<row>
|
|
<entry>copy</entry>
|
|
<entry>Nicht neu codieren, kopiere einfach nur komprimierte Frames</entry>
|
|
</row>
|
|
<row>
|
|
<entry>frameno</entry>
|
|
<entry>Verwendet für 3-pass-Encodierung (nicht empfohlen)</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
<para>
|
|
Ausgabe-Containerformate werden mittels der Option <option>-of</option> gewählt.
|
|
Gib folgendes ein
|
|
<screen>mencoder -of help</screen>
|
|
um alle von der <application>MEncoder</application>-Version auf deinem Rechner
|
|
unterstützten Videocodecs aufzulisten.
|
|
Die folgenden Wahlmöglichkeiten stehen zur Verfügung:
|
|
</para>
|
|
<para>
|
|
Containerformate:
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row><entry>Name des Containerformats</entry><entry>Beschreibung</entry></row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>lavf</entry>
|
|
<entry>Einer der von
|
|
<systemitem class="library">libavformat</systemitem>
|
|
unterstützten Container</entry>
|
|
</row>
|
|
<row>
|
|
<entry>avi</entry>
|
|
<entry>Audio-Video Interleaved</entry>
|
|
</row>
|
|
<row>
|
|
<entry>mpeg</entry>
|
|
<entry>MPEG-1 und MPEG-2 PS</entry>
|
|
</row>
|
|
<row>
|
|
<entry>rawvideo</entry>
|
|
<entry>raw-Video-Stream (kein Muxen - nur ein Video-Stream)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>rawaudio</entry>
|
|
<entry>raw-Audio-Stream (kein Muxen - nur ein Audio-Stream)</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
Der AVI-Container ist das ursprüngliche Containerformat für
|
|
<application>MEncoder</application>, was bedeutet, dass es der am besten
|
|
gehandhabte ist und derjenige, für welchen <application>MEncoder</application>
|
|
entworfen wurde.
|
|
Wie oben angemerkt können weitere Containerformate verwendet werden, jedoch
|
|
kann es bei deren Gebrauch zu Problemen kommen.
|
|
</para>
|
|
|
|
<para>
|
|
<systemitem class="library">libavformat</systemitem>-Container:
|
|
</para>
|
|
<para>
|
|
Wenn du für das Muxen der Ausgabedatei
|
|
<systemitem class="library">libavformat</systemitem> verwendest
|
|
(mittels <option>-of lavf</option>),
|
|
wird das passende Containerformat entsprechend der Erweiterung der Ausgabedatei
|
|
ermittelt.
|
|
Du kannst ein bestimmtes Containerformat mit Hilfe der Option
|
|
<option>format</option> von <systemitem class="library">libavformat</systemitem>
|
|
erzwingen.
|
|
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row><entry><systemitem class="library">libavformat</systemitem> Containername</entry><entry>Beschreibung</entry></row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>mpg</entry>
|
|
<entry>MPEG-1 und MPEG-2 PS</entry>
|
|
</row>
|
|
<row>
|
|
<entry>asf</entry>
|
|
<entry>Advanced Streaming Format</entry>
|
|
</row>
|
|
<row>
|
|
<entry>avi</entry>
|
|
<entry>Audio-Video Interleaved</entry>
|
|
</row>
|
|
<row>
|
|
<entry>wav</entry>
|
|
<entry>Waveform Audio</entry>
|
|
</row>
|
|
<row>
|
|
<entry>swf</entry>
|
|
<entry>Macromedia Flash</entry>
|
|
</row>
|
|
<row>
|
|
<entry>flv</entry>
|
|
<entry>Macromedia Flash Video</entry>
|
|
</row>
|
|
<row>
|
|
<entry>rm</entry>
|
|
<entry>RealMedia</entry>
|
|
</row>
|
|
<row>
|
|
<entry>au</entry>
|
|
<entry>SUN AU</entry>
|
|
</row>
|
|
<row>
|
|
<entry>nut</entry>
|
|
<entry>NUT offener Container (experimentell und noch nicht Spec-konform)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>mov</entry>
|
|
<entry>QuickTime</entry>
|
|
</row>
|
|
<row>
|
|
<entry>mp4</entry>
|
|
<entry>MPEG-4 Format</entry>
|
|
</row>
|
|
<row>
|
|
<entry>dv</entry>
|
|
<entry>Sony Digital Video Container</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
Wie du siehst, erlaubt <systemitem class="library">libavformat</systemitem>
|
|
<application>MEncoder</application>, in eine beachtliche Vielfalt an Containern
|
|
zu muxen.
|
|
Leider solltest du wirklich Paranoia angesichts der resultierenden Datei schieben,
|
|
da <application>MEncoder</application> nicht von Anfang an für die Unterstützung
|
|
anderer Containerformate als AVI entworfen wurde.
|
|
|
|
Überprüfe bitte sicherheitshalber, ob die Audio-/Video-Synchronisierung in Ordnung ist
|
|
und ob die Datei von anderen Playern als <application>MPlayer</application>
|
|
wiedergegeben werden kann.
|
|
</para>
|
|
|
|
<informalexample>
|
|
<para>Beispiel:</para>
|
|
<para>
|
|
Erzeugen eines Macromedia Flash Videos, das in einem Web-Browser mit dem
|
|
Macromedia Flash Plugin abgespielt werden kann:
|
|
<screen>
|
|
mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.flv</replaceable> -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \
|
|
-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \
|
|
-srate 22050
|
|
</screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="menc-feat-selecting-input">
|
|
<title>Auswahl von Eingabedatei oder -gerät</title>
|
|
|
|
<para>
|
|
<application>MEncoder</application> kann aus Dateien oder direkt von
|
|
einer DVD- oder VCD-Disk encodieren.
|
|
Schließe einfach den Dateinamen in der Befehlszeile mit ein, um
|
|
von einer Datei zu ecodieren, oder
|
|
<option>dvd://</option><replaceable>Titelnummer</replaceable>
|
|
bzw. <option>vcd://</option><replaceable>Tracknummer</replaceable> zum
|
|
Ecodieren von einem DVD-Titel oder VCD-Track.
|
|
Wenn du bereits einmal eine DVD auf deine Festplatte kopiert hast
|
|
(du kannst ein Tool wie etwa <application>dvdbackup</application>
|
|
verwenden, auf den meisten Systemen verfügbar)
|
|
und von der Kopie encodieren willst, solltest du nach wie vor die Syntax
|
|
<option>dvd://</option> benutzen, zusammen mit <option>-dvd-device</option>
|
|
gefolgt vom Pfad zur kopierten DVD-Root.
|
|
|
|
Die Optionen <option>-dvd-device</option> und <option>-cdrom-device</option>
|
|
können auch dazu genutzt werden, die Pfade zu den Geräte-Nodes zu überschreiben,
|
|
um direkt von der Disk zu lesen, falls die Standardoptionen
|
|
<filename>/dev/dvd</filename> und <filename>/dev/cdrom</filename> auf
|
|
deinem System nicht funktionieren.
|
|
</para>
|
|
<para>
|
|
Wenn du von einer DVD encodierst, ist es oft wünschenswert, ein zu
|
|
encodierendes Kapitel oder einen Bereich von Kapiteln auszuwählen.
|
|
Du kannst zu diesem Zweck die Option <option>-chapter</option> nutzen.
|
|
Zum Beispiel wird <option>-chapter</option> <replaceable>1-4</replaceable>
|
|
nur die Kapitel 1 bis 4 der DVD encodieren.
|
|
Dies ist besonders nützlich, wenn du eine für zwei CDs bestimmte
|
|
Encodierung mit 1400 MB durchführen willst, da du sicherstellen kannst,
|
|
dass die Unterbrechung exakt an den Kapitelgrenzen stattfindet, anstatt mitten
|
|
in einer Szene.
|
|
</para>
|
|
<para>
|
|
Besitzt du eine unterstützte TV-Capture-Karte, kannst du auch von einem
|
|
TV-In-Gerät encodieren.
|
|
Verwende <option>tv://</option><replaceable>Kanalnummer</replaceable> als
|
|
Dateinamen und <option>-tv</option> zur Konfiguration der zahlreichen
|
|
Aufnahmeeinstellungen.
|
|
Der DVB-Input funktioniert ähnlich.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="menc-feat-handheld-psp">
|
|
<title>Encodieren ins Sony PSP Video Format</title>
|
|
|
|
<para>
|
|
<application>MEncoder</application> unterstützt das Encodieren in das
|
|
Sony PSP Video Format, allerdings gibt es, abhängig von der Version der PSP
|
|
Software, unterschiedliche Beschränkungen.
|
|
Wer sicher gehen möchte, sollte folgende Beschränkungen beachten:
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
<emphasis role="bold">Bitrate</emphasis>: sollte 1500kbps
|
|
nicht überschreiten, frühere Versionen unterstützten allerdings fast jede
|
|
beliebige Bitrate, so lange der Header sagte, sie sei nicht zu hoch.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<emphasis role="bold">Dimensionen</emphasis>: die Breite und Höhe des
|
|
PSP videos sollte ein Vielfaches von 16 sein, und das Produkt Breite
|
|
* Höhe muss <= 64000 sein.
|
|
Unter gewissen Umständen kann es der PSP möglich sein, höhere
|
|
Auflösungen abzuspielen.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<emphasis role="bold">Audio</emphasis>: die Samplerate sollte für
|
|
MPEG-4 Videos 24kHz, und für H.264 48kHz betragen.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<example id="encode_for_psp">
|
|
<title>Encodierung für PSP</title>
|
|
<para>
|
|
<screen>
|
|
mencoder -oac lavc -ovc lavc -of lavf -lavcopts
|
|
aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \
|
|
-af lavcresample=24000 -vf harddup -lavfopts
|
|
format=psp:i_certify_that_my_video_stream_does_not_use_b_frames \
|
|
-ofps 30000/1001 input.video -o output.psp
|
|
</screen>
|
|
Der Titel des Videos kann folgendermaßen angepasst werden:
|
|
<option>-info name=<replaceable>MovieTitle</replaceable></option>.
|
|
</para>
|
|
</example>
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="menc-feat-mpeg4">
|
|
<title>Encodieren von 2-pass-MPEG4 ("DivX")</title>
|
|
|
|
<para>
|
|
Der Name kommt daher, dass diese Methode die Datei <emphasis>zweimal</emphasis>
|
|
encodiert.
|
|
Die erste Encodierung (synchronisierter Durchgang) erzeugt einige temporäre
|
|
Dateien (<filename>*.log</filename>) mit einer Größe von ein paar Megabyte,
|
|
lösche diese noch nicht (du kannst dabei die AVI löschen oder vielmehr einfach
|
|
kein Video erstellen, indem du sie nach <filename>/dev/null</filename>
|
|
umadressierst).
|
|
Im zweiten Durchgang wird die 2-pass-Ausgabedatei erzeugt, indem die
|
|
Bitraten-Daten der temporären Dateien genutzt werden. Die sich daraus
|
|
ergebende Datei wird eine viel bessere Bildqualität besitzen. Wenn du das
|
|
erste Mal davon gehört hast, solltest du einige im Netz verfügbare Handbücher
|
|
zu Rate ziehen.
|
|
</para>
|
|
|
|
<example id="copy_audio_track">
|
|
<title>Kopieren eines Audio-Tracks</title>
|
|
<para>
|
|
2-pass-Encodierung des zweiten Tracks einer DVD zu einer MPEG4 ("DivX")
|
|
AVI-Datei während des gleichzeitigen Kopierens des Audio-Tracks.
|
|
<screen>
|
|
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
|
|
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac copy -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</example>
|
|
|
|
<example id="encode_audio_track">
|
|
<title>Encodieren eines Audio-Tracks</title>
|
|
<para>
|
|
2-pass-Encodierung einer DVD nach einer MPEG4 ("DivX") AVI-Datei
|
|
während des gleichzeitigen Encodierens des Audio-Tracks nach MP3.
|
|
Sei bei der Anwendung dieser Methode vorsichtig, da sie in einigen Fällen
|
|
zur Audio-/Video-Desynchronisierung führen kann.
|
|
<screen>
|
|
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o /dev/null
|
|
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac mp3lame -lameopts vbr=3 -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</example>
|
|
</sect1>
|
|
|
|
<sect1 id="menc-feat-mpeg">
|
|
<title>Encodieren ins MPEG-Format</title>
|
|
<para>
|
|
<application>MEncoder</application> kann Ausgabedateien im Format
|
|
MPEG (MPEG-PS) erzeugen.
|
|
Gewöhnlich, wenn du MPEG1- oder MPEG2-Videos benutzt, tust du dies, weil
|
|
du in ein erzwungenes Format wie SVCD, VCD oder DVD encodierst.
|
|
Die spezifischen Anforderungen an diese Formate werden im Abschnitt
|
|
<link linkend="menc-feat-vcd-dvd">Verwenden von MEncoder zum Erzeugen
|
|
VCD/SVCD/DVD-konformer Dateien</link>
|
|
beschrieben.
|
|
</para>
|
|
|
|
<para>
|
|
Verwende die Option <option>-of mpeg</option>, um das Format der
|
|
Ausgabedatei von <application>MEncoder</application> zu ändern.
|
|
</para>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Beispiel:
|
|
<screen>
|
|
mencoder <replaceable>input.avi</replaceable> -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy <replaceable>other_options</replaceable> -o <replaceable>output.mpg</replaceable>
|
|
</screen>
|
|
Erzeugen einer für das Abspielen auf Systemen mit minimalem Multimedia-Support
|
|
geeigneten MPEG1-Datei, wie etwa auf Standard-Windows-Installationen:
|
|
<screen>
|
|
mencoder <replaceable>input.avi</replaceable> -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -o <replaceable>output.mpg</replaceable> -oac lavc -ovc lavc \
|
|
-lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
|
|
</screen>
|
|
Das gleiche bei Benutzung des MPEG-Muxers von <systemitem class="library">libavformat</systemitem>:
|
|
<screen>
|
|
mencoder <replaceable>input.avi</replaceable> -of lavf -lavfopts format=mpg:i_certify_that_my_video_stream_does_not_use_b_frames \
|
|
-ovc lavc -lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0 \
|
|
-o VCD.mpg -ofps 25 -vf scale=352:288,harddup -oac lavc -lavcopts acodec=mp2:abitrate=224
|
|
</screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
<note><title>Hinweis:</title>
|
|
<para>
|
|
Wenn dich die Video-Qualität des zweiten Durchgangs aus irgendeinem
|
|
Grund nicht zufrieden gestellt hat, kannst du deine Encodierung
|
|
mit einer anderen Zielbitrate erneut durchlaufen lassen, vorausgesetzt,
|
|
du hast die Statistikdateien des vorherigen Durchgangs gesichert.
|
|
Dies ist möglich, weil das Primärziel der Statistikdateien die Aufzeichnung
|
|
der Komplexität jedes Frames ist, was nicht allzusehr von der Bitrate
|
|
abhängt. Du solltest daher beachten, dass du die besten Ergebnisse bekommst,
|
|
wenn alle Durchgänge mit nicht zu sehr voneinander abweichenden
|
|
Ziel-Bitraten durchlaufen werden.
|
|
</para>
|
|
</note>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="menc-feat-rescale">
|
|
<title>Reskalierung von Filmen</title>
|
|
|
|
<para>
|
|
Oft taucht die Notwendigkeit auf, die Größe der Bilder eines Films zu
|
|
ändern. Das kann viele Gründe haben: das Anwachsen der Dateigröße,
|
|
Netzwerkbandbreite etc. Die meisten Leute reskalieren gerade beim
|
|
Konvertieren von DVDs oder SVCDs nach DivX AVI. Wenn du reskalieren willst,
|
|
lies den Abschnitt <link linkend="aspect">Beibehalten des Seitenverhältnisses</link>.
|
|
</para>
|
|
|
|
<para>
|
|
Der Skalierungsprozess wird vom <literal>scale</literal>-Video-Filter verarbeitet:
|
|
<option>-vf scale=<replaceable>Breite</replaceable>:<replaceable>Hoehe</replaceable></option>.
|
|
Seine Qualität kann mit der Option <option>-sws</option> gesetzt werden.
|
|
Ist sie nicht angegeben, wird <application>MEncoder</application> 2: bikubisch
|
|
verwenden.
|
|
</para>
|
|
|
|
<para>
|
|
Anwendung:
|
|
<screen>
|
|
mencoder <replaceable>input.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=640:480 -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="menc-feat-streamcopy">
|
|
<title>Kopieren von Streams</title>
|
|
|
|
<para>
|
|
<application>MEncoder</application> kann Input-Streams auf zwei Arten verarbeiten:
|
|
<emphasis role="bold">Encodiere</emphasis> oder <emphasis role="bold">kopiere</emphasis>
|
|
sie. Dieser Abschnitt behandelt das <emphasis role="bold">Kopieren</emphasis>.
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
<emphasis role="bold">Videostream</emphasis> (Option <option>-ovc copy</option>):
|
|
Damit kann man nette Sachen machen :) Wie etwa FLI oder VIVO oder
|
|
MPEG1-Video in eine AVI-Datei legen (nicht konvertieren!)! Sicherlich kann
|
|
nur <application>MPlayer</application> solche Dateien abspielen :)
|
|
Und es hat tatsächlich keine wirkliche Daseinsberechtigung.
|
|
Rational: Das Kopieren eines Video-Stream kann zum Beispiel dann
|
|
nützlich sein, wenn nur der Audio-Stream encodiert werden muß (wie
|
|
unkomprimiertes PCM nach MP3).
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<emphasis role="bold">Audiostream</emphasis> (Option <option>-oac copy</option>):
|
|
unkompliziert. Es ist möglich, eine externe Audio-Datei (MP3,
|
|
WAV) herzunehmen und sie in einen Ausgabestream zu muxen. Nimm dazu die
|
|
Option <option>-audiofile <replaceable>Dateinamename</replaceable></option>.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Das Anwenden von <option>-oac copy</option>, um von einem
|
|
Containerformat zum anderen zu kopieren, kann
|
|
<option>-fafmttag</option> erfordern, um das Audio-Format-Tag der Originaldatei
|
|
beizubehalten.
|
|
Wenn du zum Beispiel eine NSV-Datei mit AAC-Audio in einen AVI-Container
|
|
konvertierst, wird der Audio-Format-Tag fehlerhaft sein und muss geändert
|
|
werden. <filename>codecs.conf</filename> enthält eine Liste von
|
|
Audio-Format-Tags.
|
|
</para>
|
|
|
|
<para>
|
|
Beispiel:
|
|
<screen>
|
|
mencoder <replaceable>input.nsv</replaceable> -oac copy -fafmttag 0x706D -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="menc-feat-enc-images">
|
|
<title>Encodieren von mehreren Input-Bilddateien (JPEG, PNG, TGA, SGI)</title>
|
|
|
|
<para>
|
|
<application>MEncoder</application> ist in der Lage, Filme aus einer oder
|
|
mehreren JPEG-, PNG- oder TGA-Dateien zu erzeugen. Mit einem einfachen
|
|
framecopy kann es Dateien wie MJPEG (Motion JPEG), MPNG (Motion PNG)
|
|
oder MTGA (Motion TGA) generieren.
|
|
</para>
|
|
|
|
<orderedlist>
|
|
<title>Erläuterung des Prozesses:</title>
|
|
<listitem><para>
|
|
<application>MEncoder</application> <emphasis>decodiert</emphasis> das/die
|
|
Input-Bild(er) mittels <systemitem class="library">libjpeg</systemitem>
|
|
(beim Decodieren von PNGs nimmt er <systemitem class="library">libpng</systemitem>).
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<application>MEncoder</application> führt dann das decodierte Bild dem
|
|
gewählten Video-Kompressor zu (DivX4, Xvid, FFmpeg msmpeg4, etc).
|
|
</para></listitem>
|
|
</orderedlist>
|
|
|
|
<formalpara>
|
|
<title>Beispiele</title>
|
|
<para>
|
|
Die Erklärung der Option <option>-mf</option> steht in der Manpage.
|
|
|
|
<informalexample>
|
|
<para>
|
|
Erzeugen einer MPEG4-Datei aus allen im aktuellen Verzeichnis liegenden
|
|
JPEG-Dateien:
|
|
<screen>
|
|
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Erzeugen einer MPEG4-Datei aus einigen im aktuellen Verzeichnis liegenden
|
|
JPEG-Dateien:
|
|
<screen>
|
|
mencoder mf://<replaceable>frame001.jpg,frame002.jpg</replaceable> -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Erzeugen einer MPEG4-Datei aus einer eindeutigen Liste von JPEG-Dateien (list.txt im
|
|
aktuellem Verzeichnis enthält die Liste von Dateien, die als Quelle genutzt werden
|
|
sollen, eine pro Zeile):
|
|
<screen>
|
|
mencoder mf://<replaceable>@list.txt</replaceable> -mf w=800:h=600:fps=25:type=jpg \
|
|
-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Erzeugen einer Motion JPEG (MJPEG) Datei aus allen im aktuellen Verzeichnis liegenden
|
|
JPEG-Dateien:
|
|
<screen>
|
|
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Erzeugen einer unkomprimierten Datei aus allen PNG-Dateien im aktuellen Verzeichnis:
|
|
<screen>
|
|
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o <replaceable>output.avi</replaceable>
|
|
</screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
<note><para>
|
|
Die Breite muß ein Vielfaches von 4 sein, dies ist eine Einschränkung des
|
|
RAW RGB AVI Formats.
|
|
</para></note>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Erzeugen einer Motion PNG (MPNG) Datei aus allen PNG-Dateien im aktuellen Verzeichnis:
|
|
<screen>
|
|
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o <replaceable>output.avi</replaceable> <!--
|
|
--></screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
<informalexample>
|
|
<para>
|
|
Erzeugen einer Motion TGA (MTGA) Datei aus allen TGA-Dateien im aktuellen Verzeichnis:
|
|
<screen>
|
|
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o <replaceable>output.avi</replaceable><!--
|
|
--></screen>
|
|
</para>
|
|
</informalexample>
|
|
|
|
</para>
|
|
</formalpara>
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="menc-feat-extractsub">
|
|
<title>Extrahieren von DVD-Untertiteln in eine VOBsub-Datei</title>
|
|
|
|
<para>
|
|
<application>MEncoder</application> kann Untertitel aus einer DVD
|
|
in VOBsub-formatierte Dateien extrahieren. Diese bestehen aus einem
|
|
Paar von Dateien mit den Endungen <filename>.idx</filename> und
|
|
<filename>.sub</filename> und sind für gewöhnlich in ein einzelnes
|
|
<filename>.rar</filename>-Archiv gepackt.
|
|
<application>MPlayer</application> kann diese mit den Optionen
|
|
<option>-vobsub</option> und <option>-vobsubid</option> abspielen.
|
|
</para>
|
|
|
|
<para>
|
|
Du legst den Basisnamen der Ausgabedateien (z.B ohne die Erweiterung
|
|
<filename>.idx</filename> oder <filename>.sub</filename>)
|
|
mittels <option>-vobsubout</option> fest und den Index für diesen
|
|
Untertitel der resultierenden Dateien mit <option>-vobsuboutindex</option>.
|
|
</para>
|
|
|
|
<para>
|
|
Stammt der Input nicht von einer DVD, solltest du <option>-ifo</option>
|
|
verwenden, um die zur Konstruktion der resultierenden
|
|
<filename>.idx</filename>-Datei benötigten <filename>.ifo</filename>-Datei
|
|
anzugeben.
|
|
</para>
|
|
|
|
<para>
|
|
Stammt der Input nicht von einer DVD und besitzt du die
|
|
<filename>.ifo</filename>-Datei nicht, musst du die Option
|
|
<option>-vobsubid</option> anwenden, um ihn wissen zu lassen, welche
|
|
Sprach-ID in die <filename>.idx</filename>-Datei eingefügt werden soll.
|
|
</para>
|
|
|
|
<para>
|
|
Jeder Start wird den laufenden Untertitel anhängen, falls die
|
|
<filename>.idx</filename>- und <filename>.sub</filename>-Dateien bereits
|
|
existieren. Also solltest du beide vor dem Start entfernen.
|
|
</para>
|
|
|
|
<example id="copying_two_subtitles_from_a_dvd_while_doing_two_pass_encoding">
|
|
<title>Kopieren zweier Untertitel aus einer DVD während einer 2-pass-Encodierung</title>
|
|
<screen>
|
|
rm subtitles.idx subtitles.sub
|
|
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2
|
|
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5<!--
|
|
--></screen>
|
|
</example>
|
|
|
|
<example id="copying_a_french_subtitle_from_an_mpeg_file">
|
|
<title>Kopieren eines französichen Untertitels aus einer MPEG-Datei</title>
|
|
<screen>
|
|
rm subtitles.idx subtitles.sub
|
|
mencoder <replaceable>movie.mpg</replaceable> -ifo <replaceable>movie.ifo</replaceable> -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1 -nosound -ovc copy
|
|
</screen>
|
|
</example>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="aspect">
|
|
<title>Beibehalten des Seitenverhältnisses</title>
|
|
<para>
|
|
Dateien von DVDs und SVCDs (z.B. MPEG1/2) enthalten einen Wert für das
|
|
Seitenverhältnis, welcher beschreibt, wie der Player den Videostream
|
|
skalieren soll, damit Menschen keine Eierköpfe kriegen
|
|
(Beispiel: 480x480 + 4:3 = 640x480). Beim Encodieren zu AVI-(DivX)-Dateien
|
|
musst du dir bewusst sein, dass AVI-Header diesen Wert nicht abspeichern.
|
|
Das Reskalieren des Films ist ätzend und zeitaufwändig, da muss es doch
|
|
einen besseren Weg geben!
|
|
</para>
|
|
|
|
<para>Es gibt ihn.</para>
|
|
|
|
<para>
|
|
MPEG4 besitzt ein einzigartiges Feature: Der Video-Stream kann sein
|
|
benötigtes Seitenverhältnis enthalten. Ja, genau wie MPEG1/2 (DVD, SVCD)
|
|
und H.263 Dateien. Bedauerlicherweise gibt es abgesehen von
|
|
<application>MPlayer</application> wenige Video-Player, die dieses
|
|
MPEG4-Attribut unterstützen.
|
|
</para>
|
|
|
|
<para>
|
|
Dieses Feature kann nur mit dem <systemitem>mpeg4</systemitem>-Codec von
|
|
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
|
|
verwendet werden. Vergiss nicht: Obwohl <application>MPlayer</application>
|
|
die erzeugte Datei korrekt abspielen wird, könnten andere Player das verkehrte
|
|
Seitenverhältnis benutzen.
|
|
</para>
|
|
|
|
<para>
|
|
Du solltest auf jeden Fall die schwarzen Bänder oberhalb und unterhalb des
|
|
Filmbildes abschneiden.
|
|
In der Manpage steht mehr zur Verwendung der Filter <systemitem>cropdetect</systemitem>
|
|
und <systemitem>crop</systemitem>.
|
|
</para>
|
|
|
|
<para>
|
|
Anwendung:
|
|
<screen>mencoder <replaceable>sample-svcd.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -vf crop=714:548:0:14 -oac copy -o <replaceable>output.avi</replaceable></screen>
|
|
</para>
|
|
</sect1>
|
|
|
|
</chapter>
|