Mercurial > mplayer.hg
view DOCS/xml/de/encoding-guide.xml @ 26513:133c98f1c5a8
Only compile libmpcodecs/ve_qtvideo.c on Windows.
author | diego |
---|---|
date | Sat, 26 Apr 2008 10:53:32 +0000 (2008-04-26) |
parents | 71c669dee1d6 |
children | 75df3c533a73 |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <!-- in sync with r24549 --> <!-- missing cosmetic commit 21537 --> <chapter id="encoding-guide"> <title>Encodieren mit <application>MEncoder</application></title> <sect1 id="menc-feat-dvd-mpeg4"> <title>Erzeugen eines hochwertigen MPEG-4-Rips ("DivX") eines DVD-Films</title> <para> Eine h辰ufig gestellte Frage ist "Wie mache ich den hochwertigsten Rip f端r eine gegebene Gr旦�e?". Eine weitere Frage ist "Wie mache ich den qualitativ bestm旦glichen DVD-Rip? Die Dateigr旦�e ist mir egal, ich will einfach nur die beste Qualit辰t." </para> <para> Die letzte Frage ist zumindest etwas falsch gestellt. Wenn du dir schlie�lich keine Gedanken um die Dateigr旦�e machst, warum kopierst Du dann nicht einfach den kompletten MPEG-2-Videostream der DVD? Sicherlich, deine AVI wird am Ende 5GB gro� sein, so oder so, jedoch ist dies mit Sicherheit deine beste Option, wenn du die beste Qualit辰t erhalten willst und dich nicht um die Gr旦�e k端mmerst. </para> <para> Tatsache ist, der Grund eine DVD in MPEG-4 umzuencodieren ist gerade <emphasis role="bold">weil</emphasis> dir die Gr旦�e wichtig ist. </para> <para> Es ist sehr schwierig, ein Rezept zum Erzeugen eines sehr hochwertigen DVD-Rips anzubieten. Es gilt mehrere Faktoren zu ber端cksichtigen, und du solltest dich mit diesen Details auskennen oder du wirst voraussichtlich am Ende von den Resultaten entt辰uscht. Nachfolgend werden wir einige dieser Themen etwas n辰her untersuchen und uns danach ein Beispiel ansehen. Wir gehen davon aus, dass Du <systemitem class="library">libavcodec</systemitem> zum Encodieren des Videos verwendest, obwohl diese Theorie genauso gut auf andere Codecs zutrifft. </para> <para> Ist dies alles zu viel f端r dich, solltest du wom旦glich auf eins der vielen guten Frontends zur端ckgreifen, die in der <ulink url="http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends">MEncoder-Sektion</ulink> unserer diesbez端glichen Projektseite zu finden sind. Auf diese Weise solltest du in der Lage sein, hochwertige Rips zu erhalten ohne viel nachdenken zu m端ssen, da die meisten dieser Tools dazu entworfen wurden, clevere Entscheidungen f端r dich zu treffen. </para> <sect2 id="menc-feat-dvd-mpeg4-preparing-encode"> <title>Vorbereitung aufs Encodieren: Identifiziere Quellmaterial und Framerate</title> <para> Bevor du 端ber das Encodieren eines Films nachdenkst, solltest du einige einleitende Schritte vornehmen. </para> <para> Der erste und allerwichtigste Schritt vor dem Encodieren sollte sein, festzustellen, mit welchem Inhaltstyp du umgehst. Kommt dein Quellmaterial von einer DVD oder einem Rundfunk-/Kabel-/Satelliten-TV, wird es in einem von zwei Formaten abgespeichert: NTSC f端r Nord-Amerika und Japan, PAL f端r Europa usw. Es ist wichtig, sich klar zu machen, dass dies ganz einfach die Formatierung f端r die Pr辰sentation auf einem Fernsehger辰t ist und h辰ufig <emphasis role="bold">nicht</emphasis> mit dem originalen Format des Films korrespondiert. Die Erfahrung zeigt, dass NTSC-Material schwieriger zu encodieren ist, da mehr Elemente in der Quelle zu identifizieren sind. Um eine geeignete Encodierung zu produzieren, solltest du das originale Format kennen. Fehler, dies sollte man ber端cksichtigen, f端hren zu diversen Fehlerstellen in deiner Encodierung, einschlie�lich h辰sslicher Kammartefakte (combing/interlacing) und doppelten oder gar verlorenen Frames. Abgesehen davon, dass sie unsch旦n sind, beeinflussen diese Artefakte die Codierungseffizienz negativ: Du erh辰ltst eine schlechtere Qualit辰t pro Bitrateneinheit. </para> <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps"> <title>Identifizieren der Quellframerate</title> <para> Hier ist eine Liste der verbreiteten Typen des Quellmaterials, in der Du diese und ihre Eigenschaften voraussichtlich finden wirst: </para> <itemizedlist> <listitem> <para> <emphasis role="bold">Standardfilm</emphasis>: Produziert f端r theatralische Anzeige bei 24fps. </para> </listitem> <listitem> <para> <emphasis role="bold">PAL-Video</emphasis>: Aufgenommen mit einer PAL-Videokamera bei 50 Feldern pro Sekunde. Ein Feld besteht ganz einfach aus den ungerade oder gerade nummerierten Zeilen eines Frames. Das Fernsehen wurde entworfen, diese Felder als billige Form einer analogen Komprimierung im Wechsel zu aktualisieren. Das menschliche Auge kompensiert dies angeblich, aber wenn du Interlacing einmal verstanden hast, wirst du lernen, es auch auf dem TV-Bildschirm zu erkennen und nie wieder Spass am Fernsehen haben. Zwei Felder machen <emphasis role="bold">keinen</emphasis> kompletten Frame, da sie in einer 50-stel Sekunde zeitlich getrennt aufgenommen werden und so nicht Schlange stehen solange keine Bewegung da ist. </para> </listitem> <listitem> <para> <emphasis role="bold">NTSC-Video</emphasis>: Aufgenommen mit einer NTSC-Videokamera bei 60000/1001 Feldern pro Sekunde oder 60 Feldern pro Sekunde zu Zeiten vor dem Farbfernsehen. Ansonsten 辰hnlich wie PAL. </para> </listitem> <listitem> <para> <emphasis role="bold">Animation</emphasis>: �blicherweise bei 24fps gezeichnet, kommt jedoch auch in Varianten mit gemischter Framerate vor. </para> </listitem> <listitem> <para> <emphasis role="bold">Computer Graphics (CG)</emphasis>: Kann irgendeine Framerate sein, jedoch sind einige 端blicher als andere; 24 und 30 Frames pro Sekunde sind typisch f端r NTSC und 25fps ist typisch f端r PAL. </para> </listitem> <listitem> <para> <emphasis role="bold">Alter Film</emphasis>: Diverse niedrigere Frameraten. </para> </listitem> </itemizedlist> </sect3> <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material"> <title>Identifizieren des Quellmaterials</title> <para> Filme, die sich aus Frames zusammensetzen, werden den progressiven zugeordnet, w辰hrend die aus unabh辰ngigen Feldern bestehenden entweder interlaced (engl. f端r verschachteln) oder Video genannt werden - somit ist letzterer Terminus zweideutig. </para> <para> Um das ganze noch komplizierter zu machen, sind manche Filme ein Gemisch aus einigen den oben beschriebenen Formen. </para> <para> Das wichtigste Unterscheidungsmerkmal zwischen all diesen Formaten ist, dass einige Frame-basiert, andere wiederum Feld-basiert sind. <emphasis role="bold">Immer</emphasis> wenn ein Film f端r die Anzeige auf dem Fernseher vorbereitet wird (einschlie�lich DVD), wird er in ein Feld-basiertes Format konvertiert. Die verschiedenen Methoden, mit denen dies bewerkstelligt werden kann, werden zusammengenommen als "telecine" bezeichnet, von welchen das verrufene NTSC "3:2 pulldown" eine Abart darstellt. Sofern das Originalmaterial nicht Feld-basiert war (bei gleicher Feldrate), erh辰ltst du einen Film in einem anderen Format als das Original. </para> <itemizedlist> <title>Es gibt einige verbreitete Typen des pulldown:</title> <listitem> <para> <emphasis role="bold">PAL 2:2 pulldown</emphasis>: Das sch旦nste von allen. Jeder Frame wird durch das wechselweise Extrahieren und Anzeigen der geradzahligen und ungeradzahligen Zeilen f端r die Dauer von zwei Feldern dargestellt. Hat das Originalmaterial 24fps, beschleunigt dieser Prozess den Film um 4%. </para> </listitem> <listitem> <para> <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown</emphasis>: Jeder 12-te Frame, anstatt nur jeder 2-te, wird f端r die Dauer von zwei Feldern dargestellt. Dies vermeidet die 4% Geschwindigkeitssteigerung, macht jedoch das Umkehren des Prozesses viel schwieriger. Es ist 端blicherweise in Musical-Produktionen zu sehen, wo das Anpassen der Geschwindigkeit um 4% sicherlich das musikalische Ergebnis kaputt machen w端rde. </para> </listitem> <listitem><para> <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Frames werden abwechselnd f端r die Dauer von 3 oder 2 Feldern angezeigt. Dies verleiht der Feldrate das 2.5-fache der originalen Framerate. Das Resultat wird dadurch auch leicht von 60 Feldern pro Sekunde auf 60000/1001 Felder pro Sekunde verlangsamt, um die NTSC-Felddrate beizubehalten. </para> </listitem> <listitem> <para> <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Verwendet zur Darstellung von 30fps Material auf NTSC. Sch旦n, genau wie das 2:2 PAL pulldown. </para> </listitem> </itemizedlist> <para> Es gibt auch Methoden zur Konvertierung zwischen NTSC- und PAL-Video, jedoch liegen diese Themen jenseits des Rahmens dieser Anleitung. Wenn du auf solch einen Film st旦�t und ihn encodieren willst, solltest du besser eine Kopie im originalen Format suchen. Die Konvertierung zwischen diesen beiden Formaten ist hochdestruktiv und kann nicht spurlos r端ckg辰ngig gemacht werden, somit wird deine Encodierung au�erordentlich darunter leiden, wenn sie aus einer konvertierten Quelle erzeugt wurde. </para> <para> Wenn ein Video auf DVD gespeichert wird, werden fortlaufend Feldpaare als Frames gruppiert, auch wenn nicht beabsichtigt ist, diese gleichzeitig zu zeigen. Der bei DVD und digitalem TV verwendete MPEG-2-Standard bietet einen Weg f端r beides, die originalen progressiven Frames zu encodieren und die Anzahl der Felder, f端r die ein Frame gezeigt werden soll, im Header dieses Frames zu speichern. Wurde diese Methode angewandt, wird dieser Film oft als "soft telecined" beschrieben, da der Prozess eher nur den DVD-Player anweist, pulldown auf den Film anzuwenden, als den Film selbst abzu辰ndern. Dieser Fall sollte m旦glichst bevorzugt werden, da er (eigentlich ignoriert) leicht vom Encoder r端ckg辰ngig gemacht werden kann und da er die maximale Qualit辰t beibeh辰lt. Wie auch immer, viele DVD- und Rundfunkproduktionsstudios verwenden keine passenden Encodierungstechniken, sie produzieren stattdessen Filme mit "hard telecine", bei denen Felder sogar in encodiertes MPEG-2 dupliziert werden. </para> <para> Die Vorgehensweisen f端r den Umgang mit solchen F辰llen werden <link linkend="menc-feat-telecine">sp辰ter in diesem Handbuch</link> behandelt. Wir lassen dich jetzt mit einigen Anleitungen zur Identifizierung der Materialtypen zur端ck, mit denen du es zu tun hast: </para> <itemizedlist> <title>NTSC-Bereiche:</title> <listitem> <para> Wenn <application>MPlayer</application> angibt, dass die Framerate w辰hrend des Betrachtens des Films zu 24000/1001 gewechselt hat und diese nie wieder zur端ckwechselt, handelt es sich meist mit Sicherheit um progressiven Inhalt, der "soft telecined" wurde. </para> </listitem> <listitem> <para> Wenn <application>MPlayer</application> anzeigt, dass die Framerate zwischen 24000/1001 und 30000/1001 vor und zur端ck wechselt, und Du siehst hin und wieder Kammartefakte, dann gibt es mehrere M旦glichkeiten. Die Segmente mit 24000/1001 fps sind meist mit Sicherheit progressiver Inhalt, "soft telecined", jedoch k旦nnten die Teile mit 30000/1001 fps entweder "hard telecined" 24000/1001 fps Inhalt oder 60000/1001 Felder pro Sekunde NTSC-Video sein. Verwende die selben Richtwerte wie in den folgenden zwei F辰llen, um zu bestimmen, um was es sich handelt. </para> </listitem> <listitem> <para> Wenn <application>MPlayer</application> nie einen Frameratenwechsel anzeigt und jeder einzelne Frame mit Bewegung gek辰mmt (combed) erscheint, ist dein Film ein NTSC-Video bei 60000/1001 Feldern pro Sekunde. </para> </listitem> <listitem> <para> Wenn <application>MPlayer</application> nie einen Frameratenwechsel anzeigt und zwei von f端nf Frames gek辰mmt (combed) erscheinen, ist der Inhalt deines Films "hard telecined" 24000/1001 fps. </para> </listitem> </itemizedlist> <itemizedlist> <title>PAL-Bereiche:</title> <listitem> <para> Wenn du niemals irgend ein Combing siehst, ist dein Film 2:2 pulldown. </para> </listitem> <listitem> <para> Siehst du alle halbe Sekunde abwechselnd ein- und ausgehendes Combing, dann ist dein Film 2:2:2:2:2:2:2:2:2:2:2:3 pulldown. </para> </listitem> <listitem> <para> Hast du immer w辰hrend Bewegungen Combing gesehen, dann ist dein Film PAL-Video bei 50 Feldern pro Sekunde. </para> </listitem> </itemizedlist> <note> <title>Tipp:</title> <para> <application>MPlayer</application> kann das Filmplayback mittels der Option -speed verlangsamen oder Frame f端r Frame abspielen. Versuche <option>-speed</option> 0.2 zu verwenden, um den Film sehr lamgsam anzusehen oder dr端cke wiederholt die Taste "<keycap>.</keycap>", um jeweils einen Frame abzuspielen und identifiziere dann das Muster, falls du bei voller Geschwindigkeit nichts erkennen kannst. </para> </note> </sect3> </sect2> <sect2 id="menc-feat-dvd-mpeg4-2pass"> <title>Konstanter Quantisierungsparameter vs. Multipass</title> <para> Es ist m旦glich, deinen Film in einer gro�en Auswahl von Qualit辰ten zu encodieren. Mit modernen Videoencodern und ein wenig Pre-Codec-Kompression (Herunterskalierung und Rauschunterdr端ckung), kann eine sehr gute Qualit辰t bei 700 MB f端r einen 90-110-min端tigen Breitwandfilm erreicht werden. Des Weiteren k旦nnen alle Filme - sogar die l辰ngsten - mit nahezu perfekter Qualit辰t bei 1400 MB encodiert werden. </para> <para> Es gibt drei Ann辰herungen f端r das Encodieren eines Videos: konstante Bitrate (CBR), konstanter Quantisierungsparameter und Multipass (ABR, oder mittlere Bitrate). </para> <para> Die Komplexit辰t der Frames eines Filmes und somit die Anzahl der f端r deren Komprimierung erforderlichen Bits kann von einer Szene zur anderen au�erordentlich variieren. Moderne Videoencoder k旦nnen sich durch Variieren der Bitrate an diese Anforderungen anpassen. In einfachen Modi wie CBR kennen die Encoder jedoch nicht den Bitratenbedarf zuk端nftiger Szenen und sind somit nicht in der Lage, die angeforderte mittlere Bitrate 端ber l辰ngere Zeitspannen zu 端berschreiten. Erweiterte Modi wie etwa Multipass-Encodierung k旦nnen die Statistik fr端herer Durchg辰nge ber端cksichtigen; dies behebt das oben erw辰hnte Problem. </para> <note><title>Anmerkung:</title> <para> Die meisten Codecs, die ABR-Encodierung unterst端tzen, unterst端tzen nur die Encodierung in zwei Durchg辰ngen (two pass) w辰hrend einige andere wie etwa <systemitem class="library">x264</systemitem>, <systemitem class="library">Xvid</systemitem> und <systemitem class="library">libavcodec</systemitem> Multipass unterst端tzen, was die Qualit辰t bei jedem Durchgang leicht verbessert. Jedoch ist diese Verbesserung weder messbar noch ist sie nach dem 4-ten Durchgang oder so sp端rbar. Aus diesem Grund werden in diesem Abschnitt die Encoderierung mit 2 Durchl辰ufen (two pass) und Multipass abwechselnd angewandt. </para> </note> <para> In jedem dieser Modi bricht der Videocodec (wie etwa <systemitem class="library">libavcodec</systemitem>) den Videoframe in 16x16 Pixel Macrobl旦cke und wendet danach einen Quantisierer auf jeden Macroblock an. Je niedriger der Quantisierer desto besser die Qualit辰t und desto h旦her die Bitrate. Die Methode, die der Filmencoder zur Bestimmung des auf einen gegebenen Macroblock anzuwendenden Quantisierer verwendet, variiert und ist in hohem Ma�e einstellbar. (Dies ist eine extrem 端bertriebene Vereinfachung des aktuellen Prozesses aber n端tzlich, um das Grundkonzept zu verstehen.) </para> <para> Wenn du eine konstante Bitrate festlegst, wird der Videocodec das Video so encodieren, dass so viele Details wie notwendig und so wenig wie m旦glich ausgesondert werden, um unterhalb der vorgegebenen Bitrate zu bleiben. Wenn du dich wirklich nicht um die Dateigr旦�e k端mmerst, k旦nntest du auch CBR verwenden und eine nahezu endlose Bitrate festlegen. (In der Praxis bedeutet dies einen Wert, der hoch genug ist, kein Limit aufzuwerfen wie 10000Kbit.) Ohne echte Einschr辰nkung der Bitrate wird der Codec als Ergebnis den niedrigsten m旦glichen Quantisierer f端r jeden Macroblock anwenden (wie durch <option>vqmin</option> f端r <systemitem class="library">libavcodec</systemitem> spezifiziert, Standardwert ist 2). Sobald du eine Bitrate festlegst, die niedrig genug ist, den Codec zur Anwendung eines h旦heren Quantisierers zu zwingen, bist Du nahezu sicher dabei, die Qualit辰t deines Videos zu ruinieren. Um dies zu vermeiden, solltst du m旦glicherweise dein Video wie in der sp辰ter in diesem Handbuch beschriebenen Methode reduzieren. Im Allgemeinen solltst du CBR vollkommen meiden, wenn dir Qualit辰t wichtig ist. </para> <para> Mit konstantem Quantisierer wendet der Codec denselben Quantisierer, wie durch die Option <option>vqscale</option> (f端r <systemitem class="library">libavcodec</systemitem>) spezifiziert, auf jeden Macroblock an. Willst du einen Rip mit h旦chstm旦glicher Qualit辰t und ignorierst dabei wiederum die Bitrate, kannst du <option>vqscale=2</option> verwenden. Dies wird dieselbe Bitrate und PSNR (peak signal-to-noise ratio) liefern wie CBR mit <option>vbitrate</option>=infinity und der Standardeinstellung <option>vqmin</option>=2. </para> <para> Das Problem mit konstantem Quantisierer ist, dass der vorgegebene Quantisierer zum Einsatz kommt, egal ob der Macroblock ihn ben旦tigt oder nicht. Dies hei�t, es w辰re m旦glich, einen h旦heren Quantisierer auf einen Macroblock anzuwenden, ohne sichtbare Qualit辰t zu opfern. Warum die Bits f端r einen unn旦tig kleinen Quantisierer verschwenden? Deine CPU hat soundso viele Arbeitsg辰nge Zeit zur Verf端gung, die Festplatte jedoch nur soundso viele Bits. </para> <para> Bei einer Encodierung mit zwei Durchl辰ufen (two pass), wird der erste Durchgang den Film so rippen, als w端rde CBR vorliegen, jedoch wird ein Log die Eigenschaften jedes Frames beibehalten. Diese Daten werden danach w辰hrend des zweiten Durchgangs dazu verwendet, intelligente Entscheidungen zur Wahl des Quantisierers zu treffen. W辰hrend schneller Action oder hochdetaillierter Szenen werden wom旦glich h旦here Quantisierer, w辰hrend langsamen Bewegungen und Szenen mit weniger Details niedrigere Quantisierer verwendet. Normalerweise ist die Anzahl der Bewegungen wichtiger als die der Details. </para> <para> Wenn du <option>vqscale=2</option> verwendest, verschwendest du Bits. Wenn du <option>vqscale=3</option> anwendest, wirst du keinen Rip mit bestm旦glicher Qualit辰t erhalten. Angenommen du rippst eine DVD mit <option>vqscale=3</option> und das Resultat ist 1800Kbit. Wenn du in zwei Durchg辰ngen mit <option>vbitrate=1800</option> encodierst, wird das daraus resultierende Video eine <emphasis role="bold">bessere Qualit辰t</emphasis> bei <emphasis role="bold">gleicher Bitrate</emphasis> haben. </para> <para> Da du nun davon 端berzeugt bist, dass zwei Durchg辰nge (two pass) den besten Weg darstellen, stellt sich jetzt tats辰chlich die Frage, welche Bitrate verwendet werden soll? Die Antwort ist, dass es nicht nur eine Antwort gibt. Idealerweise willst du eine Bitrate w辰hlen, die die beste Balance zwischen Qualit辰t und Dateigr旦�e ergibt. Die kann abh辰ngig vom Quellvideo variieren. </para> <para> Interessiert die Gr旦�e nicht, stellen etwa 2000Kbit plus oder minus 200Kbit einen guten Ausgangspunkt f端r einen sehr hochqualitativen Rip dar. Bei einem Video mit schneller Action oder hohen Details, oder wenn du schlicht und ergreifend ein sehr kritisches Auge besitzst, k旦nntest du dich f端r 2400 oder 2600 entscheiden. Bei einigen DVDs kannst du eventuell keinen Unterschied bei 1400Kbit feststellen. Um ein besseres Gef端hl zu bekommen, ist es eine gute Idee, mit Szenen bei unterschiedlichen Bitraten herumzuexperimentieren. </para> <para> Wenn du eine bestimmte Gr旦�e anvisierst, musst du die Bitrate irgendwie kalkulieren. Aber zuvor solltest du wissen, wieviel Platz du f端r den/die Audiotrack(s) reservieren musst, daher solltest Du <link linkend="menc-feat-dvd-mpeg4-audio">diese(n) zuerst rippen</link>. Du kannst die Bitrate mit folgender Gleichung berechnen: <systemitem>Bitrate = (zielgroesse_in_MByte - soundgroesse_in_MByte) * 1024 * 1024 / laenge_in_sek * 8 / 1000</systemitem> Um zum Beispiel einen zweist端ndigen Film auf eine 702MB CD mit einem 60MB Audiotrack zu bekommen, sollte die Videobitrate folgenderma�en sein: <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = 740kbps</systemitem> </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-constraints"> <title>Randbedingungen f端r effizientes Encodieren</title> <para> Aufgrund der Natur der MPEG-Komprimierung gibt es zahlreiche Randbedingungen, denen du zum Erreichen maximaler Qualit辰t folgen solltest. MPEG splittet das Video in Macrobl旦cke genannte 16x16 Quadrate auf, jeder davon zusammengesetzt aus 4 8x8 Bl旦cken mit Luma-(Intensit辰ts)-Informationen und zwei halb-aufl旦senden 8x8 Chroma-(Farb)-Bl旦cken (einer f端r die Rot-Cyan-Achse und der andere f端r die Blau-Gelb-Achse). Selbst wenn Breite und H旦he deines Films kein Vielfaches von 16 sind, wird der Encoder ausreichend 16x16 Macrobl旦cke zur Abdeckung des gesamten Bildbereichs verwenden und der Extraplatz wird verschwendet. Folglich ist es keine gute Idee, im Interesse der Maximierung der Qualit辰t bei fester Dateigr旦�e, Abmessungen zu verwenden, die kein Vielfaches von 16 sind. </para> <para> Die meisten DVDs besitzen ein bestimmtes Ma� schwarzer Balken an ihren R辰ndern. Diese dort zu belassen wird f端r die Qualit辰t in mehrfacher Hinsicht <emphasis role="bold">sehr</emphasis> sch辰dlich sein. </para> <orderedlist> <listitem> <para> MPEG-Kompression h辰ngt in h旦chstem Ma�e von den Frequenzbereichs-Transformationen ab, insbesondere von der Discrete Cosine Transform (DCT), die der Fourier Transform 辰hnelt. Diese Art Encodierung ist f端r darstellende Muster und weiche �berg辰nge effizient, hat jedoch gro�e Probleme mit scharfen Kanten. Um diese zu encodieren muss sie viel mehr Bits verwenden, oder es wird andernfalls ein als Ringing bekannter Artefakt auftreten. </para> <para> Die Discrete Frequency Transform (DCT) erfolgt separat auf jeden Macroblock (eigentlich auf jeden Block), somit trifft dieses Problem nur zu, wenn sich in einem Block eine scharfe Kante befindet. Beginnt dein schwarzer Rand exakt an den Grenzen zum Vielfachen von 16 Pixeln, stellt dies kein Problem dar. Seis drum, die schwarzen R辰nder bei DVDs werden in den seltensten F辰llen sch旦n angeordnet, daher wirst du sie in der Praxis immer abschneiden m端ssen, um diesen Nachteil zu vermeiden. </para> </listitem> </orderedlist> <para> Zus辰tzlich zu den Frequenzbereichs-Transformationen verwendet die MPEG-Kompression Bewegungsvektoren, um den Wechsel von einem Frame zum anderen darzustellen. Bewegungsvektoren arbeiten bei Inhalt, der von den Kanten eines Bildes her einflie�t, normalerweise weniger effizient, da dieser im vorherigen Frame nicht vorhanden ist. Solange sich das Bild bis voll zur Kante des encodierten Bereichs hin vergr旦�ert, haben Bewegungsvektoren kein Problem mit Inhalt, der sich aus den Kanten des Bildes hinausbewegt. Die Pr辰senz schwarzer R辰nder kann jedoch �rger machen: </para> <orderedlist continuation="continues"> <listitem> <para> Die MPEG-Kompression speichert f端r jeden Macroblock einen Vektor, um ausfindig zu machen, welcher Teil des vorherigen Frames in diesen Macroblock als Basis zur Vorhersage des n辰chsten Frames kopiert werden soll. Nur die verbleibenden Unterschiede m端ssen encodiert werden. �berspannt der Macroblock die Kante des Bildes und enth辰lt einen Teil des schwarzen Randes, werden Bewegungsvektoren aus anderen Teilen des Bildes den schwarzen Rand 端berschreiben. Dies bedeutet, dass jede Menge Bits entweder zur wiederholten Schw辰rzung des 端berschriebenen Randes aufgewendet werden m端ssen, oder es wird (eher) erst gar kein Bewegungsvektor genutzt und alle �nderungen innerhalb dieses Macroblocks m端ssen explizit encodiert werden. So oder so wird die Encodiereffizienz au�erordentlich reduziert. </para> <para> Nochmal, dieses Problem trifft nur dann zu, wenn schwarze R辰nder nicht an den Grenzen eines Vielfachen von 16 anstehen. </para> </listitem> <listitem> <para> Zuletzt noch was, angenommen wir haben einen Macroblock im Inneren des Bildes und ein Objekt bewegt sich aus Richtung N辰he der Kante des Bildes her in diesen Block hinein. Die MPEG-Encodierung kann nicht sagen "kopiere den Teil, der innerhalb des Bildes liegt, den schwarzen Rand aber nicht". Somit wird der schwarze Rand ebenfalls mit hinein kopiert und jede Menge Bits m端ssen zur Encodierung des Teils des Bildes, der dort angenommen wird, aufgewendet werden. </para> <para> L辰uft das Bild st辰ndig zur Kante des encodierten Bereichs hin, besitzt MPEG spezielle Optimierungen, um immer wieder dann die Pixel am Rand des Bildes zu kopieren, wenn ein Bewegungsvektor von au�erhalb des encodierten Bereichs ankommt. Dieses Feature wird nutzlos, wenn der Film schwarze R辰nder hat. Im Gegensatz zu den Problemen 1 und 2 hilft hier kein Anordnen der R辰nder am Vielfachen von 16. </para> </listitem> <listitem> <para> Obwohl die R辰nder komplett schwarz sind und sich nie 辰ndern, ist zumindest ein minimaler Overhead damit verbunden, mehr Macrobl旦cke zu besitzen. </para> </listitem> </orderedlist> <para> Aus all diesen Gr端nden wird empfohlen, schwarze R辰nder komplett abzuschneiden. Mehr noch, liegt ein Bereich mit Rauschen/Verzerrung an der Kante des Bildes, steigert dessen Abschneiden ebenso die Encodiereffizienz. Videophile Puristen, die den Originalzustand so nah wie m旦glich sichern wollen, m旦gen dieses Abschneiden (cropping) beanstanden, wenn du jedoch nicht planst, bei konstantem Quantisierer zu encodieren, wird der Qualit辰tsgewinn, den Du durch dieses Abschneiden erreichst, betr辰chtlich 端ber dem Verlust an Informationen an den Kanten liegen. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-crop"> <title>Abschneiden und Skalieren</title> <para> Wiederaufruf der vorherigen Sektion, dass die letzte von Dir encodierte Bildgr旦�e ein Vielfaches von 16 sein sollte (bei beidem, Breite und H旦he). Diese kann durch Abschneiden, Skalieren erreicht werden oder durch eine Kombination von beidem. </para> <para> Beim Abschneiden gibt es ein paar Richtwerte, die befolgt werden m端ssen, um eine Zerst旦rung des Films zu vermeiden. Das normale YUV-Format, 4:2:0, speichert Chroma-(Farb)-Informationen in einer Unterstichprobe (subsampled), z.B. wird Chroma nur halb so oft in jede Richtung gesampelt wie Luma-(Intensit辰ts)-Informationen. Beobachte dieses Diagramm, in dem L Luma-Samplingpunkte bedeuten und C f端r Chroma steht. </para> <informaltable> <?dbhtml table-width="40%" ?> <?dbfo table-width="40%" ?> <tgroup cols="8" align="center"> <colspec colnum="1" colname="col1"/> <colspec colnum="2" colname="col2"/> <colspec colnum="3" colname="col3"/> <colspec colnum="4" colname="col4"/> <colspec colnum="5" colname="col5"/> <colspec colnum="6" colname="col6"/> <colspec colnum="7" colname="col7"/> <colspec colnum="8" colname="col8"/> <spanspec spanname="spa1-2" namest="col1" nameend="col2"/> <spanspec spanname="spa3-4" namest="col3" nameend="col4"/> <spanspec spanname="spa5-6" namest="col5" nameend="col6"/> <spanspec spanname="spa7-8" namest="col7" nameend="col8"/> <tbody> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> <row> <entry spanname="spa1-2">C</entry> <entry spanname="spa3-4">C</entry> <entry spanname="spa5-6">C</entry> <entry spanname="spa7-8">C</entry> </row> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> <row> <entry spanname="spa1-2">C</entry> <entry spanname="spa3-4">C</entry> <entry spanname="spa5-6">C</entry> <entry spanname="spa7-8">C</entry> </row> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> </tbody> </tgroup> </informaltable> <para> Wie du sehen kannst, kommen Zeilen und Spalten des Bildes nat端rlich paarweise. Folglich <emphasis>m端ssen</emphasis> deine Abschneide-Offsets und Abmessungen geradzahlig sein. Sind sie dies nicht, wird Chroma nicht mehr korrekt mit Luma abgeglichen. In der Theorie ist es m旦glich, mit ungeraden Offsets abzuschneiden, jedoch erfordert dies ein Resampling von Chroma, was potentiell eine mit Verlust verbundene Operation bedeutet und vom Crop-Filter nicht unterst端tzt wird. </para> <para> Weiterhin wird interlaced Video folgenderma�en gesampelt: </para> <informaltable> <?dbhtml table-width="80%" ?> <?dbfo table-width="80%" ?> <tgroup cols="16" align="center"> <colspec colnum="1" colname="col1"/> <colspec colnum="2" colname="col2"/> <colspec colnum="3" colname="col3"/> <colspec colnum="4" colname="col4"/> <colspec colnum="5" colname="col5"/> <colspec colnum="6" colname="col6"/> <colspec colnum="7" colname="col7"/> <colspec colnum="8" colname="col8"/> <colspec colnum="9" colname="col9"/> <colspec colnum="10" colname="col10"/> <colspec colnum="11" colname="col11"/> <colspec colnum="12" colname="col12"/> <colspec colnum="13" colname="col13"/> <colspec colnum="14" colname="col14"/> <colspec colnum="15" colname="col15"/> <colspec colnum="16" colname="col16"/> <spanspec spanname="spa1-2" namest="col1" nameend="col2"/> <spanspec spanname="spa3-4" namest="col3" nameend="col4"/> <spanspec spanname="spa5-6" namest="col5" nameend="col6"/> <spanspec spanname="spa7-8" namest="col7" nameend="col8"/> <spanspec spanname="spa9-10" namest="col9" nameend="col10"/> <spanspec spanname="spa11-12" namest="col11" nameend="col12"/> <spanspec spanname="spa13-14" namest="col13" nameend="col14"/> <spanspec spanname="spa15-16" namest="col15" nameend="col16"/> <tbody> <row> <entry namest="col1" nameend="col8">Oberes Feld</entry> <entry namest="col9" nameend="col16">Unteres Feld</entry> </row> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry spanname="spa1-2">C</entry> <entry spanname="spa3-4">C</entry> <entry spanname="spa5-6">C</entry> <entry spanname="spa7-8">C</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry spanname="spa9-10">C</entry> <entry spanname="spa11-12">C</entry> <entry spanname="spa13-14">C</entry> <entry spanname="spa15-16">C</entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry spanname="spa1-2">C</entry> <entry spanname="spa3-4">C</entry> <entry spanname="spa5-6">C</entry> <entry spanname="spa7-8">C</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> <row> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry spanname="spa9-10">C</entry> <entry spanname="spa11-12">C</entry> <entry spanname="spa13-14">C</entry> <entry spanname="spa15-16">C</entry> </row> <row> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> <entry>L</entry> </row> </tbody> </tgroup> </informaltable> <para> Wie du erkennen kannst, wiederholt sich das Muster bis nach 4 Zeilen nicht. Somit m端ssen bei interlaced Video dein y-Offset und die H旦he f端r das Ausschneiden ein Vielfaches von 4 sein. </para> <para> Die urspr端ngliche DVD-Aufl旦sung ist 720x480 f端r NTSC und 720x576 f端r PAL, es gibt jedoch ein Aspektkennzeichen, das spezifiziert, ob Vollbild (4:3) oder Breitwandfilm (16:9) vorliegt. Viele (wenn nicht die meisten) Breitwandfilm-DVDs sind nicht grunds辰tzlich 16:9, sondern entweder 1.85:1 oder 2.35:1 (Cinescope). Dies bedeutet, dass es schwarze B辰nder im Video geben wird, die herausgeschnitten werden m端ssen. </para> <para> <application>MPlayer</application> stellt einen Crop-Erkennungsfilter zur Verf端gung, der das Ausschnittsrechteck (<option>-vf cropdetect</option>) bestimmt. Starte <application>MPlayer</application> mit <option>-vf cropdetect</option>, und er wird die Crop-Einstellungen zum Entfernen der R辰nder ausgeben. du solltest den Film lange genug laufen lassen, damit die gesamte Bildfl辰che verwendet wird, um akkurate Crop-Werte zu erhalten. </para> <para> Teste danach die Werte, die von <application>MPlayer</application> 端ber die Befehlszeile mittels <option>cropdetect</option> ausgegeben wurden und passe das Rechteck nach deinen Bed端rfnissen an. Der Filter <option>rectangle</option> kann dabei helfen, indem er dir erlaubt, das Rechteck interaktiv 端ber dem Film zu positionieren. Vergiss nicht, den oben genannten Teilbarkeitsrichtwerten zu folgen, sodass du die Chroma-Ebenen nicht verkehrt anordnest. </para> <para> In bestimmten F辰llen k旦nnte Skalieren nicht w端nschenswert sein. Skalierung in vertikaler Richtung ist mit interlaced Video schwierig, und wenn du das Interlacing beibehalten willst, solltest du f端r gew旦hnlich das Skalieren bleiben lassen. Hast du nicht vor zu skalieren, willst aber nach wie vor Abmessungen in einem Vielfachen von 16 verwenden, musst du 端ber den Rand hinausschneiden. Schneide aber lieber nicht 端ber den Rand hinaus, da schwarze R辰nder sehr schlecht zu encodieren sind! </para> <para> Weil MPEG-4 16x16 Macrobl旦cke nutzt, solltest du dich vergewissern, dass jede Abmessung des zu encodierenden Videos ein Vielfaches von 16 ist oder du verschlechterst andernfalls die Qualit辰t, speziell bei niedrigeren Bitraten. Du kannst dies durch Abrunden der Breite und H旦he des Ausschnittsrechtecks hinunter auf den n辰chsten Wert eines Vielfachen von 16 erreichen. Wie fr端her bereits erkl辰rt, wirst du beim Abschneiden das y-Offset um die H辰lfte der Differenz der alten und neuen H旦he erh旦hen wollen, sodass das daraus resultierende Video aus der Mitte des Frames genommen wird. Und stelle wegen der Art, wie ein DVD-Video gesampelt wird, sicher, dass das Offset eine gerade Zahl ist. (Verwende in der Tat - als eine Regel - nie ungerade Werte f端r irgendwelche Parameter beim Abschneiden oder Skalieren eines Videos) Wenn du dich beim Wegwerfen einiger extra Pixel nicht wohl f端hlst, ziehst du es stattdessen vor, das Video zu skalieren. Wir werden uns dies im unten stehenden Beispiel mal ansehen. Du kannst den <option>cropdetect</option>-Filter sogar alles oben erw辰hnte f端r dich erledigen lassen, da dieser einen optionalen Parameter <option>round</option> besitzt, der standardm辰�ig gleich 16 ist. </para> <para> Pass auch auf "halbschwarze" Pixel an den Kanten auf. Stelle sicher, dass du diese ebenfalls mit abschneidest oder du vergeudest dort Bits, wo sie doch besser anderswo verwendet werden sollten. </para> <para> Nachdem nun alles gesagt ist, wirst du m旦glicherweise bei einem Video landen, dessen Pixel nicht ganz 1.85:1 oder 2.35:1, aber ziemlich nahe dran sind. Du k旦nntest ein neues Seitenverh辰ltnis manuell berechnen, aber <application>MEncoder</application> bietet eine Option f端r <systemitem class="library">libavcodec</systemitem> genannt <option>autoaspect</option>, die das f端r dich erledigt. Skaliere dieses Video auf keinen Fall hoch, um die Pixel abzugleichen solange du keinen Festplattenplatz verschwenden willst. Das Skalieren sollte beim Playback gemacht werden und der Player wird das in der AVI gespeicherte Seitenverh辰ltnis zur Bestimmung der besten Aufl旦sung verwenden. Ungl端cklicherweise erzwingen nicht alle Player diese Auto-Skalierinformation, und deshalb willst du vielleicht trotzdem neu skalieren. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate"> <title>Auswahl von Aufl旦sung und Bitrate</title> <para> Wenn du nicht vor hast, im Modus mit konstantem Quantisier zu encodieren, musst du eine Bitrate ausw辰hlen. Das Konzept der Bitrate ist denkbar einfach. Sie ist die (mittlere) Anzahl Bits, die pro Sekunde zum Speichern des Films verbraucht werden. Normalerweise wird die Bitrate in Kilobit (1000 Bit) pro Sekunde gemessen. Die Gr旦�e deines Films auf der Platte ist die Bitrate multipliziert mit der Dauer des Films, plus einem kleinen "Overhead" (siehe zum Beispiel in der Sektion 端ber <link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">den AVI-Container</link>). Weitere Parameter wie Skalierung, Cropping, usw. werden die Dateigr旦�e <emphasis role="bold">nicht</emphasis> 辰ndern, solange du nicht auch die Bitrate ver辰nderst! </para> <para> Die Bitrate skaliert <emphasis role="bold">nicht</emphasis> proportional zur Aufl旦sung. Dies bedeutet, eine Datei 320x240 mit 200 KBit/Sek wird nicht dieselbe Qualit辰t aufweisen wie der gleiche Film bei 640x480 und 800 KBit/Sek! Daf端r gibt es zwei Gr端nde: <orderedlist> <listitem> <para> <emphasis role="bold">Wahrnehmbar</emphasis>: du bemerkst MPEG-Artefakte eher, wenn sie gr旦�er hochskaliert sind! Artefakte erscheinen bei einer Skalierung von Bl旦cken (8x8). Dein Auge wird in 4800 kleinen Bl旦cken nicht so leicht Fehler sehen wie es welche in 1200 gro�en Bl旦cken sieht (vorausgesetzt du skalierst beide auf Vollbild). </para> </listitem> <listitem> <para> <emphasis role="bold">Theoretisch</emphasis>: Wenn du ein Bild runterskalierst, aber nach wie vor die selbe Gr旦�e der (8x8) Bl旦cke zur Frequenzraumtransformation verwendest, bewegst Du mehr Daten in die Hochfrequenzb辰nder. Grob gesagt, jedes Pixel enth辰lt mehr des Details als es dies zuvor tat. Somit enth辰lt dein herunterskaliertes Bild 1/4 der Information in r辰umlichen Richtungen, es k旦nnte immer noch einen hohen Anteil Information im Frequenzbereich enthalten (vorausgesetzt dass die hohen Frequenzen im originalen 640x480 Bild nicht ausgenutzt wurden). </para> </listitem> </orderedlist> </para> <para> Vergangene Leitf辰den legten nahe, eine Bitrate und Aufl旦sung zu w辰hlen, die auf eine "Bits pro Pixel"-N辰herung basieren, dies ist jedoch im allgemeinen aus oben genannten Gr端nden nicht g端ltig. Eine bessere Sch辰tzung scheint zu sein, dass Bitraten proportional zur Quadratwurzel der Aufl旦sung skalieren, sodass 320x240 und 400 KBit/Sek vergleichbar mit 640x480 bei 800 KBit/Sek w辰ren. Dies wurde aber nicht mit theoretischer oder empirischer Strenge verifiziert. Desweiteren ist es in Anbetracht der Tatsache, dass Filme in Bezug auf Rauschen, Details, Bewegungsgrad usw. au�erordentlich variieren, zwecklos, allgemeine Empfehlungen f端r die Bits pro Diagonall辰nge (dem Analog zu Bits pro Pixel unter Verwendung der Quadratwurzel) abzugeben. </para> <para> So weit haben wir nun die Schwierigkeit der Wahl von Bitrate und Aufl旦sung diskutiert. </para> <sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute"> <title>Berechnen der Aufl旦sung</title> <para> Die folgenden Schritte werden dich in der Berechnung der Aufl旦sung deiner Encodierung anleiten, ohne das Video allzusehr zu verzerren, indem verschiedene Typen von Informationen 端ber das Quellvideo in Betracht gezogen werden. Zuerst solltest du die encodierte Aufl旦sung berechnen: <systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem> <itemizedlist> <title>wobwei:</title> <listitem> <para> Wc und Hc die Breite und H旦he des zugeschnittenen Videos darstellen </para> </listitem> <listitem> <para> ARa das angezeigte Seitenverh辰ltnis ist, das 端blicherweise 4/3 oder 16/9 betr辰gt </para> </listitem> <listitem> <para> PRdvd das Pixelverh辰ltnis der DVD ist, welches gleich 1.25=(720/576) f端r PAL-DVDs und 1.5=(720/480) f端r NTSC-DVDs betr辰gt </para> </listitem> </itemizedlist> </para> <para> Dann kannst du die X- und Y-Aufl旦sung berechnen, gem辰� eines gewisse Faktors der Kompressionsqualit辰t (CQ): <systemitem>ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem> und <systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem> </para> <para> Okay, aber was ist der CQ? Der CQ repr辰sentiert die Anzahl Bits pro Pixel und pro Frame der Encodierung. Grob ausgedr端ckt, je gr旦�er der CQ, desto geringer die Wahrscheinlichkeit, Encodierungsartefakte zu sehen. Trotz allem, wenn du eine Zielgr旦�e f端r deinen Film hast (1 oder 2 CDs zum Beispiel), gibt es eine begrenzte Gesamtzahl an Bits, die du aufwenden kannst; deswegen ist es notwendig, einen guten Kompromiss zwischen Komprimierbarkeit und Qualit辰t zu suchen. </para> <para> Der CQ h辰ngt von der Bitrate, der Effektivit辰t des Videocodecs und der Filmaufl旦sung ab. Um den CQ anzuheben, k旦nntest du typischerweise den Film unter der Annahme herunterskalieren, dass die Bitrate mit der Funktion der Zielgr旦�e und der L辰nge des Films berechnest, die ja konstant sind. Mit MPEG-4 ASP-Codecs wie <systemitem class="library">Xvid</systemitem> und <systemitem class="library">libavcodec</systemitem>, resultiert ein CQ unter 0.18 f端r gew旦hnlich in einem ziemlich blockhaften Bild, weil nicht genug Bits zum Codieren der Information jedes Macroblocks vorhanden sind. (MPEG4, wie auch viele andere Codecs, gruppiert Pixel nach Bl旦cken verschiedener Pixel, um das Bild zu komprimieren; sind nicht gen端gend Bits vorhanden, werden die Kanten dieser Bl旦cke sichtbar.) Es ist daher weise, einen CQ im Bereich von 0.20 bis 0.22 f端r einen 1 CD-Rip und 0.26-0.28 f端r einen 2 CD-Rip mit Standard-Encodieroptionen zu nehmen. H旦herentwickelte Encodieroptionen wie die hier f端r <link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link> und <link linkend="menc-feat-xvid-example-settings"><systemitem class="library">Xvid</systemitem></link> aufgelisteten sollten es m旦glich machen, dieselbe Qualit辰t mit einem CQ im Bereich von 0.18 bis 0.20 f端r einen 1 CD-Rip und 0.24 bis 0.26 f端r einen 2 CD-Rip zu erreichen. Mit den MPEG-4 AVC-Codecs wie <systemitem class="library">x264</systemitem>, kannst du einen CQ im Bereich von 0.14 bis 0.16 mit Standard-Encodieroptionen verwenden, und solltest bis auf 0.10 bis 0.12 mit den <link linkend="menc-feat-x264-example-settings">erweiterten Encodieroptionen von <systemitem class="library">x264</systemitem></link> runter gehen k旦nnen. </para> <para> Bitte nimm zur Kenntnis, dass der CQ lediglich eine richtungsweisendes Ma� ist, da sie vom encodierten Inhalt abh辰ngt. Ein CQ von 0.18 kann f端r einen Bergman-Film recht h端bsch aussehen, im Gegensatz zu einem Film wie The Matrix, der jede Menge High-Motion-Szenen enth辰lt. Auf der anderen Seite ist es nutzlos, den CQ h旦her als 0.30 zu schrauben, da du ohne sp端rbaren Qualit辰tsgewinn Bits vergeuden w端rdest. Beachte ebenso, dass wie fr端her in diesem Handbuch bereits angemerkt, niedrig aufl旦sende Videos einen gr旦�eren CQ ben旦tigen, um gut auszusehen (im Vergleich z.B. zur DVD-Aufl旦sung). </para> </sect3> </sect2> <sect2 id="menc-feat-dvd-mpeg4-filtering"> <title>Filtern</title> <para> Zu lernen, wie man <application>MEncoder</application>s Videofilter verwendet, ist essentiell, um gute Encodierungen zu produzieren. Jede Videoverarbeitung wird 端ber Filter ausgef端hrt -- Ausschneiden, Skalieren, Farbanpassung, Rauschentfernung, Scharfzeichnen, Deinterlacing, telecine, inverses telecine und Deblocking, um nur ein paar davon aufzuz辰hlen. Zusammen mit der gewaltigen Zahl unterst端tzter Inputformate, ist die Vielfalt der in <application>MEncoder</application> verf端gbaren Filter eine seiner Hauptvorteile im Vergleich zu 辰hnlichen Programmen. </para> <para> Filter werden in einer Kette 端ber die Option -vf geladen: <screen>-vf filter1=Optionen,filter2=Optionen,...</screen> Die meisten Filter nehmen mehrere numerische, kommagetrennte Optionen entgegen, jedoch variiert die Syntax der Optionen von Filter zu Filter, also lies bitte die Manpage f端r Details zu den Filtern, die du verwenden willst. </para> <para> Filter wirken auf das Video in der Reihenfolge ein, in der sie geladen werden. Zum Beispiel wird folgende Kette: <screen>-vf crop=688:464:12:4,scale=640:464</screen> zuerst den Bereich 688x464 aus dem Bild schneiden mit der oberen, linken Ecke bei (12,4) und danach das Ergebnis auf 640x464 herunter skalieren. </para> <para> Bestimmte Filter m端ssen zu oder nahe dem Anfang der Filterkette geladen werden, um Vorteile aus den Informationen des Videodecoders zu ziehen, die ansonsten durch andere Filter verloren gehen oder ung端ltig gemacht w端rden. Die wichtigsten Beispiele sind <option>pp</option> (Nachbearbeitung (postprocessing), nur wenn es Deblock- oder Dering-Operationen durchf端hrt), <option>spp</option> (ein weiterer Postprozessor zum Entfernen von MPEG-Artefakten), <option>pullup</option> (umgekehrtes telecine) und <option>softpulldown</option> (zur Konvertierung von soft telecine nach hard telecine). </para> <para> Im Allgemeinen solltest du den Film so wenig wie m旦glich Filtern, um nahe an der originalen DVD-Quelle zu bleiben. Ausschneiden ist oft notwendig (wie oben beschrieben), vermeide aber das Skalieren von Videos. Obwohl das Herunterskalieren manchmal vorgezogen wird, um h旦here Quantisierer zu verwenden, wollen wir beide diese Dinge vermeiden: Erinnere dich daran, dass wir von Anfang an beschlossen hatten, einen Kompromiss zwischen Bits und Qualit辰t zu schlie�en. </para> <para> Passe ebenso kein Gamma, Kontrast, Helligkeit, usw. an. Was auf deinem Display gut aussieht, sieht auf anderen eventuell nicht gut aus. Diese Anpassungen sollten nur im Playback vorgenommen werden. </para> <para> Eine Sache, die du vielleicht machen willst, ist, das Video durch einen sehr feinen Entrauschfilter (Denoise) zu schicken, wie etwa <option>-vf hqdn3d=2:1:2</option>. Nochmals, es geht darum, die Bits einer besseren Verwendung zuzuf端hren: Warum Bits zum Encodieren des Rauschens verschwenden, wenn du dieses Rauschen auch w辰hrend des Playback entfernen kannst? Die Parameter f端r <option>hqdn3d</option> zu erh旦hen, wird 端berdies die Komprimierbarkeit erh旦hen, erh旦hst du jedoch die Werte zu sehr, riskierst Du eine Verringerung der Bildsichtbarkeit. Die oben vorgeschlagenen Werte (<option>2:1:2</option>) sind ziemlich konservativ; du solltest dich frei f端hlen, mit h旦heren Werten herumzuexperimentieren und die Ergebnisse selbst zu beobachten. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-interlacing"> <title>Interlacing und Telecine</title> <para> Nahezu alle Filme sind bei 24 fps aufgenommen. Weil NTSC 30000/1001 fps entspricht, m端ssen mit diesen 24 fps Videos einige Verarbeitungen durchgef端hrt werden, um sie mit der korrekten NTSC-Framerate laufen zu lassen. Der Prozess wird 3:2 pulldown genannt, allgemein telecine zugeordnet (weil pulldown des 旦fteren w辰hrend des telecine-Prozesses angewandt wird), und naiv so beschrieben, dass er durch Verlangsamung des Films auf 24000/1001 fps und dem Wiederholen jeden vierten Frames arbeitet. </para> <para> Keine spezielle Verarbeitung ist jedoch bei einem Video f端r PAL-DVDs durchzuf端hren, das bei 25 fps l辰uft. (Technisch gesehen kann PAL telecined werden, 2:2 pulldown genannt, dies ist jedoch in der Praxis nicht von Bedeutung.) Der 24 fps Film wird einfach mit 25 fps abgespielt. Das Resultat ist, dass der Film ein wenig schneller abl辰uft, doch solange du kein Alien bist, wirst du m旦glicherweise keinen Unterschied wahrnehmen. Die meisten PAL-DVDs haben pitch-korrigiertes Audio, dadurch h旦ren sie sich bei 25 fps abgespielt korrekt an, obwohl der Audiotrack (und infolgedessen der gesamte Film) eine 4% k端rzere Abspielzeit hat wie NTSC-DVDs. </para> <para> Weil das Video in einer PAL-DVD nicht ver辰ndert wurde, musst du dich nicht viel um die Framerate sorgen. Die Quelle ist 25 fps und dein Rip wird 25 fps haben. Wenn du jedoch einen NTSC-DVD-Film rippst, musst du eventuell umgekehrtes telecine anwenden. </para> <para> F端r mit 24 fps aufgenommene Filme ist das Video auf der NTSC-DVD entweder telecined 30000/1001 oder hat andernfalls progressive 24000/1001 fps und es ist vorgesehen, on-the-fly vom DVD-Player telecined zu werden. Auf der anderen Seite sind TV-Serien 端blicherweise nur interlaced, nicht telecined. Dies ist keine feste Regel: Einige TV-Serien sind interlaced (wie etwa Buffy die Vampirj辰gerin), wogegen andere eine Mixtur aus progressive und interlaced sind (so wie Angel oder 24) - wers kennt :). </para> <para> Es wird strengstens empfohlen, die Sektion 端ber <link linkend="menc-feat-telecine">Wie mit telecine und interlacing in NTSC-DVDs umgehen</link> durchzulesen, um den Umgang mit den verschiedenen M旦glichkeiten zu lernen. </para> <para> Wenn du aber haupts辰chlich nur Filme rippst, gehst du wahrscheinlich entweder mit 24 fps progressivem oder telecined Video um, in welchem Falle du den Filter <option>pullup</option> mittels <option>-vf pullup,softskip</option> verwenden kannst. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced"> <title>Interlaced Video encodieren</title> <para> Ist der Film, den du encodieren willst, interlaced (NTSC-Video oder PAL-Video), wirst du w辰hlen m端ssen, ob du ihn deinterlacen willst oder nicht. W辰hrend das Deinterlacing deinen Film zwar auf progressiven Scan-Displays wie Computermonitoren und Projektoren verwendbar macht, wird dich dies doch etwas kosten: Die Feldrate von 50 oder 60000/1001 Feldern pro Sekunde wird auf 25 oder 30000/1001 Frames pro Sekunde halbiert und ann辰hernd die H辰lfte der Informationen in deinem Film geht w辰hrend Szenen mit signifikanter Bewegung verloren. </para> <para> Deswegen wird empfohlen, wenn du aus Gr端nden hochqualitativer Archivierung encodierst, kein Deinterlacing durchzuf端hren. Du kannst den Film immer noch beim Playback deinterlacen, wenn du ihn auf progressiven Scan-Ger辰ten anzeigst. Und zuk端nftige Player werden in der Lage sein, auf volle Feldrate zu deinterlacen, mit Interpolation auf 50 oder 60000/1001 komplette Frames pro Sekunde aus interlaced Video heraus. </para> <para> Spezielle Sorgfalt solltest du bei der Arbeit mit interlaced Video walten lassen: </para> <orderedlist> <listitem> <para> Ausschneideh旦he und y-Offset m端ssen Vielfache von 4 sein. </para> </listitem> <listitem> <para> Jedes vertikale Skalieren muss im interlaced Modus durchgef端hrt werden. </para> </listitem> <listitem> <para> Nachbearbeitungs- (postprocessing) und Rauschunterdr端ckungsfilter (denoising) funktionieren eventuell nicht wie erwartet, wenn du nicht speziell darauf achtest, dass sie zu einem Zeitpunkt nur ein Feld verarbeiten, und sie k旦nnen das Video kaputt machen, wenn sie inkorrekt angewendet werden. </para> </listitem> </orderedlist> <para> Mit diesen Dingen im Kopf, hier das erste Beispiel: </para> <screen>mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \ vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224</screen> <para> Beachte die Optionen <option>ilme</option> und <option>ildct</option>. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-av-sync"> <title>Anmerkungen zur Audio-/Videosynchronisation</title> <para> <application>MEncoder</application>s Algorithmen der Audio-/Videosynchronisation wurden mit der Intention entwickelt, Dateien mit kaputter Sychronisation wieder herzustellen. In einigen F辰llen k旦nnen unn旦tiges �berspringen und Duplizieren von Frames und m旦glicherweise leichte A/V-Desynchronisation verursachen, auch wenn sie mit dem richtigen Input verwendet werden (gewiss, Probleme mit A/V-Synchronisation treffen nur zu, wenn du den Audiotrack w辰hrend der Transcodierung des Videos verarbeitest oder kopierst, wozu auch nachhaltig ermutigt wird). Hierf端r m端sstest du mit der Option <option>-mc 0</option> in die Grundeinstellung der A/V-Synchronisation wechseln oder diese in deine <systemitem>~/.mplayer/mencoder</systemitem> Konfigurationsdatei eintragen, solange du ausschlie�lich mit guten Quellen arbeitest (DVD, TV-Capture, hochqualitativen MPEG-4-Rips usw.) und mit nicht-kaputten ASF/RM/MOV-Dateien. </para> <para> Wenn du dich 端berdies gegen merkw端rdige Frame端berspr端nge und -duplikationen absichern willst, kannst du beides verwenden, <option>-mc 0</option> und <option>-noskip</option>. Dies verhindert <emphasis>jede</emphasis> A/V-Synchronisation und kopiert die Frames eins-zu-eins, somit kannst du sie nicht verwenden, falls du irgendwelche Filter verwendest, die unvorhersagbar Frames hinzuf端gen oder streichen oder falls deine Input-Datei eine variable Framerate besitzt! Deshalb wird eine allgemeine Anwendung von <option>-noskip</option> nicht empfohlen. </para> <para> Die von <application>MEncoder</application> unterst端tzte sogenannte "3-pass" Audioencodierung soll laut Berichten A/V-Desynchronisation verursachen. Dies geschieht definitiv dann, wenn sie in Verbindung mit bestimmten Filtern verwendet wird, daher wird <emphasis>nicht</emphasis> empfohlen, den 3-pass-Audio-Modus anzuwenden. Dieses Feature ist nur aus Kompatibilit辰tsgr端nden 端brig geblieben und f端r erfahrene Benutzer, die wissen, wann es sicher anzuwenden ist und wann nicht. Wenn du zuvor noch nie etwas vom 3-pass-Modus geh旦rt hast, vergiss, dass wir es je erw辰hnt haben! </para> <para> Es gab auch Berichte 端ber A/V-Desynchronisation, wenn mit <application>MEncoder</application> von stdin encodiert wurde. Lass das bleiben! Verwende immer eine Datei oder ein CD/DVD/usw-Laufwerk als Input. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-codec"> <title>Auswahl des Videocodecs</title> <para> Welcher Videocodec die beste Wahl ist, h辰ngt von mehreren Faktoren wie Gr旦�e, Qualit辰t, Streambarkeit, Brauchbarkeit und Popularit辰t, manche davon weitgehend vom pers旦nlichen Geschmack und technischen Randbedingungen ab. </para> <itemizedlist> <listitem> <para> <emphasis role="bold">Kompressionseffizienz</emphasis>: Es ist leicht zu verstehen, dass die meisten Codecs der neueren Generation daf端r gemacht wurden, Qualit辰t und Komprimierung zu verbessern. Deshalb behauptet der Autor dieses Handbuches und viele andere Leute, dass du nichts verkehrt machen kannst, <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'> <para>Sei trotzdem vorsichtig: MPEG-4 AVC-Videos in DVD-Aufl旦sung zu decodieren erfordert einen schnellen Rechner (z.B. einen Pentium 4 端ber 1.5GHz oder einen Pentium M 端ber 1GHz). </para> </footnote> wenn du MPEG-4 AVC-Codecs wie <systemitem class="library">x264</systemitem> anstatt MPEG-4 ASP-Codecs wie <systemitem class="library">libavcodec</systemitem> MPEG-4 oder <systemitem class="library">Xvid</systemitem> w辰hlst. (Zukunftsorientierte Codec-Entwickler interessiert eventuell Michael Niedermayers Meinung "<ulink url="http://guru.multimedia.cx/?p=10">why MPEG4-ASP sucks</ulink>" zu lesen.) Ebenso solltest du mit MPEG-4 ASP eine bessere Qualit辰t erhalten als mit MPEG-2-Codecs. </para> <para> Allerdings k旦nnen neuere Codecs, die noch stark in der Entwicklung stecken, unter unentdeckten Bugs leiden, die die Encodierung ruinieren k旦nnen. Dies nimmt man schlicht in Kauf, wenn man "bleeding edge"-Technologie verwendet. </para> <para> Au�erdem erfordert der Umgang mit einem neuen Codec und sich mit dessen Optionen vertraut zu machen eine Zeit, bis du wei�t, was alles anzupassen ist, um die erhoffte Bildqualit辰t zu erreichen. </para> </listitem> <listitem> <para> <emphasis role="bold">Hardware-Kompatibilit辰t</emphasis>: Gew旦hnlich dauert es bei neuen standalone Video-Playern lange, bis der Support f端r die neuesten Videocodecs eingebunden ist. Als ein Ergebnis unterst端tzen die meisten nur MPEG-1 (wie VCD, XVCD und KVCD), MPEG-2 (wie DVD, SVCD und KVCD) und MPEG-4 ASP (wie DivX, LMP4 von <systemitem class="library">libavcodec</systemitem> und <systemitem class="library">Xvid</systemitem>) (Vorsicht: Im Allgemeinen werden nicht alle MPEG-4 ASP-Features unterst端tzt). Sieh bitte in den technischen Spezifikationen deines Players nach (falls welche vorhanden sind) oder google nach mehr Informationen. </para> </listitem> <listitem> <para> <emphasis role="bold">Beste Qualit辰t pro Encodierzeit</emphasis>: Codecs, die es schon einige Zeit gibt (wie <systemitem class="library">libavcodec</systemitem> MPEG-4 und <systemitem class="library">Xvid</systemitem>), sind gew旦hnlich heftig mit allen m旦glichen intelligenten Algorithmen und SIMD Assembly-Code optimiert. Das sind sie deshalb, weil sie darauf abzielen, das beste Verh辰ltnis von Qualit辰t pro Encodierzeit zu liefern. Jedoch haben sie oft einige sehr fortschrittliche Optionen, die, wenn aktiviert, das Encodieren bei marginalem Gewinn wirklich langsam machen. </para> <para> Wenn du es auf die Wahnsinnsgeschwindigkeit abzielst, solltest du in der N辰he der Standardeinstellungen des Videocodecs bleiben (obwohl du ruhig weitere Optionen ausprobieren solltest, die in anderen Sektionen dieses Handbuchs angesprochen werden). </para> <para> Vielleicht 端berlegst du auch, einen Codec auszuw辰hlen, der mit Multi-Threading klarkommt, was nur f端r Benutzer von Rechnern mit mehreren CPUs von Nutzen ist. <systemitem class="library">libavcodec</systemitem> MPEG-4 erlaubt dies zwar, aber die Geschwindigkeitsgewinne sind begrenzt und es gibt einen leicht negativen Effekt in Bezug auf die Bildqualit辰t. Die Multi-Thread-Encodierung von <systemitem class="library">Xvid</systemitem>, durch die Option <option>threads</option> aktiviert, kann zum Ankurbeln 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 das Encodieren momentan um 94% beschleunigt bei gleichzeitiger Verringerung des PSNR um einen Wert zwischen 0.005dB und 0.01dB. </para> </listitem> <listitem> <para> <emphasis role="bold">Pers旦nlicher Geschmack</emphasis>: Hier beginnt die Angelegenheit oft irrational zu werden: Aus den selben Gr端nden, aus denen manche 端ber Jahre an DivX 3 h辰ngen, w辰hrend neuere Codecs bereits Wunder wirken, ziehen einige Leute <systemitem class="library">Xvid</systemitem> oder <systemitem class="library">libavcodec</systemitem> MPEG-4 dem <systemitem class="library">x264</systemitem> vor. </para> <para> Du solltest dir dein eigenes Urteil bilden; lass dich nicht von Leuten vollquasseln, die auf den einen Codec schw旦ren. Nimm ein paar Beispiel-Clips von Originalquellen und vergleiche die verschiedenen Encodier-Optionen und Codecs, um den einen zu finden, mit dem du am besten klarkommst. Der beste Codec ist der, den du beherrschst und der in deinen Augen auf deinem Display am besten aussieht. <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'> <para>Dieselbe Encodierung kann auf dem Monitor eines anderen vollkommen anders aussehen oder wenn sie von einem anderen Decoder abgespielt wird, also mach deine Encodierungen zukunftssicher indem du sie unter verschiedenen Setups ablaufen l辰sst.</para></footnote>! </para> </listitem> </itemizedlist> <para> Sieh dazu bitte in der Sektion <link linkend="menc-feat-selecting-codec">Auswahl der Codecs und Containerformate</link> nach der Liste der unterst端tzten Codecs. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-audio"> <title>Audio</title> <para> Audio ist ein leichter zu l旦sendes Problem: Wenn du Wert auf Qualit辰t legst, lass es einfach so wie es ist. Gerade AC3 5.1 Streams sind meist 448Kbit/s und jedes Bit wert. M旦glicherweise ger辰tst du in Versuchung, Audio in hochwertiges Vorbis umzuwandeln, aber nur weil du heute keinen A/V-Receiver f端r AC3-pass-through besitzt, bedeutet dies nicht, dass du nicht morgen doch einen hast. Halte deine DVD-Rips zukunftssicher, indem du den AC3-Stream beibeh辰ltst. Du beh辰ltst den AC3-Stream entweder, indem du ihn <link linkend="menc-feat-mpeg4">w辰hrend der Encodierung</link> direkt in den Video-Stream kopierst. Du kannst den AC3-Stream aber auch extrahieren, um ihn in Container wie NUT oder Matroska zu muxen. <screen>mplayer <replaceable>source_file.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>sound.ac3</replaceable></screen> dumpt Audiotrack Nummer 129 aus der Datei <replaceable>source_file.vob</replaceable> (NB: DVD-VOB-Dateien verwenden gew旦hnlich andere Audionummerierungen, was bedeutet, dass der VOB-Audiotrack 129 der 2-te Audiotrack der Datei ist) in die Datei <replaceable>sound.ac3</replaceable>. </para> <para> Aber manchmal hast du wirklich keine andere Wahl als den Sound weiter zu komprimieren, sodass mehr Bits f端rs Video aufgewendet werden k旦nnen. Die meisten Leute entscheiden sich f端r eine Audiokomprimierung mit MP3- oder Vorbis-Audiocodecs. Wobei letzterer ein sehr platzsparender Codec ist, MP3 wird von Hardware-Playern besser unterst端tzt, wobei sich dieser Trend auch 辰ndert. </para> <para> Verwende <emphasis>nicht</emphasis> <option>-nosound</option> beim Encodieren einer Datei, die Audio enh辰lt, sogar wenn du Audio sp辰ter separat encodierst und muxt. Zwar kann es im Idealfall manchmal funktionieren, wenn du <option>-nosound</option> verwendest, wahrscheinlich um einige Probleme in deinen Encodier-Befehlszeileneinstellungen zu verbergen. In anderen Worten, einen Soundtrack w辰hrend dem Encodieren zu haben, stellt sicher, vorausgesetzt du siehst keine Meldungen wie <quote>Too many audio packets in the buffer</quote>, dass du in der Lage sein wirst, eine korrekte Synchronisation zu erhalten. </para> <para> Du brauchst <application>MEncoder</application> zur Verarbeitung des Sounds. Du kannst zum Beispiel den originalen Soundtrack w辰hrend dem Encodieren mit <option>-oac copy</option> kopieren oder ihn mittels <option>-oac pcm -channels 1 -srate 4000</option> in eine "leichte" 4 kHz Mono WAV-PCM konvertieren. Anderenfalls wird er - in einigen F辰llen - eine Videodatei erzeugen, die nicht mit Audio synchron l辰uft. So was kommt vor, wenn die Anzahl der Videoframes in der Quelldatei nicht mit der Gesamtl辰nge der Audioframes zusammenpasst oder immer dann, wenn Unstetigkeiten/Splices vorhanden sind, wo Audioframes oder extra Audioframes fehlen. Der korrekte Weg, mit dieser Art Problem umzugehen, ist Stille (silence) einzuf端gen oder Audio an diesen Punkten wegzuschneiden. Seis drum, <application>MPlayer</application> kann das nicht, also wenn du AC3-Audio demuxt und es in einer separaten Anwendung encodierst (oder es mit <application>MPlayer</application> in eine PCM dumpst), die Splices bleiben inkorrekt und der einzige Weg sie zu korrigieren ist, Videoframes an diesem Splice zu streichen bzw. zu duplizieren. Solange <application>MEncoder</application> Audio beim Encodieren des Videos sieht, kann er dieses Streichen/Duplizieren erledigen (was gew旦hnlich OK ist, da es bei voller Schw辰rze/Szenenwechsel stattfindet), aber wenn <application>MEncoder</application> Audio nicht erkennen kann, wird er einfach alle Frames so wie sie ankommen verarbeiten und sie werden einfach nicht zum endg端ltigen Audiostream passen, wenn du beispielsweise deinen Audio- und Videotrack in eine Matroska-Datei mergst. </para> <para> Zuallererst wirst du den DVD-Sound in eine WAV-Datei konvertieren m端ssen, die der Audiocodec als Input nutzen kann. Zum Beispiel: <screen>mplayer <replaceable>source_file.vob</replaceable> -ao pcm:file=<replaceable>destination_sound.wav</replaceable> -vc dummy -aid 1 -vo null</screen> wird den zweiten Audiotrack aus der Datei <replaceable>source_file.vob</replaceable> in die Datei <replaceable>destination_sound.wav</replaceable> dumpen. Vielleicht willst du den Sound vor dem Encodieren normalisieren, da DVD-Audiotracks gemeinhin bei niedriger Lautst辰rke aufgenommen sind. Du kannst beispielsweise das Tool <application>normalize</application> verwenden, das in den meisten Distributionen zur Verf端gung steht. Wenn du Windows nutzt, kann ein Tool wie <application>BeSweet</application> denselben Job erledigen. Du wirst entweder nach Vorbis oder MP3 komprimieren. Zum Beispiel: <screen>oggenc -q1 <replaceable>destination_sound.wav</replaceable></screen> wird <replaceable>destination_sound.wav</replaceable> mit der Encodierqualit辰t 1 encodieren, was ann辰hernd 80Kb/s ergibt und die Minimalqualit辰t darstellt, mit der du encodieren solltest, wenn du Wert auf Qualit辰t legst. Nimm bitte zur Kenntnis, dass <application>MEncoder</application> aktuell keine Vorbis-Audiotracks in die Output-Datei muxen kann, da er nur AVI- und MPEG-Container als Output unterst端tzt, wobei es beim Audio-/Videoplayback zu Synchronisationproblemen mit einigen Playern f端hren wird, wenn die AVI-Datei VBR-Audiostreams wie z.B. Vorbis enth辰lt. Keine Bange, dieses Dokument wird dir zeigen, wie du das mit Third-Party-Programmen hinbekommst. </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-muxing"> <title>Muxen</title> <para> Nun da du dein Video encodiert hast, wirst du es h旦chstwahrscheinlich mit einem oder mehr Audiotracks in einen Movie-Container wie etwa AVI, MPEG, Matroska oder NUT muxen. <application>MEncoder</application> ist aktuell nur in der Lage, Audio und Video nativ in MPEG- und AVI-Containerformate auszugeben. Zum Beispiel: <screen>mencoder -oac copy -ovc copy -o <replaceable>output_movie.avi</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable></screen> w端rde die Video-Datei <replaceable>input_video.avi</replaceable> und die Audio-Datei <replaceable>input_audio.mp2</replaceable> in die AVI-Datei <replaceable>output_movie.avi</replaceable> mergen. Dieser Befehl funktioniert mit MPEG-1 Layer I, II und III Audio (eher bekannt als MP3), WAV und auch mit ein paar weiteren Audioformaten. </para> <para> <application>MEncoder</application> zeichnet sich aus durch experimentellen Support f端r <systemitem class="library">libavformat</systemitem>, das eine Programmbibliothek des FFmpeg-Projekts ist, welches das Muxen und Demuxen einer Vielzahl von Containern unterst端tzt. Zum Beispiel: <screen>mencoder -oac copy -ovc copy -o <replaceable>output_movie.asf</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable> -of lavf -lavfopts format=asf</screen> wird das selbe machen, wie das obere Beispiel, au�er dass der Output-Container ASF sein wird. Bitte nimm zur Kenntnis, dass dieser Support hochexperimentell ist (aber von Tag zu Tag besser wird) und nur funktionieren wird, wenn du <application>MPlayer</application> mit aktiviertem Support f端r <systemitem class="library">libavformat</systemitem> kompiliert hast (was meint, dass eine Pre-Packaged Binary Version in den meisten F辰llen nicht funktionieren wird). </para> <sect3 id="menc-feat-dvd-mpeg4-muxing-filter-issues"> <title>Verbessern der Mux- und A/V-Synchronisationszuverl辰ssigkeit</title> <para> Es kann vorkommen, dass du ernsthafte A/V-Synchronisationsprobleme hast w辰hrend du versuchst, deine Video- und einige Audiotracks zu muxen, wobei es nichts 辰ndert, wenn du das Audiodelay anpasst, du bekommst nie eine korrekte Synchronisation zu Stande. Dies kann vorkommen, wenn du manche Videofilter verwendest, die einige Frames weglassen oder duplizieren, wie etwa die inverse telecine-Filter. ich kann dich nur dazu ermutigen, den <option>harddup</option>-Videofilter ans Ende der Filterkette anzuh辰ngen, um solcherlei Problemen aus dem Weg zu gehen. </para> <para> Ohne <option>harddup</option> verl辰sst sich <application>MEncoder</application>, wenn er einen Frame duplizieren will, darauf, dass der Muxer eine Marke auf den Container setzt, sodass der letzte Frame nochmals angezeigt wird, um w辰hrend des Schreibens des aktuellen Frames synchron zu bleiben. Mit <option>harddup</option> wird <application>MEncoder</application> statt dessen einfach den zuletzt angezeigten Frame nochmal in die Filterkette einschieben. Dies bedeutet, dass der Encoder <emphasis>exakt</emphasis> denselben Frame zweimal entgegen nimmt und komprimiert. Dies ergibt eine etwas gr旦�ere Datei, verursacht jedoch keine Probleme beim Demuxen oder Remuxen in ein anderes Containerformat. </para> <para> Du kommst auch nicht um den Einsatz von <option>harddup</option> im Zusammenhang mit Containerformaten herum, die nicht allzu fest mit <application>MEncoder</application> verlinkt sind, wie etwa diejenigen, welche von <systemitem class="library">libavformat</systemitem> unterst端tzt werden, der keine Frameduplikation auf Container-Level unterst端tzt. </para> </sect3> <sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations"> <title>Limitierungen des AVI-Containers</title> <para> Obwohl es das am breitesten unterst端tzte Containerformat nach MPEG-1 ist, besitzt AVI auch einige gravierende Nachteile. Der vielleicht offensichtlichste ist der Overhead. F端r jeden Block der AVI-Datei werden 24 Byte auf Header und Indizes verschwendet. Dies hei�t 端bersetzt etwas mehr als 5 MB pro Stunde oder 1-2.5% Overhead f端r einen 700 MB Film. Das sieht nicht nach viel aus, k旦nnte aber die Differenz zwischen einem Video mit 700 KBit/Sek oder 714 KBit/Sek bedeuten, und jedes bisschen mehr an Qualit辰t z辰hlt. </para> <para> Zu dieser schockierenden Ineffizienz kommen bei AVI noch folgende wesentlichen Einschr辰nkungen: </para> <orderedlist> <listitem> <para> Nur Inhalt mit festen fps kann gespeichert werden. Dies ist insbesondere dann einschr辰nkend, wenn das Originalmaterial, das du encodieren willst, gemischter Inhalt ist, zum Beispiel ein Mix aus NTSC-Video und Filmmaterial. Eigentlich gibt es Hacks, die es erm旦glichen, Inhalt mit gemischter Framerate in einer AVI unterzubringen, diese vergr旦�ern jedoch den (ohnehin gro�en) Overhead f端nffach oder mehr und sind somit ungeeignet. </para> </listitem> <listitem> <para> Audio in AVI-Dateien muss entweder konstante Bitrate (CBR) oder konstante Framegr旦�e haben (also alle Frames decodieren zur selben Anzahl Samples). Ungl端cklicherweise erf端llt Vorbis, der effektivste Codec, keine dieser Anforderungen. Deshalb wirst du einen weniger effizienten Codec wie MP3 oder AC3 verwenden m端ssen, wenn du planst, einen Film in AVI zu speichern. </para> </listitem> </orderedlist> <para> Nachdem ich nun all dies erz辰hlt habe, muss ich anmerken, momentan unterst端tzt <application>MEncoder</application> keinen Output mit variablen fps oder Vorbis-Encodierung. Deswegen magst du dies nicht als Einschr辰nkung ansehen, falls <application>MEncoder</application> das einzige Tool ist, das du nutzt, um deine Ecodierungen zu produzieren. Es ist dennoch m旦glich, <application>MEncoder</application> nur zur Videoencodierung zu verwenden und danach externe Tools, um Audio zu encodieren und in ein anderes Containerformat zu muxen. </para> </sect3> <sect3 id="menc-feat-dvd-mpeg4-muxing-matroska"> <title>Muxen in den Matroska-Container</title> <para> Matroska ist ein freies, offenes Containerformat, das darauf abzielt, eine Menge erweiterter Features bereitzustellen, mit denen 辰ltere Container wie AVI nicht umgehen k旦nnen. Zum Beispiel unterst端tzt Matroska Audioinhalt mit variabler Bitrate (VBR), variable Frameraten (VFR), Kapitel, Dateianh辰nge, Fehlererkennung Error Detection Code (EDC) und modern A/V-Codecs wie "Advanced Audio Coding" (AAC), "Vorbis" oder "MPEG-4 AVC" (H.264), so gut wie nichts womit AVI etwas anfangen kann. </para> <para> Die zum Erzeugen von Matroska-Dateien erforderlichen Tools werden zusammen <application>mkvtoolnix</application> genannt und stehen f端r die meisten Unix-Plattformen wie auch <application>Windows</application> zur Verf端gung. Weil Matroska ein offener Standard ist, findest du vielleicht andere Tools, die sich besser f端r dich eignen, aber da mkvtoolnix das am meisten Verbreitete ist und von Matroska selbst unterst端tzt wird, werden wir nur dessen Anwendung einbeziehen. </para> <para> M旦glicherweise der einfachste Weg, mit Matroska anzufangen, ist <application>MMG</application> zu verwenden, das grafische Frontend, das mit <application>mkvtoolnix</application> daherkommt, und dem <ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guide to mkvmerge GUI (mmg)</ulink> zu folgen. </para> <para> Du kannst Audio und Video-Dateien auch per Befehlszeile muxen: <screen>mkvmerge -o <replaceable>output.mkv</replaceable> <replaceable>input_video.avi</replaceable> <replaceable>input_audio1.mp3</replaceable> <replaceable>input_audio2.ac3</replaceable></screen> w端rde die Video-Datei <replaceable>input_video.avi</replaceable> und die zwei Audio-Dateien <replaceable>input_audio1.mp3</replaceable> und <replaceable>input_audio2.ac3</replaceable> in die Matroska-Datei <replaceable>output.mkv</replaceable> mergen. Matroska, wie zuvor beschrieben, ist in der Lage, noch viel mehr als das zu tun, wie etwa multiple Audiotracks (inklusive Feintuning der Audio-/Videosynchronisation), Kapitel, Untertitel, Splitting, usw... Sieh bitte in den Dokumentationen dieser Anwendungen nach mehr Details. </para> </sect3> </sect2> </sect1> <sect1 id="menc-feat-telecine"> <title>Wie mit telecine und interlacing in NTSC-DVDs umgehen</title> <sect2 id="menc-feat-telecine-intro"> <title>Einf端hrung</title> <formalpara> <title>Was ist telecine?</title> <para> Wenn du nicht viel von dem verstehst, was in diesem Dokument beschrieben wird, lies den <ulink url="http://en.wikipedia.org/wiki/Telecine">Wikipedia-Artikel 端ber Telecine</ulink>. Dies ist eine verst辰ndliche und einigerma�en umfassende Beschreibung dessen, was telecine ist. </para> </formalpara> <formalpara> <title>Eine Anmerkung zu Zahlen</title> <para> Viele Dokumente, einschlie�lich des oben verlinkten Handbuchs, beziehen sich auf den Wert Felder pro Sekunde von NTSC-Video als 59.94 und den korrespondierenden Frames pro Sekunde als 29.97 (f端r telecined und interlaced) und 23.976 (f端r progressiv). Zur Vereinfachung runden manche dieser Dokumente sogar auf 60, 30 und 24 auf. </para> </formalpara> <para> Streng genommen sind alle diese Zahlen N辰herungswerte. Das schwarz/wei�e NTSC-Video war exakt 60 Felder pro Sekunde, sp辰ter wurde jedoch 60000/1001 gew辰hlt, um die Farbdaten anzupassen, solange man gleichzeitig zu Schwarz/wei�-Fernsehen kompatibel blieb. Digitales NTSC-Video (so wie auf einer DVD) hat ebenfalls 60000/1001 Felder pro Sekunde. Hieraus wird interlaced und telecined Video als 30000/1001 Frames pro Sekunde enthaltend abgeleitet; progressive Video hat 24000/1001 Frames pro Sekunde. </para> <para> �ltere Versionen der <application>MEncoder</application>-Dokumentation und viele archivierten Posts in Mailing-Listen beziehen sich auf 59.94, 29.97 und 23.976. Alle <application>MEncoder</application>-Dokumentationen wurden insofern aktualisiert, dass sie fraktionale Werte verwenden, und du solltest dies auch tun. </para> <para> <option>-ofps 23.976</option> ist inkorrekt. <option>-ofps 24000/1001</option> sollte statt dessen benutzt werden. </para> <formalpara> <title>Wie telecine angewandt wird</title> <para> Jedes Video, das zur Anzeige auf einem NTSC-Fernseh-Set vorgesehen ist, muss 60000/1001 Felder pro Sekunde haben. F端r TV-Filme und Shows hergestellt sind sie h辰ufig direkt mit 60000/1001 Feldern pro Sekunde aufgenommen, die Mehrheit der Kinofilme jedoch mit 24 oder 24000/1001 Frames pro Sekunde. Wenn cinematische Movie-DVDs gemastert werden, wird das Video danach f端rs Fernsehen mittels eines telecine genannten Prozesses konvertiert. </para> </formalpara> <para> Auf einer DVD wird das Video eigentlich nie als 60000/1001 Felder pro Sekunde abgelegt. F端r ein Video, das urspr端nglich 60000/1001 war, wird jedes Feldpaar zu einem Frame kombiniert, was dann 30000/1001 Frames pro Sekunde ergibt. Hardware-DVD-Player lesen dann ein im Videostream eingebettetes Kennzeichen aus, um zu bestimmen, ob die gerade oder ungerade nummerierten Zeilen das erste Feld formen sollen. </para> <para> �blicherweise bleibt ein Inhalt mit 24000/1001 Frames pro Sekunde so wie er ist, wenn er f端r eine DVD encodiert wird, und der DVD-Player muss das Telecining on-the-fly bewerkstelligen. Manchmal jedoch wird das Video telecined <emphasis>bevor</emphasis> es auf der DVD gespeichert wird; selbst wenn es urspr端nglich 24000/1001 Frames pro Sekunde war, wird es 60000/1001 Felder pro Sekunde. Wenn es auf der DVD gespeichert wird, werden Feldpaare zu 30000/1001 Frames pro Sekunde kombiniert. </para> <para> Wenn man das aus 60000/1001 Feldern pro Sekunde geformten Einzelframes erzeugte Video betrachtet, ist telecined oder anderenfalls Interlacing klar sichtbar woimmer Bewegung auftritt, da ein Feld (sagen wir, die geradzahlig nummerierten Zeilen) einen Moment zur Zeit 1/(60000/1001) Sekunden sp辰ter als das andere repr辰sentiert. Spielt man ein interlaced Video auf einem Computer ab, sehen beide h辰sslich aus, weil der Monitor eine h旦here Aufl旦sung besitzt und weil das Video Frame f端r Frame anstatt Feld f端r Feld angezeigt wird. </para> <itemizedlist> <title>Anmerkungen</title> <listitem> <para> Dieser Abschnitt gilt nur f端r NTSC-DVDs und nicht f端r PAL. </para> </listitem> <listitem> <para> Die <application>MEncoder</application>-Beispielzeilen 端berall im Dokument sind <emphasis role="bold">nicht</emphasis> zum eigentlichen Gebrauch vorgesehen. Sie sind schlicht das blo�e Minimum, das zum Encodieren der betreffenden Videokategorie ben旦tigt wird. Wie mache ich gute DVD-Rips oder wie feintune ich <systemitem class="library">libavcodec</systemitem> auf maximale Qualit辰t geh旦ren nicht zum Umfang dieses Dokuments. </para> </listitem> <listitem> <para> Es gibt ein paar Fu�noten speziell f端r dieses Handbuch, die so 辰hnlich verlinkt sind: <link linkend="menc-feat-telecine-footnotes">[1]</link> </para> </listitem> </itemizedlist> </sect2> <sect2 id="menc-feat-telecine-ident"> <title>Wie kann man sagen, welchen Typ Video man hat</title> <sect3 id="menc-feat-telecine-ident-progressive"> <title>Progressiv</title> <para> Progressive Video wurde urspr端nglich mit 24000/1001 fps gefilmt und ohne �nderung auf der DVD abgespeichert. </para> <para> Wenn du eine progressive DVD in <application>MPlayer</application> abspielst, wird <application>MPlayer</application> folgende Zeile ausgeben, sobald das Abspielen des Films beginnt: <screen> demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.</screen> Von diesem Punkt an vorw辰rts sollte demux_mpg nie erz辰hlen, es finde "30000/1001 fps NTSC content." </para> <para> Wenn du progressives Video ankuckst, solltest du nie irgendein Interlacing sehen. Sei trotzdem vorsichtig, weil manchmal ein winziges bisschen telecine dort hineingemischt wurde, wo du es nicht erwartest. Ich bin TV-Serien-DVDs begegnet, die eine Sekunde telecine bei jedem Szenenwechsel haben oder an extrem zuf辰lligen Stellen. Ich hatte mir einmal eine DVD angesehen, die eine progressive erste H辰lfte besa�, und die zweite H辰lfte war telecined. Willst du<emphasis>wirklich</emphasis> gr端ndlich sein, kannst du den kompletten Film scannen: <screen>mplayer dvd://1 -nosound -vo null -benchmark</screen> Das Verwenden von <option>-benchmark</option> veranlasst <application>MPlayer</application>, den Film so schnell er es nur kann abzuspielen; dies dauert je nach Hardware trotzdem noch eine Weile. Jedesmal wenn demux_mpg einen Frameratenwechsel meldet, wird dir die Zeile unmittelbar dar端ber die Zeit zeigen, bei welcher der Wechsel auftrat. </para> <para> Manchmal wird progressive Video auf DVDs "soft telecine" zugeordnet, weil es dazu vorgesehen ist, vom DVD-Player telecined zu werden. </para> </sect3> <sect3 id="menc-feat-telecine-ident-telecined"> <title>Telecined</title> <para> Telecined Video war urspr端nglich mit 24000/1001 aufgenommen, wurde aber telecined, <emphasis>bevor</emphasis> es auf die DVD geschrieben wurde. </para> <para> <application>MPlayer</application> meldet keine (nie) Frameratenwechsel, wenn er telecined Video abspielt. </para> <para> Beim Betrachten eines telecined Videos wirst du Interlacing-Artefakte sehen, die zu "blinken" scheinen: sie erscheinen wiederholt und verschwinden wieder. Du kannst dir das so genauer hinschauen <orderedlist> <listitem> <screen>mplayer dvd://1</screen> </listitem> <listitem> <para> Suche einen Teil mit Bewegung. </para> </listitem> <listitem> <para> Benutze die Taste <keycap>.</keycap>, um jeweils einen Frame vorw辰rts zu r端cken. </para> </listitem> <listitem> <para> Schau auf das Muster der interlaced und progressive aussehenden Frames. Ist das Muster, das du siehst PPPII,PPPII,PPPII,... dann ist das Video telecined. Siehst du andere Muster, dann wurde das Video wom旦glich mittels einiger Nicht-Standard-Methoden telecined; <application>MEncoder</application> kann ein Nicht-Standard-telecine nicht verlustfrei nach progressive konvertieren. Siehst du 端berhaupt keine Muster, ist es h旦chstwahrscheinlich interlaced. </para> </listitem> </orderedlist> </para> <para> Manchmal wird telecined Video auf DVDs "hard telecine" zugeordnet. Da hard telecine bereits 60000/1001 Felder pro Sekunde hat, spielt der DVD-Player das Video ohne irgendeine Manipulation ab. </para> <para> Ein anderer Weg, zu sagen, ob deine Quelle telecined ist oder nicht, ist die Quelle mit den Befehlszeilenoptionen <option>-vf pullup</option> und <option>-v</option> abzuspielen, um nachzusehen, wie <option>pullup</option> zu den Frames passt. Ist die Quelle telecined, solltest du in der Befehlszeile ein 3:2 Muster mit abwechselnd <systemitem>0+.1.+2</systemitem> und <systemitem>0++1</systemitem> anzeigen. Diese Technik hat den Vorteil, dass du die Quelle nicht zu beobachten brauchst, um sie zu identifizieren, was von Nutzen sein k旦nnte, falls du den Encodiervorgang automatisieren willst oder besagte Prozedur ferngesteuert mittels einer langsamen Verbindung vornehmen willst. </para> </sect3> <sect3 id="menc-feat-telecine-ident-interlaced"> <title>Interlaced</title> <para> Interlaced Video wurde urspr端nglich als 60000/1001 Felder pro Sekunde aufgenommen und auf der DVD als 30000/1001 Frames pro Sekunde abgespeichert. Der interlacing-Effekt (oft "combing" genannt) ist ein Ergebnis von Kammpaaren von Feldern in Frames. Jedes Feld wird einzeln als 1/(60000/1001) Sekunden angenommen, und wenn sie simultan angezeigt werden, wird der Unterschied offensichtlich. </para> <para> Wie bei telecined Video sollte <application>MPlayer</application> niemals einen Frameratewechsel beim Abspielen des interlaced Inhalts melden. </para> <para> Wenn du ein interlaced Video genau ansiehst, in dem du dich mit der Taste <keycap>.</keycap> durch die Frames bewegst, wirst du sehen, dass jeder einzelne Frame interlaced ist. </para> </sect3> <sect3 id="menc-feat-telecine-ident-mixedpt"> <title>Gemischtes progressive und telecine</title> <para> Alle "gemischten progressive und telecine" Videos wurden urspr端nglich als 24000/1001 Frames pro Sekunde aufgenommen, jedoch werden einige Teile telecined beendet. </para> <para> Spielt <application>MPlayer</application> diese Kategorie ab, wird er (oft wiederholt) zwischen "30000/1001 fps NTSC" und "24000/1001 fps progressive NTSC" zur端ck und vor wechseln. Beobachte die untere H辰lfte von <application>MPlayer</application>s Ausgabe, um diese Meldungen anzusehen. </para> <para> Du solltest die Sektion "30000/1001 fps NTSC" 端berpr端fen, um sicher zu gehen, dass sie auch wirklich telecine sind und nicht einfach interlaced. </para> </sect3> <sect3 id="menc-feat-telecine-ident-mixedpi"> <title>Gemischtes progressive und interlaced</title> <para> In "gemischtem progressive und interlaced" Inhalt wurde progressive und interlaced Video zusammengeklebt. </para> <para> Diese Kategorie sieht aus wie "gemischtes progressive und telecine", bis du die Sektion 30000/1001 fps untersuchst und feststellst, dass sie das telecine-Muster nicht haben. </para> </sect3> </sect2> <sect2 id="menc-feat-telecine-encode"> <title>Wie jede Kategorie encodieren</title> <para> Wie ich anfangs angemerkt hatte, sind die <application>MEncoder</application>-Beispielzeilen unten eigentlich <emphasis role="bold">nicht</emphasis> zur Anwendung bestimmt; sie demonstrieren nur die Minimalparameter zur korrekten Encodierung jeder Kategorie. </para> <sect3 id="menc-feat-telecine-encode-progressive"> <title>Progressive</title> <para> Progressive Video erfordert kein spezielles Filtern, um es zu encodieren. Der einzige Parameter, den du gewiss anwenden solltest ist <option>-ofps 24000/1001</option>. Andernfalls wird <application>MEncoder</application> versuchen, bei 30000/1001 fps zu encodieren und Frames duplizieren. </para> <para> <screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen> </para> <para> Dennoch ist es 旦fters der Fall, dass ein Video, das progressive aussieht, eigentlich kurze Teile telecine eingemischt hat. Solange du dir nicht sicher bist, ist es am sichersten, das Video als <link linkend="menc-feat-telecine-encode-mixedpt">gemischtes progressive und telecine</link>. zu behandeln. Der Performance-Verlust ist gering <link linkend="menc-feat-telecine-footnotes">[3]</link>. </para> </sect3> <sect3 id="menc-feat-telecine-encode-telecined"> <title>Telecined</title> <para> Telecine kann umgekehrt werden, um den originalen 24000/1001-Inhalt zu erhalten, indem man einen Prozess verwendet, der inverse-telecine genannt wird. <application>MPlayer</application> enth辰lt verschiedene Filter, um dies zu erreichen; der beste Filter, <option>pullup</option> wird in der Sektion <link linkend="menc-feat-telecine-encode-mixedpt">Gemischtes progressive und telecine</link> beschrieben. </para> </sect3> <sect3 id="menc-feat-telecine-encode-interlaced"> <title>Interlaced</title> <para> In den meisten praktischen F辰llen ist es nicht m旦glich, ein komplett progressives Video aus interlaced Inhalt zu erhalten. Der einzige Weg, dies ohne den Verlust der H辰lfte der vertikalen Aufl旦sung zu erreichen, ist das Verdoppeln der Framerate, und man kann versuchen zu "sch辰tzen", wie die korrespondierenden Zeilen f端r jedes Feld vervollst辰ndigt werden sollten (dies hat Nachteile - siehe Methode 3). </para> <orderedlist> <listitem> <para> Das Video in interlaced Form encodieren. Normalerweise richtet Interlacing verheerenden Schaden f端r die F辰higkeit des Encoders an, gut zu komprimieren, <systemitem class="library">libavcodec</systemitem> hat jedoch zwei eigens f端r das ein wenig bessere Abspeichern von interlaced Video gedachte Parameter: <option>ildct</option> und <option>ilme</option>. Auch wenn die Verwendung von <option>mbd=2</option> dringend zu empfehlen ist <link linkend="menc-feat-telecine-footnotes">[2]</link>, weil es Macrobl旦cke wie nicht-interlaced an Stellen encodiert, an denen keine Bewegung stattfindet. Beachte, dass <option>-ofps</option> hier NICHT notwendig ist. <screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen> </para> </listitem> <listitem> <para> Nutze einen Deinterlacing-Filter vor dem Encodieren. Es stehen verschiedene dieser Filter zur Auswahl, jeder mit seinen eigenen Vor- und Nachteilen. Ziehe <option>mplayer -pphelp</option> und <option>mplayer -vf help</option> zu Rate, um zu sehen, welche verf端gbar sind (suche nach "deint"), lies Michael Niedermayers <ulink url="http://guru.multimedia.cx/deinterlacing-filters/">Deinterlacing-Filter-Vergleich</ulink> und durchsuche die <ulink url="http://www.mplayerhq.hu/design7/mailing_lists.html">MPlayer-Mailinglisten</ulink>, um Diskussionen 端ber die zahlreichen Filter zu finden. Nochmals, die Framerate 辰ndert sich nicht, also kein <option>-ofps</option>. Deinterlacing sollte au�erdem nach dem Zuschneiden (cropping) <link linkend="menc-feat-telecine-footnotes">[1]</link> und vor dem Skalieren angewandt werden. <screen>mencoder dvd://1 -oac copy -vf yadif -ovc lavc</screen> </para> </listitem> <listitem> <para> Ungl端cklicherweise arbeitet diese Option im Zusammenhang mit <application>MEncoder</application> fehlerhaft; sie sollte mit <application>MEncoder G2</application> gut funktionieren, den gibts aber noch nicht. Du k旦nntest Abst端rze erleben. Seis drum, der Zweck von <option> -vf tfields</option> ist es, einen vollen Frame aus jedem Feld zu erzeugen, was eine Framerate von 60000/1001 ergibt. Der Vorteil dieses L旦sungsansatzes ist, dass nie irgendwelche Daten verloren gehen; dennoch, da jeder Frame aus nur einem Feld kommt, m端ssen die fehlenden Zeilen irgendwie interpoliert werden. Es gibt keine sehr guten Methoden, die fehlenden Daten zu generieren, und so wird das Resultat ein bisschen aussehen, als h辰tte man irgendeinen Deinterlacing-Filter verwendet. Die fehlenden Zeilen zu generieren erzeugt auch weitere Probleme, einfach weil sich die Menge an Daten verdoppelt. Somit sind h旦here Encodier-Bitraten n旦tig, um die Qualit辰t beizubehalten und mehr CPU-Power wird f端r beides, Encodieren und Decodieren, aufgewendet. Das Attribut tfields hat mehrere verschiedene Optionen daf端r, wie die fehlenden Zeilen jedes Frames erzeugt werden. Wenn du diese Methode nutzt, dann nimm Bezug auf das Handbuch und w辰hle, welche Option auch immer am besten f端r dein Material aussieht. Beachte, dass du wenn <option>tfields</option> verwendet wird, sowohl <option>-fps</option> als auch <option>-ofps</option>spezifizieren <emphasis role="bold">musst</emphasis>, um die doppelte Framerate der originalen Quelle zu erhalten. <screen>mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> </para> </listitem> <listitem> <para> Wenn du vorhast, dramatisch herunterzuskalieren, kannst du nur eins der beiden Felder extrahieren und encodieren. Sicherlich, du wirst die H辰lfte der vertikalen Aufl旦sung verlieren, aber wenn du planst, bis auf 1/2 des Originals herunter zu skalieren, macht der Verlust so gut wie gar nichts aus. Das Resultat wird eine progressive Datei mit 30000/1001 Frames pro Sekunde sein. Die Prozedur ist, <option>-vf field</option> zu verwenden, dann die R辰nder abzuschneiden <link linkend="menc-feat-telecine-footnotes">[1]</link> und angemessen zu skalieren. Vergiss nicht, dass du die Skalierung anpassen musst, um das Halbieren der vertikalen Aufl旦sung zu kompensieren. <screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen> </para> </listitem> </orderedlist> </sect3> <sect3 id="menc-feat-telecine-encode-mixedpt"> <title>Gemischtes progressive und telecine</title> <para> Um progressive und telecine Video komplett in progressive Video umzuwandeln, m端ssen die telecined Teile inverse-telecined werden. Die drei Wege, dies zu erreichen, werden unten beschrieben. Beachte, dass du inverse-telecine <emphasis role="bold">immer</emphasis> vor der Reskalierung durchf端hren solltest; es sei denn, du wei�t wirklich, was du tust; mache inverse-telecine auch vor dem Entfernen der R辰nder <link linkend="menc-feat-telecine-footnotes">[1]</link>. <option>-ofps 24000/1001</option> wird hier ben旦tigt, weil das Output-Video 24000/1001 Frames pro Sekunde werden soll. </para> <itemizedlist> <listitem> <para> <option>-vf pullup</option> wurde entworfen, um auf telecined Material inverse-telecine anzuwenden, w辰hrend die progressiven Daten unangetastet bleiben. Damit dies richtig funktioniert, <emphasis role="bold">muss</emphasis> <option>pullup</option> vom <option>softskip</option>-Filter gefolgt werden, sonst wird <application>MEncoder</application> abst端rzen. <option>pullup</option> ist trotz allem die sauberste und akkurateste Methode, die zum Encodieren von beidem telecine und "gemischtem progressive und telecine" zur Verf端gung steht. <screen>mencoder dvd://1 -oac copy -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen> </para> </listitem> <listitem> <para> Eine 辰ltere Methode ist, anstatt inverse-telecine auf die telecined Teile anzuwenden, telecine auf nicht-telecined Teile und dann inverse-telecine auf das ganze Video anzuwenden. H旦rt sich verwirrend an? softpulldown ist ein Filter, der ein Video durchgeht und die komplette Datei telecined macht. Lassen wir auf softpulldown entweder <option>detc</option> oder <option>ivtc</option> folgen, wird das Endergebnis vollkommen progressiv. <option>-ofps 24000/1001</option> wird ben旦tigt. <screen>mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen> </para> </listitem> <listitem> <para> Ich habe <option>-vf filmdint</option> selbst verwendet, aber lies hier, was D Richard Felker III zu erz辰hlen hat: <blockquote> <para> Es ist OK, aber IMO versucht er zu oft eher ein deinterlace als ein inverse telecine durchzuf端hren (ganz wie Settop-DVD-Player & progressive TVs), was ein h辰ssliches Flimmern erzeugt und andere Artefakte. Wenn du vorhast, es anzuwenden, musst du zumindest einige Zeit darauf verwenden, die Optionen zu tunen und zuerst den Output zu beobachten, damit du auch sicher sein kannst, dass du nichts vermasselst. </para> </blockquote> </para> </listitem> </itemizedlist> </sect3> <sect3 id="menc-feat-telecine-encode-mixedpi"> <title>Gemischtes progressive und interlaced</title> <para> Es gibt zwei Optionen f端r den Umgang mit dieser Kategorie, jede von beiden stellt einen Kompromiss dar. Du solltest basierend auf Dauer/Stelle jedes Typs entscheiden. </para> <itemizedlist> <listitem> <para> Behandle es wie progressive. Die interlaced Teile werden interlaced aussehen und einige der interlaced Felder m端ssen weggelassen werden, was ein wenig zu Spr端ngen f端hrt. Du kannst einen Nachbearbeitungsfilter verwenden, wenn du willst, aber dies wird die progressive-Anteile geringf端gig verringern. </para> <para> Diese Option sollte definitiv nicht verwendet werden, wenn du eventuell Video auf einem interlaced Ger辰t anzeigen willst (mit einer TV-Karte zum Beispiel). Wenn du interlaced Frames in einem Video mit 24000/1001 Frames pro Sekunde hast, werden diese zusammen mit den progressive Frames telecined. Die H辰lfte der interlaced "Frames" werden f端r die Dauer von drei Feldern (3/(60000/1001) Sekunden) angezeigt, was einen flimmernden "Zeitr端cksprung"-Effekt zur Folge hat, der ziemlich schlecht aussieht. Solltest du dies dennoch versuchen, <emphasis role="bold">musst</emphasis> du einen Deinterlacing-Filter wie <option>lb</option> oder <option>l5</option> anwenden. </para> <para> Es w辰re auch keine gute Idee f端r eine progressive Anzeige. Es wird Paare aufeinander folgender interlaced Felder auslassen, was eine Unstetigkeit zur Folge hat, die eher sichtbar ist als mit der zweiten Methode, die einige progressive Frames zweimal anzeigt. Ein interlaced Video mit 30000/1001 Frames pro Sekunde ist bereits ein bisschen abgehackt, weil es wirklich mit 60000/1001 Felder pro Sekunde angezeigt werden sollte, sodass sich die doppelten Frames nicht zu sehr abzeichnen. </para> <para> Egal welchen Weg du w辰hlst, es ist das beste, deinen Inhalt zu ber端cksichtigen und wie du ihn anzeigen willst. Ist dein Video zu 90% progressive und du hast nie vor, es auf einem TV-Bildschirm anzuzeigen, solltest du einen progressive-Ansatz w辰hlen. Ist es nur halb-progressive, willst du es eventuell so encodieren, als sei alles interlaced. </para> </listitem> <listitem> <para> Behandle es wie interlaced. Einige Frames des progressive-Anteils m端ssen dupliziert werden, was zu Spr端ngen f端hrt. Nochmal, Deinterlacing-Filter k旦nnen die progressive-Anteile leicht verringern. </para> </listitem> </itemizedlist> </sect3> </sect2> <sect2 id="menc-feat-telecine-footnotes"> <title>Fu�noten</title> <orderedlist> <listitem> <formalpara> <title>�ber das Zuschneiden (cropping):</title> <para> Videodaten auf DVDs werden in einem YUV 4:2:0 genannten Format abgelegt. In einem YUV-Video, werden Helligkeit und Chrominanz separat gespeichert. Da das menschliche Auge ein bisschen weniger empfindlich auf Farbe reagiert als auf Helligkeit, ist in einem YUV 4:2:0 Bild nur ein Chrominanz-Pixel f端r alle vier Helligkeits-Pixel vorhanden. In einem progressive Bild, besitzt jedes Quadrat von vier luma-Pixeln (zwei auf jeder Seite) ein gemeinsames chroma-Pixel. Du musst progressive YUV 4:2:0 zu geradzahligen Aufl旦sungen zurechtschneiden und geradzahlige Offsets verwenden. Zum Beispiel ist <option>crop=716:380:2:26</option> OK, <option>crop=716:380:3:26 </option> aber nicht. </para> </formalpara> <para> Wenn du es mit interlaced YUV 4:2:0 zu tun hast, ist die Situation ein wenig komplizierter. Anstatt dass immer vier luma-Pixel im <emphasis>Frame</emphasis> sich ein chroma-Pixel teilen, teilen sich immer vier luma-Pixel in jedem <emphasis>Feld</emphasis> ein chroma-Pixel. Wenn Felder zur Formung eines Frames interlaced werden, ist jede Scanzeile ein Pixel hoch. Jetzt liegen anstatt je vier luma-Pixel in einem Quadrat immer zwei Pixel nebeneinander und die anderen zwei Pixel liegen zwei Scanzeilen weiter unten nebeneinander. Die zwei luma-Pixel in der dazwischen liegenden Scanzeile sind vom anderen Feld und teilen sich somit ein anderes chroma-Pixel mit zwei luma-Pixeln zwei Scanzeile entfernt. All diese Konfusion macht es notwendig, vertikale Ausschneide-Abmessungen und Offsets zu haben, die ein Vielfaches von vier sind. Horizontal kann geradzahlig bleiben. </para> <para> F端r telecined Video empfehle ich, das Zuschneiden nach dem inverse telecining stattfinden zu lassen. Ist das Video einmal progressive, musst du nur noch mit geraden Zahlen zuschneiden. Wenn du wirklich die leichte Beschleunigung haben willst, die zuerst zuzuschneiden m旦glicherweise bietet, musst du vertikal mit einem Vielfachen von vier zuschneiden, oder der inverse-telecine Filter wird keine korrekten Daten haben. </para> <para> F端r interlaced (nicht telecined) Video musst du immer mit einem Vielfachen von vier zuschneiden, es sei denn, du verwendest <option>-vf field</option> vor dem Schneiden. </para> </listitem> <listitem><formalpara> <title>�ber Encodier-Parameter und Qualit辰t:</title> <para> Nur weil ich hier <option>mbd=2</option> vorschlage, hei�t das nicht, dass es woanders benutzt werden soll. Zusammen mit <option>trell</option> ist <option>mbd=2</option> eine der Optionen von <systemitem class="library">libavcodec</systemitem>, welche die Qualit辰t am deutlichsten heben, und du solltest stets das letzte der beiden anwenden, au�er das Abfallen der Encodiergeschwindigkeit ist abschreckend hoch (z.B. Encodierung in Echtzeit). Es gibt eine Menge anderer Optionen f端r <systemitem class="library">libavcodec</systemitem>, die die Encodierqualit辰t verbessern (und die Encodiergeschwindigkeit verringern), dies liegt aber jenseits des Rahmens dieses Dokuments. </para> </formalpara> </listitem> <listitem> <formalpara> <title>�ber die Performance von pullup:</title> <para> <option>Pullup</option> kann sicher (zusammen mit <option>softskip</option>) auf progressive Video angewandt werden und ist f端r gew旦hnlich eine gute Idee, es sei denn, die Quelle wurde definitiv als vollkommen progressive verifiziert. Der Performaceverlust ist in den meisten F辰llen gering. Bei einer Minimalencodierung macht <option>pullup</option> <application>MEncoder</application> 50% langsamer. Das Hinzuf端gen von Soundverarbeitung und erweiterten <option>lavcopts</option> 端berschattet diesen Unterschied und dr端ckt den Performanceabfall, der mit dem Verwenden von <option>pullup</option> verbunden war, runter auf 2%. </para> </formalpara> </listitem> </orderedlist> </sect2> </sect1> <sect1 id="menc-feat-enc-libavcodec"> <title>Encodieren mit der <systemitem class="library">libavcodec</systemitem> Codecfamilie</title> <para> <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> stellt einfache Encodierung f端r eine Menge interessanter Video- und Audioformate zur Verf端gung. Du kannst folgende Codecs encodieren (mehr oder weniger aktuell): </para> <sect2 id="menc-feat-enc-libavcodec-video-codecs"> <title>Videocodecs von <systemitem class="library">libavcodec</systemitem></title> <para> <informaltable frame="all"> <tgroup cols="2"> <thead> <row><entry>Name des Videocodecs</entry><entry>Beschreibung</entry></row> </thead> <tbody> <row><entry>mjpeg</entry><entry> Motion-JPEG </entry></row> <row><entry>ljpeg</entry><entry> Verlustfreies JPEG </entry></row> <row><entry>jpegls</entry><entry> JPEG LS </entry></row> <row><entry>targa</entry><entry> Targa-Bild </entry></row> <row><entry>gif</entry><entry> GIF-Bild </entry></row> <row><entry>png</entry><entry> PNG-Bild </entry></row> <row><entry>bmp</entry><entry> BMP-Bild </entry></row> <row><entry>h261</entry><entry> H.261 </entry></row> <row><entry>h263</entry><entry> H.263 </entry></row> <row><entry>h263p</entry><entry> H.263+ </entry></row> <row><entry>mpeg4</entry><entry> ISO Standard MPEG-4 (DivX, Xvid-kompatibel) </entry></row> <row><entry>msmpeg4</entry><entry> Pre-Standard MPEG-4 Variante von MS, v3 (AKA DivX3) </entry></row> <row><entry>msmpeg4v1</entry><entry> Pre-Standard MPEG-4 von MS, v1 </entry></row> <row><entry>msmpeg4v2</entry><entry> Pre-Standard MPEG-4 von MS, v2 (in alten ASF-Dateien verwendet) </entry></row> <row><entry>wmv1</entry><entry> Windows Media Video, Version 1 (AKA WMV7) </entry></row> <row><entry>wmv2</entry><entry> Windows Media Video, Version 2 (AKA WMV8) </entry></row> <row><entry>rv10</entry><entry> RealVideo 1.0 </entry></row> <row><entry>rv20</entry><entry> RealVideo 2.0 </entry></row> <row><entry>mpeg1video</entry><entry> MPEG-1 Video </entry></row> <row><entry>mpeg2video</entry><entry> MPEG-2 Video </entry></row> <row><entry>huffyuv</entry><entry> Verlustfreie (lossless) Kompression </entry></row> <row><entry>ffvhuff</entry><entry> FFmpeg-modifizierter huffyuv, verlustfrei </entry></row> <row><entry>asv1</entry><entry> ASUS Video v1 </entry></row> <row><entry>asv2</entry><entry> ASUS Video v2 </entry></row> <row><entry>vcr1</entry><entry> ATI VCR1 codec </entry></row> <row><entry>ffv1</entry><entry> FFmpeg's verlustfreier (lossless) Videocodec </entry></row> <row><entry>svq1</entry><entry> Sorenson Video 1 </entry></row> <row><entry>flv</entry><entry> Sorenson H.263, der in Flash Video benutzt wird </entry></row> <row><entry>flashsv</entry><entry> Flash Screen Video </entry></row> <row><entry>dvvideo</entry><entry> Sony Digital Video </entry></row> <row><entry>snow</entry><entry> FFmpeg's experimenteller Wavelet-basierter Codec </entry></row> <row><entry>zbmv</entry><entry> Zip Blocks Motion Video </entry></row> <row><entry>cljr</entry><entry> Cirrus Logic AccuPak Codec </entry></row> </tbody> </tgroup> </informaltable> Die erste Spalte enth辰lt die Codecnamen, die nach der Konfiguration <literal>vcodec</literal> 端bergeben werden m端ssen, wie: <option>-lavcopts vcodec=msmpeg4</option> </para> <informalexample> <para> Ein Beispiel mit MJPEG-Komprimierung: <screen>mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen> </para> </informalexample> </sect2> <sect2 id="menc-feat-enc-libavcodec-audio-codecs"> <title>Audiocodecs von <systemitem class="library">libavcodec</systemitem></title> <para> <informaltable frame="all"> <tgroup cols="2"> <thead> <row><entry>Name des Audiocodecs</entry><entry>Beschreibung</entry></row> </thead> <tbody> <row> <entry>ac3</entry> <entry>Dolby Digital (AC-3)</entry> </row> <row> <entry>adpcm_*</entry> <entry>Adaptive PCM-Formate - siehe begleitende Tabelle</entry> </row> <row> <entry>flac</entry> <entry>Free Lossless Audio Codec (FLAC)</entry> </row> <row> <entry>g726</entry> <entry>G.726 ADPCM</entry> </row> <row> <entry>libamr_nb</entry> <entry>3GPP Adaptive Multi-Rate (AMR) narrow-band</entry> </row> <row> <entry>libamr_wb</entry> <entry>3GPP Adaptive Multi-Rate (AMR) wide-band</entry> </row> <row> <entry>libfaac</entry> <entry>Advanced Audio Coding (AAC) - verwendet FAAC</entry> </row> <row> <entry>libgsm</entry> <entry>ETSI GSM 06.10 full rate</entry> </row> <row> <entry>libgsm_ms</entry> <entry>Microsoft GSM</entry> </row> <row> <entry>libmp3lame</entry> <entry>MPEG-1 audio layer 3 (MP3) - verwendet LAME</entry> </row> <row> <entry>mp2</entry> <entry>MPEG-1 Audio Layer 2</entry> </row> <row> <entry>pcm_*</entry> <entry>PCM-Formate - siehe begleitende Tabelle</entry> </row> <row> <entry>roq_dpcm</entry> <entry>Id Software RoQ DPCM</entry> </row> <row> <entry>sonic</entry> <entry>experimenteller verlustbehafteter FFmpeg-Codec</entry> </row> <row> <entry>sonicls</entry> <entry>experimenteller verlustfreier FFmpeg-Codec</entry> </row> <row> <entry>vorbis</entry> <entry>Vorbis</entry> </row> <row> <entry>wma1</entry> <entry>Windows Media Audio v1</entry> </row> <row> <entry>wma2</entry> <entry>Windows Media Audio v2</entry> </row> </tbody> </tgroup> </informaltable> Die erste Spalte enth辰lt die Codecnamen, die nach der Konfiguration <literal>acodec</literal> 端bergeben werden m端ssen, wie: <option>-lavcopts acodec=ac3</option> </para> <informalexample> <para> Ein Beispiel mit AC3-Kompression: <screen>mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy</screen> </para> </informalexample> <para> Im Gegensatz zu den Videocodecs von <systemitem class="library">libavcodec</systemitem> machen dessen Audiocodecs keinen weisen Gebrauch von den Bits, die ihnen 端bergeben werden, da es ihnen an einem minimalen psychoakustischen Modell fehlt (falls 端berhaupt eins vorhanden ist), wodurch sich die meisten anderen Codec-Implementierungen auszeichnen. Beachte jedoch, dass all diese Audiocodecs sehr schnell sind und 端berall dort hervorragend arbeiten, wo <application>MEncoder</application> mit <systemitem class="library">libavcodec</systemitem> kompiliert wurde (was meistens der Fall ist) und nicht von externen Programmbibliotheken abh辰ngt. </para> <sect3 id="menc-feat-enc-libavcodec-audio-codecs-pcmadpcm"> <title>PCM/ADPCM-Format, begleitende Tabelle</title> <para> <informaltable frame="all"> <tgroup cols="2"> <thead> <row><entry>PCM/ADPCM Codecname</entry><entry>Beschreibung</entry></row> </thead> <tbody> <row> <entry>pcm_s32le</entry> <entry>signed 32-bit little-endian</entry> </row> <row> <entry>pcm_s32be</entry> <entry>signed 32-bit big-endian</entry> </row> <row> <entry>pcm_u32le</entry> <entry>unsigned 32-bit little-endian</entry> </row> <row> <entry>pcm_u32be</entry> <entry>unsigned 32-bit big-endian</entry> </row> <row> <entry>pcm_s24le</entry> <entry>signed 24-bit little-endian</entry> </row> <row> <entry>pcm_s24be</entry> <entry>signed 24-bit big-endian</entry> </row> <row> <entry>pcm_u24le</entry> <entry>unsigned 24-bit little-endian</entry> </row> <row> <entry>pcm_u24be</entry> <entry>unsigned 24-bit big-endian</entry> </row> <row> <entry>pcm_s16le</entry> <entry>signed 16-bit little-endian</entry> </row> <row> <entry>pcm_s16be</entry> <entry>signed 16-bit big-endian</entry> </row> <row> <entry>pcm_u16le</entry> <entry>unsigned 16-bit little-endian</entry> </row> <row> <entry>pcm_u16be</entry> <entry>unsigned 16-bit big-endian</entry> </row> <row> <entry>pcm_s8</entry> <entry>signed 8-bit</entry> </row> <row> <entry>pcm_u8</entry> <entry>unsigned 8-bit</entry> </row> <row> <entry>pcm_alaw</entry> <entry>G.711 A-LAW </entry> </row> <row> <entry>pcm_mulaw</entry> <entry>G.711 μ-LAW</entry> </row> <row> <entry>pcm_s24daud</entry> <entry>signed 24-bit D-Cinema Audioformat</entry> </row> <row> <entry>pcm_zork</entry> <entry>Activision Zork Nemesis</entry> </row> <row> <entry>adpcm_ima_qt</entry> <entry>Apple QuickTime</entry> </row> <row> <entry>adpcm_ima_wav</entry> <entry>Microsoft/IBM WAVE</entry> </row> <row> <entry>adpcm_ima_dk3</entry> <entry>Duck DK3</entry> </row> <row> <entry>adpcm_ima_dk4</entry> <entry>Duck DK4</entry> </row> <row> <entry>adpcm_ima_ws</entry> <entry>Westwood Studios</entry> </row> <row> <entry>adpcm_ima_smjpeg</entry> <entry>SDL Motion JPEG</entry> </row> <row> <entry>adpcm_ms</entry> <entry>Microsoft</entry> </row> <row> <entry>adpcm_4xm</entry> <entry>4X Technologies</entry> </row> <row> <entry>adpcm_xa</entry> <entry>Phillips Yellow Book CD-ROM eXtended Architecture</entry> </row> <row> <entry>adpcm_ea</entry> <entry>Electronic Arts</entry> </row> <row> <entry>adpcm_ct</entry> <entry>Creative 16->4-bit</entry> </row> <row> <entry>adpcm_swf</entry> <entry>Adobe Shockwave Flash</entry> </row> <row> <entry>adpcm_yamaha</entry> <entry>Yamaha</entry> </row> <row> <entry>adpcm_sbpro_4</entry> <entry>Creative VOC SoundBlaster Pro 8->4-bit</entry> </row> <row> <entry>adpcm_sbpro_3</entry> <entry>Creative VOC SoundBlaster Pro 8->2.6-bit</entry> </row> <row> <entry>adpcm_sbpro_2</entry> <entry>Creative VOC SoundBlaster Pro 8->2-bit</entry> </row> <row> <entry>adpcm_thp</entry> <entry>Nintendo GameCube FMV THP</entry> </row> <row> <entry>adpcm_adx</entry> <entry>Sega/CRI ADX</entry> </row> </tbody> </tgroup> </informaltable> </para> </sect3> </sect2> <sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options"> <title>Encodieroptionen von libavcodec</title> <para> Idealerweise m旦chtest du eventuell in der Lage sein, dem Encoder einfach zu sagen, er soll in den "hochqualitativen" Modus wechseln und weiter machen. Das w辰re vermutlich nett, aber ungl端cklicherweise schwer zu implementieren, da verschiedene Encodieroptionen unterschiedliche Qualit辰tsresultate hervorbringen, abh辰ngig vom Quellmaterial. Das liegt daran, dass die Komprimierung von den visuellen Eigenschaften des fraglichen Videos abh辰ngt. Zum Beispiel haben Anime und Live-Action sehr unterschiedliche Eigenschaften und ben旦tigen aus diesm Grund verschiedene Optionen, um optimale Encodierung zu erreichen. Die gute Neuigkeit ist, dass einige Optionen wie <option>mbd=2</option>, <option>trell</option> und <option>v4mv</option> nie ausgelassen werden sollten. Siehe unten nach der detaillierten Beschreibung allgemeiner Encodieroptionen. </para> <itemizedlist> <title>Anzupassende Optionen:</title> <listitem> <para> <emphasis role="bold">vmax_b_frames</emphasis>: 1 oder 2 ist gut, abh辰ngig vom Film. Beachte, dass du, falls deine Encodierung von DivX5 decodierbar sein muss, den Support f端r "closed GOP" aktivieren musst, indem du die <systemitem class="library">libavcodec</systemitem>-Option <option>cgop</option> verwendest, du musst jedoch Szenenerkennung deaktivieren, was wiederum keine gute Idee ist, da es die Ecodierungseffizienz etwas angreift. </para> </listitem> <listitem> <para> <emphasis role="bold">vb_strategy=1</emphasis>: hilft in Szenen mit viel Bewegung (high-motion). Bei manchen Videos wird vmax_b_frames der Qualit辰t schaden, vmax_b_frames=2 zusammen mit vb_strategy=1 hilft jedoch. </para> </listitem> <listitem> <para> <emphasis role="bold">dia</emphasis>: Bewegungssuchbereich. Gr旦�er ist besser als kleiner. Negative Werte sind ein komplett anderer Ma�stab. Gute Werte sind -1 f端r ein schnelle oder 2-4 f端r langsame Encodierung. </para> </listitem> <listitem> <para> <emphasis role="bold">predia</emphasis>: Bewegungssuche Vorabdurchlauf (pre-pass). Nicht so wichtig wie dia. Gute Werte sind 1 (Standard) bis 4. Erfordert preme=2, um wirklich was zu n端tzen. </para> </listitem> <listitem> <para> <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Vergleichsfunktion zur Bewegungseinsch辰tzung. Experimentiere mit Werten von 0 (Standard), 2 (hadamard), 3 (dct) und 6 (Ratenverzerrung). 0 ist am schnellsten und ausreichend f端r precmp. F端r cmp und subcmp ist 2 gut bei Anime, und 3 ist gut bei Live-Action. 6 kann leicht besser sein oder auch nicht, ist aber langsam. </para> </listitem> <listitem> <para> <emphasis role="bold">last_pred</emphasis>: Anzahl der Bewegungsvorhersagen, die vom vorherigen Frame genommen werden sollen. 1-3 oder so hilft bei geringer Geschwindigkeitseinbu�e. H旦here Werte sind langsam bei keinerlei Zusatzgewinn. </para> </listitem> <listitem> <para> <emphasis role="bold">cbp, mv0</emphasis>: Kontrolliert die Auswahl von Macrobl旦cken. Kleine Geschwindigkeitseinbu�en bei kleinem Qualit辰tsgewinn. </para> </listitem> <listitem> <para> <emphasis role="bold">qprd</emphasis>: adaptive Quantisierung basierend auf der Komplexit辰t des Macroblocks. Kann hilfreich sein oder schaden, abh辰ngig vom Video und anderen Optionen. Dies kann Artefakte verursachen, es sei denn, du setzt vqmax auf einen halbwegs kleinen Wert (6 ist gut, vielleicht so langsam wie 4); vqmin=1 sollte ebenfalls helfen. </para> </listitem> <listitem> <para> <emphasis role="bold">qns</emphasis>: sehr langsam, speziell wenn kombiniert mit qprd. Diese Option veranlasst den Encoder, durch Kompressionsartefakte entstandenes Rauschen zu minimieren anstatt das encodierte Video strikt der Quelle anzupassen. Verwende dies nicht, es sei denn du, hast bereits alles andere so weit wie m旦glich optimiert und die Resultate sind immer noch nicht gut genug. </para> </listitem> <listitem> <para> <emphasis role="bold">vqcomp</emphasis>: Frequenzkontrolle optimieren. Welche Werte gut sind, h辰ngt vom Film ab. Du kannst dies sicher so lassen wie es ist, wenn du willst. Wird vqcomp verringert, werden mehr Bits auf Szenen mit geringer Komlexit辰t gelegt, wird es erh旦ht, legt es diese Bits auf Szenen mit hoher Komlexit辰t (Standard: 0.5, Bereich: 0-1. empfohlener Bereich: 0.5-0.7). </para> </listitem> <listitem> <para> <emphasis role="bold">vlelim, vcelim</emphasis>: Setzt die Schwelle f端r die Eliminierung einzelner Koeffizienten bei Helligkeits- und Farbanteilen. Sie werden in allen MPEG-辰hnlichen Algorithmen getrennt encodiert. Die Idee hinter diesen Optionen ist, einige gute Heuristiken zu verwenden, um zu bestimmen, wenn ein Wechsel innerhalb eines Blocks kleiner als der der von dir festgelegte Schwellenwert ist und in solch einem Fall den Block einfach so zu encodieren als f辰nde "kein Wechsel" statt. Das spart Bits und beschleunigt wom旦glich die Encodierunng. vlelim=-4 und vcelim=9 scheinen gut f端r Live-Filme zu sein, helfen aber scheinbar nicht bei Anime; beim Encodieren einer Animation solltest du sie wom旦glich unver辰ndert lassen. </para> </listitem> <listitem> <para> <emphasis role="bold">qpel</emphasis>: Bewegungsabsch辰tzung auf ein viertel Pixel (quarter pel). MPEG-4 verwendet als Voreinstellung eine Halbpixel-Genauigkeit f端r die Bewegungssuche, deswegen hat diese Option einen Overhead, da mehr Informationen in der encodierte Datei untergebracht werden. Der Kompressionsgewinn/-verlust h辰ngt vom Film ab, ist aber in der Regel nicht sonderlich effektiv bei Anime. qpel zieht immer eine signifikante Erh旦hung der CPU-Decodierzeit nach sich (+25% in der Praxis). </para> </listitem> <listitem> <para> <emphasis role="bold">psnr</emphasis>: wirkt sich eigentlich nicht auf das Encodieren aus, schreibt jedoch eine Log-Datei mit Typ/Gr旦�e/Qualit辰t jedes Frames und gibt am Ende die Summe des PSNR Signal-zu-Rauschabstands (Peak Signal to Noise Ratio) aus. </para> </listitem> </itemizedlist> <itemizedlist> <title>Optionen, mit denen besser nicht herumgespielt werden sollte:</title> <listitem> <para> <emphasis role="bold">vme</emphasis>: Der Standardwert ist der beste. </para> </listitem> <listitem> <para> <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisuell adaptive Quantisierung. Du solltest nicht im Traum daran denken, mit diesen Optionen herumzuspielen, wenn dir Qualit辰t wichtig ist. Vern端nftige Werte m旦gen in deinem Fall effektiv sein, aber sei gewarnt, dies ist sehr subjektiv. </para> </listitem> <listitem> <para> <emphasis role="bold">scplx_mask</emphasis>: Versucht, Blockartefakte zu verhindern, Postprocessing ist aber besser. </para> </listitem> </itemizedlist> </sect2> <sect2 id="menc-feat-mpeg4-lavc-example-settings"> <title>Beispiele f端r Encodierungseinstellungen</title> <para> Die folgenden Einstellungen sind Beispiele verschiedener Kombinationen von Encodierungsoptionen, die den Kompromiss Geschwindigkeit gegen端ber Qualit辰t bei gleicher Zielbitrate beeinflussen. </para> <para> Alle Encodierungseinstellungen wurden auf einem Beispielvideo mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps und der Rechner war ein AMD-64 3400+ mit 2400 MHz im 64bit-Modus. Jede Encodiereinstellung zeichnet sich aus durch die gemessene Encodiergeschwindigkeit (in Frames pro Sekunde) und den PSNR-Verlust (in dB) im Vergleich zu Einstellungen f端r "sehr hohe Qualit辰t". Bitte habe Verst辰ndnis, dass du abh辰ngig von deiner Quelldatei, deinem Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche Resultate erzielen wirst. </para> <para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row><entry>Beschreibung</entry><entry>Encodieroptionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> </thead> <tbody> <row> <entry>Sehr hohe Qualit辰t</entry> <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry> <entry>6fps</entry> <entry>0dB</entry> </row> <row> <entry>Hohe Qualit辰t</entry> <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry> <entry>15fps</entry> <entry>-0.5dB</entry> </row> <row> <entry>Schnell</entry> <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry> <entry>42fps</entry> <entry>-0.74dB</entry> </row> <row> <entry>Echtzeit</entry> <entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry> <entry>54fps</entry> <entry>-1.21dB</entry> </row> </tbody> </tgroup> </informaltable> </para> </sect2> <sect2 id="custommatrices"><title>Ma�geschneiderte inter/intra-Matrizen</title> <para> Mit diesem Feature von <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> bist du in der Lage, eigene inter- (I-Frames/Keyframes) und intra-Matrizen (P-Frames/predicted Frames) zu setzen. Es wird von vielen Codecs unterst端tzt: <systemitem>mpeg1video</systemitem> und <systemitem>mpeg2video</systemitem> sollen damit funktionieren. </para> <para> Eine typische Anwendung dieses Features ist, die von den <ulink url="http://www.kvcd.net/">KVCD</ulink>-Specifikationen bevorzugten Matrizen zu setzen. </para> <para> Die <emphasis role="bold">KVCD "Notch" Quantisierungsmatrix:</emphasis> </para> <para> Intra: <screen>8 9 12 22 26 27 29 34 9 10 14 26 27 29 34 37 12 14 18 27 29 34 37 38 22 26 27 31 36 37 38 40 26 27 29 36 39 38 40 48 27 29 34 37 38 40 48 58 29 34 37 38 40 48 58 69 34 37 38 40 48 58 69 79</screen> Inter: <screen>16 18 20 22 24 26 28 30 18 20 22 24 26 28 30 32 20 22 24 26 28 30 32 34 22 24 26 30 32 32 34 36 24 26 28 32 34 34 36 38 26 28 30 32 34 36 38 40 28 30 32 34 36 38 42 42 30 32 34 36 38 40 42 44</screen> </para> <para> Anwendung: <screen>$ mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=... </screen> </para> <para> <screen>$ mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37, 12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27, 29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79 :inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26, 28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34, 36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg</screen> </para> </sect2> <sect2 id="menc-feat-dvd-mpeg4-example"> <title>Beispiel</title> <para> Jetzt hast du gerade eben deine brandneue Kopie von Harry Potter und die Kammer des Schreckens gekauft (nat端rlich die Breitbildedition), und du willst diese DVD so rippen, dass du sie deinem Home Theatre PC hinzuf端gen kannst. Dies ist eine Region-1-DVD, also ist sie NTSC. Das unten stehende Beispiel wird auch auf PAL zutreffen, nur dass du <option>-ofps 24000/1001</option> wegl辰sst (weil die Ausgabeframerate die gleiche ist wie die Eingabeframerate), und logischerweise werden die Ausschnittsabmessungen anders sein. </para> <para> Nach dem Start von <option>mplayer dvd://1</option>, verfolgen wir den detailliert in der Sektion <link linkend="menc-feat-telecine">Wie mit telecine und interlacing in NTSC-DVDs umgehen</link> beschriebenen Prozess und entdecken, dass es progressive Video mit 24000/1001 fps ist, was bedeutet, dass wir keinen inverse telecine-Filter wie <option>pullup</option> oder <option>filmdint</option> anwenden m端ssen. </para> <para id="menc-feat-dvd-mpeg4-example-crop"> Als N辰chstes wollen wir das passende Ausschnittsrechteck bestimmen, also 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, 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> Wir spielen den Film dann mit diesem Filter ab, um seine Korrektheit zu testen: <screen>mplayer dvd://1 -vf crop=720:362:0:58</screen> Und wir sehen, dass er einfach perfekt aussieht. Als N辰chstes vergewissern wir uns, dass Breite und H旦he ein Vielfaches von 16 sind. Die Breite ist gut, aber die H旦he ist es nicht. Da wir in der 7-ten Klasse in Mathe nicht gefehlt haben, wissen wir, dass das am n辰hesten liegende Vielfache von 16 kleiner als 362 der Wert 352 ist (Taschenrechner ist erlaubt). </para> <para> Wir k旦nnten einfach <option>crop=720:352:0:58</option> verwenden, aber es w辰re nett, ein bisschen von oben und ein bisschen von unten wegzunehmen, sodass wir zentriert bleiben. Wir haben die H旦he um 10 Pixel schrumpfen lassen, aber wir wollen das y-Offset nicht um 5 Pixel erh旦hen, da dies eine ungerade Zahl ist und die Qualit辰t nachteilig beeinflussen w端rde. Statt dessen werden wir das y-Offset um 4 Pixel erh旦hen: <screen>mplayer dvd://1 -vf crop=720:352:0:62</screen> Ein anderer Grund, Pixel von beidem - oben und unten - abzuschnipseln ist, dass wir sicher gehen wollen, jegliches halbschwarze Pixel eliminiert zu haben, falls welche existieren. Beachte, falls das Video telecined ist, stelle sicher, dass der <option>pullup</option>-Filter (oder f端r welchen umgekehrten telecine-Filter auch immer du dich entschieden hast) in der Filterkette auftaucht, bevor du zuschneidest. Ist es interlaced, deinterlace es vor dem Zuschneiden. (Wenn du dich entscheidest, interlaced Video beizubehalten, dann vergewissere dich, dass das vertikale crop-Offset ein Vielfaches von 4 ist.) </para> <para> Wenn du wirklich besorgt um den Verlust dieser 10 Pixel bist, ziehst du statt dessen etwa das Herunterskalieren der Abmessungen auf das am n辰chsten liegende Vielfache von 16 vor. Die Filterkette w端rde dann etwa so aussehen: <screen>-vf crop=720:362:0:58,scale=720:352</screen> Das Video auf diese Art herunter zu skalieren wird bedeuten, dass eine kleine Menge Details verloren geht, obwohl es vermutlich nicht wahrnehmbar sein wird. Hoch zu skalieren f端hrt zu niedrigerer Qualit辰t (es sei denn, du erh旦hst die Bitrate). Ausschneiden sondert s辰mtliche dieser Pixel aus. Es ist ein Kompromiss, den du unter allen Umst辰nden in Betracht ziehen solltest. Zum Beispiel, wenn das DVD-Video f端r das Fernsehen hergestellt wurde, solltest du vertikales Skalieren vermeiden, da das Zeilensampling mit der Art und Weise korrespondiert, f端r die der Inhalt urspr端nglich aufgenommen wurde. </para> <para> Bei der �berpr端fung sehen wir, dass unser Film ordentlich Action enth辰lt und sehr viele Details, also w辰hlen wir 2400Kbit f端r unsere Bitrate. </para> <para> Wir sind nun bereit, die 2-pass Encodierung durchzuf端hren. Erster Durchlauf: <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ -o Harry_Potter_2.avi</screen> Und der zweite Durchlauf ist derselbe, au�er dass wir <option>vpass=2</option> festlegen: <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ -o Harry_Potter_2.avi</screen> </para> <para> Die Optionen <option>v4mv:mbd=2:trell</option> werden die Qualit辰t au�erordentlich erh旦hen, auf Kosten der Encodierdauer. Es gibt einen kleinen Grund, diese Optionen auszulassen, wenn das Prim辰rziel die Qualit辰t ist. Die Optionen <option>cmp=3:subcmp=3:mbcmp=3</option> w辰hlen eine Vergleichsfunktion, die eine h旦here Qualit辰t liefert als die Standardeinstellungen. Du darfst mit diesem Parameter rumexperimentieren (ziehe die Manpage zu m旦glichen Werten zu Rate) da verschiedene Funktionen abh辰ngig vom Quellmaterial einen starken Einfluss auf die Qualit辰t haben. Wenn du zum Beispiel meinst, dass <systemitem class="library">libavcodec</systemitem> zu viele Blockartefakte produziert, k旦nntest du ja das experimentelle NSSE als Vergleichsfunktion via <option>*cmp=10</option> w辰hlen. </para> <para> F端r diesen Film wird das resultierende AVI 138 Minuten lang und nahezu 3GB gro� sein. Und weil du erz辰hlt hast, dass eine gro�e Datei nichts ausmacht, ist dies eine perfekt akzeptierbare Gr旦�e. Wolltest du sie aber kleiner haben, k旦nntest du eine niedrigere Bitrate hernehmen. Erh旦hte Bitraten haben verminderte R端ckgaben, w辰hrend wir also deutlich eine Verbesserung von 1800Kbit nach 2000Kbit sehen, ist es oberhalb 2000Kbit nicht so auff辰llig. F端hl dich frei solange herum zu experimentieren bis du gl端cklich bist. </para> <para> Weil wir das Quellvideo durch einen Denoise-Filter geschickt haben, k旦nntest du einige davon w辰hrend des Playbacks wieder hinzuf端gen wollen. Dies zusammen mit dem Nachbearbeitungsfilter <option>spp</option> verbessert die Wahrnehmung der Qualit辰t drastisch und hilft dabei, blockhafte Artefakte aus dem Video zu eliminieren. Mit <application>MPlayer</application>s Option <option>autoq</option> kannst du den Nachbearbeitungsaufwand des spp-Filters abh辰ngig von der verf端gbaren CPU variieren. An dieser Stelle kannst du auch Gamma- und/oder Farbkorrektur zur besten Anpassung an dein Display verwenden, wenn du willst. Zum Beispiel: <screen>mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3</screen> </para> </sect2> </sect1> <sect1 id="menc-feat-xvid"> <title>Encodieren mit dem <systemitem class="library">Xvid</systemitem>-Codec</title> <para> <systemitem class="library">Xvid</systemitem> ist eine freie Programmbibliothek zum Encodieren von MPEG-4 ASP-Videostreams. Bevor du mit <link linkend="xvid"> zu encodieren beginnst, musst du <application>MEncoder</application> so einstellen, dass er es unterst端tzt</link>. </para> <para> Dieses Handbuch beabsichtigt, sich vorwiegend durch dieselbe Art von Informationen auszuzeichnen wie x264's Encodier-Handbuch. Beginne deshalb damit, <link linkend="menc-feat-x264-encoding-options-intro">den ersten Teil</link> dieses Handbuchs zu lesen. </para> <sect2 id="menc-feat-xvid-intro"> <title>Welche Optionen sollte ich verwenden, um die besten Resultate zu erzielen?</title> <para> Bitte beginne mit der Durchsicht der <systemitem class="library">Xvid</systemitem>-Sektion von <application>MPlayer</application>s Manpage. Diese Sektion ist als Erg辰nzung zur Manpage zu verstehen. </para> <para> Die Standardeinstellungen von Xvid sind bereits ein guter Kompromiss zwischen Geschwindigkeit und Qualit辰t, deshalb kannst du ruhig bei ihnen bleiben, wenn nachfolgender Abschnitt dich allzusehr ins Gr端beln bringt. </para> </sect2> <sect2 id="menc-feat-xvid-encoding-options"> <title>Encodieroptionen von <systemitem class="library">Xvid</systemitem></title> <itemizedlist> <listitem> <para> <emphasis role="bold">vhq</emphasis> Diese Einstellung betreffen den Entscheidungsalgorithmus f端r Macrobl旦cke, wobei gilt, je h旦her die Einstellung desto weiser die Entscheidung. Die Standardeinstellung kann f端r jede Encodierung sicher verwendet werden, w辰hrend h旦here Einstellungen immer f端r PSNR hilfreich, jedoch signifikant langsamer sind. Nimm bitte zur Kenntnis, dass ein besserer PSNR nicht notwedigerweise bedeutet, dass das Bild besser aussehen wird, aber er zeigt dir, dass du n辰her am Original bist. Wird er deaktiviert, beschleunigt dies die Encodierung sp端rbar; wenn Geschwindigkeit ein Kriterium f端r dich ist, kann dieser Kompromiss es wert sein. </para> </listitem> <listitem> <para> <emphasis role="bold">bvhq</emphasis> Dies erledigt dieselbe Arbeit wie vhq, macht dies jedoch bei B-Frames. Es hat einen vernachl辰ssigbar kleinen Einfluss auf die Geschwindigkeit, und verbessert geringf端gig die Qualit辰t (um etwa +0.1dB PSNR). </para> </listitem> <listitem> <para> <emphasis role="bold">max_bframes</emphasis> Eine h旦here Anzahl von erlaubten hintereinander folgenden B-frames verbessert gew旦hnlich die Komprimierbarkeit, obwohl dies auch zu mehr Blockartefakten f端hrt. Die Standardeinstellung ist ein guter Kompromiss zwischen Komprimierbarkeit und Qualit辰t, aber wenn du Bitraten-hungrig bist kannst du sie bis auf 3 hochschrauben. Du kannst sie auch auf 1 oder 0 verringern, wenn du auf perfekte Qualit辰t abzielst, wenngleich du in diesem Fall sicherstellen solltest, dass deine Zielbitrate hoch genug ist, um zu gew辰hrleisten, dass der Encoder nicht die Quantisierer h旦her setzen muss, um den Wert zu erreichen. </para> </listitem> <listitem> <para> <emphasis role="bold">bf_threshold</emphasis> Dies kontrolliert die B-Frame-Empfindlichkeit des Encoders, wobei ein h旦herer Wert dazu f端hrt, dass mehr B-Frames angewendet werden (und umgekehrt). Diese Einstellung muss zusammen mit <option>max_bframes</option> verwendet werden; bist du Bitraten-hungrig, solltest du beides erh旦hen, <option>max_bframes</option> und <option>bf_threshold</option>, w辰hrend du <option>max_bframes</option> erh旦hen und <option>bf_threshold</option> verringern kannst, sodass der Encoder B-Frames nur an Stellen anwendet, die diese auch <emphasis role="bold">wirklich</emphasis> brauchen. Eine niedrigere Zahl an <option>max_bframes</option> und ein h旦herer Wert bei <option>bf_threshold</option> ist m旦glicherweise keine kluge Wahl, da dies den Encoder zwingt, B-Frames in Stellen zu setzen, die nicht davon profitieren w端rden und dies daher die visuelle Qualit辰t reduziert. Wie auch immer, wenn du mit Standalone-Playern kompatibel bleiben musst, die nur alte DivX-Profile unterst端tzen (der wiederum h旦chstens einen aufeinander folgenden B-Frame unterst端tzt), w辰re dies dein einziger Weg, die Komprimierbarkeit mittels B-Frames zu verbessern. </para> </listitem> <listitem> <para> <emphasis role="bold">trellis</emphasis> Optimiert den Quantisierungsprozess um einen optimalen Kompromiss zwischen PSNR und Bitrate zu erhalten, was signifikant Bit-sparend wirkt. Diese Bits k旦nnen woanders im Video wieder verwendet werden und verbessern die visuelle Gesamtqualit辰t. Du solltest es immer eingeschaltet lassen, da sein Einfluss auf die Qualit辰t gewaltig ist. Gerade wenn du Geschwindigkeit haben willst, darfst du es nicht deaktivieren, solange du nicht <option>vhq</option> und alle anderen CPU-hungrigeren Optionen auf ein Minimum heruntergesetzt hast. </para> </listitem> <listitem> <para> <emphasis role="bold">hq_ac</emphasis> Aktiviert die Vorhersagemethode f端r einen besseren Koeffizientenaufwand, was die Dateigr旦�e leicht um etwa 0.15 bis 0.19% reduziert (was mit einer PSNR-Erh旦hung um weniger als 0.01dB einhergeht), w辰hrend es eine vernachl辰ssigbar kleine Einwirkung auf die Geschwindigkeit hat. Es empfiehlt sich deshalb, dies immer eingeschaltet zu lassen. </para> </listitem> <listitem> <para> <emphasis role="bold">cartoon</emphasis> Entworfen, um Kartoon-Inhalt besser zu encodieren, und hat keine Auswirkung auf die Geschwindigkeit, da es lediglich die Heuristiken zur Bestimmung des Modus f端r diese Art Inhalt abstimmt. </para> </listitem> <listitem> <para> <emphasis role="bold">me_quality</emphasis> Diese Einstellung ist da, um die Pr辰zision der Bewegungseinsch辰tzung zu kontrollieren. Je h旦her <option>me_quality</option>, desto pr辰ziser wird die Sch辰tzung der Originalbewegung sein, und desto besser wird der resultierende Ausschnitt die Originalbewegung einfangen. </para> <para> Die Standardeinstellung ist in jedem Fall die beste; folglich ist es nicht empfehlenswert, sie herunter zu drehen, es sei denn du hast es wirklich auf Geschwindigkeit abgesehen, da alle durch eine gute Bewegungseinsch辰tzung gesparten Bits woanders verwendet w端rden, was die Gesamtqualit辰t verbessern w端rde. Gehe deshalb nie unter 5, selbst wenn es der letzte Ausweg sein sollte. </para> </listitem> <listitem> <para> <emphasis role="bold">chroma_me</emphasis> Verbessert die Bewegungsabsch辰tzung dadurch, dass auch die chroma-(Farb)-Informationen einbezogen werden, wobei <option>me_quality</option> alleine nur luma (Graustufen) verwendet. Dies verlangsamt die Encodierung um 5-10%, verbessert aber die visuelle Qualit辰t durch Reduzieren von Blockeffekten ein wenig und reduziert die Dateigr旦�e um rund 1.3%. Wenn du Geschwindigkeit haben willst, solltest du diese Option deaktivieren, bevor du anf辰ngst zu 端berlegen, <option>me_quality</option> zu reduzieren. </para> </listitem> <listitem> <para> <emphasis role="bold">chroma_opt</emphasis> Ist daf端r vorgesehen, die chroma-Bildqualit辰t rund um reine wei�e/schwarze Kanten zu verbessern, eher noch als die Kompression zu verbessern. Dies kann dabei helfen, den "Rote Stufen"-Effekt zu reduzieren. </para> </listitem> <listitem> <para> <emphasis role="bold">lumi_mask</emphasis> Versucht, weniger Bitrate auf den Teil eines Bildes zu 端bergeben, der vom menschlichen Auge nicht gut zu sehen ist, was dem Encoder erlauben sollte, die eingesparten Bits auf wichtigere Teile des Bildes anzuwenden. Die durch diese Option gewonnene Encodierungsqualit辰t h辰ngt in hohem Ma�e von pers旦nlichen Vorlieben und von Monitortyp und dessen Einstellungen ab (typischerweise wird es nicht gut aussehen, wenn er hell oder ein TFT-Monitor ist). </para> </listitem> <listitem> <para> <emphasis role="bold">qpel</emphasis> Hebt die Anzahl Kandidaten der Bewegungsvektoren durch Erh旦hung der Pr辰zision der Bewegungsabsch辰tzung von einem halben Pixel (halfpel) auf ein viertel Pixel (quarterpel) an. Die Idee dahinter ist, bessere Bewegungsvektoren zu finden, was wiederum die Bitrate reduziert (deshalb wird die Qualit辰t verbessert). Bewegungsvektoren mit viertel Pixel Pr辰zision brauchen ein paar Extrabits f端r die Codierung, die Bewegungsvektoren ergeben aber nicht immer ein (viel) besseres Resultat. Sehr oft verbraucht der Codec dennoch Bits f端r die Extrapr辰zision, jedoch wird im Gegenzug eine geringe oder keine Extraqualit辰t gewonnen. Ungl端cklicherweise gibt es keinen Weg, den m旦glichen Gewinn von <option>qpel</option> vorzuaussagen, also musst du eigentlich mit und ohne encodieren, um sicher zu gehen. </para> <para> <option>qpel</option> kann fast die doppelte Encodierzeit in Anspruch nehmen und erfordert etwa 25% mehr Verarbeitungsleistung f端rs Decodieren. Es wird nicht von allen Standalone-Playern unterst端tzt. </para> </listitem> <listitem> <para> <emphasis role="bold">gmc</emphasis> Versucht, Bits beim Schwenken von Szenen einzusparen, indem es einen einzelnen Bewegungsvektor f端r den gesamten Frame verwendet. Dies erh旦ht fast immer den PSNR, verlangsamt aber signifikant die Encodierung (genauso wie die Decodierung). Deshalb solltest du es nur nutzen, wenn du <option>vhq</option> auf das Maximum gestellt hast. <systemitem class="library">Xvid</systemitem>s GMC ist h旦her entwickelt als das von DivX, wird aber nur von ein paar Standalone-Playern unterst端tzt. </para> </listitem> </itemizedlist> </sect2> <sect2 id="menc-feat-xvid-encoding-profiles"> <title>Encodierung Profile</title> <para> Xvid unterst端tzt Encodierungsprofile 端ber die Option <option>profile</option>, die dazu verwendet werden, den Eigenschaften des Xvid-Videostreams Restriktionen so aufzuerlegen, dass es 端berall dort abgespielt werden kann, wo das gew辰hlte Profil unterst端tzt wird. Die Restriktionen beziehen sich auf Aufl旦sungen, Bitraten und bestimmte MPEG-4-Features. Die folgende Tabelle zeigt, was jedes Profil unterst端tzt. </para> <informaltable> <tgroup cols="16" align="center"> <colspec colnum="1" colname="col1"/> <colspec colnum="2" colname="col2"/> <colspec colnum="3" colname="col3"/> <colspec colnum="4" colname="col4"/> <colspec colnum="5" colname="col5"/> <colspec colnum="6" colname="col6"/> <colspec colnum="7" colname="col7"/> <colspec colnum="8" colname="col8"/> <colspec colnum="9" colname="col9"/> <colspec colnum="10" colname="col10"/> <colspec colnum="11" colname="col11"/> <colspec colnum="12" colname="col12"/> <colspec colnum="13" colname="col13"/> <colspec colnum="14" colname="col14"/> <colspec colnum="15" colname="col15"/> <colspec colnum="16" colname="col16"/> <colspec colnum="17" colname="col17"/> <spanspec spanname="spa2-5" namest="col2" nameend="col5"/> <spanspec spanname="spa6-11" namest="col6" nameend="col11"/> <spanspec spanname="spa12-17" namest="col12" nameend="col17"/> <tbody> <row> <entry></entry> <entry spanname="spa2-5">Einfach</entry> <entry spanname="spa6-11">Einfach erweitert</entry> <entry spanname="spa12-17">DivX</entry> </row> <row> <entry>Profilname</entry> <entry>0</entry> <entry>1</entry> <entry>2</entry> <entry>3</entry> <entry>0</entry> <entry>1</entry> <entry>2</entry> <entry>3</entry> <entry>4</entry> <entry>5</entry> <entry>Handheld</entry> <entry>Portable NTSC</entry> <entry>Portable PAL</entry> <entry>Home Theater NTSC</entry> <entry>Home Theater PAL</entry> <entry>HDTV</entry> </row> <row> <entry>Breite [Pixel]</entry> <entry>176</entry> <entry>176</entry> <entry>352</entry> <entry>352</entry> <entry>176</entry> <entry>176</entry> <entry>352</entry> <entry>352</entry> <entry>352</entry> <entry>720</entry> <entry>176</entry> <entry>352</entry> <entry>352</entry> <entry>720</entry> <entry>720</entry> <entry>1280</entry> </row> <row> <entry>H旦he [Pixel]</entry> <entry>144</entry> <entry>144</entry> <entry>288</entry> <entry>288</entry> <entry>144</entry> <entry>144</entry> <entry>288</entry> <entry>288</entry> <entry>576</entry> <entry>576</entry> <entry>144</entry> <entry>240</entry> <entry>288</entry> <entry>480</entry> <entry>576</entry> <entry>720</entry> </row> <row> <entry>Framerate [fps]</entry> <entry>15</entry> <entry>15</entry> <entry>15</entry> <entry>15</entry> <entry>30</entry> <entry>30</entry> <entry>15</entry> <entry>30</entry> <entry>30</entry> <entry>30</entry> <entry>15</entry> <entry>30</entry> <entry>25</entry> <entry>30</entry> <entry>25</entry> <entry>30</entry> </row> <row> <entry>Max. mittlere Bitrate [kbps]</entry> <entry>64</entry> <entry>64</entry> <entry>128</entry> <entry>384</entry> <entry>128</entry> <entry>128</entry> <entry>384</entry> <entry>768</entry> <entry>3000</entry> <entry>8000</entry> <entry>537.6</entry> <entry>4854</entry> <entry>4854</entry> <entry>4854</entry> <entry>4854</entry> <entry>9708.4</entry> </row> <row> <entry>H旦chstwert mittlere Bitrate 端ber 3 Sek. [kbps]</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>800</entry> <entry>8000</entry> <entry>8000</entry> <entry>8000</entry> <entry>8000</entry> <entry>16000</entry> </row> <row> <entry>Max. B-Frames</entry> <entry>0</entry> <entry>0</entry> <entry>0</entry> <entry>0</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>0</entry> <entry>1</entry> <entry>1</entry> <entry>1</entry> <entry>1</entry> <entry>2</entry> </row> <row> <entry>MPEG-Quantisierung</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry>Adaptive Quantisierung</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> </row> <row> <entry>Interlaced Encodierung</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> </row> <row> <entry>Viertelpixel</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> <row> <entry>Globale Bewegungskompensierung</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry>X</entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> <entry></entry> </row> </tbody> </tgroup> </informaltable> </sect2> <sect2 id="menc-feat-xvid-example-settings"> <title>Encodierungseinstellungen Beispiele</title> <para> Die folgenden Einstellungen sind Beispiele unterschiedlicher Kombinationen von Encodierungsoptionen, die den Kompromiss zwischen Geschwindigkeit gegen端ber Qualit辰t bei gleicher Zielbitrate betreffen. </para> <para> Alle Encodierungseinstellungen wurden auf einem Beispielvideo mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps, und der Rechner war ein AMD-64 3400+ mit 2400 MHz im 64bit-Modus. Jede Encodierungseinstellung zeichnet sich aus durch die gemessene Encodiergeschwindigkeit (in Frames pro Sekunde) und den PSNR-Verlust (in dB) im Vergleich zu Einstellungen f端r "sehr hohe Qualit辰t". Bitte hab Verst辰ndnis, dass du abh辰ngig von deiner Quelldatei, deinem Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche Resultate erzielen wirst. </para> <para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row><entry>Beschreibung</entry><entry>Encodieroptionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> </thead> <tbody> <row> <entry>Sehr hohe Qualit辰t</entry> <entry><option>chroma_opt:vhq=4:bvhq=1:quant_type=mpeg</option></entry> <entry>16fps</entry> <entry>0dB</entry> </row> <row> <entry>Hohe Qualit辰t</entry> <entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry> <entry>18fps</entry> <entry>-0.1dB</entry> </row> <row> <entry>Schnell</entry> <entry><option>turbo:vhq=0</option></entry> <entry>28fps</entry> <entry>-0.69dB</entry> </row> <row> <entry>Echtzeit</entry> <entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry> <entry>38fps</entry> <entry>-1.48dB</entry> </row> </tbody> </tgroup> </informaltable> </para> </sect2> </sect1> <sect1 id="menc-feat-x264"> <title>Encodieren mit dem <systemitem class="library">x264</systemitem>-Codec</title> <para> <systemitem class="library">x264</systemitem> ist eine freie Programmbibliothek zum Encodieren von H.264/AVC-Videostreams. Bevor du mit <link linkend="xvid"> zu encodieren beginnst, musst du <application>MEncoder</application> so einstellen, dass er es unterst端tzt</link>. </para> <sect2 id="menc-feat-x264-encoding-options"> <title>Encodieroptionen von x264</title> <para> Bitte beginne mit der Durchsicht der <systemitem class="library">x264</systemitem>-Sektion von <application>MPlayer</application>s Manpage. Diese Sektion ist als Anhang zur Manpage vorgesehen. Hier wirst du Schnellhinweise dazu finden, welche Optionen am wahrscheinlichsten die meisten Leute interessieren. Die Manpage ist knapper gehalten, aber auch vollst辰ndiger, und zeigt oft viel bessere technische Details. </para> <sect3 id="menc-feat-x264-encoding-options-intro"> <title>Einf端hrung</title> <para>Dieses Handbuch ber端cksichtigt zwei Hauptkategorien der Encodieroptionen:</para> <orderedlist> <listitem> <para> Optionen, die haupts辰chlich Encodierdauer gegen端ber Qualit辰t abw辰gen </para> </listitem> <listitem> <para> Optionen, die zur Erf端llung zahlreicher pers旦nlicher Vorlieben und spezieller Anforderungen n端tzlich sind </para> </listitem> </orderedlist> <para> Letztendlich kannst nur du entscheiden, welche Optionen f端r deine Zwecke am besten geeignet sind. Die Entscheidung f端r die erste Klasse der Optionen ist die einfachste: Du musst nur entscheiden, ob du denkst, dass Qualit辰tsunterschiede Geschwindigkeitsunterschiede rechtfertigen. F端r die zweite Klasse der Optionen sind die Vorz端ge weitaus subjektiver, und mehr Faktoren k旦nnen involviert sein. Beachte, dass manche der Optionen f端r "pers旦nliche Vorlieben und spezielle Anforderungen" noch gro�e Auswirkungen auf Geschwindigkeit oder Qualit辰t haben k旦nnen, das ist aber nicht, wozu sie prim辰r benutzt werden. Ein paar der Optionen f端r "pers旦nliche Vorlieben" k旦nnen sogar �nderungen verursachen, die f端r manche Leute besser aussehen aber schlechter f端r andere. </para> <para> Bevor du fortf辰hrst, musst du verstehen, dass dieses Handbuch nur eine Qualit辰tsmetrik verwendet: globaler PSNR. F端r eine kurze Erkl辰rung, was PSNR ist, schau dir <ulink url="http://en.wikipedia.org/wiki/PSNR">den Wikipedia-Artikel zu PSNR</ulink> an. Globaler PSNR ist die letzte gemeldete PSNR-Nummer, wenn du die Option <option>psnr</option> in <option>x264encopts</option> einbindest. Jedesmal wenn du eine Forderung nach PSNR liest, ist eine der Annahmen hinter dieser Forderung, dass gleiche Bitraten verwendet werden. </para> <para> Nahezu alle dieser Handbuchkommentare unterstellen, dass du 2-pass anwendest. Beim Vergleich der Optionen gibt es zwei Hauptgr端nde, 2-pass-Encodierung zu nutzen. Der erste ist, 2-pass bringt rund 1dB PSNR, was einen sehr gro�en Unterschied ausmacht. Der zweite ist, Optionen zu testen, indem man direkte Qualit辰tsvergleiche zu 1-pass-Encodierung anstellt, f端hrt einen einen wichtigen verwirrenden Faktor ein: die Bitrate variiert bei jeder Encodierung oft signifikant. Es ist nicht immer einfach zu sagen, ob Qualit辰ts辰nderungen vorwiegend auf ge辰nderte Optionen zur端ckzuf端hren sind oder ob sie meist essentielle, zuf辰llige Unterschiede in der erhaltenen Bitrate reflektieren. </para> </sect3> <sect3 id="menc-feat-x264-encoding-options-speedvquality"> <title>Optionen, die prim辰r Geschwindigkeit und Qualit辰t betreffen</title> <itemizedlist> <listitem> <para> <emphasis role="bold">subq</emphasis>: Von den Optionen, die dir erlauben, einen Kompromiss zwischen Geschwindigkeit und Qualit辰t einzugehen, sind <option>subq</option> und <option>frameref</option> (siehe unten) gew旦hnlich die bei weitem wichtigsten. Wenn du dich f端r die Optimierung von entweder Geschwindigkeit oder Qualit辰t interessierst, sind diese die ersten, die du in Erw辰gung ziehen solltest. Bei der Dimension Geschwindigkeit, interagieren die Optionen <option>frameref</option> und <option>subq</option> ziemlich stark miteinander. Die Erfahrung zeigt, dass mit einem Referenzframe <option>subq=5</option> (die Standardeinstellung) das ganze etwa 35% mehr Zeit in Anspruch nimmt als <option>subq=1</option>. Mit 6 Referenzframes w辰chst der Nachteil auf 60%. Der Effekt, den <option>subq</option> auf den PSNR aus端bt, scheint ziemlich konstant zu sein, ungeachtet der Anzahl der Referenzframes. Typischerweise erreicht <option>subq=5</option> einen 0.2-0.5 dB h旦heren globalen PSNR im Vergleich zu <option>subq=1</option>. Dies ist gew旦hnlich ausreichend, um sichtbar zu werden. </para> <para> <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% bewegen. Im Unterschied zu anderen Levels von <option>subq</option> h辰ngt das Verhalten von <option>subq=6</option> nicht sehr von <option>frameref</option> und <option>me</option> ab. Statt dessen h辰ngt die Effektivit辰t von <option>subq=6</option> gr旦�tenteils von der Anzahl der verwendeten B-Frames ab. Im Normalgebrauch bedeutet dies, <option>subq=6</option> hat einen gro�en Einfluss auf Geschwindigkeit und Qualit辰t in komplexen, stark bewegten Szenen, kann aber auch einen geringen Effekt in Szenen mit wenig Bewegung haben. Beachte, dass dennoch empfohlen wird, <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> <emphasis role="bold">frameref</emphasis>: <option>frameref</option> ist per Voreinstellung auf 1 gesetzt, jedoch solltest du deshalb nicht darauf schlie�en, dass es unbedingt auf 1 gesetzt sein muss. Allein die Erh旦hung von <option>frameref</option> auf 2 bringt rund 0.15dB PSNR mit einem Geschwindigkeitsnachteil von 5-10%; dies sieht nach einem guten Kompromiss aus. <option>frameref=3</option> bringt rund 0.25dB PSNR mehr als <option>frameref=1</option>, was einen sichtbaren Unterschied machen sollte. <option>frameref=3</option> ist rund 15% langsamer als <option>frameref=1</option>. Leider setzen vermindernde R端ckgaben schnell ein. <option>frameref=6</option> kann erwartungsgem辰� nur 0.05-0.1 dB mehr als <option>frameref=3</option> bei zus辰tzlichen 15% Geschwindigkeitsnachteil. Oberhalb <option>frameref=6</option> sind die Qualit辰tsgewinne f端r gew旦hnlich sehr klein (obwohl du w辰hrend der ganzen Diskussion im Kopf behalten solltest, dass sie abh辰ngig von deiner Quelle stark variieren k旦nnen). In einem ziemlich typischen Fall wird <option>frameref=12</option> den globalen PSNR um ein bisschen mehr als 0.02dB gegen端ber <option>frameref=6</option> verbessern, bei Geschwindigkeitseinbu�en von 15%-20%. Bei so hohen <option>frameref</option>-Werten ist das wirklich einzig Gute, dass man sagen kann, dass ein weiteres Anheben dieses Wertes ziemlich sicher nie den PSNR <emphasis role="bold">sch辰digen</emphasis> wird, jedoch sind zus辰tzliche Qualit辰tsvorteile sogar kaum messbar, geschweige denn wahrnehmbar. </para> <note><title>Beachte:</title> <para> Das Erh旦hen von <option>frameref</option> auf unn旦tig hohe Werte <emphasis role="bold">kann</emphasis> und <emphasis role="bold">tut dies 端blicherweise auch</emphasis> die Codiereffizienz sch辰digen, wenn du CABAC ausschaltest. Mit eingeschaltetem CABAC (das Standardverhalten) scheint die M旦glichkeit, <option>frameref</option> "zu hoch" zu setzen, gegenw辰rtig zu weit entfernt um sich Sorgen zu machen, und in der Zukunft werden wom旦glich Optimierungen diese M旦glichkeit ganz und gar ausschlie�en. </para> </note> <para> Wenn du auf Geschwindigkeit abzielst, ist ein vern端nftiger Kompromiss, im ersten Durchgang niedrigere <option>subq</option>- und <option>frameref</option>-Werte zu nehmen, und sie danach im zweten Durchgang zu erh旦hen. Typischerweise hat dies einen vernachl辰ssigbar negativen Effekt auf die Encodierqualit辰t: Du wirst wom旦glich unter 0.1dB PSNR verlieren, was viel zu klein f端r einen sichtbaren Unterschied sein sollte. Trotzdem, unterschiedliche Werte f端r <option>frameref</option> k旦nnen auf verschiedene Weise die Frametypenbestimmung beeinflussen. H旦chstwahrscheinlich sind dies au�erordentlich seltene F辰lle, willst du jedoch wirklich sicher gehen, ziehe in Betracht, ob dein Video entweder Vollbild- respektive Einblendungsmuster oder sehr gro�e tempor辰re �berdeckungen enth辰lt, was einen I-Frame erzwingen k旦nnte. Passe <option>frameref</option> des ersten Durchgangs so an, dass es gro� genug ist, die Dauer des Einblendungszyklus (oder der �berdeckungen) zu enthalten. Zum Beispiel, wenn die Szene zwischen zwei Bildern 端ber eine Zeitspanne von drei Frames r端ckw辰rts und vorw辰rts springt, setze <option>frameref</option> des ersten Durchgangs auf 3 oder h旦her. Dieser Sachverhalt kommt vermutlich extrem selten in Videomaterial mit Live Action vor, erscheint aber manchmal bei eingefangenen Computerspiel-Sequenzen. </para> </listitem> <listitem> <para> <emphasis role="bold">me</emphasis>: Diese Option dient der Wahl der Suchmethode der Bewegungseinsch辰tzung. Diese Option zu ver辰ndern stellt einen 端berschaubaren Kompromiss zwischen Qualit辰t und Geschwindigkeit dar. <option>me=dia</option> ist nur ein paar Prozent schneller als die Standardsuche, auf Kosten von unter 0.1dB globalem PSNR. Die Standardeinstellung (<option>me=hex</option>) ist ein angemessener Kompromiss zwischen Qualit辰t und Geschwindigkeit. <option>me=umh</option> bringt ein wenig unter 0.1dB globalem PSNR, mit Geschwindigkeitsnachteil, der abh辰ngig von <option>frameref</option> variiert. Bei hohen <option>frameref</option>-Werten (z.B. 12 oder so) ist <option>me=umh</option> etwa 40% langsamer als die Standardeinstellung <option>me=hex</option>. Mit <option>frameref=3</option> f辰llt der Geschwindigkeitsnachteil auf 25%-30%. </para> <para> <option>me=esa</option> verwendet eine gr端ndliche, f端r die praktische Anwendung zu langsame Suche. </para> </listitem> <listitem> <para> <emphasis role="bold">partitions=all</emphasis>: Diese Option aktiviert die Verwendung von 8x4, 4x8 und 4x4 Unterteilungen in den vorhergesagten Macrobl旦cken (zus辰tzlich zu den Standardunterteilungen). Sie zu aktivieren f端hrt zu einem recht best辰ndigen Geschwindigkeitsverlust von 10%-15%. Sie ist ziemlich nutzlos bei Quellen, die nur langsame Bewegungen enthalten, obwohl in manchen Quellen mit sehr viel Bewegung und vielen kleinen, sich bewegenden Objekten Zugewinne von etwa 0.1dB erwartet werden k旦nnen. </para> </listitem> <listitem> <para> <emphasis role="bold">bframes</emphasis>: Wenn du gewohnt bist, mit anderen Codecs zu encodieren, hast du wom旦glich empfunden, dass B-Frames nicht immer n端tzlich sind. Bei H.264 wurde dies ge辰ndert: es gibt neue Techniken und Blocktypen, die in B-Frames m旦glich sind. F端r gew旦hnlich kann selbst ein einf辰ltiger Algorithmus zur Wahl der B-Frames einen signifikanten PSNR-Vorteil bringen. Es ist interessant festzustellen, dass die Anwendung von B-Frames normalerweise den zweiten Durchgang ein bisschen beschleunigt, und er kann auch eine Encodierung mit einfachem Durchgang etwas schneller machen, wenn adaptive B-Frame-Bestimmung deaktiviert ist. </para> <para> Mit deaktivierter adaptiver B-Framebestimmung (<option>nob_adapt</option> von <option>x264encopts</option>) ist der optimale Wert f端r diese Einstellung normalerweise nicht mehr als <option>bframes=1</option>, andernfalls leiden Szenen mit sehr viel Bewegung darunter. Mit aktivierter adaptiver B-Framebestimmung (das Standardverhalten) ist es sicher, h旦here Werte zu verwenden; der Encoder wird die Anwendung von B-Frames in Szenen reduzieren, in denen sie die Kompression sch辰digen k旦nnten. Der Encoder zieht es selten vor, mehr als 3 oder 4 B-Frames zu verwenden; diese Option h旦her zu setzen wird einen geringen Effekt haben. </para></listitem> <listitem> <para> <emphasis role="bold">b_adapt</emphasis>: Beachte: Dies ist standardm辰�ig eingeschaltet. </para> <para> Ist diese Option aktiviert, wird der Encoder einen einigerma�en schnellen Entscheidungsprozess zur Reduzierung der Anzahl B-Frames in Szenen anwenden, die nicht viel von ihnen profitieren w端rden. Du kannst <option>b_bias</option> dazu verwenden, zu optimieren wie froh der Encoder 端ber B-Frames sein soll. Der Geschwindigkeitsnachteil adaptiver B-Frames ist gegenw辰rtig ziemlich bescheiden, und genauso ist der potentielle Qualit辰tsgewinn. Es sollte aber normalerweise nicht schaden. Beachte, dass dies nur Geschwindigkeit und Frametypenbestimmung im ersten Durchgang betrifft. <option>b_adapt</option> und <option>b_bias</option> haben keinen Effekt auf nachfolgende Durchg辰nge. </para> </listitem> <listitem><para> <emphasis role="bold">b_pyramid</emphasis>: Du kannst diese Option genauso gut aktivieren, falls du >=2 B-Frames verwendest; wie die Manpage dir sagt, erreichst du eine kleine Qualit辰tsverbesserung bei keinerlei Geschwindigkeitseinbu�e. Beachte, dass diese Videos von libavcodec-basierten Decodern 辰lter als etwa 5. M辰rz 2005 nicht gelesen werden k旦nnen. </para> </listitem> <listitem> <para> <emphasis role="bold">weight_b</emphasis>: In typischen F辰llen gibt es nicht viel Gewinn mit dieser Option. Trotzdem, in 端berblendenden oder ins Schwarze 端bergehenden Szenen liefert die gewichtete Vorhersage ziemlich gro�e Einsparungen bei der Bitrate. In MPEG-4 ASP wird ein �bergang ins Schwarze gew旦hnlich am besten als eine Serie aufw辰ndiger I-Frames codiert; das Verwenden einer gewichteten Vorhersage in B-Frames macht es m旦glich, wenigstens manche von diesen in viel kleinere B-Frames zu wandeln. Der Verlust an Encodierzeit ist minimal, da keine extra Bestimmungen vorgenommen werden m端ssen. Auch werden die CPU-Anforderungen des Encoders, im Gegensatz zu den Einsch辰tzungen mancher Leute, von gewichteter Vorhersage nicht sonderlich beeinflusst, ansonsten bleibt alles gleich. </para> <para> Leider hat der aktuelle Algorithmus zur adaptiven B-Frame-Bestimmung eine starke Tendenz, B-Frames w辰hrend des Fadens zu verhindern. Bis sich dies 辰ndert, kann es eine gute Idee sein, <option>nob_adapt</option> zu deinen x264encopts hinzuzuf端gen, falls du erwartest, dass Fades einen gro�en Effekt in deinem jeweiligen 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> <sect3 id="menc-feat-x264-encoding-options-misc-preferences"> <title>Diverse Eigenschaften betreffende Optionen</title> <itemizedlist> <listitem> <para> <emphasis role="bold">2-pass-Encodierung</emphasis>: Oben wurde vorgeschlagen, immer 2-pass-Encodierung anzuwenden. Es gibt aber durchaus Gr端nde, dies nicht zu tun. Beispielsweise bist du, wenn du Live-TV aufnimmst und in Echtzeit encodierst, gezwungen, einen einzigen Durchgang zu verwenden. Auch ist ein Durchgang offensichtlich schneller als zwei Durchg辰nge; wenn du exakt die gleichen Optionen bei beiden Durchg辰ngen anwendest, ist das Encodieren in zwei Durchg辰ngen mindestens zweimal so langsam. </para> <para> Noch gibt es sehr gute Gr端nde, in zwei Durchg辰ngen zu encodieren. Zum einen ist Ratenkontrolle in einem Durchgang kein Allheilmittel. Sie trifft oft eine unvern端nftige Auswahl, weil sie das gro�e Bild nicht sehen kann. Zum Beispiel angenommen, du hast ein zwei Minuten langes Video bestehend aus zwei ausgepr辰gten H辰lften. Die erste H辰lfte besitzt eine 60 Sekunden dauernde Szene mit sehr viel Bewegung, die einzeln f端r sich etwa 2500kbps ben旦tigt, um anst辰ndig auszusehen. Direkt daruffolgend kommt eine viel weniger anspruchsvolle 60 Sekunden lange Szene, die bei 300kbps gut aussieht. Angenommen du forderst in der Theorie 1400kbps an, was beiden Szenen ausreichend entgegenkommen w端rde. Die Ratenkontrolle in einem Durchgang wird in diesem Fall ein paar "Fehler" machen. Zuallererst wird es in beiden Segmenten 1400kbps anpeilen. Das erste Segment k旦nnte schwer 端berquantisiert enden, was es unakzeptabel und unangemessen blockhaft aussehen l辰sst. Das zweite Segment wird schwer unterquantisiert sein; es sieht vielleicht perfekt aus, aber der Bitratenverlust dieser Perfektion wird komplett unangemessen sein. Noch schwerer vermeidbar ist das Problem am �bergang beider Szenen. Die ersten Sekunden der H辰lfte mit wenig Bewegung wird enorm 端berquantisiert sein, weil die Ratenkontrolle noch die Art Anforderung an die Bitrate erwartet, der sie in der ersten H辰lfte des Videos begegnet war. Diese "Fehlerperiode" der extrem 端berquantisierten Szene mit wenig Bewegung wird f端rchterlich schlecht aussehen, und wird sogar weniger als die 300kbps in Anspruch nehmen als das, was sie genommen h辰tte, um annehmbar auszusehen. Es gibt Mittel und Wege, diese F辰lle des Encodierens in einem Durchgang zu mildern, diese werden allerdingst dahin tendieren, die fehlerhaften Vorhersagen der Bitraten zu h辰ufen. </para> <para> Multipass-Ratenkontrolle kann gegen端ber der eines einzigen Durchgangs enorm gro�e Vorteile bieten. Indem sie die im ersten Encodierungsdurchlauf gesammelte Statistik verwendet, kann der Encoder mit angemessener Genauigkeit den Aufwand (in Bit) absch辰tzen, den das Encodieren jeden gegebenen Frames bei jedem gegebenen Quantisierer erfordert. Dies erlaubt eine viel rationalere, besser geplante Zuweisung von Bits zwischen den bithungrigen Szenen mit viel Bewegung und denen bescheidenen mit wenig Bewegung. Siehe <option>qcomp</option> unten f端r einige Ideen dar端ber, wie man diese Zuweisungen nach seinem Geschmack optimiert. </para> <para> Dar端ber hinaus brauchen zwei Durchg辰nge zweimal so lang wie ein Durchgang. Du kannst die Optionen im ersten Durchgang auf h旦here Geschwindigkeit und niedrigere Qualit辰t optimieren. Wenn du deine Optionen geschickt w辰hlst, kannst du einen sehr schnellen ersten Durchgang hinkriegen. Die resultierende Qualit辰t im zweiten Durchgang wird geringf端gig niedriger ausfallen, weil die Gr旦�envorhersage weniger akkurat ist, jedoch ist die Qualit辰tsdifferenz normalerweise viel zu klein, um sichtbar zu sein. Versuche zum Beispiel <option>subq=1:frameref=1</option> zu <option>x264encopts</option> des ersten Durchgangs hinzuzuf端gen. Verwende dann im zweiten Durchgang langsamere, hochwertigere Optionen: <option>subq=6:frameref=15:partitions=all:me=umh</option> </para> </listitem> <listitem> <para> <emphasis role="bold">Encodierung mit drei Durchg辰ngen</emphasis>? x264 bietet die M旦glichkeit, eine beliebige Anzahl aufeinander folgender Durchg辰nge auszuf端hren. Wenn du <option>pass=1</option> im ersten Durchgang spezifizierst, dann verwende <option>pass=3</option> im nachfolgenden Durchgang, der nachfolgende Durchgang wird beides tun, die Statistik des vorhergehenden Durchgangs lesen und seine eigene Statistik schreiben. Ein zus辰tzlicher Durchgang, der diesem folgt, wird eine sehr gute Basis haben, von der aus er hochpr辰zise Vorhersagen der Framegr旦�en bei einem gew辰hlten Quantisierer machen kann. In der Praxis ist der damit erzielte gesamte Qualit辰tsgewinn gew旦hnlich nahezu null, und ziemlich wahrscheinlich resultiert ein dritter Durchgang in einem geringf端gig schlechteren globalen PSNR als der Durchgang davor. In der typischen Anwendung helfen drei Durchg辰nge, wenn du entweder eine schleche Vorhersage der Bitraten oder schlecht aussehende Szenen端berg辰nge beim Verwenden nur eines Durchlaufs bekommst. Dies passiert mit ziemlicher Wahrscheinlichkeit bei extrem kurzen Clips. Ebenso gibt es ein paar Spezialf辰lle, in denen drei (oder mehr) Durchg辰nge erfahrenen Nutzern dienlich sind, aber um es kurz zu machen, dieses Handbuch behandelt die Diskussion solcher speziellen F辰lle nicht. </para> </listitem> <listitem> <para> <emphasis role="bold">qcomp</emphasis>: <option>qcomp</option> w辰gt die Anzahl der f端r "aufw辰ndige" Frames mit viel Bewegung vorgesehenen Bits gegen die f端r "weniger aufw辰ndige" Frames mit wenig Bewegung ab. Bei einem Extrem zielt <option>qcomp=0</option> auf eine echte konstante Bitrate ab. Typischerweise w端rde dies Szenen mit viel Bewegung vollkommen 辰tzend aussehen lassen, w辰hrend Szenen mit wenig Bewegung wom旦glich absolut perfekt aussehen, jedoch 旦fter mehr Bitrate verwenden w端rden, als sie es f端r lediglich sehr gutes Aussehen br辰uchten. Beim anderen Extrem erreicht <option>qcomp=1</option> nahezu konstante Quantisierungsparameter (QP). Ein konstanter QP sieht nicht schlecht aus, die meisten Leute meinen aber, es sei vern端nftiger, etwas Bitrate aus den extrem aufw辰ndigen Szenen zu nehmen (wobei dort der Qualit辰tsverlust micht ganz so augenf辰llig ist) und sie wieder den Szenen zuzuweisen, die bei sehr guter Qualit辰t leichter zu encodieren sind. <option>qcomp</option> ist per Voreinstellung auf 0.6 gesetzt, was f端r den Geschmack mancher Leute etwas zu langsam sein k旦nnte (0.7-0.8 werden im Allgemeinen auch verwendet). </para> </listitem> <listitem> <para> <emphasis role="bold">keyint</emphasis>: <option>keyint</option> ist einzig und allein zur Abw辰gung der Durchsuchbarkeit der Datei gegen端ber der Codiereffiziez da. Als Standardwert ist <option>keyint</option> auf 250 gesetzt. In Material mit 25fps garantiert dies, auf 10 Sekunden genau suchen zu k旦nnen. Wenn du meinst, es w辰re wichtig und n端tzlich, auf 5 Sekunden genau suchen zu k旦nnen, setze es auf <option>keyint=125</option>; dies wird der Qualit辰t/Bitrate leicht schaden. Wenn es dir nur um Qualit辰t geht und nicht um die Durchsuchbarkeit, kannst du viel h旦here Werte setzen (vorausgesetzt du verstehst, da� es verringerte Resultate gibt, die verschwindend klein werden oder sogar gegen null gehen). Der Videostream wird nach wie vor suchbare Stellen besitzen, solange einige Szenenwechsel vorhanden sind. </para> </listitem> <listitem> <para> <emphasis role="bold">deblock</emphasis>: Dieses Thema ist im Begriff etwas kontrovers zu geraten. </para> <para> H.264 definiert eine simple Deblocking-Prozedur bei I-Bl旦cken, die von vorgegebenen St辰rken und vom QP des strittigen Blocks abh辰ngigen. Mit dem Standardwert werden hohe QP-Bl旦cke stark gefiltert, und niedrige QP-Bl旦cke werden 端berhaupt nicht entblockt. Die vom Standard definierten vorgegebenen St辰rken sind mit Bedacht gew辰hlt und die Chancen stehen sehr gut, dass sie PSNR-optimal sind, egal welches Video auch immer du zu encodieren versuchst. Der Parameter <option>deblock</option> erlaubt dir, Offsets festzulegen, um Deblocking-Schwellen voreinzustellen. </para> <para> Viele Leute scheinen zu glauben, es sei eine gute Idee, die St辰rke des Deblocking-Filters um hohe Betr辰ge abzusenken (sagen wir -3). Dies ist jedoch meist keine gute Idee, und in den meisten F辰llen verstehen Leute, die das machen, nicht viel davon wie Deblocking standardm辰�ig funktioniert. </para> <para> Die erste und wichtigste Sache, die man 端ber den in-loop-Deblocking-Filter wissen sollte, ist, dass die Standardschwellenwerte meistens PSNR-optimal sind. In den seltenen F辰llen, in denen sie nicht optimal sind, ist das ideale Offset plus oder minus 1. Die Deblocking-Parameter durch einen h旦heren Betrag anzupassen garantiert meist, dem PSNR zu schaden. Das Verst辰rken des Filters wird mehr Details verwischen; den Filter zu schw辰chen wird das Auftreten von Blockeffekten erh旦hen. </para> <para> Es ist definitiv eine schlechte Idee, die Deblocking-Schwellenwerte herabzusetzen, falls deine Quelle eine vorwiegend niedrige r辰umliche Komplexit辰t besitzt (z.B. nicht viele Details oder Rauschen). Der in-loop-Filter macht eigentlich einen exzellenten Job durch das Kaschieren auftretender Artefakte. Besitzt die Quelle eine hohe r辰umliche Komplexit辰t, sind Artefakte weniger bemerkbar. Dies ist so, weil das Schwingen (ringing) dazu neigt, wie Details oder Rauschen auszusehen. Die viselle Wahrnehmung des Menschen erkennt leicht, wenn Details entfernt wurden, aber erkennt nicht so leicht, wenn Rauschen falsch dargestellt wird. Wird die Qualit辰t subjektiv, sind Details und Rauschen etwas austauschbares. Durch das Herabsetzen der Deblocking-Filterst辰rke verst辰rkst du h旦chstwahrscheinlich Fehler durch Hinzuf端gen von Schwingungsartefakten, aber dem Auge f辰llt nichts auf, weil es die Artefakte mit Details verwechselt. </para> <para> Dies rechtfertigt jedoch <emphasis role="bold">nach wie vor</emphasis> nicht das Herabsetzen der Deblocking-Filterst辰rke. Du kannst im Allgemeinen besseres Qualit辰tsrauschen im Postprocessing erzielen. Falls deine H.264-Encodierungen zu verschwommen oder verschmiert aussehen, versuche, mit <option>-vf noise</option> beim Abspielen des encodierten Films herumzuspielen. <option>-vf noise=8a:4a</option> sollte die meisten weichen Artefakte kaschieren. Es wird meist mit Sicherheit besser aussehen als die Resultate, die du durch einfaches Herumt端fteln mit dem Deblocking-Filter bekommen h辰ttest. </para></listitem> </itemizedlist> </sect3> </sect2> <sect2 id="menc-feat-x264-example-settings"> <title>Beispiele f端r Encodieroptionen</title> <para> Die folgenden Einstellungen sind Beispiele unterschiedlicher Kombinationen von Encodier-Optionen, die einen Kompromiss zwischen Geschwindigkeit und Qualit辰t bei gleicher Zielbitrate darstellen. </para> <para> All diese Encodier-Einstellungen wurden an einem Beispielvideo mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps, und der Rechner war ein AMD-64 3400+ mit 2400 MHz im 64bit-Modus. Jede Encodier-Einstellung zeichnet sich durch eine gemessene Encodiergeschwindigkeit (in Frames pro Sekunde) und dem PSNR-Verlust (in dB) im Vergleich zu den "sehr hochwertigen" Einstellung aus. Bitte hab daf端r Verst辰ndnis, dass du abh辰ngig von deiner Quelle, deinem Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche Resultate erhalten kannst. </para> <para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row><entry>Beschreibung</entry><entry>Encodier-Optionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> </thead> <tbody> <row> <entry>Sehr hohe Qualit辰t</entry> <entry><option>subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b</option></entry> <entry>6fps</entry> <entry>0dB</entry> </row> <row> <entry>Hohe Qualit辰t</entry> <entry><option>subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b</option></entry> <entry>13fps</entry> <entry>-0.89dB</entry> </row> <row> <entry>Schnell</entry> <entry><option>subq=4:bframes=2:b_pyramid:weight_b</option></entry> <entry>17fps</entry> <entry>-1.48dB</entry> </row> </tbody> </tgroup> </informaltable> </para> </sect2> </sect1> <sect1 id="menc-feat-video-for-windows"> <title>Encodieren mit der <systemitem class="library">Video for Windows</systemitem> Codecfamilie</title> <para> Video for Windows bietet einfaches Encodieren mittels bin辰rer Video-Codecs. Du kannst mit folgenden Codecs encodieren (solltest du mehr haben, teile es uns bitte mit!) </para> <para> Beachte, dass der Support hierf端r sehr experimentell ist, und einige Codecs arbeiten vielleicht nicht korrekt. Manche Codecs werden nur in bestimmten Farbr辰umen funktionieren, versuche <option>-vf format=bgr24</option> und <option>-vf format=yuy2</option>, falls ein Codec versagt oder einen falschen Output liefert. </para> <sect2 id="menc-feat-enc-vfw-video-codecs"> <title>Von Video for Windows unterst端tzte Codecs</title> <para> <informaltable frame="all"> <tgroup cols="4"> <thead> <row> <entry>Video-Codec Dateiname</entry> <entry>Beschreibung (FourCC)</entry> <entry>md5sum</entry> <entry>Kommentar</entry> </row> </thead> <tbody> <row> <entry>aslcodec_vfw.dll</entry> <entry>Alparysoft verlustfreier (lossless) Codec vfw (ASLC)</entry> <entry>608af234a6ea4d90cdc7246af5f3f29a</entry> <entry></entry> </row> <row> <entry>avimszh.dll</entry> <entry>AVImszh (MSZH)</entry> <entry>253118fe1eedea04a95ed6e5f4c28878</entry> <entry>ben旦tigt <option>-vf format</option></entry> </row> <row> <entry>avizlib.dll</entry> <entry>AVIzlib (ZLIB)</entry> <entry>2f1cc76bbcf6d77d40d0e23392fa8eda</entry> <entry></entry> </row> <row> <entry>divx.dll</entry> <entry>DivX4Windows-VFW</entry> <entry>acf35b2fc004a89c829531555d73f1e6</entry> <entry></entry> </row> <row> <entry>huffyuv.dll</entry> <entry>HuffYUV verlustfrei (lossless) (HFYU)</entry> <entry>b74695b50230be4a6ef2c4293a58ac3b</entry> <entry></entry> </row> <row> <entry>iccvid.dll</entry> <entry>Cinepak Video (cvid)</entry> <entry>cb3b7ee47ba7dbb3d23d34e274895133</entry> <entry></entry> </row> <row> <entry>icmw_32.dll</entry> <entry>Motion Wavelets (MWV1)</entry> <entry>c9618a8fc73ce219ba918e3e09e227f2</entry> <entry></entry> </row> <row> <entry>jp2avi.dll</entry> <entry>ImagePower MJPEG2000 (IPJ2)</entry> <entry>d860a11766da0d0ea064672c6833768b</entry> <entry><option>-vf flip</option></entry> </row> <row> <entry>m3jp2k32.dll</entry> <entry>Morgan MJPEG2000 (MJ2C)</entry> <entry>f3c174edcbaef7cb947d6357cdfde7ff</entry> <entry></entry> </row> <row> <entry>m3jpeg32.dll</entry> <entry>Morgan Motion JPEG Codec (MJPG)</entry> <entry>1cd13fff5960aa2aae43790242c323b1</entry> <entry></entry> </row> <row> <entry>mpg4c32.dll</entry> <entry>Microsoft MPEG-4 v1/v2</entry> <entry>b5791ea23f33010d37ab8314681f1256</entry> <entry></entry> </row> <row> <entry>tsccvid.dll</entry> <entry>TechSmith Camtasia Screen Codec (TSCC)</entry> <entry>8230d8560c41d444f249802a2700d1d5</entry> <entry></entry> </row> <row> <entry>vp31vfw.dll</entry> <entry>On2 Open Source VP3 Codec (VP31)</entry> <entry>845f3590ea489e2e45e876ab107ee7d2</entry> <entry></entry> </row> <row> <entry>vp4vfw.dll</entry> <entry>On2 VP4 Personal Codec (VP40)</entry> <entry>fc5480a482ccc594c2898dcc4188b58f</entry> <entry></entry> </row> <row> <entry>vp6vfw.dll</entry> <entry>On2 VP6 Personal Codec (VP60)</entry> <entry>04d635a364243013898fd09484f913fb</entry> <entry></entry> </row> <row> <entry>vp7vfw.dll</entry> <entry>On2 VP7 Personal Codec (VP70)</entry> <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry> <entry>falscher FourCC?</entry> </row> <row> <entry>ViVD2.dll</entry> <entry>SoftMedia ViVD V2 Codec VfW (GXVE)</entry> <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry> <entry></entry> </row> </tbody> </tgroup> </informaltable> Die erste Spalte enth辰lt die Codec-Namen, die nach dem Parameter <literal>codec</literal> 端bergeben werden sollten, wie: <option>-xvfwopts codec=divx.dll</option>. Der FourCC-Code, der von jedem Codec verwendet wird, steht in Klammern. </para> <informalexample> <para> Ein Beispiel f端r die Konvertierung eines ISO DVD Trailers in eine VP5-Flash-Videodatei unter Benutzung der compdata-Bitrateneinstellungen: <screen>mencoder -dvd-device <replaceable>zeiram.iso</replaceable> dvd://7 -o <replaceable>trailer.flv</replaceable> \ -ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \ -lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \ -of lavf </screen> </para> </informalexample> </sect2> <sect2 id="menc-feat-video-for-windows-bitrate-settings"> <title>Benutzung von vfw2menc, um eine Datei f端r Codeceinstellungen zu erzeugen</title> <para> Um mit Video f端r Windows Codecs zu encodieren, musst du Bitrate und andere Optionen setzen. Nach dem Stand der Dinge funktioniert dies f端r x86 sowohl unter *NIX als auch unter Windows. </para> <para> Zuerst musst du das <application>vfw2menc</application>-Programm erzeugen. Es befindet sich im Ordner <filename class="directory">TOOLS</filename> des MPlayer-Sourcebaums. Um es unter Linux zu erstellen, kann <application>Wine</application> benutzt werden: <screen>winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32</screen> Unter <application>MinGW</application> oder <application>Cygwin</application> verwende: <screen>gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32</screen> Um es unter <application>MSVC</application> zu erstellen, wirst du getopt brauchen. Getopt findest du im Original-<application>vfw2menc</application>-Archiv, das es hier gibt: Das Projekt <ulink url="http://oss.netfarm.it/mplayer-win32.php">MPlayer on win32</ulink>. </para> <informalexample> <para> Unten steht ein Beispiel f端r den VP6-Codec. <screen>vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf</screen> Dies wird den Konfigurationsdialog des VP6-Codecs 旦ffnen. Wiederhole diesen Schritt f端r den zweiten Durchlauf und benutze <option>-s <replaceable>secondpass.mcf</replaceable></option>. </para> </informalexample> <para> Windows-Benutzer k旦nnen <option>-xvfwopts codec=vp6vfw.dll:compdata=dialog</option> verwenden, damit der Dialog angezeigt wird, bevor die Encodierung startet. </para> </sect2> </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=2 -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=2 -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-vcd-dvd"> <title>Verwendung von <application>MEncoder</application> zum Erzeugen VCD/SVCD/DVD-konformer Dateien.</title> <sect2 id="menc-feat-vcd-dvd-constraints"> <title>Formatbeschr辰nkungen</title> <para> <application>MEncoder</application> ist in der Lage, MPEG-Dateien im VCD-, SCVD- und DVD-Format durch Verwendung der <systemitem class="library">libavcodec</systemitem>-Programmbibliothek zu erzeugen. Diese Dateien k旦nnen danach im Zusammenhang mit <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink> oder <ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink> zum Erzeugen von Disks verwendet werden, die auf einem Standard Set-Top-Player abgespielt werden k旦nnen. </para> <para> Die Formate DVD, SVCD und VCD sind starken Beschr辰nkungen unterworfen. Es ist nur eine kleine Auswahl an encodierten Bildgr旦�en und Seitenverh辰ltnissen verf端gbar. Wenn dein Film nicht bereits die Anforderungen erf端llt, musst du das Bild skalieren, zuschneiden oder schwarze R辰nder hinzuf端gen, um es konform zu machen. </para> <sect3 id="menc-feat-vcd-dvd-constraints-resolution"> <title>Formatbeschr辰nkungen</title> <informaltable frame="all"> <tgroup cols="9"> <thead> <row> <entry>Format</entry> <entry>Aufl旦sung</entry> <entry>V. Codec</entry> <entry>V. Bitrate</entry> <entry>Samplerate</entry> <entry>A. Codec</entry> <entry>A. Bitrate</entry> <entry>FPS</entry> <entry>Seitenverh辰ltnis</entry> </row> </thead> <tbody> <row> <entry>NTSC DVD</entry> <entry>720x480, 704x480, 352x480, 352x240</entry> <entry>MPEG-2</entry> <entry>9800 kbps</entry> <entry>48000 Hz</entry> <entry>AC3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>30000/1001, 24000/1001</entry> <entry>4:3, 16:9 (nur f端r 720x480)</entry> </row> <row> <entry>NTSC DVD</entry> <entry>352x240<footnote id='fn-rare-resolutions'><para> Diese Aufl旦sungen werden selten f端r DVDs verwendet, da sie von ziemlch niedriger Qualit辰t sind.</para></footnote></entry> <entry>MPEG-1</entry> <entry>1856 kbps</entry> <entry>48000 Hz</entry> <entry>AC3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>30000/1001, 24000/1001</entry> <entry>4:3, 16:9</entry> </row> <row> <entry>NTSC SVCD</entry> <entry>480x480</entry> <entry>MPEG-2</entry> <entry>2600 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>384 kbps (max)</entry> <entry>30000/1001</entry> <entry>4:3</entry> </row> <row> <entry>NTSC VCD</entry> <entry>352x240</entry> <entry>MPEG-1</entry> <entry>1150 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>224 kbps</entry> <entry>24000/1001, 30000/1001</entry> <entry>4:3</entry> </row> <row> <entry>PAL DVD</entry> <entry>720x576, 704x576, 352x576, 352x288</entry> <entry>MPEG-2</entry> <entry>9800 kbps</entry> <entry>48000 Hz</entry> <entry>MP2,AC3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>25</entry> <entry>4:3, 16:9 (nur f端r 720x576)</entry> </row> <row> <entry>PAL DVD</entry> <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry> <entry>MPEG-1</entry> <entry>1856 kbps</entry> <entry>48000 Hz</entry> <entry>MP2,AC3,PCM</entry> <entry>1536 kbps (max)</entry> <entry>25</entry> <entry>4:3, 16:9</entry> </row> <row> <entry>PAL SVCD</entry> <entry>480x576</entry> <entry>MPEG-2</entry> <entry>2600 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>384 kbps (max)</entry> <entry>25</entry> <entry>4:3</entry> </row> <row> <entry>PAL VCD</entry> <entry>352x288</entry> <entry>MPEG-1</entry> <entry>1152 kbps</entry> <entry>44100 Hz</entry> <entry>MP2</entry> <entry>224 kbps</entry> <entry>25</entry> <entry>4:3</entry> </row> </tbody> </tgroup> </informaltable> <para> Wenn ein Film ein 2.35:1 Seitenverh辰ltnis hat (die meisten aktuellen Action-Filme), wirst du schwarze R辰nder hinzuf端gen oder den Film auf 16:9 zuschneiden m端ssen, um eine DVD oder VCD herzustellen. Wenn du schwarze R辰nder hinzuf端gst, versuche diese an 16-Pixel-R辰ndern auszurichten, um den Einflu� auf die Encodier-Performance zu minimieren. Zum Gl端ck besitzen DVDs eine ausreichend hohe Bitrate, damit du dich nicht zu sehr um die Encodier-Effizienz sorgen musst. SVCD und VCD jedoch sind h旦chst mager an Bitrate und erfordern Aufwand, um akzeptable Qualit辰t zu erreichen. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-constraints-gop"> <title>GOP-Gr旦�enbeschr辰nkungen</title> <para> DVD, VCD und SVCD zwingen dich auch zu relativ niedrigen GOP-Gr旦�en (Group of Pictures). F端r Material mit 30 fps ist die gr旦�te erlaubte GOP-Gr旦�e 18. F端r 25 oder 24 fps ist das Maximum 15. Die GOP-Gr旦�e wird mittels der Option <option>keyint</option> gesetzt. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-constraints-bitrate"> <title>Bitraten-Beschr辰nkungen</title> <para> VCD-Video muss bei CBR 1152 kbps sein. Zu dieser nach oben begrenzten Einschr辰nkung kommt auch noch eine extrem niedrige vbv-Puffergr旦�e von 327 Kilobit. SVCD erlaubt das Variieren der Video-Bitraten auf bis zu 2500 kbps, und eine etwas weniger restriktive vbv-Puffergr旦�e von 917 Kilobit ist erlaubt. DVD-Video-Bitraten k旦nnen sich bis auf irgendwo um die 9800 kbps einpegeln (wenngleich typische Bitraten etwa halb so gro� sind), und die vbv-Puffergr旦�e ist 1835 Kilobit. </para> </sect3> </sect2> <sect2 id="menc-feat-vcd-dvd-output"> <title>Output-Optionen</title> <para> <application>MEncoder</application> besitzt Optionen zur Kontrolle des Output-Formats. Durch das Verwenden dieser Optionen k旦nnen wir ihn anweisen, den korrekten Dateityp zu erzeugen. </para> <para> Die Optionen f端r VCD und SVCD werden xvcd und xsvcd genannt, weil sie erweiterte Formate sind. Sie sind nicht strikt Standard-konform, haupts辰chlich weil der Output keine Scan-Offsets enth辰lt. Wenn du ein SVCD-Image generieren musst, solltest du die Output-Datei dem <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink> 端bergeben. </para> <para> VCD: <screen>-of mpeg -mpegopts format=xvcd</screen> </para> <para> SVCD: <screen>-of mpeg -mpegopts format=xsvcd</screen> </para> <para> DVD (mit Zeitstempeln f端r jeden Frame, wenn m旦glich): <screen>-of mpeg -mpegopts format=dvd:tsaf</screen> </para> <para> DVD mit NTSC-Pullup: <screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen> Dies erlaubt 24000/1001 fps progressive-Inhalt bei 30000/1001 fps encodiert zu werden, wobei die DVD-Konformit辰t erhalten bleibt. </para> <sect3 id="menc-feat-vcd-dvd-output-aspect"> <title>Seitenverh辰ltnis</title> <para> Der Parameter f端r das Seitenverh辰ltnis von <option>-lavcopts</option> wird zum Encodieren des Seitenverh辰ltnisses einer Datei verwendet. W辰hrend des Playbacks wird das Seitenverh辰ltnis dazu benutzt, die korrekte Gr旦�e des Videos wieder herzustellen. </para> <para> 16:9 oder "Breitbild" <screen>-lavcopts aspect=16/9</screen> </para> <para> 4:3 oder "Vollbild" <screen>-lavcopts aspect=4/3</screen> </para> <para> 2.35:1 oder "Cinemascope" NTSC <screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen> Um die korrekte Skalierungsgr旦�e zu berechnen, verwende die erweiterte NTSC-Breite von 854/2.35 = 368 </para> <para> 2.35:1 oder "Cinemascope" PAL <screen>-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9</screen> Um die korrekte Skalierungsgr旦�e zu berechnen, verwende die erweiterte PAL-Breite von 1024/2.35 = 432 </para> </sect3> <sect3 id="menc-feat-vcd-dvd-a-v-sync"> <title>Aufrechterhalten der A/V-Synchronisation</title> <para> Um die Audio-/Video-Synchronisation w辰hrend der kompletten Encodierung aufrechtzuerhalten, muss <application>MEncoder</application> Frames auslassen oder duplizieren. Dies funktioniert beim Muxen in eine AVI-Datei ziemlich gut, aber meist schl辰gt das Aufrechterhalten der A/V-Synchronisation mit anderen Muxern wie etwa MPEG garantiert fehl. Dies ist der Grund, weshalb es n旦tig ist, den <option>harddup</option>-Video-Filter am Ende der Filterkette anzuh辰ngen, um diese Art Problem zu vermeiden. Du findest mehr technische Informationen zu <option>harddup</option> im Abschnitt <link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Verbessern der Mux- und A/V-Synchronisationszuverl辰ssigkeit</link> oder in der Manpage. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-output-srate"> <title>Sampleraten-Konvertierung</title> <para> Wenn die Audio-Samplerate in der Originaldatei nicht dieselbe wie die vom Zielformat angeforderte ist, wird eine Sampleraten-Konvertierung erforderlich. Dies wird erreicht, indem man die Option <option>-srate</option> und den <option>-af lavcresample</option> Audio-Filter zusammen anwedet. </para> <para> DVD: <screen>-srate 48000 -af lavcresample=48000</screen> </para> <para> VCD und SVCD: <screen>-srate 44100 -af lavcresample=44100</screen> </para> </sect3> </sect2> <sect2 id="menc-feat-vcd-dvd-lavc"> <title>Verwenden des libavcodec zur VCD/SVCD/DVD-Encodierung</title> <sect3 id="menc-feat-vcd-dvd-lavc-intro"> <title>Einf端hrung</title> <para> <systemitem class="library">libavcodec</systemitem> kann verwendet werden, um ein VCD/SVCD/DVD-konformes Video durch die Anwendung der passenden Optionen zu erzeugen. </para> </sect3> <sect3 id="menc-feat-vcd-dvd-lavc-options"> <title>lavcopts</title> <para> Dies ist eine Liste von Feldern in <option>-lavcopts</option>, die du m旦glicherweise 辰ndern musst, um einen f端r VCD, SVCD oder DVD konformen Film herzustellen: </para> <itemizedlist> <listitem> <para> <emphasis role="bold">acodec</emphasis>: <option>mp2</option> f端r VCD, SVCD oder PAL DVD; <option>ac3</option> wird am h辰ufigsten f端r DVD verwendet. PCM-Audio kann auch f端r DVD verwendet werden, aber dies ist meistens eine riesen Platzverschwendung. Beachte, dass MP3-Audio nicht konform f端r irgendeines dieser Formate ist, aber Player haben oft ohnehin kein Problem, es abzuspielen. </para> </listitem> <listitem> <para> <emphasis role="bold">abitrate</emphasis>: 224 f端r VCD; bis zu 384 f端r SVCD; bis zu 1536 f端r DVD, aber 端bliche Werte reichen von 192 kbps f端r Stereo bis 384 kbps f端r 5.1-Kanal-Sound. </para> </listitem> <listitem> <para> <emphasis role="bold">vcodec</emphasis>: <option>mpeg1video</option> f端r VCD; <option>mpeg2video</option> f端r SVCD; <option>mpeg2video</option> wird gew旦hnlich f端r DVD verwendet, man kann aber auch <option>mpeg1video</option> f端r CIF-Aufl旦sungen verwenden. </para> </listitem> <listitem> <para> <emphasis role="bold">keyint</emphasis>: Angewandt, um die GOP-Gr旦�e zu setzen. 18 f端r Material mit 30fps oder 15 f端r Material mit 25/24 fps. Kommerzielle Hersteller scheinen Keyframe-Intervalle von 12 zu bevorzugen. Es ist m旦glich, dies viel gr旦�er zu machen und dennoch die Kompatibilit辰t zu den meisten Player zu behalten. Ein <option>keyint</option> von 25 sollte nie irgendwelche Probleme machen. </para> </listitem> <listitem> <para> <emphasis role="bold">vrc_buf_size</emphasis>: 327 f端r VCD, 917 f端r SVCD und 1835 f端r DVD. </para> </listitem> <listitem> <para> <emphasis role="bold">vrc_minrate</emphasis>: 1152 f端r VCD. kann f端r SVCD und DVD so gelassen werden. </para> </listitem> <listitem> <para> <emphasis role="bold">vrc_maxrate</emphasis>: 1152 f端r VCD; 2500 f端r SVCD; 9800 f端r DVD. F端r SVCD und DVD k旦nntest du niedrigere Werte verwenden, abh辰ngig von deinen pers旦nlichen Vorlieben und Anforderungen. </para> </listitem> <listitem> <para> <emphasis role="bold">vbitrate</emphasis>: 1152 f端r VCD; bis zu 2500 f端r SVCD; bis zu 9800 f端r DVD. F端r letztere zwei Formate sollte vbitrate basierend auf pers旦nliche Vorlieben gesetzt werden. Zum Beispiel, wenn du darauf bestehst, 20 Stunden oder so passend auf eine DVD zu bringen, k旦nntest du vbitrate=400 benutzen. Die sich daraus ergebende Video-Qualit辰t w端rde wom旦glich 辰u�erst mies. Wenn du versuchst, die maximal m旦gliche Qualit辰t auf eine DVD zu quetschen, nimm vbitrate=9800, aber sei gewarnt, dass dich dies zu weniger als einer Stunde Video auf einer Single-Layer DVD zwingen w端rde. </para> </listitem> <listitem> <para> <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. </para> </listitem> </itemizedlist> </sect3> <sect3 id="menc-feat-vcd-dvd-lavc-examples"> <title>Beispiele</title> <para> Dies ist eine typische Zusammenstellung von mindestens zu verwendenden <option>-lavcopts</option>-Optionen zum Encodieren eines Videos: </para> <para> VCD: <screen>-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\ vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2</screen> </para> <para> SVCD: <screen>-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\ keyint=15:acodec=mp2</screen> </para> <para> DVD: <screen>-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=15:vstrict=0:acodec=ac3</screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-lavc-advanced"> <title>Erweiterte Optionen</title> <para> F端r das Encodieren h旦herer Qualit辰t k旦nntest du auch qualit辰tssteigernde Optionen an lavcopts anf端gen, wie etwa <option>trell</option>, <option>mbd=2</option> und weitere. Beachte, dass <option>qpel</option> und <option>v4mv</option>, obwohl oft bei MPEG-4 n端tzlich, nicht auf MPEG-1 oder MPEG-2 anwendbar sind. Au�erdem, wenn du versuchst, eine sehr hochwertige DVD-Encodierung zu machen, kann es n端tzlich sein, <option>dc=10</option> an lavcopts anzuf端gen. Wobei dies helfen k旦nnte, das Auftreten von Bl旦cken in fahl-farbenen Bereichen zu reduzieren. Zusammenfassend ist dies ein Beispiel einer Zusammenstellung von lavcopts f端r f端r eine h旦herwertige DVD: </para> <para> <screen>-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ vqmin=1:lmin=1:dc=10:vstrict=0</screen> </para> </sect3> </sect2> <sect2 id="menc-feat-vcd-dvd-audio"> <title>Encodieren von Audio</title> <para> VCD und SVCD unterst端tzen MPEG-1 Layer II Audio, indem sie einen MP2-Encoder von <systemitem class="library">toolame</systemitem>, <systemitem class="library">twolame</systemitem>, oder <systemitem class="library">libavcodec</systemitem> verwenden. Der libavcodec MP2 ist weit davon entfernt, so gut zu sein wie die anderen zwei Bibliotheken, dennoch sollte er immer verf端gbar sein. VCD unterst端tzt nur Audio mit konstanten Bitraten (CBR) wogegen SVCD auch variable Bitraten (VBR) unterst端tzt. Sei vorsichtig, wenn du VBR benutzt, weil einige schlechte Standalone-Player diese nicht so gut unterst端tzen k旦nnten. </para> <para> F端r DVD-Audio wird der AC3-Codec von <systemitem class="library">libavcodec</systemitem> verwendet. </para> <sect3 id="menc-feat-vcd-dvd-audio-toolame"> <title>toolame</title> <para> F端r VCD und SVCD: <screen>-oac toolame -toolameopts br=224</screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-audio-twolame"> <title>twolame</title> <para> F端r VCD und SVCD: <screen>-oac twolame -twolameopts br=224</screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-audio-lavc"> <title>libavcodec</title> <para> F端r DVD mit 2-Kanal-Sound: <screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen> </para> <para> F端r DVD mit 5.1-Kanal-Sound: <screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen> </para> <para> F端r VCD und SVCD: <screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen> </para> </sect3> </sect2> <sect2 id="menc-feat-vcd-dvd-all"> <title>Zusammenfassung</title> <para> Diese Sektion zeigt einige komplette Befehle zum Erzeugen von VCD/SVCD/DVD-konformen Videos. </para> <sect3 id="menc-feat-vcd-dvd-all-pal-dvd"> <title>PAL DVD</title> <para> <screen>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 25 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-dvd"> <title>NTSC DVD</title> <para> <screen>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:480,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 30000/1001 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy"> <title>PAL AVI mit enthaltenem AC3 Audio nach DVD</title> <para> Hat die Quelle bereits AC3-Audio, nimm -oac copy anstatt es erneut zu encodieren. <screen>mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,\ harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\ vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 25 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy"> <title>NTSC AVI mit AC3-Ton nach DVD</title> <para> Hat die Quelle bereits AC3-Audio und ist NTSC @ 24000/1001 fps: <screen>mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \ -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\ vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-pal-svcd"> <title>PAL SVCD</title> <para> <screen>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-svcd"> <title>NTSC SVCD</title> <para> <screen>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-pal-vcd"> <title>PAL VCD</title> <para> <screen>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> <sect3 id="menc-feat-vcd-dvd-all-ntsc-vcd"> <title>NTSC VCD</title> <para> <screen>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> </para> </sect3> </sect2> </sect1> </chapter>