Mercurial > mplayer.hg
changeset 24614:33463f5fb929
r21861: explain how to use MEncoder to create QuickTime-compatible files
r21875: fix wrong option names
r21917: typo fixes
r21931: update x264's subq otion description
r21932: update and factorize information about x264's multi-threading mode
r21933: fixes suggested by Diego
r21934: get rid of two spaces after a period (instead of one)
author | kraymer |
---|---|
date | Thu, 27 Sep 2007 21:22:26 +0000 |
parents | a1dd22567239 |
children | e74fd2203d90 |
files | DOCS/xml/de/encoding-guide.xml |
diffstat | 1 files changed, 367 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/xml/de/encoding-guide.xml Thu Sep 27 17:45:28 2007 +0000 +++ b/DOCS/xml/de/encoding-guide.xml Thu Sep 27 21:22:26 2007 +0000 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- in sync with r21849 --> +<!-- in sync with r21934 --> <!-- missing cosmetic commit 21537 --> <chapter id="encoding-guide"> <title>Encodieren mit <application>MEncoder</application></title> @@ -1548,9 +1548,8 @@ der Encodiergeschwindigkeit - um in typischen Fällen etwa 40-60% - bei wenn überhaupt geringer Bildverschlechterung verwendet werden. <systemitem class="library">x264</systemitem> erlaubt ebenfalls - Multi-Thread-Encodierung, was im Moment das Encodieren um 15-30% beschleunigt - (abhängig von den Encodier-Einstellungen) bei gleichzeitiger Verringerung des - PSNR um etwa 0.05dB. + Multi-Thread-Encodierung, was das Encodieren momentan um 94% beschleunigt + bei gleichzeitiger Verringerung des PSNR um einen Wert zwischen 0.005dB und 0.01dB. </para> </listitem> @@ -3021,15 +3020,15 @@ <option>filmdint</option> anwenden müssen. </para> - <para> + <para id="menc-feat-dvd-mpeg4-example-crop"> Als Nächstes wollen wir das passende Ausschnittsrechteck bestimmen, also - verwenden wir den crop-Erkennungsfilter: + verwenden wir den cropdetect-Filter: <screen>mplayer dvd://1 -vf cropdetect</screen> Stelle sicher, dass du einen voll gefüllten Frame anstrebst (wie zum - Beispiel eine helle Szene), und dass du diese Ausgabe in - <application>MPlayer</application>s Konsole siehst: + Beispiel eine helle Szene, nach den Eröffnungs-Credits und Filmlogos), + und dass du diese Ausgabe in <application>MPlayer</application>s Konsole siehst: <screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen> @@ -3822,7 +3821,7 @@ </sect3> <sect3 id="menc-feat-x264-encoding-options-speedvquality"> - <title>Optionen die primär Geschwindigkeit und Qualität betreffen</title> + <title>Optionen, die primär Geschwindigkeit und Qualität betreffen</title> <itemizedlist> <listitem> @@ -3848,7 +3847,7 @@ Dies ist gewöhnlich ausreichend, um sichtbar zu werden. </para> <para> - <option>subq=6</option> ist der langsamste Modus mit der höchsten + <option>subq=6</option> ist langsamer und führt bei erträglichen Kosten zu besserer Qualität. Im Vergleich zu <option>subq=5</option> gewinnt sie gewöhnlich 0.1-0.4 dB globalen PSNR mit Geschwindigkeitseinbußen, die sich zwischen 25%-100% @@ -3864,6 +3863,14 @@ <option>bframes</option> immer auf etwas anderes als null zu setzen (siehe unten). </para> + <para> + <option>subq=7</option> ist der langsamste Modus mit der höchsten Qualität. + Im Vergleich zu <option>subq=6</option> erreicht er normalerweise zwischen 0.01-0.05 dB + Zuwachs des globalen PSNR bei Geschwindigkeitseinbußen variierend von 15%-33%. + Da der Kompromiss zwischen Zeit gegenüber Qualität recht gering ist, solltest + du ihn nur benutzen, wenn du jedes mögliche Bit einsparen möchtest und + Encodierzeit keine Rolle spielt. + </para> </listitem> <listitem> <para> @@ -4060,6 +4067,21 @@ Videoclip erzeugen. </para> </listitem> + <listitem id="menc-feat-x264-encoding-options-speedvquality-threads"> + <para> + <emphasis role="bold">threads</emphasis>: + Diese Option erlaubt es, mehrere Threads zu erstellen, um parallel auf mehreren + CPUs zu encodieren. Du kannst die Anzahl der Threads manuell wählen oder, + besser, setze <option>threads=auto</option> und lasse + <systemitem class="library">x264</systemitem> erkennen, wie viele CPUs + verfügbar sind, und die passende Anzahl Threads automatisch wählen. + Wenn du eine Multi-Prozessor-Maschine hast, solltest du wirklich in Erwägung + ziehen, dies zu benutzen, da es die Encodiergeschwindigkeit linear in + der Anzahl der CPU-Kerne (ca. 94% pro CPU-Kern) erhöhen kann, bei sehr + geringem Qualitätsverlust (ca. 0.005dB bei Dualprozessor, ca. 0.01dB bei + einer Quad-Prozessor-Maschine). + </para> + </listitem> </itemizedlist> </sect3> @@ -4330,6 +4352,340 @@ </sect1> + + <sect1 id="menc-feat-quicktime-7"> + <title> + <application>MEncoder</application> benutzen, um <application>QuickTime</application>-kompatible Dateien zu erstellen + </title> + + <sect2 id="menc-feat-quicktime-7-why-use-it"> + <title> + Warum sollte jemand <application>QuickTime</application>-kompatible Dateien erstellen wollen? + </title> + + <para> + Es gibt mehrere Gründe, warum das Erstellen von <application>QuickTime</application>-kompatiblen + Dateien wünschenswert sein kann. + </para> + <itemizedlist> + <listitem> + <para> + Du willst, dass jeder Computeranalphabet deine Encodierung auf jeder größeren + Plattform (Windows, Mac OS X, Unices …) anschauen kann. + </para> + </listitem> + <listitem> + <para> + <application>QuickTime</application> kann von mehr Features der Hardware- und + Softwarebeschleunigung von Max OS X gebrauch machen als plattformunabhängige + Player wie <application>MPlayer</application> oder <application>VLC</application>. + Das heißt, dass deine Encodierungen eine bessere Chance haben, auf älteren + G4-Machinen flüssig abgespielt werden zu können. + </para> + </listitem> + <listitem> + <para> + <application>QuickTime</application> 7 unterstützt den Next-Generation-Codec H.264, + der deutlich bessere Bildqualität erreicht als vorige Codecgenerationen + (MPEG-2, MPEG-4 …). + </para> + </listitem> + </itemizedlist> + </sect2> + + <sect2 id="menc-feat-quicktime-7-constraints"> + <title>Beschränkungen von <application>QuickTime</application> 7</title> + + <para> + <application>QuickTime</application> 7 unterstützt H.264 Video und AAC Audio, + aber es unterstützt diese nicht gemuxt im AVI-Containerformat. + Du kannst jedoch <application>MEncoder</application> verwenden, um Video + und Audio zu encodieren, und dann ein separates Programm wie + <application>mp4creator</application> (Teil des + <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP-Pakets</ulink>) + verwenden, um Video- und Tonspuren in einen MP4-Container zu muxen. + </para> + + <para> + <application>QuickTime</application>s Unterstützung für H.264 ist begrenzt, + daher wirst du ein paar fortgeschrittene Features weglassen müssen. + Wenn du dein Video mit Features encodierst, die + <application>QuickTime</application> 7 nicht unterstützt, werden dir + <application>QuickTime</application>-basierte Player ein ziemlich weißes + Bild zeigen an Stelle des erwarteten Videos. + </para> + + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">B-Frames</emphasis>: + <application>QuickTime</application> 7 unterstützt maximal einen B-Frame, z.B. + <option>-x264encopts bframes=1</option>. Dies bedeutet, dass + <option>b_pyramid</option> and <option>weight_b</option> keine Auswirkungen + haben werden, da sie <option>bframes</option> größer als 1 erwarten. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Macroblöcke</emphasis>: + <application>QuickTime</application> 7 unterstützt keine 8x8 DCT Macroblöcke. + Diese Option (<option>8x8dct</option>) ist per Voreinstellung aus, stelle daher sicher, + dass du sie nicht explizit aktiviert. + Dies bedeutet auch, dass die Option <option>i8x8</option> keine Auswirkungen haben + wird, denn sie benötigt <option>8x8dct</option>. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Seitenverhältnis</emphasis>: + <application>QuickTime</application> 7 unterstützt Informationen über + SAR (sample aspect ratio) nicht; es nimmt SAR=1 an. + Lies <link linkend="menc-feat-quicktime-7-scale">den Abschnitt über Skalierung</link> + für eine Umgehung dieses Problems. + </para> + </listitem> + </itemizedlist> + + </sect2> + + <sect2 id="menc-feat-quicktime-7-crop"> + <title>Beschneidung der Ränder (Cropping)</title> + + <para> + Angenommen, du willst deine nagelneu gekaufte Kopie von "Chroniken von Narnia" + rippen. Deine DVD ist Region 1, d.h. sie ist in NTSC. + Das weiter unten stehende Beispiel kann man auch auf PAL anwenden, nur + dass du dann <option>-ofps 24000/1001</option> weglassen und etwas andere + Maße für <option>crop</option> und <option>scale</option> verwenden musst. + </para> + + <para> + Nach dem Ausführen von <option>mplayer dvd://1</option> folgst du den Anweisungen, + die detailliert im Abschnitt + <link linkend="menc-feat-telecine">Wie mit telecine und interlacing in NTSC-DVDs umgehen</link> + beschrieben sind, und stellst fest, dass es sich um + 24000/1001 fps progressives Video handelt. Das vereinfacht das Vorgehen etwas, + da du keinen inverse telecine Filter wie <option>pullup</option> oder einen + Deinterlacing-Filter wie <option>yadif</option> anwenden musst. + </para> + + <para> + Als nächstes musst du die schwarzen Streifen oben und unten vom Video entfernen + wie in <link linkend="menc-feat-dvd-mpeg4-example-crop">vorigem</link> + Abschnitt beschrieben. + </para> + + </sect2> + + <sect2 id="menc-feat-quicktime-7-scale"> + <title>Skalierung</title> + + <para> + Der nächste Schritt ist wirklich herzzerreißend. + <application>QuickTime</application> 7 unterstützt keine MPEG-4-Videos + mit einer sample aspect ratio ungleich 1, daher wirst du das Video auf quadratische + Pixel hochskalieren (was eine Menge Platz verschwendet) oder herunterskalieren + (was ein paar Details der Quelle verliert) müssen. + Beides ist höchst ineffizient, jedoch einfach nicht zu vermeiden, wenn + dein Video von <application>QuickTime</application> 7 abspielbar sein soll. + <application>MEncoder</application> kann die passende Hoch- oder Herunterskalierung + durchführen bei Angabe von <option>-vf scale=-10:-1</option> oder + <option>-vf scale=-1:-10</option> respektive. + Dies wird dein Video auf die für die geschnittene Höhe korrekte Breite + schneiden, gerundet auf das nächste Vielfache von 16 für optimale Kompression. + Beachte, dass wenn du schneidest, solltest du zuerst schneiden und erst dann skalieren: + <screen>-vf crop=720:352:0:62,scale=-10:-1</screen> + </para> + + </sect2> + + <sect2 id="menc-feat-quicktime-7-avsync"> + <title>A/V-Synchronisation</title> + + <para> + Weil du in einen anderen Container muxen wirst, solltest du immer die Option + <option>harddup</option> verwenden, um sicherzustellen, dass doppelte + Frames in der Videoausgabe tatsächlich dupliziert werden. + Ohne diese Option wird <application>MEncoder</application> einfach eine Markierung + im Videostream machen, dass ein doppelter Frame vorkommt, und sich darauf + verlassen, dass die Software dafür sorgt, dass derselbe Frame zweimal + angezeigt wird. Leider überlebt diese "weiche Duplikation" das Remuxen + nicht, daher wird der Ton langsam Synchronisation zum Video verlieren. + </para> + + <para> + Die endgültige Filterkette sieht so aus: + <screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen> + </para> + + </sect2> + + <sect2 id="menc-feat-quicktime-7-bitrate"> + <title>Bitrate</title> + + <para> + Wie immer geht es bei der Wahl der Bitrate sowohl um technische Gegebenheiten + der Quelle, wie <link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">hier</link> + erklärt wird, als auch um persönlichen Geschmack. + Dieser Film enthält durchaus einige Actionszenen und viele Details, aber + H.264-Video sieht gut aus auch bei viel geringeren Bitraten als XviD oder + andere MPEG-4-Codecs. + Nach vielem Experimentieren hat der Autor dieser Anleitung beschlossen, + den Film bei 900kbps zu encodieren, und dachte, er sehe ziemlich gut aus. + Du kannst die Bitrate verringern, um Platz zu sparen, oder erhöhen, um + die Qualität zu verbessern. + </para> + + </sect2> + + <sect2 id="menc-feat-quicktime-7-example"> + <title>Encoding-Beispiel</title> + + <para> + Du bist jetzt soweit, das Video zu encodieren. Da du auf Qualität Wert legst, + wirst du natürlich eine Encodierung mit zwei Durchläufen machen. + Um etwas Encodierzeit zu sparen, kannst du die Option <option>turbo</option> + beim ersten Durchlauf angeben; dies verringert <option>subq</option> und + <option>frameref</option> auf 1. Um etwas Platz zu sparen, kannst du die + Option <option>ss</option> verwenden, um die ersten Sekunden des Videos zu + überspringen. (Ich fand, dass dieser bestimmte Film 32 Sekunden Vorspann hat.) + <option>bframes</option> kann 0 oder 1 sein. + Die anderen Optionen werden in + <link linkend="menc-feat-x264-encoding-options-speedvquality">Encodierung mit dem <systemitem class="library">x264</systemitem>-Codec</link> + und der Manpage beschrieben. + +<screen>mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \ +-x264encopts pass=1:turbo:bitrate=900:bframes=1:\ +me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ +-vf crop=720:352:0:62,scale=-10:-1,harddup \ +-oac faac -faacopts br=192:mpeg=4:object=1 -channels 2 -srate 48000 \ +-ofps 24000/1001</screen> + + Wenn du einen Rechner mit mehreren Prozessoren hast, nutze die Chance, den + Encodierungsvorgang dramatisch zu beschleunigen, indem du + <link linkend="menc-feat-x264-encoding-options-speedvquality-threads"> + <systemitem class="library">x264</systemitem>'s Multithreading-Modus + </link> + verwendest, indem du die Option <option>threads=auto</option> der + <option>x264encopts</option>-Kommandozeile hinzufügst. + </para> + + <para> + Der zweite Durchlauf ist derselbe, außer dass du die Ausgabedatei angibst + und <option>pass=2</option> setzt. + +<screen>mencoder dvd://1 <emphasis role="bold">-o narnia.avi</emphasis> -ss 32 -ovc x264 \ +-x264encopts <emphasis role="bold">pass=2</emphasis>:turbo:bitrate=900:frameref=5:bframes=1:\ +me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ +-vf crop=720:352:0:62,scale=-10:-1,harddup \ +-oac faac -faacopts br=192:mpeg=4:object=1 -channels 2 -srate 48000 \ +-ofps 24000/1001</screen> + </para> + <para> + Das resultierende AVI sollte in <application>MPlayer</application> + perfekt abspielbar sein, aber natürlich kann <application>QuickTime</application> + es nicht abspielen. Denn es unterstützt H264 in AVI nicht. + Der nächste Schritt ist also, das Video in einen MP4-Container zu muxen. + + </para> + + </sect2> + + <sect2 id="menc-feat-quicktime-7-remux"> + <title>Remuxen zu MP4</title> + + <para> + Es gibt mehrere Möglichkeiten, AVI-Dateien nach MP4 zu muxen. Du kannst + <application>mp4creator</application> verwenden, welches Teil des + <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP-Pakets</ulink> ist. + </para> + + <para> + Demuxe das AVI <application>MPlayer</application> zuerst in separate Audio- und Videostreams. + +<screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac +mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen> + Die Dateinamen sind wichtig; <application>mp4creator</application> + verlangt, dass AAC-Audiostreams <systemitem>.aac</systemitem> und + H.264-Videostreams <systemitem>.h264</systemitem> heißen. + </para> + + <para> + Benutze nun <application>mp4creator</application>, um aus Audio- und + Videostreams eine MP4-Datei zu erzeugen. + + <screen>mp4creator -create=narnia.aac narnia.mp4 +mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4</screen> + + Anders als bei der Encodierung musst du die Framerate als Dezimalzahl + (23.976) und nicht als Bruch (24000/1001) angeben. + </para> + + <para> + Diese Datei <systemitem>narnia.mp4</systemitem> sollte nun mit jeder + <application>QuickTime</application> 7 Anwendung wie dem + <application>QuickTime Player</application> oder + <application>iTunes</application> abspielbar sein. + Wenn du vorhast, das Video mit einem <application>QuickTime</application>-Plugin + im Browser anzuschauen, solltest du den Film außerdem "hinten", so dass + das <application>QuickTime</application>-Plugin während des Downloads + die Wiedergabe starten kann. + <application>mp4creator</application> kann diese Art Tracks erstellen: + +<screen>mp4creator -hint=1 narnia.mp4 +mp4creator -hint=2 narnia.mp4 +mp4creator -optimize narnia.mp4</screen> + + Du kannst das Ergebnis überprüfen, um sicherzustellen, dass die Hint-Tracks + erfolgreich erstellt wurden: + <screen>mp4creator -list narnia.mp4</screen> + + Du solltest eine Auflistung der Tracks sehen: + 1 Audio-, 1 Video- und 2 Hint-Tracks. + +<screen>Track Type Info +1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz +2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps +3 hint Payload mpeg4-generic for track 1 +4 hint Payload H264 for track 2 +</screen> + + </para> + + </sect2> + + <sect2 id="menc-feat-quicktime-7-metadata"> + <title>Metadata-Tags hinzufügen</title> + + <para> + Wenn du deinem Video Tags hinzufügen möchtest, die in iTunes angezeigt werden, + kannst du dazu + <ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink> + verwenden. + + <screen>AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen> + + Die Option <option>--metaEnema</option> entfernt jegliche existierenden Metadaten + (<application>mp4creator</application> fügt seinen Namen im Tag + "encoding tool" hinzu), und <option>--freefree</option> macht den frei + gewordenen Platz geltend. + Die Option <option>--stik</option> setzt den Videotyp + (wie z.B. Film und Serie), den iTunes verwendet, um verwandte Videodateien + zu gruppieren. + Die Option <option>--overWrite</option> überschreibt die ursprüngliche Datei. + Ohne sie erstellt <application>AtomicParsley</application> eine automatisch + benannte Datei im selben Verzeichnis und lässt die Originaldatei unberührt. + </para> + + </sect2> + + </sect1> + + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + + <sect1 id="menc-feat-video-for-windows"> <title>Encodieren mit der <systemitem class="library">Video for Windows</systemitem> Codecfamilie</title> @@ -4883,7 +5239,7 @@ </listitem> <listitem> <para> - <emphasis role="bold">vtrict</emphasis>: + <emphasis role="bold">vstrict</emphasis>: <option>vstrict</option>=0 sollte verwendet werden, um DVDs zu erstellen. Ohne diese Option erzeugt <application>MPlayer</application> einen Stream, der von manchen standalone DVD-Playern nicht korrekt decodiert werden kann.