Mercurial > mplayer.hg
changeset 18568:80628a6d0980
initial import of some missing German xml translation, review(s) pending
Translation was done by Kurt Lettmaier (k . lettmaier @at@ onlinehome.de ), thank you!
author | kraymer |
---|---|
date | Mon, 05 Jun 2006 05:02:47 +0000 |
parents | 0ab40a215eb4 |
children | d8605d22bf62 |
files | DOCS/xml/de/encoding-guide.xml DOCS/xml/de/formats.xml DOCS/xml/de/history.xml DOCS/xml/de/mencoder.xml DOCS/xml/de/ports.xml DOCS/xml/de/skin.xml DOCS/xml/de/users-vs-dev.xml DOCS/xml/de/video.xml |
diffstat | 8 files changed, 11439 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/encoding-guide.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,4963 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- In sync with rev. 1.50 --> +<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 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 eigens 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 einen 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 entworfen + wurden, clevere Entscheidungen für dich zu treffen. +</para> + +<sect2 id="menc-feat-dvd-mpeg4-preparing-encode"> +<title>Vorbereitung aufs Encodieren: Identifizieren Sie 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 wahrscheinlich 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. + Fernsehen wurde entworfen, diese Felder im Wechsel als billige Form + einer analogen Komprimierung 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 der Farbe. + Ansonsten ähnlich wie PAL. +</para></listitem> +<listitem><para> + <emphasis role="bold">Animation</emphasis>: Üblicherweise bei + 24fps gezeichnet, kommt jedoch auch in Arten mit gemischter Framerate vor. +</para></listitem> +<listitem><para> + <emphasis role="bold">Computer Graphics (CG)</emphasis>: Kann + irgend eine 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 zu komplizieren, sind manche Filme ein + Gemisch aus einigen der oben Beschriebenen. +</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 zahlreichen Methoden mit denen dies bewerkstelligt werden + kann, werden insgesamt dem "pulldown" zugeordnet, von welchem + das verrufene NTSC "3:2 telecine" eine Abart darstellt. + Solange das Originalmaterial 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, 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 Encodiertechniken, sie produzieren stattdessen Filme mit + "hard telecine", bei denen Felder sogar in encodiertes MPEG-2 dupliziert + werden. +</para> +<para> + Die damit arbeitenden Produzenten werden + <link linkend="menc-feat-telecine">später in diesem Handbuch</link> + mit einbezogen. + 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 nach 24000/1001 gewechselt ist + 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 "combing", dann gibt es mehrere Möglichkeiten. + Die Segmente mit 24000/1001 fps sind meist mit Sicherheit progressiver + Inhalt, "soft telecined", jedoch die Teile mit 30000/1001 fps könnten + entweder "hard telecined" 24000/1001 fps Inhalt oder 60000/1001 Felder + pro Sekunde NTSC-Video sein. + Verwende die selben Richtwerte wie in 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 + dein Film "hard telecined" 24000/1001fps Inhalt. +</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>Hint:</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, wenn du bei voller + Geschwindigkeit nichts erkennen kannst. +</para> +</note> +</sect3> +</sect2> + +<sect2 id="menc-feat-dvd-mpeg4-2pass"> +<title>Konstantenquantisierer 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 (downscaling) und Rauschunterdrückung (denoising)), kann eine sehr gute + Qualität bei 700 MB erreicht werden, für einen 90-110 Minute Breitwandfilm. + Des Weiteren können alle - sogar die längsten - Filme 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 Quantisierer 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 Videoencodern 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>Beachten Sie:</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 nicht mehr 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 extreme übertriebene Vereinfachung + des aktuellen Prozesses, aber nützlich 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, standardmäßig ist dies 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 den selben 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 die selbe Bitrate und PSNR (peak signal-to-noise ratio) liefern + wie CBR mit <option>vbitrate</option>=infinity und dem standardmäßigen + <option>vqmin</option> von 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 Aktionen 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 (two pass) 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 schnellen Aktionen 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 herum zu experimentieren. +</para> + +<para> + Wenn du eine bestimmte Größe anvisierst, mußt du die Bitrate irgendwie + kalkulieren. + Aber zuvor solltest du wissen, wieviel Platz du für den/die Audiotrack(s) + reservieren mußt, 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-Komrimierung, 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-Zyan-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 Ränder + an ihren Kanten. Diese dort zu belassen, kann die Qualität auf + verschiedene Art und Weise negativ beeinflussen. +</para> + +<orderedlist> +<listitem> +<para> + MPEG-Kompression hängt ebenso 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 muß sie viel mehr Bits verwenden, + oder andernfalls wird ein als Klingeln (ringing) bekannter Artefakt + auftreten. +</para> + +<para> + Die 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 keine schwarzen Ränder + 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, 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> + Trotzdem 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 voll 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-(crop)-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 (lossy) 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 micht grundsätzlich 16:9 und werden 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. + das Skalieren in vertikaler Richtung ist mit interlaced Video + schwierig und wenn du das interlacing erhalten 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, mußt 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 verschwendet werden sollten. +</para> + +<para> + Nachdem nun alles gesagt ist, wirst du möglicherweise mit 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 auf keinen Fall dieses Video 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 Players diese Auto-Skalierinformation, + und deshalb willst du 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, in konstantem Quantisiermodus zu encodieren, + mußt du eine Bitrate auswählen. + Das Konzept der Bitrate ist denkbar einfach. + Sie ist die (mittlere) Anzahl Bits, die pro Sekunde zum Speichern + Films verbraucht werden. + Normalerweise wird die Bitratein 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 Skalierunng, 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 ist zu sagen, eine Datei 320x240 mit 200 KBit/Sek wird nicht die selbe + Qualität aufweisen wie des 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 waren). + </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. + Weiters, in Anbetracht das Filme außerordentlich in Bezug auf Rauschen, Details, + Bewegungsgrad usw. variieren, ist es 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 Berechnen 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 die 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 blockmäßig schönen 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öherntwickelte 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, die selbe Qualität mit einem CQ im Bereich + von 0.18 bis 0.20 für einen 1 CD-CDip und 0.24 bis 0.26 für einen 2 CD-Rip zu erreichen. + Mit den MPEG-4 ASP-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 hinweisende Zahl 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 wertlos, 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, umgekehrtes 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=options,filter2=options,...</screen> + + Die meisten Filter nehmen mehrere numerische, Komma-getrennte + Optionen entgegen, jedoch variiert die Syntax der Optionen von + Filter zu Filter, also lies bitte die Man Page 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, um 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, 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 + zu 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 ist, + 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, + er arbeite mit einer Verlangsamung des Films auf 24000/1001 fps und dem + Wiederholen jeden vierten Frames. +</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, mußt 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, mußt 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 harte Regel: einige + TV-Serien sind interlaced (wie etwa Buffy die Vampirkillerin), 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 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 Iinformationen 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 muß im interlaced Modus durchgeführt werden. +</para></listitem> +<listitem><para> + Nachbearbeitungs- (postprocessing) und Rauschunterdrückungsfilter (denoising) + funktioniert eventuell nicht wie erwartet bis du speziell darauf achtest, + sie jeweils Feld für Feld auf sie einzuwirken 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 sync 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, zu was 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 die <application>MEncoder</application> unterstützte sogenannte + "3-pass" Audioencodierung soll nach 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 hatten! +</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-Gerät + als Input. +</para> +</sect2> + +<sect2 id="menc-feat-dvd-mpeg4-codec"> +<title>Auswahl des Videocodecs</title> + +<para> + Welcher Videocodec am besten zu wählen, hängt von mehreren Faktoren ab, + wie Größe, Qualität, Streambarkeit, Brauchbarkeit und Popularität, manche + davon hängen 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 anderen 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 Technologie mit blutigen Kanten + anwendet. + </para> + <para> + Außerdem, mit einem neuen Codec umzugehen erfordert einige Zeit, sich + mit dessen Optionen vertraut zu machen, sodass 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 rum. + </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 ist, 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 Standard-Einstellungen 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 klar kommt, was nur für Benutzer von Rechnern + mit einigen 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 im Moment das Encodieren um 15-30% beschleunigt + (abhängig von den Encodier-Einstellungen) bei gleichzeitiger Verringerung des + PSNR um etwa 0.05dB. + </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 bewirken, 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 klar kommst. + 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>Die selbe 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, dies bedeutet 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 mit enthaltenem Audio, 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 it + <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 sehen 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 Lautzstä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> + den selben 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 MEncoder 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 un 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> + Dies 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 ein paar weiteren Audioformaten. +</para> + +<para> + MEncoder 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> + Dies 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-Synchronisationprobleme 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 umgekehrten 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> den selben Frame + zweimal entgegen nimmt und komprimiert. + Die 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 Dfferenz 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 + 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 muß entweder konstante Bitrate (CBR) oder + konstante Framegröße haben (z.B. alle Frames decodieren zur selben Anzahl + Samples). + Unglücklicherweise erfüllt der effektivste Codec, Vorbis, 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, muß 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, wenn + <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 + zum 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 + kollectiv <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 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> + Dies 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> + Ich schlage vor du besuchst diese Seite, wenn du nicht viel von dem + verstehst, was in diesem Dokument beschrieben wird: + <ulink url="http://www.divx.com/support/guides/guide.php?gid=10">http://www.divx.com/support/guides/guide.php?gid=10</ulink> + Diese URL führt zu einer verständlichen und einigermaßen umfassend + Beschreibung 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 dem + 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ß + NTSC-Video war exakt 60 Felder pro Sekunde, aber 60000/1001 + wurde später 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 das + 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 + muß 60000/1001 Felder pro Sekunde haben. Für TV-Filme und Shows + hergestellt sind sie häufig direkt mit 60000/1001 Felder 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 dabach 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 + muß 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 sich das aus 60000/10001 Feldern pro Sekunde geformten Einzelframes + erzeugte Video betrachtet, ist telecined oder anderenfalls interlacing + klar sichtbar woimmer Bewegung auftritt, da ein Feld (sagen wir, die + gerade bummerierten 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 + gezeigt wird. +</para> + +<itemizedlist> +<title>Anmerkungen:</title> +<listitem><para> + Diese Sektion 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 soll 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 aud der DVD abgespeichert. +</para> + +<para> + Wenn du ein 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 progressive Video ankuckst, solltest du nie irgendein + interlacing sehen. Sei trotzdem vorsichtig, weil manchmal ein winziges + bisschen telecine dort hin eingemischt wurde, wo du es nicht erwartest. + Ich bin TV-Show-DVDs begegnet, die eine Sekunde telecine bei jedem + Szenenwechsel haben oder an extrem zufälligen Stellen. Ich hatte einmal + eine DVD angesehen, die eine progressive erste Hälfte hatte 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 deiner Hardware, trotzdem noch eine + Weile. Jedesmal wenn demux_mpg einen Frameratenwechsel meldet, wird dir + die Zeile unmittelbar darüber die Zeit anzeigen bei welcher der Wechsel + auftrat. +</para> + +<para> + Manchmal wird progressive Video auf DVDs + "soft telecine" zugeordnet, weil es dafür vorgesehen ist + durch den DVD-Player telecined zu werden. +</para> +</sect3> + +<sect3 id="menc-feat-telecine-ident-telecined"> +<title>Telecined</title> +<para> + Telecined Video was ursprünlich mit 24000/1001 aufgenommen, aber wurde + 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 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 Feldern pro Sekunde hat, + spielt der DVD-Player das Video ohne irgendeine Manipulation ab. +</para> + +<para> + Ein anderer Weg, zu sagen, dass deine Quelle telecined ist oder nicht + ist die Quelle mit den Befehlszeilenoptionen <option>-vf pullup</option> + und <option>-v</option> abzuspielen. um zu 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, umsie 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 ürsprü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 Tast + <keycap>.</keycap> durch die Frames tastest, 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 ürsprü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) zurück und vor zwischen "30000/1001 fps NTSC" + und "24000/1001 fps progressive NTSC" 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 su 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 am Anfang angemerkt habe, 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 wird 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 komplettes + progressive 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 mit der Fähigkeit des Encoders an, gur 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öck 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 zu Auswahl zur Verfügung, jeder mit seinen eigenen Vor- + und Nachteilen. Ziehe <option>mplayer -pphelp</option> zu Rate, um zu sehen, was + verfügbar ist (suche nach "deint") und durchsuche die + <ulink url="http://www.mplayerhq.hu/design7/info.html#mailing_lists"> + MPlayer-Mailinglisten</ulink>, um Diskussionen über die zahlreichen Filter + zu finden. Nochmals, die Framerate wechselt nicht, also kein + <option>-ofps</option>. Deinterlacing sollte auch 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 pp=lb -ovc lavc</screen> + </para></listitem> +<listitem><para> + Unglücklicherweise ist diese Option buggy zusammen mit + <application>MEncoder</application>; sie sollte mit + <application>MEncoder G2</application> gut funktionieren, aber den gibts + 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 macht. 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 einige 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 Manual und wähle + welche Option auch immer am besten für dein Material aussieht. + Beachte, dass du wenn <option>tfields</option> verwendet wird, + beides spezifizieren <emphasis role="bold">mußt</emphasis> + <option>-fps</option> und <option>-ofps</option>, um die zweifache + Framerate der originalen Quelle zu haben. + + <screen>mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> + </para></listitem> +<listitem><para> + Wenn du vor hast, dramatisch runter zu skalieren, kannst du nur einen + 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 (crop) + <link linkend="menc-feat-telecine-footnotes">[1]</link> und angemessen + zu skalieren. Vergiss nicht, dass du die Skalierung anpassen mußt, 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 werreichen, 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, mach 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. Um richtig zu zu funktionieren, <emphasis role="bold">muß</emphasis> + <option>pullup</option> vom <option>softskip</option>-Filter gefolgt werden oder + <application>MEncoder</application> wird 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, eher noch als inverse-telecine auf die telecined Teile + anzuwenden, telecine auf nicht-telecined Teile und dann auf das + ganze Video inverse-telecine anzuwenden. Hört sich verwirrend an? softpulldown ist + ein Filter, der durch ein Video geht 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 hier ist, was + D Richard Felker III zu erzählen hat: + + <blockquote><para>Es ist OK, aber IMO versucht er eher ein deinterlace + als ein inverse telecine zu oft durchzuführen (ganz wie Settop-DVD-Player + & progressive TVs) was ein hässliches Flimmern erzeugt und + andere Artefakte. Wenn du vor hast, es anzuwenden, mußt 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, jeder von + beiden stellt einen Kompromiss dar. Zu 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 zu ein wenig nervöser Unruhe 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" werdem für die + Dauer von drei Feldern (3/(60000/1001) Sekunden) angezeigt, was + einen flimmernden "Zeitrücksprung"-Effekt zur Folge hat, der + segr schlecht aussieht. Solltest du dies dennoch veruchen, + <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 einschlägst, 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 als sei es interlaced. Einige Frames des progressive-Anteils + müssen dupliziert werden, was zu nervöser Unruhe 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 Format, das YUV 4:2:0 genannt wird, + dort abgelegt. In einem YUV-Video, werden luma ("Helligkeit") + und chroma ("Farbe") 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 chroma-Pixel alle vier luma-Pixel vorhanden. + In einem progressive Bild, besitzt jedes Quadrat von vier luma-Pixeln (zwei + auf jeder Seite) ein gemeinsames chroma-Pixel. Du mußt 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 aber + <option>crop=716:380:3:26 </option> ist 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 Feld zur Formung des Frames interlaced werden, + ist jede Scanzeile ein Pixel hoch. Jetzt liegen anstatt immer vier + luma-Pixeln 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 + ws 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, + mußt du nur noch mit geraden Zahlen zuschneiden. Wenn du wirklich die + leichte Beschleunigung haben willst, die "zuerst Zuschneiden" + möglicherweise bietet, mußt 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 mußt 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 deutlichste heben, und du solltest stets das letzte der beiden + anwenden, außer das Abfallen der Encodiergeschwindigkeit ist abschreckend + hoch (z.B. Realtime Encodierung). Es gibt eine Menge anderer Optionen für + <systemitem class="library">libavcodec</systemitem>, die die Encodierqualität + verbessern (und 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 Minialencodierung, + veranlasst <option>pullup</option> <application>MEncoder</application> dazu, + um 50% langsamer zu werden. Das Hinzufügen von Soundverarbeitung und erweiterten + <option>lavcopts</option> Überschattungen, verringert 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> + Codec-Familie</title> + +<para> +<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> + stellt ein einfaches Encodieren 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 (lossless) JPEG + </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 5, XviD-kompatibel) + </entry></row> +<row><entry>msmpeg4</entry><entry> + Pre-Standard MPEG-4 Variante von MS, v3 (AKA DivX3) + </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>asv1</entry><entry> + ASUS Video v1 + </entry></row> +<row><entry>asv2</entry><entry> + ASUS Video v2 + </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>dvvideo</entry><entry> + Sony Digital Video + </entry></row> +<row><entry>snow</entry><entry> + FFmpeg's experimenteller Wavelet-basierter Codec + </entry></row> +</tbody> +</tgroup> +</informaltable> + + Die erste Spalte enthält die Codec-Namen, die nach der Konfiguration + <literal>vcodec</literal> übergeben werden müssen, wie: + <option>-lavcopts vcodec=msmpeg4</option> +</para> +<informalexample> +<para> + An example with MJPEG compression: + <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>mp2</entry> + <entry>MPEG Layer 2</entry> + </row> + <row> + <entry>ac3</entry> + <entry>AC3, AKA Dolby Digital</entry> + </row> + <row> + <entry>adpcm_ima_wav</entry> + <entry>IMA adaptive PCM (4 Bits pro Sample, 4:1-Kompression)</entry> + </row> + <row> + <entry>sonic</entry> + <entry>experimental lossy/lossless codec</entry> + </row> +</tbody> +</tgroup> +</informaltable> + + Die erste Spalte enthält die Codec-Namen, 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ängen. +</para> +</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 ist weil 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 muß, den + gesperrten GOP-Support aktivieren mußt, indem du die + <systemitem class="library">libavcodec</systemitem>-Option <option>cgop</option> + verwendest, aber du mußt 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, jedoch vmax_b_frames=2 + zusammen mit vb_strategy=1 hilft. +</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 schnelles Encodieren oder 2-4 für ein langsames. +</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 (Frequenzverzerrung). + 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 die + Komplexität des Macroblock. + 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, infolge Kompressionsartefakten 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 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 von einzelnen 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 standardmäßig eine Halbpixel-Genauigkeit für seine Bewegungssuche, + deswegen verfügt diese Option über einen Overhead je mehr Informationen in der + encodierte Datei untergebracht werden. + Der Kompressionsgewinn/-verlust hängt vom Film ab, ist aber un 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, blockhafte Artefakte + zu verhindern, Nachbearbeitung (postprocessing) ist aber besser. +</para></listitem> +</itemizedlist> +</sect2> + +<sect2 id="menc-feat-mpeg4-lavc-example-settings"> +<title>Encodiereinstellung Beispiel</title> + +<para> + Die folgenden Einstellungen sind Beispiele verschiedener Kombinationen + von Encodieroptionen, welche den Kompromiss Geschwindigkeit gegenüber + Qualität bei gleicher Zielbitrate betrifft. +</para> + +<para> + Alle Encodiereinstellungen wurden auf einem Beispielvideo + mit 720x448 @30000/1001 fps, 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 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>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> +soll damit gehen, so wurde berichtet. +</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 "Nuten" (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 (Breitbildedition, aber sicher) und du + willst diese DVD so rippen, dass du sie in deinem Home Theatre PC einfü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 Outputframerate die + gleiche ist wie die Inputframerate), 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 umgekehrten telecine-Filter wie <option>pullup</option> oder + <option>filmdint</option> anwenden müssen. +</para> + +<para> + Als Nächstes wollen wir das passende Ausschnittsrechteck bestimmen, also + verwenden wir der crop-Erkennungsfilter: + + <screen>mplayer dvd://1 -vf cropdetect</screen> + + Stelle sicher, dass du einen voll gefüllten Frame anstrebst (wie zum + Beispiel eine helle Szene), und dass du diese Ausgabe in + <application>MPlayer</application>'s Console 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 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 schrumpen 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 wählst, 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ämtlich 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 nehmen wir 2400Kbit für unsere Bitrate. +</para> + +<para> + Wir sind nun bereit, die 2-pass Encodierung durchzuführen. Erster Durchgang: + + <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 durchgang ist der selbe, 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 Man Page + zu möglichen Werten zu Rate) da verschiedene Funktionen abhängig vom + Quellmaterial einen starken Einfluss auf die Qualität haben. Zum Beispiel + meinst, dass <systemitem class="library">libavcodec</systemitem> zu + viele blockhaft Artefakte produziert, könntest du ja das experimentellen + 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 vermindernde 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 dem Encodieren beginnst, mußt du <link linkend="xvid"> + <application>MEncoder</application> so einstellen, dass er es unterstützt</link>. +</para> +<para> + Dieses Handbuch beabsichtigt, sich vorwiegend durch die selbe Art von + Informationen auszuzeichnen wie x264's Encodier-Handbuch. + Deshalb beginne 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 Man Page. + Diese Sektion ist als Anhang zur Man Page vorsehen. +</para> +<para> + Die Standard-Einstellungen von XviD sind bereits ein guter Kompromiss zwischen + Geschwindigkeit und Qalität, deshalb kannst du ruhig bei ihnen + bleiben, wenn nachfolgende Sektion 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 Standard-Einstellung kannfür jede Encodierung sicher verwendet + werden, während höhere Einstellungen immer PSNR behilflich sind, jedoch + signifikant langsamer sind. + Nimm bitte zur Kenntnis, dass ein besserer PSNR nicht notwedigerweise + bedeutet, dass das Bild besser aussehen wird, aber er erzählt dir, dass + du näher am Original bist. + Wird er abschalten, beschleunigt sich 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 die selbe 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 Standard-Einstellung ist ein guter Kompromiss zwischen Komprimierbarkeit + und Qualität, aber wenn du Bitrate-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 hochgenug ist, um zu gewährleisten, dass der Encoder nicht + die Quantisierer höher setzen muß, 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 muß zusammen mit <option>max_bframes</option> + verwendet werden; bist du Bitrate-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 weise Wahl, + da dies den Encoder zwingt, B-frames in stellen zu setzen, die nicht + davon profitieren würden und daher die visuelle Qualität reduzieren. + Wie auch immer, wenn du mit Standalone-Playern kompatibel bleiben mußt, + 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 aufgewendet 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 Originabewegung sein, und desto besser wird der resultierende Ausschnitt + die Originabewegung einfangen. + </para> + <para> + Die Standard-Einstellung 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 vergebracht würden, was die Gesamtqualität verbessern + würde. + Geh deshalb nie unter 5 und selbst wenn es der letzte Ausweg + sein sollte. +</para></listitem> + +<listitem><para> + <emphasis role="bold">chroma_me</emphasis> + Verbessert die Bewegungseinschä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 moch 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 + erlaunem 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 Bewegungsvectoren zu finden, + was wiederum die Bitrate reduziert (deshalb wird die Qualität + verbessert). + Bewegungsvektoren mit viertel Pixel Präzision brauchen ein + paar Extrabits zum codieren, aber die Bewegungsvektoren ergeben + 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 mußt 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 so gut wie 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>profile</option>-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 azf Auflösungen, Bitrates 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 Simple</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 dem Encodieren beginnst, mußt du <link linkend="xvid"> + <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 Man Page. + Diese Sektion ist als Anhang zur Man Page vorsehen. + Hier wirst du Schnellhinweise dazu finden, welche Optionen am + wahrscheinlichsten die meisten Leute interessieren. Die Man Page + 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 mußt 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, + aber es nicht dies zu was 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, mußt 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 die erlauben, einen Kompromiss zwischen + Geschwindigkeit und Qalität einzugehen, sind <option>subq</option> + und <option>frameref</option> (siehe unten) gewöhnlich die bei weiten + wichtigsten. + Wenn du dich für das Optimieren entweder Geschwindigkeit oder Qalität + interessierst, sind diese die ersten, die du in Erwägung ziehen solltest. + Bei der Dimension Geschwindigkeits, 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) 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> 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 der langsamste Modus mit der höchsten + Qualität. + Im Vergleich zu <option>subq=5</option> gewinnt sie gewöhnlich 0.1-0.4 dB + globalen PSNR mit Geschwindigkeitseinbußen, die 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. Stattdessen hängt die Effektivität von + <option>subq=6</option> größtenteils von der Anzahl der verwendeten + B-frames ab. Im normal Gebrauch bedeutet dies, <option>subq=6</option> + hat einen großen Einfluss auf beides Geschwindigkeit und Qualität + in komplexen, stark bewegten Szenen, aber es kann einen geringen Effekt + in Szenen mit wenig Bewegung. Beachte, dass dennoch empfohlen wird, + <option>bframes</option> immer auf etwas anderes something als Null + zu setzen (siehe unten). +</para></listitem> +<listitem><para> + <emphasis role="bold">frameref</emphasis>: + <option>frameref</option> ist standardmäßicg auf 1 gesetzt, jedoch + sollte dies nicht darauf schließen lassen, dass es unbedingt + auf 1 gesetzt sein muß. + Lediglich 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, es abhängig von deiner Quelle stark + variieren kann). + 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 Geschwindigkeitsenbuß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 ublicherweise 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 es auf Geschwindigkeit abzielst, ist ein vernünftiger + Kompromiss, im ersten Durchgang niedere <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 Endualität: Du wirst womöglich wohl 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 verschiedentlich die Frametypenbestimmung beeinflussen. + Höchst wahrscheinlich sind dies außerordentlich seltene Fälle, + willst du jedoch wirklich sicher gehen, ziehe in Betracht, ob + dein Video entweder Vollbild- respektive Einblendungsmuster + oderr sehr große temporäre Überdeckungen, was einen I-Frame + erzwingen könnte. + Passe <option>frameref</option> des ersten Durchgangs so an, + dass es groß genug ist, um die Dauer des Einblendungszyklus + enthält (oder der Überdeckungen). + Zum Beispiel, wenn die Szenezwischen 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 einfangenen 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 un Geschwindigkeit dar. + <option>me=1</option> ist nur ein paar Prozent schneller als + die Standardsuche, auf kosten von unter 0.1dB globalen PSNR. Die + Standardeinstellung (<option>me=2</option>) ist ein angemessener + Kompromiss zwischen Qualität un Geschwindigkeit. + <option>me=3</option> bringt ein wenig unter 0.1dB globalen 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=3</option> etwa 40% langsamer als das standardmäßige + <option> me=2</option>. Mit <option>frameref=3</option> fällt der + Geschwindigkeitsnachteil auf 25%-30%. +</para> +<para> + <option>me=4</option> verwendet eine gründliche, für die praktische + Anwendung zu langsame Suche. +</para> +</listitem> + +<listitem><para> + <emphasis role="bold">4x4mv</emphasis>: + Diese Option aktiviert das Verwenden von 8x4, 4x8 und 4x4 Unterteilungen + in den vorhergesagten Macroblöcken. Sie zu aktivieren führt zu einem + ziemlich beständigen Verlust von 10%-15% an Geschwindigkeit. 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 in B-Frames möglich sind. + Für gewöhnlich kann selbst ein einfältiger Algorithmus zur Wahl + der B-Frame 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-Framebestimmung abschalten + ist. +</para> +<para> + Mit abschaltener 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 einschaltener adaptiver B-Framebestimmung (das Standardverhalten), + ist es sicher, höhere Werte zu verwenden; der Encoder will 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-Frame 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 Man Page erzählt, 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 Bitrate-Einsparungen. + 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-Framebestimmung + 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> +</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, + wenn du Live-TV aufnimmst und in Echtzeit encodierst, bist du + 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, + istdas Encodieren in zwei Durchgängen mindestens zweimal so langsam. +</para> +<para> + Noch gibt es sehr gute Gründe, in zwei Durchgängen zu encodieren. Für + eine Sache ist Ratenkontrolle in einem Durchgang kein Heilmittel, + 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 Szenen 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". 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. + Sogar scherer 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 verwenden, die sie genommen hätte, um annehmbar + auszusehen. Es gibt Mittel und Wege, diese Falle 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 + riesen Vorteile bieten. + Indem sie die im ersten Encodierungsdurchlauf gesammelte Statistik + verwendet, kann der Encoder mit angemessener Geneuigkeit den Aufwand + (in Bit)abschätzen, den das Encodieren jeden gegebenen Frames bei + jedem gegebenen Quantisierer erfordert. Dies erlaubt eine viel + rationellere, besser geplante Zuweisung von Bits zwischen den + Bit-hungrigen 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 zwei mal 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 normalerweiseviel zu klein um sichtbar zu sein + Versuche zum Beispiel <option>subq=1:frameref=1</option> zu + <option>x264encopts</option> des ersten Durchgangs hinzuzufügen. + Dann verwende im zweiten Durchgang langsamere, hochwertigere Optionen: + <option>subq=6:frameref=15:4x4mv:me=3</option> +</para></listitem> +<listitem><para> + <emphasis role="bold">Encodirunng 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. + Ei zusätzlicher Durhgang, 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 Vorhersagen der Bitraten oder schlecht aussehende Szenenübergänge + beim Verwenden nur eines Durchlaufs bekommst. + Dies passiert mit ziemlicher Wahrscheinlichkeit mit 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 + unterlässt die Diskussion solcher speziellen Fälle. + +</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 das + sonst für ein lediglich exzellent Aussehen tun müssten. Bei 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 exzellenter Qualität leichter + zu encodieren sind. + <option>qcomp</option> ist standardmäßig 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. Wenns dir nur um Qualität + geht und nicht um die Durchsuchbarkeit, kannst du viel höhere Werte + setzen (vorausgesetzt es gibt schrumpfende Erträge, 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">deblockalpha, deblockbeta</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 schwer 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. + Die <option>deblockalpha</option>- und + <option>deblockbeta</option>-Parameter erlauben 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 sehr gut 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 + dennoch 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>Encodieroptionen Beispiele</title> + +<para> + Die folgenden Einstellungen sind Beispiele unterschiedlicher + Kombinationen von Encodier-Optionen, die einen Kompromiss zwischen + Geschwindigkeit und Qualität bei gleicher Zielbitrate betreffen. +</para> + +<para> + All diese Encodier-Einstellungen wurden an einem Beispiel-Video + mit 720x448 @30000/1001 fps getestet, die Zielbitrate wars 900kbps, + und der Rechner war ein + AMD-64 3400+ mit 2400 Mhz im 64-bit-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-Ooptionen</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:4x4mv:8x8dct:me=3: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:4x4mv: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> Codec-Familie</title> + +<para> + Video for Windows bietet ein einfaches Encodieren mittels binärer Video-Codecs. + Du kannst mit folgenden Codecs encodieren (solltest du mehr haben, teil es + uns bitte mit!) +</para> +<para> + Beachte, dass der Support für diesen Codec 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>needs <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>crashing on Linux</entry> +</row> +<row> + <entry>vp7vfw.dll</entry> + <entry>On2 VP7 Personal Codec (VP70)</entry> + <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry> + <entry>wrong 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 +<literal>codec</literal>-Parameter ü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 mit VP3Kompression: +<screen>mencoder dvd://2 -o title2.avi -ovc vfw -xvfwopts codec=vp31vfw.dll -oac copy</screen> +</para> +</informalexample> +</sect2> +</sect1> + + +<sect1 id="menc-feat-vcd-dvd"> +<title>Verwenden des MEncoder zum Erzeugen VCD/SVCD/DVD-konformer Dateien.</title> + +<sect2 id="menc-feat-vcd-dvd-constraints"> +<title>Formatbeschränkungen</title> +<para> + <application>MEncoder</application> ist fähig, MPEG-Dateien im VCD-, SCVD- + und DVD-Format durch verwenden 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 schweren Sachzwängen unterworfen. + Es ist nur eine kleine Auswahl an encodierten Bildergrößen und Seitenverhältnissen + verfügbar. + Wenn dein Film nicht bereits die Anforderungen erfüllt, müsstest 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>Aspect</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 Seiteverhä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. + Dankbarweise besitzt DVD eine ausreichend Bitrate, damit du dich + nicht zu sehr um die Encodier-Effizienz sorgen mußt, jedoch SVCD + und VCD sind höchst mager an Bitrate und erfordern Aufwand, 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 erfordert, CBR bei 1152 kbps zu sein. + Zu dieser nach oben begrenzende Einschränkung kommt auch noch eine + extrem niedrige vbv-Puffergröße von 327 Kilobit. + SVCD erlaugt 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 mußt, 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: + <screen> + -of mpeg -mpegopts format=dvd + </screen> +</para> + +<para> + DVD mit NTSC-Pullup: + <screen> + -of mpeg -mpegopts format=dvd:telecine -ofps 24000/1001 + </screen> + dies erlaubt 24000/1001 fps progressive-Inhalt bei 30000/1001 + fps encodiert zu werden, während dieser DVD-Konformität erhalten bleibt. +</para> + +<sect3 id="menc-feat-vcd-dvd-output-aspect"> +<title>Seitenverhältnis</title> +<para> + Das Seitenargument von <option>-lavcopts</option> wird zum Encodieren + des Seitenverhältnisses einer Datei verwendet. + Während des Playbacks wird Seitenverhältnis dazu benutzt, die korrekte + Größe des Videos wierder herzustellen. +</para> + +<para> + 16:9 or "Breitbild" + <screen> + -lavcopts aspect=16/9 + </screen> +</para> + +<para> + 4:3 or "Vollbild" + <screen> + -lavcopts aspect=4/3 + </screen> +</para> + +<para> + 2.35:1 or "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 des ganzen + Encodierens aufrecht zu erhalten, muß + <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> + in der Sektion + <link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Verbessern der Mux- und A/V-Synchronisationszuverlässigkeit</link> + oder in der Man Page. +</para> +</sect3> + +<sect3 id="menc-feat-vcd-dvd-output-srate"> +<title>Sampleraten-Konvertierung</title> +<para> + Wenn die Audio-Samplerate in der Originaldatei nicht die selbe wie + 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 and 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 mußt, 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 gebraucht. + 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, 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 oderr 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önnte 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 letzteren 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> +</itemizedlist> +</sect3> + +<sect3 id="menc-feat-vcd-dvd-lavc-examples"> +<title>Beispiele</title> +<para> + Dies ist eine typische Mindest-Zusammenstellung von <option>-lavcopts</option> + 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: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äts-steigernde + Optionen an lavcopts anzufü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 die 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 + </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 is weit entfernt davon, 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 schlechten + 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 kompletten 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 -vf scale=720:576,\ + harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ + vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15: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 -vf scale=720:480,\ + harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ + vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18: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 Containing AC3 Audio to 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 -vf scale=720:576,\ + harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\ + vbitrate=5000:keyint=15: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 Containing AC3 Audio to 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:telecine \ + -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\ + vrc_maxrate=9800:vbitrate=5000:keyint=15: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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/formats.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,531 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.26 $ --> +<chapter id="containers"> +<title>Containerformate</title> + +<para> + Es ist wichtig, einen häufigen Fehler zu berichtigen. Wenn Leute eine + Datei mit <filename>.AVI</filename>-Erweiterung sehen denken + sie sofort, dass es keine MPEG-Datei ist. Das ist nicht wahr. Zumindest + nicht vollständig. Im Gegensatz zur verbreiteten Ansicht + <emphasis>kann</emphasis> solche eine Datei MPEG1-Video + enthalten. +</para> + +<para> + Ein <emphasis role="bold">Codec</emphasis> ist nicht dasselbe wie ein + <emphasis role="bold">Datei-/Containerformat</emphasis>. + Beispiele für <emphasis role="bold">Video-Codecs</emphasis> sind: + MPEG1, MPEG2, DivX, Indeo5, 3ivx. Beispiele für + <emphasis role="bold">Dateiformate</emphasis> sind: MPG, AVI, ASF. +</para> + +<para> + Theoretisch kannst du ein OpenDivX-Video und MP3-Audio in einer + <emphasis role="bold">.MPG</emphasis>-Datei vereinigen. Die meisten + Player könnten es jedoch nicht abspielen, da sie MPEG1-Video und + MP2-Audio erwarten (im Gegensatz zu + <emphasis role="bold">AVI</emphasis> besitzt <emphasis role="bold">MPG</emphasis> + nicht die nötigen Felder, die die Video- und Audio-Streams + beschreiben). Oder du könntest ein MPEG1-Video in ein .AVI legen. + <ulink url="http://ffmpeg.org/"><application>ffmpeg</application></ulink> + und + <link linkend="mencoder"><application>MEncoder</application></link> können + solche Dateien erzeugen. +</para> + + +<sect1 id="video-formats"> +<title>Videoformate</title> + +<sect2 id="mpg-vob-dat"> +<title>MPEG-Dateien</title> + +<para> + MPEG-Dateien kommen in unterschiedlichen Erscheinungen: +</para> + +<itemizedlist> +<listitem><simpara> + MPG: Dies ist die <emphasis role="bold">grundlegende</emphasis> + Form des MPEG-Dateiformates. + Es enthält MPEG1-Video und MP2-(MPEG-1 layer 2) oder selten MP1-Audio. + </simpara></listitem> +<listitem><simpara> + DAT: Dies ist dasselbe Format wie MPG mit einer unterschiedlichen + Endung. Es wird auf <emphasis role="bold">Video-CD</emphasis>s benutzt. + Auf Grund der Tatsache, wie VCDs erzeugt werden und wie Linux entworfen + wurde, kann man die DAT-Dateien einer VCD weder abspielen noch kopieren. + Du musst die Option <option>-vcd</option> zum Abspielen einer Video-CD + verwenden. + </simpara></listitem> +<listitem><simpara> + VOB: VOB ist das MPEG-Dateiformat bei <emphasis role="bold">DVD</emphasis>s. + Es ist das gleiche wie MPG mit zusätzlicher Unterstützung für Untertitel + oder nicht-MPEG-(AC3)-Audio. Es enthält MPEG2-Video und normalerweise + AC3-Audio, aber auch DTS, MP2 und unkomprimierte LPCMs sind erlaubt. + <emphasis role="bold">Lies die <link linkend="dvd">DVD-Sektion</link>!</emphasis> + </simpara></listitem> +<listitem><simpara> + TY: Dies ist ein TiVo MPEG-Stream. Er enthält gleichermaßen MPEG-PES-Daten + für Audio- und Video-Streams wie auch extra Informationen wie geschlossene + Titel. Der Container ist kein MPEG-Programmstream, sondern ein geschlossenes, + von TiVo erzeugtes Format. Mehr Informationen zum TiVo-Streamformat + findest Du auf der + <ulink url="http://dvd-create.sourceforge.net/tystudio/tystream.shtml"> + der TyStudio-Seite</ulink>. + </simpara></listitem> +</itemizedlist> + +<para> + Serien von Frames bilden unabhängige Gruppen in MPEG-Dateien. Das + bedeutet, dass du eine MPEG-Datei mit einem Standard-Dateitool (wie + <command>dd</command> oder <command>cut</command>) + schneiden und zusammenfügen kannst und dieses trotzdem vollständig + funktionsfähig bleibt. +</para> + +<para> + Ein wichtiges Feature von MPGs ist, dass sie ein Feld besitzen, das das + Breiten-/Höhenverhältnis des Video-Streams angibt. SVCDs haben zum + Beispiel Video mit einer Auflösung von 480x480, und im Header ist dieses + Feld auf 4:3 gesetzt. Also wird es als 640x480 abgespielt. AVI-Dateien besitzen + dieses Feld nicht, sodass diese während des Encodierens skaliert werden + müssen oder die Option <option>-aspect</option> bei der Wiedergabe verwendet + werden muss. +</para> +</sect2> + + +<sect2 id="avi"> +<title>AVI-Dateien</title> + +<para> + <emphasis role="bold">AVI (Audio Video Interleaved)</emphasis> ist ein + von Microsoft entworfenes und weitverbeitetes Multifunktionsformat, das + zur Zeit hauptsächlich für DivX- und DivX4-Videos verwendet wird. Es + hat einige bekannte Nachteile, und ihm fehlen ein paar wichtige Features + (zum Beispiel Streaming). Es unterstützt einen Videostream und 0 bis + 99 Audiostreams. Die Dateien können bis zu 2 GB groß sein. Es existiert + eine Erweiterung für größere Dateien, genannt <emphasis role="bold">OpenDML</emphasis>. + Microsoft rät von der Verwendung dringend ab und propagiert ASF/WMV. + Als ob das irgendwen kratzen würde. +</para> + +<para> + Es gibt einen Hack, der es AVI-Dateien erlaubt, Ogg Vorbis Audio-Streams zu + enthalten, sie aber auch inkompatibel zu Standard-AVIs macht. + <application>MPlayer</application> + unterstützt die Wiedergabe solcher Dateien. Eine Spulfunktion ist auch + implementiert, jedoch wird diese stark von schlecht konvertierten Dateien mit + verwirrenden Headern gestört. Leider schreibt der einzige Encodierer, der + fähig ist, solche Dateien zu erzeugen (<application>NanDub</application>), + solch problematische Header. +</para> + +<note> +<para> + DV-Kameras können Raw-DV-Streams erzeugen, welche von DV-Aufnahmetools + in zwei unterschiedliche Typen von AVI-Dateien konvertiert werden. Die + AVI-Datei enthält dabei entweder separate Audio- und Video-Streams, die + <application>MPlayer</application> wiedergeben kann, oder den unveränderten + DV-Stream. An dessen Unterstützung wird gerade gearbeitet. +</para> +</note> + +<para> + Es gibt 2 Arten von AVI-Dateien: +<itemizedlist> +<listitem><simpara> + <emphasis role="bold">Interleaved:</emphasis> Audio- und Video-Inhalt + werden paketweise ineinander geschachtelt. Die ist üblich, wird empfohlen + und auch meist verwendet. Einige Tools erzeugen interleaved AVIs mit + schlechter Synchronisation. + <application>MPlayer</application> erkennt diese als interleaved, was + zum Verlust von A/V-Synchronisation führen kann (evtl. erst beim Vor-/Zurückspulen). + Diese Dateien sollten non-interleaved (mit der Option <option>-ni</option>) + abgespielt werden. + </simpara></listitem> +<listitem><simpara> + <emphasis role="bold">Non-interleaved:</emphasis> Als erstes kommt der + ganze Videostream, dann dann der ganze Audiostream. Dies erfordert viel + Suchen in der Datei, was die Wiedergabe vom Netzwerk oder von CDROM schwierig + macht. + </simpara></listitem> +</itemizedlist> +</para> + +<para> + <application>MPlayer</application> unterstützt zwei Arten des Timings für + AVI-Dateien: +<itemizedlist> +<listitem><simpara> + <emphasis role="bold">bps-basiert</emphasis>: Diese Methode basiert auf + der Bitrate/Samplerate des Video-/Audio-Streams. Diese Methode wird von den + meisten Playern verwendet, inklusive + <ulink url="http://avifile.sf.net">avifile</ulink> + und <application>Windows Media Player</application>. Dateien mit kaputten + Headern und Dateien, welche mit VBR-Audio aber nicht VBR-unterstützendem + Encoder erstellt wurden, führen zu A/V-Desynchronisation mit dieser Methode + (meistens beim Spulen). + </simpara></listitem> +<listitem><simpara> + <emphasis role="bold">interleaving-basiert</emphasis>: Diese Methode benutzt + nicht mehr den Wert der Bitrate sondern die relative Position des + Audio-Paketes zum aktuellen Video-Paket, was einige falsch codierte + Dateien mit VBR-Audio abspielbar macht. + </simpara></listitem> +</itemizedlist> +</para> + +<para> + Jeglicher Audio- und Video-Codec ist erlaubt. Aber bedenke, dass VBR-Audio + von den meisten Playern nicht gut unstützt wird. Das Dateiformat macht es + möglich, VBR-Audio zu verwendenm, aber die meinsten Player erwarten CBR-Audio, + weswegen VBR-Audio nicht funktioniert. VBR ist ungewöhnlich, und + Microsofts Spezifikation zu AVI beschreiben nur CBR-Audio. Bedenke auch, dass + die meisten AVI-Encoder/Multiplexer schlechte Dateien mit VBR-Audio erzeugen. + Es gibt nur zwei Ausnahmen: <application>NanDub</application> und + <link linkend="mencoder"><application>MEncoder</application></link>. +</para> +</sect2> + + +<sect2 id="asf-wmv"> +<title>ASF/WMV-Dateien</title> +<para> + ASF (Active Streaming Format) kommt von Microsoft. Sie habe zwei Arten von + ASF entwickelt, v1.0 und v2.0. v1.0 wird von ihren Media Tools + (<application>Windows Media Player</application> und + <application> Windows Media Encoder</application>) verwendet und ist sehr + geheim. v2.0 ist veröffentlicht und patentiert :). Natürlich sind sie + unterschiedlich und besitzten überhaupt keine Gemeinsamkeiten (es ist nur + ein weiteres Spiel mit den Gesetzen). <application>MPlayer</application> + unterstützt nur v1.0, weil noch niemand v2.0 Dateien gesehen hat :). + Beachte, dass .ASF-Dateien heute auch mit der Extension <filename>.WMA</filename> + oder <filename>.WMV</filename> vorkommen. +</para> +</sect2> + + +<sect2 id="mov"> +<title>QuickTime/MOV-Dateien</title> + +<para> + Diese Formate sind von Apple entworfen und können jeden beliebigen Codec + enthalten, CBR oder VBR. Normalerweise haben sie die Endung <filename>.QT</filename> + oder <filename>.MOV</filename>. + Seitdem die MPEG4-Gruppe QuickTime als das empfohlene Dateiformat für + MPEG4 ausgewählt hat, kommen ihre .MOV-Dateien mit den Endungen + <filename>.MPG</filename> oder <filename>.MP4</filename> daher. ( + Interessanterweise sind bei diesen Dateien die Video- und Audiostreams + richtige MPG- und AAC-Dateien. Mit den den Optionen <option>-dumpvideo</option> + und <option>-dumpaudio</option> kannst du sie sogar extrahieren.). +</para> + +<note> +<para> + Die meisten QuickTime-Dateien benutzen + <emphasis role="bold">Sorenson</emphasis>-Video und QDesign-Audio. Lies dazu + die <link linkend="sorenson">Sorenson</link>-Codec-Sektion. +</para> +</note> +</sect2> + + +<sect2 id="vivo"> +<title>VIVO-Dateien</title> + +<para> + <application>MPlayer</application> demuxt nun auch fröhlich VIVO-Dateiformate. + Der grösste Nachteil des Formates ist, dass es keinen Index-Block besitzt, + auch keine fixe Paketgröße oder Sync-Bytes. Die meisten Dateien + besitzen nicht mal Keyframes, also vergiss das Spulen! +</para> + +<para> + Der Videocodec von VIVO/1.0-Datei ist Standard-<emphasis role="bold">h.263</emphasis>. + Der Videocodec der VIVO/2.0 Dateien ist veränderter, + nichtstandard-<emphasis role="bold">h.263</emphasis>. Bei + Audio ist es dasselbe, es ist <emphasis role="bold">g.723</emphasis> (Standard) + oder <emphasis role="bold">Vivo Siren</emphasis>. +</para> + +<para> + In den <link linkend="vivo-video">VIVO-Videocodec-</link> und + <link linkend="vivo-audio">VIVO-Audiocodec</link>-Sektionen findest + du Installationsanweisungen. +</para> +</sect2> + + +<sect2 id="fli"> +<title>FLI-Dateien</title> +<para> + <emphasis role="bold">FLI</emphasis> ist ein sehr altes vom + <application>Autodesk Animator</application> benutztes Dateiformat. + Es ist aber immer noch ein im Internet gebräuchliches Dateiformat für + kurze Animationen. <application>MPlayer</application> demuxt und + decodiert FLI-Filme und ist sogar fähig, in ihnen vor- und zurückzuspulen + (nützlich, wenn man looping mit der Option <option>-loop</option> aktiviert + hat). FLI-Dateien haben keine Keyframes, was zu verunstalteten Bildern kurz + nach dem Spulen führt. +</para> +</sect2> + + +<sect2 id="realmedia"> +<title>RealMedia-(RM)-Dateien</title> + +<para> + Ja, <application>MPlayer</application> kann RealMedia-Dateien + (<filename>.rm</filename>) lesen (demuxen). + Hier ist die Liste der unterstützten + <link linkend="realvideo">RealVideo</link>- und + <link linkend="realaudio">RealAudio</link>-Codecs. +</para> +</sect2> + + +<sect2 id="nuppelvideo"> +<title>NuppelVideo-Dateien</title> +<para> + <ulink url="http://frost.htu.tuwien.ac.at/~roman/nuppelvideo/">NuppelVideo</ulink> + ist, soweit ich weiss, ein TV-Aufnahmeprogramm. <application>MPlayer</application> + kann dessen <filename>.NUV</filename>-Dateien (nur NuppelVideo 5.0) lesen. + Diese Dateien können unkomprimierte YV12-, komprimierte YV12+RTJpeg-, + komprimierte YV12-RTJpeg+lzo- und komprimierte YV12+lzo-Frames enthalten, welche + <application>MPlayer</application> + alle decodiert (und diese auch mit <application>MEncoder</application> zu + MPEG4 (DivX)/etc!) <emphasis role="bold">encodiert</emphasis>). + Spulen (seeking) funktioniert. +</para> +</sect2> + + +<sect2 id="yuv4mpeg"> +<title>yuv4mpeg-Dateien</title> +<para> + <ulink url="http://mjpeg.sf.net">yuv4mpeg / yuv4mpeg2</ulink> ist ein + Dateiformat, das von den <ulink url="http://mjpeg.sf.net">mjpegtools-Programmen</ulink> + verwendet wird. Du kannst damit Video in diesem Format einlesen, produzieren, + filtern oder encodieren. Das Dateiformat ist eigentlich eine Sequenz von + unkomprimierten YUV 4:2:0 Bildern. +</para> +</sect2> + + +<sect2 id="film"> +<title>FILM-Dateien</title> +<para> + Dieses Format wird auf alten Sega Saturn CD-ROM-Spielen verwendet. +</para> +</sect2> + + +<sect2 id="roq"> +<title>RoQ-Dateien</title> +<para> + RoQ-Dateien sind Multimedia-Dateien, welche in gewissen ID-Spielen wie + Quake III und Return to castle Wolfenstein benutzt werden. +</para> +</sect2> + + +<sect2 id="ogg"> +<title>OGG/OGM-Dateien</title> +<para> + Dies ist ein neues Dateiformat von + <ulink url="http://www.xiph.org">Xiphophorus</ulink>. Es kann beliebige + Video- und Audio-Codecs enthalten, sowohl CBR als auch VBR. Man benötigt + dazu installierte <systemitem class="library">libogg</systemitem>- und + <systemitem class="library">libvorbis</systemitem>-Bibliotheken vor + der Kompilierung von <application>MPlayer</application>, um sie wiedergeben + zu können. +</para> +</sect2> + + +<sect2 id="sdp"> +<title>SDP-Dateien</title> +<para> + <ulink url="ftp://ftp.rfc-editor.org/in-notes/rfc2327.txt">SDP</ulink> ist ein + IETF-Standardformat, das Video- und/oder Audio-RTP-Streams beschreibt. (Dazu + werden die + "<ulink url="http://www.live555.com/mplayer/">LIVE555 Streaming Media</ulink>"-Bibliotheken + benötigt.) +</para> +</sect2> + + +<sect2 id="pva"> +<title>PVA-Dateien</title> +<para> + PVA ist MPEG-ähnliches Format, das von verschiedenen Programmen + benutzt wird, die bei DVB-TV-Karten mitgeliefert werden (z.B. + <application>MultiDec</application>, <application>WinTV</application> + unter Windows). +</para> +</sect2> + + +<sect2 id="nsv"> +<title>NSV-Dateien</title> +<para> +NSV (NullSoft Video) ist das vom +<application>Winamp</application>-Player zum Streamen von Audio und Video +verwendete Dateiformat. +Video ist VP3, VP5 oder VP6, Audio is MP3, AAC oder VLB. +Die Nur-Audio-Version von NSV hat die Erweiterung <filename>.nsa</filename>. +<application>MPlayer</application> kann beides abspielen, NSV-Streams und -Dateien. +Beachte bitte, dass die meisten Dateien von der +<ulink url="http://www.winamp.com">Winamp-Seite</ulink> VLB-Audio verwenden, welches +noch nicht decodiert werden kann. Darüber hinaus benötigen Streams von dieser Seite +einen extra Layer zum Extrahieren der Pakete, der immer noch aud seine Implementierung +wartet (diese Dateien sind ohnehin nicht abspielbar, weil sie VLB-Audio verwenden). +</para> +</sect2> + + +<sect2 id="matroska"> +<title>Matroska-Dateien</title> +<para> +Matroska ist ein offenes Containerformat. +Lies mehr dazu auf der <ulink url="http://www.matroska.org/">offiziellen Site</ulink>. +</para> +</sect2> + + +<sect2 id="nut"> +<title>NUT -Dateien</title> +<para> +NUT ist das von <application>MPlayer</application>- und +<application>FFmpeg</application>-Leuten entwickelte Containerformat. +Beide Projekts unterstützen es. +Lies mehr dazu auf der <ulink url="http://www.nut.hu/">offiziellen Site</ulink>. +</para> +</sect2> + + +<sect2 id="gif"> +<title>GIF-Dateien</title> +<para> + Das <emphasis role="bold">GIF</emphasis>-Format ist ein weit verbreitetes Format + für Grafiken im Web. Es gibt zwei Versionen der GIF-Spezifikationen, GIF87a und + GIF89a. + Der größte Unterschied liegt darin, dass GIF89a Animationen erlaubt. + <application>MPlayer</application> unterstützt beide Formate mit + Hilfe der <systemitem class="library">libungif</systemitem>-Bibliothek oder + einer anderen libgif-kompatiblen Bibliothek. + Nicht animierte GIFs werden als Ein-Bild-Videos dargestellt. (Mit den + Optionen <option>-loop</option> und <option>-fixed-vo</option> können solche + GIFs länger angezeigt werden.) +</para> + +<para> + Momentan unterstützt <application>MPlayer</application> nicht das Spulen + in GIF-Dateien. Die einzelnen Bilder in GIF-Dateien haben nicht zwangsläufig + die gleichen Dimensionen, und auch nicht eine feste Bildrate. Jedes Bild hat + vielmehr seine eigenen Dimensionen und soll an einer bestimmten Position auf + einem Bereich angezeigt werden, der selber aber eine feste Größe hat. + Die Bildrate wird von einem optionalen Block vor jedem Bild kontrolliert, + der die Anzeigedauer des auf ihn folgenden Bildes in hundertstel Sekunden angibt. +</para> + +<para> + Standard-GIF-Dateien enthalten 24 Bit RGB-Bilder mit einer indizierten + Palette, die höchstens bis 8 Bit geht. Die Bilder sind normalerweise + mit dem LZW-Algorithmus komprimiert. Es gibt aber auch GIF-Encoder, die + unkomprimierte Bilder erzeugen, um die Patentprobleme mit dem LZW-Algorithmus + zu umgehen. +</para> + +<para> + Wenn bei deiner Distribution die <systemitem class="library">libungif</systemitem> + nicht dabei ist, dann lade sie + von der <ulink url="http://sourceforge.net/projects/libungif">libungif-Homepage</ulink> + herunter. Detaillierte technische Informationen findest + du in den + <ulink url="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF89a-Spezifikationen</ulink>. +</para> +</sect2> +</sect1> + +<!-- ********** --> + +<sect1 id="audio-formats"> +<title>Audioformate</title> + +<para> + <application>MPlayer</application> ist ein <emphasis role="bold">Movie</emphasis>- + (Film)und kein <emphasis role="bold">Media</emphasis>-Player. + Er kann auch einige Audioformate wiedergeben (diese sind in der unteren + Sektion beschrieben). Dies ist jedoch nicht die empfohlene Verwendung in + <application>MPlayer</application>, du solltest besser + <ulink url="http://www.xmms.org">XMMS</ulink> verwenden. +</para> + +<sect2 id="mp3"> +<title>MP3-Dateien</title> +<para> + Du hast vielleicht Probleme mit der Wiedergabe bestimmter MP3-Dateien, die + <application>MPlayer</application> fälschlicherweise als MPEGs erkennt und + dementsprechend falsch oder gar nicht wiedergibt. Dies kann nicht gelöst + werden, ohne die Unterstützung für einige kaputte MPEG-Dateien aufzugeben + und wird desshalb bis auf weiteres so bleiben. Die Option + <option>-demuxer</option>, welche in der Man Page beschrieben wird, könnte + dir in diesen Fällen helfen. +</para> +</sect2> + +<sect2 id="ogg-vorbis"> +<title>OGG/OGM-Dateien (Vorbis)</title> +<para> + Benötigt richtig installierte + <systemitem class="library">libogg</systemitem> und + <systemitem class="library">libvorbis</systemitem>. +</para> +</sect2> + +<sect2 id="cdda"> +<title>CD-Audio</title> +<para> + <application>MPlayer</application> kann die Bibliotheken von + <application>cdparanoia</application> + benutzen, um CDDA-Dateien (Audio CD) wiederzugeben. Alle + Features von <application>cdparanoia</application> + aufzuzählen gehört nicht zu den Aufgaben dieser Dokumentation. +</para> + +<para> + Schau in der Man Page bei der Option <option>-cdda</option> nach, wie mit ihr + Parameter an <application>cdparanoia</application> übergeben + werden können. +</para> +</sect2> + +<sect2 id="xmms"> +<title>XMMS</title> +<para> + <application>MPlayer</application> kann <application>XMMS</application>-Inputplugins + benutzen, um eine Vielzahl von Dateiformaten abzuspielen. Es gibt Plugins für + SNES-Spielemusik, SID-Musik (vom guten alten Commodore 64), viele Amiga-Formate, + .xm, .it, VQF, musepack, Bonk shorten und viele weitere. Du findest sie + auf der Seite für + <ulink url="http://www.xmms.org/plugins.php?category=input">XMMS-Inputplugins</ulink>. +</para> + +<para> + Um dieses Feature benutzen zu können, brauchst du <application>XMMS</application> + und musst <application>MPlayer</application> mit + <filename>./configure --enable-xmms</filename> compilieren. + Funktioniert dies nicht, dann musst du eventuell die Pfade für die + <application>XMMS</application>-Plugins und die + <application>XMMS</application>-Bibliotheken explizit mit + <option>--with-xmmsplugindir</option> und <option>--withxmmslibdir</option> + angeben. +</para> +</sect2> +</sect1> + +</chapter>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/history.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.12 $ --> +<!-- FIXME: history really should be in the appendix --> +<sect1 id="history"> +<title>Gechichte</title> + +<blockquote><para> +Dies begann vor einem Jahr... Ich hatte jede Menge Player unter Linux +ausprobiert (<application>mtv</application>, <application>xmps</application>, +<application>dvdview</application>, <application>livid/oms</application>, +<application>videolan</application>, <application>xine</application>, +<application>xanim</application>, <application>avifile</application>, +<application>xmmp</application>) aber sie haben alle irgendwelche Probleme. +meist mit speziellen Dateien oder mit der Audio-/Video-Synchronisation. +Die meisten von ihnen sind nicht fähig, beides MPEG1, MPEG2 und AVI-(DivX)-Dateien +abzuspielen. Viele Player haben auch Probleme mit der Bildqualität oder mit der +Geschwindigkeit. Also beschloß ich, einen zu schreiben bzw. zu modifizieren... +</para></blockquote><para>A'rpi, 2001</para> + +<para> +<itemizedlist> +<listitem><para> + <emphasis role="bold"><application>mpg12play</application> v0.1-v0.3</emphasis>: 22.-25. Sep. 2000 + </para> + <para>Der erste Versuch, zusammengehackt in einer halben Stunde! Ich hatte + libmpeg3 von <ulink url="http://www.heroinewarrior.com"/> bis zur Version 0.3 + verwendet, aber es gab Probleme mit Bildqualität und Geschwindigkeit. + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>mpg12play</application> v0.5-v0.87</emphasis>: 28. Sep. - 20 Okt. 2000 + </para><para>MPEG-Codec ersetzt durch DVDview von Dirk Farin, es war großartiger + Stoff, aber er war langsam und in C++ geschrieben (A'rpi hasst C++!!!) + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>mpg12play</application> v0.9-v0.95pre5</emphasis>: 21. Okt. - 2. Nov. 2000 + </para><para>MPEG-Codec war libmpeg2 (mpeg2dec) von Aaron Holtzman und + Michel Lespinasse. Er ist super, optimierter, sehr schneller C-Code mit perfekter + Bildqualität und 100% MPEG-Standard-Konformität. + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> v0.3-v0.9</emphasis>: 18 Nov. - 4. Dez., 2000 + </para><para>Es war ein Paket von zwei Programmen: mpg12play v0.95pre6 und mein + neuer, einfach gestrickter AVI-Player 'avip' basiernd auf den Win32 DLL loader + von avifile. + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> v0.10</emphasis>: 1. Jan. 2001 + </para><para>der MPEG- und AVI-Player in einer einzigen Binary! + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> v0.11pre series</emphasis>: + </para><para>Einige neuen Entwickler kamen dazu und seit 0.11 ist das + <application>MPlayer</application>-Projekt eine Gemeischaftsarbeit! Unterstützung für + ASF-Dateien hinzugefügt und OpenDivX-En-/Decodierung + (siehe <ulink url="http://www.projectmayo.com"/>). + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> v0.17a "The IdegCounter"</emphasis> 27. Apr. 2001 + </para><para>Die Release-Version der 0.11pre nach 4 Monaten harter Entwicklungsarbeit! + Probier sie aus und sei verblüfft! Tausende neuer Features eingefügt... + and of course old code was improved too, bugs removed etc. + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 0.18 "The BugCounter"</emphasis> 9. Jul. 2001 + </para><para>2 Monate seit 0.17 und hier ist ein neues Release.. ASF-Unterstützung + vervollständigt, mehr Untertitelformate, libao (ähnlich wie libvo aber für Audio) + eingeführt, stabiler als je zuvor, und so weiter. Es ist ein MUSS! + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 0.50 "The Faszom(C)ounter"</emphasis> 8. Okt. 2001 + </para><para>Hmm. Wieder ein Release. Tonnen neuer Features, Beta-GUI-Version, + Bugs gefixt, neue vo- und ao-Treiber, auf viele Systeme portiert, einschließlich + Opensource-DivX-Codecs und vieles mehr. Probier es aus! + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 0.60 "The RTFMCounter"</emphasis> 3. Jan. 2002 + </para><para>MOV/VIVO/RM/FLI/NUV-Dateiformat werden unterstützt, native CRAM-, Cinepak-, + ADPCM-Codecs und Unterstützung für XAnim's Binary-Codecs; Support für DVD-Untertitel, + erstes Release von <application>MEncoder</application>, TV-Grabbing, Cache, + liba52, unzählige Fixes. + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 0.90pre10 "The BirthdayCounter"</emphasis> 11. Nov. 2002 + </para><para>Obwohl dies kein Release ist, denke daran, werde ich es erwähnen, + weil 2 Jahre nach <application>MPlayer</application> v0.01 heraus. + Happy birthday, <application>MPlayer</application>! + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 0.90rc1 "The CodecCounter"</emphasis> 7. Dez. 2002 + </para><para>Wieder kein Release, aber nachdem Unterstützung für Sorenson 3 (QuickTime) + und Windows Media 9 hinzugefügt wurde, ist <application>MPlayer</application> weltweit + der erste Movie-Player mit Support für alle bekannten Video-Formate! + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 0.90 "The CounterCounter"</emphasis> 6. Apr. 2003 + </para><para>Nach mehr als 1 Jahr, kamen wir letztendlich zu dem Entschluß, dass + der Code tatsächlich wieder stabil und bereit zur Veröffentlichung als ein + Release ist. Leider vergaßen wir, die Versionsnummer zu erhöhen, und weitere + widerliche Bugs flossen ein, also sei bereit dafür... + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 0.91</emphasis> 13. Aug. 2003 + </para><para>Die oben erwähnten und viele weitere Bugs wurden gefixt. + This is the latest stable version. + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 1.0pre1 "Development on the beach"</emphasis> 1. Sep. 2003 + </para><para>Obwohl dies kein stabiles Release ist, werde ich es aufführen, weil + es die erste Vorabversion der 1.0-Serie des <application>MPlayer</application> + ist und ist dazu ausersehen, die <emphasis>großen Fehlerjagdparty</emphasis> + zu unterstützen. + Dies ist ein großer Schritt vorwärts! + </para></listitem> +<listitem><para> + <emphasis role="bold"><application>MPlayer</application> 1.0</emphasis> Datum noch unbekannt + </para></listitem> +</itemizedlist> +</para> +</sect1>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/mencoder.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,692 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.105 $ --> +<chapter id="mencoder"> +<title>Grundlegende Verwendung von <application>MEncoder</application></title> + +<para> +Eine komplette Liste der <application>MEncoder</application>-Optionen +und Beispielen findest du in der Man Page. Eine Reihe praktischer Beispiele +und detaillierter Anleitungen zur Anwendung verschiedener Encodier-Parameter +findet du in den +<ulink url="../../tech/encoding-tips.txt">Encodier-Tipps (im Moment nur engl.)</ulink>, +die aus verschiedenen Mailing-Listen-Threads von MPlayer-Nutzern +zusammengestellt wurden. +Durchsuche die +<ulink url="http://mplayerhq.hu/pipermail/mplayer-users/">Archive</ulink> +nach einer Fülle von Diskussionen über alle Aspekte der und Problemen mit +der Encodierung mittels <application>MEncoder</application>. +</para> + +<sect1 id="menc-feat-selecting-codec"> +<title>Auswahl der Codecs und Containerformate</title> + +<para> + Audio- und Video-Codecs für die Encodierung werden mit den Optionen + <option>-oac</option> und respective <option>-ovc</option> gewählt. + Gib zum Beispiel folgendes ein + <screen>mencoder -ovc help</screen> + um alle von der <application>MEncoder</application>-Version auf deinem Rechner + unterstützten Video-Codecs aufzulisten. + Die folgenden Wahlmöglichkeit stehen zur Verfügung: +</para> +<para> +Audio-Codecs: + +<informaltable frame="all"> +<tgroup cols="2"> +<thead> +<row><entry>Audio-Codecname</entry><entry>Beschreibung</entry></row> +</thead> +<tbody> + <row> + <entry>mp3lame</entry> + <entry>Encodiere nach VBR, ABR oder CBR MP3 mittels LAME</entry> + </row> + <row> + <entry>lavc</entry> + <entry>Verwende einen der Audio-Codecs von + <link linkend="menc-feat-enc-libavcodec-audio-codecs"><systemitem class="library">libavcodec</systemitem></link> + </entry> + </row> + <row> + <entry>faac</entry> + <entry>FAAC AAC Audio-Encoder</entry> + </row> + <row> + <entry>toolame</entry> + <entry>MPEG Audio Layer 2 Encoder</entry> + </row> + <row> + <entry>twolame</entry> + <entry>MPEG Audio Layer 2 Encoder basierend auf tooLAME</entry> + </row> + <row> + <entry>pcm</entry> + <entry>Unkomprimierter PCM-Audio</entry> + </row> + <row> + <entry>copy</entry> + <entry>Nicht neu codieren, kopiere einfach nur komprimierte Frames</entry> + </row> +</tbody> +</tgroup> +</informaltable> +</para> + +<para> +Video-Codecs: +<informaltable frame="all"> +<tgroup cols="2"> +<thead> +<row><entry>Video-Codecname</entry><entry>Beschreibung</entry></row> +</thead> +<tbody> + <row> + <entry>lavc</entry> + <entry>Verwende einen der Video-Codecs von + <link linkend="menc-feat-enc-libavcodec-video-codecs"><systemitem class="library">libavcodec</systemitem></link> + </entry> + </row> + <row> + <entry>xvid</entry> + <entry>XviD, MPEG-4 Advanced Simple Profile (ASP) Codec</entry> + </row> + <row> + <entry>x264</entry> + <entry>x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 Codec</entry> + </row> + <row> + <entry>nuv</entry> + <entry>NuppelVideo, von Echtzeit-Anwendungen verwendet</entry> + </row> + <row> + <entry>raw</entry> + <entry>Unkomprimierte Video-Frames</entry> + </row> + <row> + <entry>copy</entry> + <entry>Nicht neu codieren, kopiere einfach nur komprimierte Frames</entry> + </row> + <row> + <entry>frameno</entry> + <entry>Verwendet zur 3-pass-Encodierung (nicht empfohlen)</entry> + </row> +</tbody> +</tgroup> +</informaltable> +</para> +<para> + Ausgabe-Containerformate werde mittel der Option <option>-of</option> + gewählt. + Gib folgendes ein + <screen>mencoder -of help</screen> + um alle von der <application>MEncoder</application>-Version auf deinem Rechner + unterstützten Video-Codecs aufzulisten. + Die folgenden Wahlmöglichkeit stehen zur Verfügung: +</para> +<para> +Containerformate: +<informaltable frame="all"> +<tgroup cols="2"> +<thead> +<row><entry>Name des Containerformats</entry><entry>Beschreibung</entry></row> +</thead> +<tbody> + <row> + <entry>lavf</entry> + <entry>Einer der von + <systemitem class="library">libavformat</systemitem> + unterstützten Contaliner</entry> + </row> + <row> + <entry>avi</entry> + <entry>Audio-Video Interleaved</entry> + </row> + <row> + <entry>mpeg</entry> + <entry>MPEG-1 und MPEG-2 PS</entry> + </row> + <row> + <entry>rawvideo</entry> + <entry>raw-Video-Stream (kein Muxen - nur ein Video-Stream)</entry> + </row> + <row> + <entry>rawaudio</entry> + <entry>raw-Audio-Stream (kein Muxen - nur ein Audio-Stream)</entry> + </row> +</tbody> +</tgroup> +</informaltable> + Der AVI-Container ist das ursprüngliche Containerformat für + <application>MEncoder</application>, was bedeutet, dass es der am besten + gehandhabte ist und derjenige für welchen <application>MEncoder</application> + entworfen wurde. + wie oben angemerkt können weitere Containerformate angewandt werden, jedoch + kann es bei deren Gebrauch zu Problemen kommen. +</para> + +<para> +<systemitem class="library">libavformat</systemitem>-Container: +</para> +<para> + Wenn du für das Muxen der Ausgabedatei + <systemitem class="library">libavformat</systemitem> verwendest + (mittels <option>-of lavf</option>), + wird das passende Containerformat nach der Erweiterung der Ausgabedatei + ermittelt. + Du kannst besonderes Containerformat mit Hilfe der Option + <option>format</option> von <systemitem class="library">libavformat</systemitem> + erzwingen. + +<informaltable frame="all"> +<tgroup cols="2"> +<thead> +<row><entry><systemitem class="library">libavformat</systemitem> Containername</entry><entry>Beschreibung</entry></row> +</thead> +<tbody> + <row> + <entry>mpg</entry> + <entry>MPEG-1 und MPEG-2 PS</entry> + </row> + <row> + <entry>asf</entry> + <entry>Advanced Streaming Format</entry> + </row> + <row> + <entry>avi</entry> + <entry>Audio-Video Interleaved</entry> + </row> + <row> + <entry>wav</entry> + <entry>Waveform Audio</entry> + </row> + <row> + <entry>swf</entry> + <entry>Macromedia Flash</entry> + </row> + <row> + <entry>flv</entry> + <entry>Macromedia Flash Video</entry> + </row> + <row> + <entry>rm</entry> + <entry>RealMedia</entry> + </row> + <row> + <entry>au</entry> + <entry>SUN AU</entry> + </row> + <row> + <entry>nut</entry> + <entry>NUT offener Container (experimentell und noch nicht Spec-konform)</entry> + </row> + <row> + <entry>mov</entry> + <entry>QuickTime</entry> + </row> + <row> + <entry>mp4</entry> + <entry>MPEG-4 Format</entry> + </row> + <row> + <entry>dv</entry> + <entry>Sony Digital Video Container</entry> + </row> +</tbody> +</tgroup> +</informaltable> + Wie du siehst, erlaubt <systemitem class="library">libavformat</systemitem> + <application>MEncoder</application>, in eine beachtliche Vielfalt an Containern + zu muxen. + Leider solltest du wirklich Paranoia angesichts der resultierenden Datei schieben, + da <application>MEncoder</application> nicht von Anfang an für die Unterstützung + anderer Containerformate als AVI entworfen wurde. + + Überprüfe bitte sicherheishalber, ob die Audio-/Video-Synchronisierung OK ist + und ob die Datei von anderen Playern als <application>MPlayer</application> + wiedergegeben werden kann. +</para> + +<informalexample> +<para>Beispiel:</para> +<para> + Erzeugen eines Macromedia Flash Video, das in einem Web-Browser mit dem + Macromedia Flash Plugin abgespielt werden kann: +<screen> +mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.flv</replaceable> -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ +-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ +-srate 22050 +</screen> +</para> +</informalexample> + +</sect1> + + +<sect1 id="menc-feat-selecting-input"> +<title>Auswahl von Eingabedatei oder -gerät</title> + +<para> + <application>MEncoder</application> kann aus Dateien oder direkt von + einer DVD- oder VCD-Disk encodieren. + Schließe einfach den Dateinamen in der Befehlszeile mit ein, um + von einer Datei, oder + <option>dvd://</option><replaceable>Titelnummer</replaceable> + bzw. <option>vcd://</option><replaceable>Tracknummer</replaceable>, um + von einem DVD-Titel oder VCD-Track zu ecodieren. + Wenn du bereits einmal eine DVD auf deine Festplatte kopiert hast + (du kannst ein Tool wie etwa <application>dvdbackup</application> + verwenden, auf den meisten Systemen verfügbar), + und willst von der Kopie encodieren, solltest du nach wie vor die Syntax + <option>dvd://</option> benutzen, zusammen mit <option>-dvd-device</option> + gefolgt vom Pfad zur kopierten DVD-Root. + + Die Optionen <option>-dvd-device</option> und <option>-cdrom-device</option> + können auch dazu genutzt werden, die Pfade zu den Geräte-Nodes zu überschreiben, + um direkt von der Disk zu lesen, falls die Standardoptionen + <filename>/dev/dvd</filename> und <filename>/dev/cdrom</filename> auf + deinem System nicht funktionieren. +</para> +<para> + Wenn du von einer DVD encodierst, ist es oft wünschenswert, ein zu + encodierendes Kapitel oder einen Bereich von Kapiteln auszuwählen. + Du kannst zu diesem Zweck die Option <option>-chapter</option> nutzen. + Zum Beispiel wird <option>-chapter</option> <replaceable>1-4</replaceable> + nur die Kapitel 1 bis 4 der DVD encodieren. + Dies ist besonders nützlich, wenn du eine für zwei CDs bestimmte + Encodierung mit 1400 MB durchführen willst, da du sicherstellen kannst, + dass der Split exakt an den Kapitelgrenzen stattfindet, anstatt mitten + in einer Szene. +</para> +<para> + Besitzt du eine unterstützte TV-Capture-Karte, kannst du auch von einem + TV-In-Gerät encodieren. + Verwende <option>tv://</option><replaceable>Kanalnummer</replaceable> als + Dateinamen und <option>-tv</option> zur Konfiguration der zahlreichen + Aufnahmeeinstellungen. + Der DVB-Input funktioniert ähnlich. +</para> +</sect1> + + +<sect1 id="menc-feat-mpeg4"> +<title>Encodieren von 2-pass-MPEG4 ("DivX")</title> + +<para> +Der Name kommt daher, dass diese Methode die Datei <emphasis>zweimal</emphasis> +encodiert. +Die erste Encodierung (synchronisierter Durchgang) erzeugt einige temporäre +Dateien (<filename>*.log</filename>) mit einer Größe von ein paar Megabyte, +lösche diese noch nicht (du kannst dabei die AVI löschen oder vielmehr einfach +kein Video erstllen, indem du sie nach <filename>/dev/null</filename> +umadressierst). +Im zweiten Durchgang, wird die 2-pass-Ausgabedatei erzeugt, indem die +Biitraten-Daten der temporären Dateien genutzt werden. Die sich daraus +ergebende Datei wird eine viel bessere Bildqualität besitzen. Wenn du das +erste Mal davon gehört hast, solltest du einige im Netz verfügbare Handbücher +zu Rate ziehen. +</para> + +<example> +<title>Kopieren eines Audio-Tracks</title> +<para> +2-pass-Encodierung des zweiten Tracks einer DVD nach einer MPEG4 ("DivX") +AVI-Datei während des gleichzeitigen Kopierens des Audio-Tracks. +<screen> +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</example> + +<example> +<title>Encodieren eines Audio-Tracks</title> +<para> +2-pass-Encodierung einer DVD nach einer MPEG4 ("DivX") AVI-Datei +während des gleichzeitigen Encodierens des Audio-Tracks nach MP3. +Sei bei der Anwendung dieser Methode vorsichtig, da sie in einigen Fällen +zur Audio-/Video-Desynchronisierung führen kann. +<screen> +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o /dev/null +mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac mp3lame -lameopts vbr=3 -o <replaceable>output.avi</replaceable> +</screen> +</para> +</example> +</sect1> + +<sect1 id="menc-feat-mpeg"> +<title>Encodieren ins MPEG-Format</title> +<para> +<application>MEncoder</application> kann Ausgabedateien im Format +MPEG (MPEG-PS) erzeugen. +Gewöhnlich, wenn du MPEG1- oder MPEG2-Videos benutzt, tust du dies, weil +du in ein erzwungenes Format wie SVCD, VCD oder DVD encodierst. +die spezifischen Anforderungen an diese Formate werden im Abschnitt +<link linkend="menc-feat-vcd-dvd">Verwenden des MEncoder zum Erzeugen +VCD/SVCD/DVD-konformer Dateien</link> +beschrieben. +</para> + +<para> +Um das Format der Ausgabedatei von <application>MEncoder</application> +zu ändern, nimm die Option <option>-of mpeg</option>. +</para> + +<informalexample> +<para> +Beispiel: +<screen> +mencoder <replaceable>input.avi</replaceable> -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy <replaceable>other_options</replaceable> -o <replaceable>output.mpg</replaceable> +</screen> +Erzeugen einer für das Abspielen auf Systemen mit minimalem Multimedia-Support +geeigneten MPEG1-Datei, wie etwa auf Standard-Windows-Installationen: +<screen> +mencoder <replaceable>input.avi</replaceable> -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -o <replaceable>output.mpg</replaceable> -oac lavc -ovc lavc \ +-lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 +</screen> +</para> +</informalexample> + +<note><title>Hinweis:</title> +<para> + Wenn dich die Video-Qualität des zweiten Durchgangs aus irgend einem + Grund nicht zufrieden gestellt hat, kannst du deine Encodierung + mit einer anderen Ziel-Bitrate erneut durchlaufen lassen, vorausgesetzt + du hast die Statistikdateien des vorherigen Durchgangs gessichert. + Dies ist möglich, weil das Primärziel der Statistikdateien die Aufzeichnung + der Komplexität jedes Frames ist, was nicht allzusehr von der Bitrate + abhängt. Du solltest daher beachten, dass du die besten Ergebnissebekommst, + wenn alle Durchgänge mit nicht zu sehr voneinander abweichenden + Ziel-Bitraten durchlaufen werden. +</para> +</note> + +</sect1> + +<sect1 id="menc-feat-rescale"> +<title>Reskalierung von Filmen</title> + +<para> +Oft taucht die Notwendigkeit auf, die Größe der Bilder eines Films zu +ändern. Das kann viele Gründe haben: das Wachsen der Dateigröße, +Netzwerkbandbreite etc. Die meisten Leute reskalieren gerade beim +Konvertieren von DVDs oder SVCDs nach DivX AVI. Wenn du reskalieren willst, +lies den Abschnitt <link linkend="aspect">Beibehalten des Seitenverhältnisses</link>. +</para> + +<para> +Der Skalierungsprozess wird vom <literal>scale</literal>-Video-Filter verarbeitet: +<option>-vf scale=<replaceable>Breite</replaceable>:<replaceable>Hoehe</replaceable></option>. +Seine Qualität kann mit der Option <option>-sws</option> gesetzt werden. +Ist sie nicht angegeben, wird <application>MEncoder</application> 2: bikubisch +verwenden. +</para> + +<para> +Anwendung: +<screen> +mencoder <replaceable>input.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=640:480 -o <replaceable>output.avi</replaceable> +</screen> +</para> +</sect1> + + +<sect1 id="menc-feat-streamcopy"> +<title>Kopieren von Streams</title> + +<para> +<application>MEncoder</application> kann Input-Streams auf zwei Arten verarbeiten: +<emphasis role="bold">encodiere</emphasis> oder <emphasis role="bold">kopiere</emphasis> +sie. Dieser Abschnitt handelt über das <emphasis role="bold">Kopieren</emphasis>. +</para> + +<itemizedlist> +<listitem><para> + <emphasis role="bold">Video-Stream</emphasis> (option <option>-ovc copy</option>): + damit kann man nette Sachen machen :) Wie FLI oder VIVO oder + MPEG1-Video in eine AVI-Datei legen (nicht konvertieren!)! Sicherlich kann + nur <application>MPlayer</application> solche Dateien abspielen :) + Und es hat tatsächlich keine wirkliche Daseinsberechtigung. + Rational: Das Kopieren eines Video-Stream copying kann zum Beispiel dann + nützlich sein, wenn nur der Audio-Stream encodiert werden muß (wie + unkomprimiertes PCM nach MP3). + </para></listitem> +<listitem><para> + <emphasis role="bold">Audio-Stream</emphasis> (Option <option>-oac copy</option>): + unkompliziert. Es ist möglich, eine exterene Audio-Datei (MP3, + WAV) herzunehmen und sie in einen Ausgabe-Stream zu muxen. Nimm dazu die + Option <option>-audiofile <replaceable>Dateinamename</replaceable></option>. + </para></listitem> +</itemizedlist> + +<para> + das Anwenden von <option>-oac copy</option>, um von einem + Containerformat zum anderen zu kopieren, kann + <option>-fafmttag</option> erfordern, um das Audio-Format-Tag der Originaldatei + beizubehalten. + Zum Beispiel, du eine NSV-Datei mit AAC-Audio in einen AVI-Container + konvertierst, wird der Audio-Format-Tag fehlerhaft und er muß geändert + werden. <filename>codecs.conf</filename> enthält eine Liste von + Audio-Format-Tags. +</para> + +<para> +Beispiel: +<screen> +mencoder <replaceable>input.nsv</replaceable> -oac copy -fafmttag 0x706D -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o <replaceable>output.avi</replaceable> +</screen> +</para> + +</sect1> + + +<sect1 id="menc-feat-enc-images"> +<title>Encodieren von mehreren Input-Bilddateien (JPEG, PNG, TGA, SGI)</title> + +<para> + <application>MEncoder</application> ist in der Lage, Filme aus einer oder + mehreren JPEG-, PNG- oder TGA-Dateien zu erzeugen. Mit einem einfachen + framecopy kann es MJPEG (Motion JPEG), MPNG (Motion PNG) oder MTGA (Motion TGA) + Dateien generieren. +</para> + +<orderedlist> +<title>Erläuterung des Prozesses:</title> +<listitem><para> + <application>MEncoder</application> <emphasis>decodiert</emphasis> das/die + Input-Bild(er) mitttels <systemitem class="library">libjpeg</systemitem> + (beim Decodieren von PNGs nimmt er <systemitem class="library">libpng</systemitem>). + </para></listitem> +<listitem><para> + <application>MEncoder</application> führt dann das decodierte Bild dem + gewählten Video-Kompressor zu (DivX4, XviD, FFmpeg msmpeg4, etc). + </para></listitem> +</orderedlist> + +<formalpara> +<title>Beispiele</title> +<para> +Die Erklärung der Option <option>-mf</option> steht in der Man Page. + +<informalexample> +<para> + Erzeugen einer MPEG4-Datei aus allen im aktuellen Verzeichnis liegenden + JPEG-Dateien: +<screen> +mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<informalexample> +<para> + Erzeugen einer MPEG4-Datei aus einigen im aktuellen Verzeichnis liegenden + JPEG-Dateien: +<screen> +mencoder mf://<replaceable>frame001.jpg,frame002.jpg</replaceable> -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<informalexample> +<para> + Erzeugen einer MPEG4-Datei aus einer eindeutig Liste von JPEG-Dateien (list.txt in + aktuellem Verzeichnis enthält die Liste von Dateien, die als Quelle genutzt werden + sollen, eine pro Zeile): +<screen> +mencoder mf://<replaceable>@list.txt</replaceable> -mf w=800:h=600:fps=25:type=jpg \ +-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<informalexample> +<para> + Erzeugen einer Motion JPEG (MJPEG) Datei aus allen im aktuellen Verzeichnis liegenden + JPEG-Dateien: +<screen> +mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<informalexample> +<para> + Erzeugen einer unkomprimierten Datei aus allen PNG-Dateien im aktuellen Verzeichnis: +<screen> +mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o <replaceable>output.avi</replaceable> +</screen> +</para> +</informalexample> + +<note><para> + Die Breite muß ein mehrfacher Integerwert von 4 sein, es ist eine Einschränkung des + RAW RGB AVI Formats. +</para></note> + +<informalexample> +<para> + Erzeugen einer Motion PNG (MPNG) Datei aus allen PNG-Dateien im aktuellen Verzeichnis: +<screen> +mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o <replaceable>output.avi</replaceable> <!-- +--></screen> +</para> +</informalexample> + +<informalexample> +<para> + Erzeugen einer Motion TGA (MTGA) Datei aus allen TGA-Dateien im aktuellen Verzeichnis: +<screen> +mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o <replaceable>output.avi</replaceable><!-- +--></screen> +</para> +</informalexample> + +</para> +</formalpara> +</sect1> + + +<sect1 id="menc-feat-extractsub"> +<title>Extraieren von DVD-Untertiteln in eine VOBsub-Datei</title> + +<para> + <application>MEncoder</application> kann Untertitel aus einer DVD + in VOBsub-formatierte Dateien extrahieren. Diese bestehen aus einem + Paar Dateien mit den Endungen <filename>.idx</filename> und + <filename>.sub</filename> und sind für gewöhnlich in ein einzelnes + <filename>.rar</filename>-Archiv gepackt. + <application>MPlayer</application> kann diese mit den Optionen + <option>-vobsub</option> und <option>-vobsubid</option> abspielen. +</para> + +<para> + Du legst den Basisnamen der Ausgabedateien (z.B ohne die Erweiterung + <filename>.idx</filename> oder <filename>.sub</filename>) + mittels <option>-vobsubout</option> fest und den Index für diesen + Untertitel der resultierenden Dateien mit <option>-vobsuboutindex</option>. +</para> + +<para> + Stammt der Input nicht von einer DVD, solltest du <option>-ifo</option> + verwenden, um die zur Konstruktion der resultierenden + <filename>.idx</filename>-Datei benötigten <filename>.ifo</filename>-Datei + anzugeben. +</para> + +<para> + Stammt der Input nicht von einer DVD und du besitzt die + <filename>.ifo</filename>-Datei nicht, muß du die Option + <option>-vobsubid</option> anwenden, um ihn wissen zu lassen, welche + Sprach-ID in die <filename>.idx</filename>-Datei eingefügt werden soll. +</para> + +<para> + Jeder Start wird den laufenden Untertitel anhängen, falls die + <filename>.idx</filename>- und <filename>.sub</filename>-Dateien bereits + existieren.Also solltest du jede von beiden vor dem Start entfernen. +</para> + +<example> +<title>Kopieren zweier Untertitel aus einer DVD während einer 2-pass-Encodierung</title> +<screen> +rm subtitles.idx subtitles.sub +mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 +mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5<!-- +--></screen> +</example> + +<example> +<title>Kopieren eines französichen Untertitel aus einer MPEG-Datei</title> +<screen> +rm subtitles.idx subtitles.sub +mencoder <replaceable>movie.mpg</replaceable> -ifo <replaceable>movie.ifo</replaceable> -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1 -nosound -ovc copy +</screen> +</example> + +</sect1> + +<sect1 id="aspect"> +<title>Beibehalten des Seitenverhältnisses</title> +<para> + Dateien von DVDs und SVCDs (z.B. MPEG1/2) enthalten einen Wert für das + Seitenverhältnis, welcher beschreibt, wie der Player den Video_Stream + skalieren soll, damit Menschen keine Eierköpfe kriegen + (Bsp.: 480x480 + 4:3 = 640x480). Beim Encodieren nach AVI-(DivX)-Dateien + musst du dir bewusst sein, dass AVI-Header diesen Wert nicht abspeichern. + Das Reskalieren des Films ist ätzend und zeitaufwändig, da muß es doch + einen besseren Weg geben! +</para> + +<para>Es gibt ihn</para> + +<para> + MPEG4 besitzt ein einzigartiges Feature: der Video-Stream kann sein + benötigtes Seitenverhältnis enthalten. ja, genau wie MPEG1/2 (DVD, SVCD) + und H.263 Dateien. Bedauerlicherweise gibt es abgesehen von + <application>MPlayer</application> wenige Video-Player, die dieses + MPEG4-Attribut unterstützen. +</para> + +<para> + Dieses Feature kann nur mit dem <systemitem>mpeg4</systemitem>-Codec von + <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> + verwendet werden. Vergiss nicht: obwohl <application>MPlayer</application> + die erzeugte Datei korrekt abspielen wird, könnten andere Player das verkehrte + Seitenverhältnis benutzen. +</para> + +<para> + Du solltest auf jeden Fall die schwarzen Bänder oberhalb und unterhalb des + Filmbildes abschneiden. + In der Man Page steht mehr zur Verwendung der <systemitem>cropdetect</systemitem>- + und <systemitem>crop</systemitem>-Filter. +</para> + +<para> +Anwendung +<screen>mencoder <replaceable>sample-svcd.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -vf crop=714:548:0:14 -oac copy -o <replaceable>output.avi</replaceable></screen> +</para> +</sect1> + +</chapter>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/ports.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,844 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.80 $ --> +<chapter id="ports" xreflabel="Ports"> +<title>Portierungen</title> + +<sect1 id="linux"> +<title>Linux</title> +<para> + Die Hauptentwicklungsplattform ist Linux auf x86, obwohl + <application>MPlayer</application> auf vielen anderen Linux-Portierungen + funktioniert. + Binary Packages von <application>MPlayer</application> stehen auf mehreren Quellen + zur Verfügung. Jedoch wird <emphasis role="bold">keines dieser Packages unterstützt</emphasis>. + Melde den Autoren die Probleme, nicht uns. +</para> + +<sect2 id="debian"> +<title>Debian-Packaging</title> +<para> + Um ein Debian-Package zu bauen, führe folgenden Befehl im source-Verzeichnis von + <application>MPlayer</application> aus: + +<screen>fakeroot debian/rules binary</screen> + + Wenn du eigene Optionen an configure übergeben willst, kannst du die Umgebungsvariable + <envar>DEB_BUILD_OPTIONS</envar> einrichten. Zum Beispiel, wenn du die + GUI- und OSD-Menü-Unterstützung willst, die du gerne nutzen würdest: + +<screen>DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary</screen> + + Du kannst auch einige Variablen an Makefile übergeben. Zum Beispiel, wenn du + mit gcc 3.4 compilieren willst, auch wenn er nicht der Standard-Compiler ist: + +<screen>CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary</screen> + + Um den source-Baum aufzuräumen, führe folgenden Befehl aus: + +<screen>fakeroot debian/rules clean</screen> + + Als root kannst du dann das <filename>.deb</filename>-Package wie immer installieren: + +<screen>dpkg -i ../mplayer_<replaceable>version</replaceable>.deb</screen> +</para> + +<para> + Christian Marillat hatte eine Weile lang inoffizielle Debian-Packages von + <application>MPlayer</application>, <application>MEncoder</application> und + unseren Bitmap-Fonts erstellt, du kannst sie (passend)auf + <ulink url="http://hpisi.nerim.net/">seiner Homepage</ulink> bekommen. +</para> +</sect2> + +<sect2 id="rpm"> +<title>RPM-Packaging</title> +<para> + Dominik Mierzejewski entwarf und wartet die inoffizielle RPM-Packages von + <application>MPlayer</application> für Red Hat und Fedora Core. Sie sind auf + seinem <ulink url="http://rpm.greysector.net/mplayer/">Repository</ulink> + verfügbar. +</para> + +<para> + Mandrake/Mandriva RPM-Packages stehen auf <ulink url="http://plf.zarb.org/">P.L.F.</ulink> + zur Verfügung. + SuSE verwendet eine verkrüppelte Version des <application>MPlayer</application> + in seiner Distribution. Diese haben sie aus ihren neuesten Releases entfernt. Du + bekommst funktionierende RPMs auf +<ulink url="http://packman.links2linux.de/?action=128">links2linux.de</ulink>. +</para> +</sect2> + +<sect2 id="arm"> +<title>ARM</title> +<para> + <application>MPlayer</application> läuft auf Linux PDAs mit ARM CPU z.B. Sharp Zaurus, + Compaq Ipaq. Der einfachste Weg, sich <application>MPlayer</application> zu besorgen ist, + sich ihn von einer der + <ulink url="http://www.openzaurus.org">OpenZaurus</ulink> Package Feeds zu holen. Falls + du ihn dir selbst compilieren willst, solltest du im + <ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">mplayer</ulink>- + und im + <ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</ulink>-Verzeichnis + der OpenZaurus Distribution Buildroot nachsehen. Diese haben stets die neueste + Makefile und Patches, die zum Erstellen eines CVS-<application>MPlayer</application> mit + <systemitem class="library">libavcodec</systemitem> verwendet werden. + Braucht su ein GUI-Frontend, kannst du xmms-embedded nutzen. +</para> +</sect2> +</sect1> + +<sect1 id="bsd"> +<title>*BSD</title> +<para> + <application>MPlayer</application> läuft auf allen bekannten BSD-Flavors. + Es stehen ports/pkgsrc/fink/etc-Versionen des <application>MPlayer</application> + bereit, die möglicherweise leichter anzuwenden sind, als unsere Originalquellen. +</para> + +<para> + Um <application>MPlayer</application> zu erstellen, brauchst du GNU make + (gmake - natives BSD make wird nicht funktionieren) und eine aktuelle Version + der binutils. +</para> + +<para> + Beschwert sich <application>MPlayer</application>, er könne <filename>/dev/cdrom</filename> + oder <filename>/dev/dvd</filename> nicht finden, erstelle einen geeigneten symbolischen Link: +<screen>ln -s /dev/<replaceable>dein_cdrom_geraet</replaceable> /dev/cdrom</screen> +</para> + +<para> + Um Win32-DLLs mit <application>MPlayer</application> zu nutzen, musst du + den Kernel mit "<envar>option USER_LDT</envar>" recompilieren + (es sei denn du lässt FreeBSD-CURRENT laufen, wobei dies die + Standard-Einstellung ist). +</para> + + +<sect2 id="freebsd"> +<title>FreeBSD</title> +<para> + Besitzt deine CPU SSE, recompiliere deinen Kernel mit + "<envar>options CPU_ENABLE_SSE</envar>" (FreeBSD-STABLE oder + Kernel-Patches erforderlich). +</para> +</sect2> + +<sect2 id="openbsd"> +<title>OpenBSD</title> +<para> + Aufgrund von Einschränkungen in verschiedenen Versionen von GAS (der GNU Assembler, + Relocation vs MMX), wirst du in zwei Schritten compilieren müssen: Stell als + erstes sicher, dass der nicht-native zuvor in deinem <envar>$PATH</envar> liegt und + führe ein <command>gmake -k</command> aus, dann sorge dafür, dass die native Version + benutzt wird und führe <command>gmake</command> aus. +</para> +<para> + Ab OpenBSD 3.4 ist der oben beschriebene Hack nicht länger nötig. +</para> +</sect2> + +<sect2 id="darwin"> +<title>Darwin</title> +<para> + Siehe Abschnitt <link linkend="macos">Mac OS</link>. +</para> +</sect2> +</sect1> + +<sect1 id="unix"> +<title>Kommerzielles Unix</title> + +<para> + <application>MPlayer</application> wurde auf einige kommerzielle + Unix-Varianten portiert. Seit die Entwicklungsumgebungen auf diesen Systemen + dahin tendieren, verschieden von denen freier Unixes zu sein, mußt du möglicherweise + einige manuelle Anpassungen vornehmen, um das Build lauffähig zu bekommen. +</para> + +<sect2 id="solaris"> +<title>Solaris</title> +<para> + <application>MPlayer</application> sollte auf Solaris 2.6 oder neuer funktionieren. + Verwende den Audio-Treiber von SUN mit der Option <option>-ao sun</option> für + den Sound. +</para> + +<para> + Auf <emphasis role="bold">UltraSPARCs</emphasis>, profitiert + <application>MPlayer</application> von deren + <emphasis role="bold">VIS</emphasis>-Erweiterungen (äquivalent zu MMX), zur Zeit + nur in + <systemitem class="library">libmpeg2</systemitem>, + <systemitem class="library">libvo</systemitem> + und <systemitem class="library">libavcodec</systemitem>, jedoch nicht in + <systemitem class="library">mp3lib</systemitem>. Du kannst dir eine VOB-Datei + auf einer 400MHz CPU ansehen. Dazu muß + <ulink url="http://www.sun.com/sparc/vis/mediaLib.html"><systemitem class="library">mLib</systemitem></ulink> + installiert sein. +</para> + +<para> + Um das Package zu erstellen, brauchst du das GNU <application>make</application> + (<filename>gmake</filename>, <filename>/opt/sfw/gmake</filename>), das native + Solaris make wird nicht funktionieren. Ein typischer Fehler, den du bekommst, wenn + du mit einem make von Solaris arbeitest statt mit einem GNU make: +<screen> + % /usr/ccs/bin/make + make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen +</screen> +</para> + +<para> + Auf Solaris SPARC, brauchst du den GNU C/C++ Compiler; es spielt keine Rolle, ob + der GNU C/C++ Compiler mit oder ohne dem GNU Assembler compiliert ist. +</para> + +<para> + Auf Solaris x86, brauchst du den GNU Assembler und den GNU C/C++ Compiler + so konfiguriert, dass er den GNU Assembler verwendet! der + <application>MPlayer</application>-Code auf der x86-Plattform macht starken + Gebrauch von MMX-, SSE- und 3DNOW!-Instruktionen, die nicht compiliert werden + können, wenn man den Assembler von Sun <filename>/usr/ccs/bin/as</filename> + verwendet. +</para> + +<para> + Das <filename>configure</filename>-Script versucht herauszufinden, welches + Assembler-Programm von deinem "gcc"-Befehl genutzt wird (falls die + automatische Erkennung fehlschlägt, nimm die Option + <option>--as=<replaceable>/pfad/zum/installierten/gnu-as</replaceable></option>, + um dem <filename>configure</filename>-Script zu zeigen, wo es GNU "as" auf + deinem System finden kann). +</para> + +<para> + Fehlermeldung von <filename>configure</filename> auf einem Solaris x86 System, + wenn man GCC ohne GNU Assembler anwendet: +<screen> + % configure + ... + Checking assembler (/usr/ccs/bin/as) ... , failed + Please upgrade(downgrade) binutils to 2.10.1... +</screen> + (Lösung: Installiere und verwende ein gcc, konfiguriert mit + <option>--with-as=gas</option>) +</para> + +<para> + Ein typischer Fehler, den du bekommst, wenn du mit einem GNU C Compiler arbeitest, der + GNU "as" nicht verwendet: +<screen> + % gmake + ... + gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math + -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c + Assembler: mplayer.c + "(stdin)", line 3567 : Illegal mnemonic + "(stdin)", line 3567 : Syntax error + ... more "Illegal mnemonic" and "Syntax error" errors ... +</screen> +</para> + +<para> + Aufgrund von Bugs in Solaris 8 kann es dazu kommen, dass du keine DVD-Disks + größer 4 GB abspielen kannst: +</para> + +<itemizedlist> +<listitem><para> + Der sd(7D)-Treiber auf Solaris 8 x86 hat einen Bug, wenn er auf einen Diskblock >4GB + auf einem Gerät zugreift, das eine logische blocksize != DEV_BSIZE verwendet (z.B. + CD-ROM- und DVD-Medien). + Wegen eines 32Bit int overflows, wird auf eine Disk-Adresse modulo 4GB zugegriffen + (<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22516"/>). + Dieses Problem existiert nicht in der SPARC-Version von Solaris 8. +</para></listitem> + +<listitem><para> + Ein ähnlicher Bug is present im Dateisystem-Code (AKA ISO9660) von hsfs(7FS), + hsfs unterstützt keine Partitionen/Disks größer als 4GB, auf alle daten wird + modulo 4GB zugegriffen + (<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22592"/>). + Dieses hsfs-Problem kann durch die Installation von Patch 109764-04 (sparc) / 109765-04 (x86) + gefixt werden. +</para></listitem> +</itemizedlist> +</sect2> + +<sect2 id="irix"> +<title>IRIX</title> +<para> + Du kannst entweder versuchen, das GNU-Installationsprogramm zu installieren, und dann + (falls du es nicht in deinen globalen Path gelegt hast) auf den Standort zeigen mit: +<screen>./configure --with-install=<replaceable>/path/and/name/of/install</replaceable></screen> +</para> + +<para> + Oder du kannst die mit IRIX 6.5 gelieferte die Standard-Installation verwenden, falls + du die <filename>Makefile</filename> ein bisschen von Hand editieren willst. + Ändere folgende beiden Zeilen: +<programlisting> + $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 + + $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf +</programlisting> + nach: +<programlisting> + $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ + + $(INSTALL) -m 644 codecs.conf $(CONFDIR)/ +</programlisting> + Und dann gehe (aus dem <application>MPlayer</application>-Quellverzeichnis heraus) + nach: +<screen>cp DOCS/mplayer.1 . ; cp etc/codecs.conf .</screen> + und fahre dann fort mit dem Builden und Installieren. +</para> +</sect2> + + +<sect2 id="hp-ux"> +<title>HP-UX</title> +<para> + Joe Page unterhält ein detailliertes HP-UX + <application>MPlayer</application>-<ulink url="http://users.rcn.com/joepage/mplayer_on_hpux11.htm">HOWTO</ulink> + von Martin Gansser auf seiner Homepage. Mit diesen Instruktionen sollte das builden + hervorragend funktionieren. Die folgende Information wurde aus diesem HOWTO übernommen. +</para> + +<para> + Du benötigst GCC 3.4.0 oder später, GNU make 3.80 oder später und SDL 1.2.7 oder später. + HP cc wird kein lauffähiges Programm produzieren, frühere GCC-Versionen sind buggy. + Für OpenGL-Funktionalität musst du Mesa installieren und die gl- und + gl2-Video-Ausgabetreiber sollten funktionieren, wenngleich die Geschwindigkeit sehr + mies sein kann, abhängig von der CPU-Speed. Ein guter Ersatz für das eher armselige, + native HP-UX-Soundsystem ist GNU esound. +</para> + +<para> + Erzeuge das DVD-Gerät, + scanne den SCSI-Bus mit: +</para> + +<screen> +# ioscan -fn + +Class I H/W Path Driver S/W State H/W Type Description +... +ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI +target 3 8/16/5.2 tgt CLAIMED DEVICE +disk 4 8/16/5.<emphasis role="bold">2</emphasis>.<emphasis role="bold">0</emphasis> sdisk CLAIMED DEVICE <emphasis role="bold">PIONEER DVD-ROM DVD-305</emphasis> + /dev/dsk/c1t2d0 <emphasis role="bold">/dev/rdsk/c1t2d0</emphasis> +target 4 8/16/5.7 tgt CLAIMED DEVICE +ctl <emphasis role="bold">1</emphasis> 8/16/5.7.0 sctl CLAIMED DEVICE Initiator + /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0 +... +</screen> + +<para> + Die Bildschirmausgabe zeigt ein Pioneer DVD-ROM an SCSI-Adresse 2. + Die karteninstanz für den Hardwarepfad 8/16 ist 1. +</para> + +<para> + Erstelle einen Link von deinem Originalgerät zum DVD-Gerät. +</para> + +<screen> +# ln -s /dev/rdsk/c<replaceable><SCSI-Bus-Instanz></replaceable>t<replaceable><SCSI Ziel-ID></replaceable>d<replaceable><LUN></replaceable> /dev/<replaceable><geraet></replaceable> +</screen> + +<para> + Beispiel: +</para> + +<screen> +# ln -s /dev/rdsk/c1t2d0 /dev/dvd +</screen> + +<para> + Unten stehen lösungen für einige verbreitete Probleme: +</para> + +<itemizedlist> +<listitem> +<para> + Absturz beim Start mit folgender Fehlermeldung: +<screen> +/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl +</screen> +</para> + +<para> + Dies bedeutet, dass die Funktion <systemitem>.finite().</systemitem> nicht + in der Standard-Bibliothek HP-UX math zur Verfügung steht. + Statt dessen gibt es <systemitem>.isfinite().</systemitem>. + Lösung: Benutze die neueste Mesa-Depotdatei. +</para> +</listitem> + +<listitem> +<para> + Absturz beim Playback mit folgender Fehlermeldung: +<screen> +/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0 +</screen> +</para> + +<para> + Lösung: Benutze die Option extralibdir von configure + <option>--with-extralibdir="/usr/lib -lrt"</option> +</para> +</listitem> + +<listitem> +<para> + MPlayer produziert eine Schutzverletzung (segfault) mit einer Meldung wie dieser: +<screen> +Pid 10166 received a SIGSEGV for stack growth failure. +Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. +Segmentation fault +</screen> +</para> + +<para> + Lösung: + Der HP-UX-Kernel hat eine Standard-Stackgröße von 8MB(?) pro Prozess.(11.0- und + neuere 10.20-Patches lassen dich <systemitem>maxssiz</systemitem> bis auf + 350MB für 32bit-Programme erhöhen). Du musst <systemitem>maxssiz</systemitem> + erweitern und den Kernel recompilieren (und neu starten). Dazu kannst du SAM + verwenden. (Überprüfe während des Neustarts den + <systemitem>maxdsiz</systemitem>-Parameter für die maximale Anzahl Daten, + die ein Programm nutzen darf. Er hängt von deiner Anwendung ab, ob der + Standard von 64MB ausreicht oder nicht.) +</para> +</listitem> +</itemizedlist> + +</sect2> + +<sect2 id="aix"> +<title>AIX</title> +<para> + <application>MPlayer</application> wird erfolgreich auf AIX 5.1, + 5.2 und 5.3 erzeugt, verwendet man GCC 3.3 oder höher. das Erzeugen von + <application>MPlayer</application> auf AIX 4.3.3 und darunter wurde nicht + getestet. es wird dringend empfohlen, <application>MPlayer</application> + mit GCC 3.4 oder höher zu erzeugen oder es wird, falls du auf POWER5 + arbeitest, GCC 4.0 benötigt. +</para> + +<para> + Stelle sicher, dass du GNU make + (<filename>/opt/freeware/bin/gmake</filename>) zum bilden des + <application>MPlayer</application> nutzt, da du auf Probleme stossen wirst, + wenn du <filename>/usr/ccs/bin/make</filename> anwendest. +</para> + +<para> + Die CPU-Erkennung ist noch in Arbeit. + Die folgenden Architekturen wurden getestet: +</para> + +<itemizedlist> +<listitem><para>604e</para></listitem> +<listitem><para>POWER4</para></listitem> +</itemizedlist> + +<para> + Folgende Architekturen wurden nicht getestet, sollten jedoch trotzdem funktionieren: +</para> +<itemizedlist> +<listitem><para>POWER</para></listitem> +<listitem><para>POWER2</para></listitem> +<listitem><para>POWER3</para></listitem> +<listitem><para>POWER5</para></listitem> +</itemizedlist> + +<para> + Sound über die Ultimedia Services wird nicht unterstützt, da Ultimedia in + AIX 5.1 weggelassen wurde; deshalb ist die einzige Option, die Treiber des + AIX Open Sound System (OSS) von 4Front Technologies auf + <ulink url="http://www.opensound.com/aix.html"/> zu verwenden. + 4Front Technologies stellt die OSS-Treiber frei für den persönlichen und + nicht-kommerziellen Gebrauch zur Verfügung. +</para> + +</sect2> +</sect1> + +<sect1 id="windows"> +<title>Windows</title> + +<para> + ja, <application>MPlayer</application> läuft auf Windows unter + <ulink url="http://www.cygwin.com/"><application>Cygwin</application></ulink> und + <ulink url="http://www.mingw.org/"><application>MinGW</application></ulink>. + Es besitzt noch kein offizielles GUI, aber die Befehlszeilen-Version + ist voll funktionstüchtig. Du solltest die + <ulink url="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">MPlayer-cygwin</ulink> + Mailing-Liste zu Hilfe und für neueste Informationen hernehmen. + Offizielle Windows-Binaries können auf der + <ulink url="http://www.mplayerhq.hu/design7/dload.html">Download-Seite</ulink> + gefunden werden. + Installationspakete und einfache GUI-Frontends stehen auf externen Quellen bereit, + wir haben sie in der Windows-Sektion unserer + <ulink url="http://www.mplayerhq.hu/design7/projects.html#windows">Projektseite</ulink> + zusammengestellt. +</para> + +<para> + Wenn du die Verwendung der Befehlszeile vermeiden willst, hilft der + simple Trick, eine Verknüpfung auf deinem Desktop zu erstellen, der einen + ähnlichen Ausführungsabschnitt wie folgenden enthält: + <screen><replaceable>c:\pfad\zur\</replaceable>mplayer.exe %1</screen> + Die läßt <application>MPlayer</application> jeden Film abspielen, der + über der Verknüpfung fallen gelassen wird. + Füge <option>-fs</option> für den Vollbildmodus hinzu. +</para> + +<para> + Die Besten Ergebnisse werden erzielt mit dem nativen DirectX-Video-Ausgabetreiber + (<option>-vo directx</option>). Alternativen sind OpenGL und SDL, jedoch variiert die + OpenGL-Performance stark von System zu System und SDL ist dafür bekannt, + Videos kaputt zu machen oder auf manchen Systemen abzurauchen. Wird das Bild zerstört, + versuche, die Hardwarebeschleunigung mit + <option>-vo directx:noaccel</option> abzuschalten. Lade dir die + <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/contrib/dx7headers.tgz">DirectX7-Headerdateien</ulink> + herunter, um den DirectX-Video-Ausgabetreiber zu compilieren. Desweiteren musst du + DirectX 7 oder höher installiert haben, damit derDirectX-Video-Ausgabetreiber + funktioniert. +</para> + +<para> + <link linkend="vidix">VIDIX</link> läuft jetzt unter Windows als + <option>-vo winvidix</option>, obwohl es nach wie vor experimentell ist + und ein wenig manuelles Setup benötigt. Lade dir die + <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/dhahelperwin/dhahelper.sys">dhahelper.sys</ulink> oder + <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/dhahelperwin/withmtrr/dhahelper.sys">dhahelper.sys + (mit MTRR-Unterstützubg)</ulink> herunter und kopiere sie ins Verzeichnis + <filename class="directory">libdha/dhahelperwin</filename> deines + <application>MPlayer</application>-Source-Baums. + Öffne die Console und wechsle in dieses Verzeichnis. Dann gib + + <screen>gcc -o dhasetup.exe dhasetup.c</screen> + + ein und führe + + <screen>dhasetup.exe install</screen> + + als Administrator aus. Danach wirst du neu starten müssen. Bist du damit fertig, + kopiere die <systemitem class="library">.so</systemitem>-Dateien von + <filename class="directory">vidix/drivers</filename> ins Verzeichnis + <filename class="directory">mplayer/vidix</filename> + relative zu deiner <filename>mplayer.exe</filename>. +</para> + +<para> + Für die besten Resulte sollte <application>MPlayer</application> einen + Farbraum anwenden, den deine Grafikkarte hardwareseitig unterstützt. + Leider melden viele Windows-Grafikkartetreiber fälschlich einige Farbräume + als von der Hardware unterstützt. Um herauszufinden welche das sind, versuch + + <screen>mplayer -benchmark -nosound -frames 100 -vf format=<replaceable>farbraum</replaceable> <replaceable>vilm</replaceable></screen> + + wobei <replaceable>farbraum</replaceable> jeder von der Option + <option>-vf format=fmt=help</option> ausgegebene Farbraum sein kann. + Findest du den von deiner Karte verarbeiteten Farbraum besonders schlecht, + wird <option>-vf noformat=<replaceable>farbraum</replaceable></option> + sie daran hindern, diesen anzuwenden. Füge dies in deine + config-Datei ein, um die Verwendung permanent zu unterbinden. +</para> + +<para> + Es stehen spezielle Codec-Packs für Windows auf unserer + <ulink url="http://www.mplayerhq.hu/design7/codecs.html">Codec-Seite</ulink> + zu Verfügung, die das Abspielen von Formaten zu ermöglichen, für die es noch + keinen nativen Support gibt. + Leg die Codecs irgendwo in deinem Pfad ab oder übergib + <option>--with-codecsdir=<replaceable>c:/pfad/zu/deinen/codecs</replaceable></option> + (alternativ nur auf <application>Cygwin</application> + <option>--with-codecsdir=<replaceable>/pfad/zu/deinen/codecs</replaceable></option>) + an <filename>configure</filename>. + Wir bekamen einige Berichte, dass Real-DLLs um <application>MPlayer</application> + starten zu können, beschreibbar sein müssen, aber nur auf manchen Systemen (NT4). + Versuch, sie beschreibbar zu machen, falls du Probleme hast. +</para> + +<para> + Du kannst VCDs über die <filename>.DAT</filename>- oder + <filename>.MPG</filename>-Dateien, die Windows auf VCDs anzeigt, abspielen. + Das funktioniert wie folgt (an den Laufwerksbuchstaben deines CD-ROMs anpassen: +</para> + +<screen>mplayer <replaceable>d:/mpegav/avseq01.dat</replaceable></screen> + +<para> + DVDs gehen ebenfalls, passe <option>-dvd-device</option> an den + Laufwerksbuchstaben deines DVD-ROMs an: +</para> + +<screen>mplayer dvd://<replaceable><titel></replaceable> -dvd-device <replaceable>d</replaceable>:</screen> + +<para> + Die <application>Cygwin</application>/<application>MinGW</application>-Console + ist sehr langsam. Die Umleitung der Ausgabe oder das Anwenden der Option + <option>-quiet</option> soll laut Berichten die Performance auf einigen Systemen + verbessern. Direktes Rendern (<option>-dr</option>) kann auch helfen. + Ist das Playback ruckelig, versuche <option>-autosync 100</option>. + Helfen dir einige dieser Optionen, kannst du sie ja in deine config-Datei + eintragen. +</para> + +<note> +<para> + Auf Windows deaktiviert die CPU-Erkennung zur Laufzeit den SSE-Support + wegen periodisch wiederkehrender und schwer zu ortender, SSE-bezogener + Abstürze. Wünschst du SSE-Support unter Windows, mußt du ohne + CPU-Erkennung zur Laufzeit compilieren. +</para> + +<para> + Hast du einen Pentium 4 und erlebst einen Absturz beim Verwenden von + RealPlayer-Codecs, nusst du den Support für Hyperthreading deaktivieren. +</para> +</note> + + + +<sect2 id="cygwin"> +<title><application>Cygwin</application></title> + +<para> + Du musst <application>Cygwin</application> 1.5.0 oder später laufen + lassen, um <application>MPlayer</application> zu compilieren. +</para> + +<para> + DirectX-Headerdateien werden gewöhnlich nach + <filename class="directory">/usr/include/</filename> oder + <filename class="directory">/usr/local/include/</filename> + extrahiert. +</para> + +<para> + Instruktionen und Dateien um SDL unter + <application>Cygwin</application> laufen zu lassen, können auf der + <ulink url="http://www.libsdl.org/extras/win32/cygwin/">libsdl-Seite</ulink> + gefunden werden. +</para> + +</sect2> + + +<sect2 id="mingw"> +<title><application>MinGW</application></title> + +<para> + Das Installieren einer Version von <application>MinGW</application>, das + <application>MPlayer</application> compilieren könnte war für gewöhnlich ziemlich + trickreich, aber es funktioniert jetzt hervorragend. + Installiere einfach <application>MinGW</application> 3.1.0 oder neuer und + MSYS 1.0.9 oder neuer und erzähle der nachträglichen Installation von MSYS, + dass <application>MinGW</application> installiert ist. +</para> + +<para> + Extrahiere die DirectX-Headerdateien nach + <filename class="directory">/mingw/include/</filename>. +</para> + +<para> + Die Unterstützung für MOV-komprimierte Header erfordert + <ulink url="http://www.gzip.org/zlib/">zlib</ulink>, was + <application>MinGW</application> standardmäßig nicht bereithält. + Konfiguriere es mit <option>--prefix=/mingw</option> und installiere + es vor dem Compilieren des <application>MPlayer</application>. +</para> + +<para> + Komplette Anweisungen zum erzeugen des <application>MPlayer</application> + und der notwendigen Bibliotheken findest du in den + <ulink url="http://mplayerhq.hu/MPlayer/releases/win32/contrib/MPlayer-MinGW-Howto.txt">MPlayer MinGW HOWTO</ulink>s. +</para> + +</sect2> +</sect1> + + +<sect1 id="macos"> +<title>Mac OS</title> +<para> + <application>MPlayer</application> läuft nicht auf Mac OS Versionen vor + 10, sollte jedoch hervorragend auf Mac OS X 10.2 und darüber compilieren. + Der vorgezogene Compiler ist die Apple-Version von + GCC 3.x oder höher. Besitzt du Mac OS X 10.3.9 oder später und QuickTime 7 + kannst du den macosx-Video-Ausgabetreiber verwenden. +</para> + + +<sect2 id="osx_gui"> +<title>MPlayer OS X GUI</title> +<para> + Du bekommst ein natives GUI für <application>MPlayer</application> zusammen + mit für Mac OS X vorcompilierten <application>MPlayer</application>-Binaries + vom <ulink url="http://mplayerosx.sf.net/">MPlayerOSX</ulink>-Projekt, sei aber + gewarnt: dieses Projekt ist nicht mehr aktiv. +</para> + +<para> + Zum Blück wurde <application>MPlayerOSX</application> von einem Mitglied desr + <application>MPlayer</application>-Teams übernommen. + Preview-Releases findet man auf unserer + <ulink url="http://mplayerhq.hu/dload.html">Download-Seite</ulink> + und ein offizielles Release sollte bald herauskommen. +</para> + +<para> + Um <application>MPlayerOSX</application> selbst aus der Quelle + zu bilden, brauchst du <systemitem>mplayerosx</systemitem>, das + <systemitem>main</systemitem> und eine Kopie des + <systemitem>main</systemitem> CVS-Moduls genannt + <systemitem>main_noaltivec</systemitem>. + <systemitem>mplayerosx</systemitem> ist das GUI-Frontend, + <systemitem>main</systemitem> ist MPlayer und + <systemitem>main_noaltivec</systemitem> ist MPlayer ohne AltiVec-Unterstützung. +</para> + +<para> + Um die CVS-Module zu überprüfen, nimm: + +<screen> +cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login +cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P mplayerosx +cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main +</screen> +</para> + +<para> + Um <application>MPlayerOSX</application> zu bilden, musst du + so etwas ähnliches einrichten: + +<screen> +MPlayer_source_verzeichnis + | + |--->main (MPlayer CVS-Quelle) + | + |--->main_noaltivec (MPlayer CVS-Quelle konfiguriert mit --disable-altivec) + | + |--->mplayerosx (MPlayer OS X CVS-Quelle) +</screen> + + Du musst zuerst main und main_noaltivec erzeugen. +</para> + +<para> + Als nächste setze eine globale Variable: + +<screen>export MACOSX_DEPLOYMENT_TARGET=10.3</screen> +</para> + +<para> + Dann konfiguriere: +</para> + +<para> + Wenn du für eine G4 oder neuere CPU mit AltiVec-Support konfigurierst, + mach folgendes: +<screen> +./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11 +</screen> + Wenn du für eine G3-getriebene Maschine mit AltiVec konfigurierst, + mach dies: +<screen> +./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11 +--disable-altivec +</screen> + Du musst <filename>config.mak</filename> editieren und + <systemitem>-mcpu</systemitem> und <systemitem>-mtune</systemitem> + von <systemitem>74XX</systemitem> nach <systemitem>G3</systemitem> ändern. +</para> + +<para> + Fahre fort mit +<screen> +make +</screen> + dann gehe ins Verzeichnis mplayerosx und gib ein + +<screen> +make dist +</screen> + Dies wird ein komprimiertes <systemitem>.dmg</systemitem>-Archiv + mit der gebrauchsfertigen Binary erzeugen. +</para> + +<para> + Du kannst auch das <application>Xcode</application> 2.1 Projekt verwenden; + das alte Projekt für <application>Xcode</application> 1.x läuft + nicht mehr. +</para> +</sect2> +</sect1> + +<sect1 id="exotic_platforms"> +<title>Exotische Plattformen</title> + +<para> + <application>MPlayer</application> läuft auf einer Reihe exotischer Plattformen, + aber die meisten der Plattform-spezifischen Änderungen dieser Systeme wurden nicht + in den Haubtquellbaum zurückgemergt. + Build-Instruktionen findest du in der System-spezifischen Dokumentation. +</para> + +<sect2 id="qnx"> +<title>QNX</title> +<para> + Du musst SDL für QNX herunterladen und installieren. Dann starte + <application>MPlayer</application> mit den Optionen + <option>-vo sdl:driver=photon</option> und <option>-ao sdl:nto</option>, + es sollte schnell laufen. +</para> + +<para> + Der <option>-vo x11</option>-Output wird etwas langsamer sein als unter Linux, + da QNX nur X-<emphasis>Emulation</emphasis> besitzt, was sehr langsam ist. +</para> +</sect2> + +<sect2 id="amiga"> +<title>Amiga/MorphOS (GeekGadgets)</title> +<para> + Die Leute drüben auf <ulink url="www.amigasoft.net"/> + machen aktuelle <application>MPlayer</application>- und + <application>MEncoder</application>-Packages. +</para> + +<para> + Nicholas Det bei Genesi hat eine große und starke Portierung des + <application>MPlayer</application> für MorphOS gemacht. Traurig, + dass sie auf die 0.90-Serie basiert. +</para> + +<para> + Hol sie dir von <ulink url="http://www.morphzone.org/">MorphZone</ulink>: +<itemizedlist> +<listitem><para> + <ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=90"> +<application>MPlayer</application> 0.91 Binary</ulink> +</para></listitem> +<listitem><para> + <ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=91"> +<application>MPlayer</application> 0.91 Source</ulink> +</para></listitem> +<listitem><para> + <ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=92"> +<application>MEncoder</application> 1.0pre3 Binary</ulink> +</para></listitem> +</itemizedlist> +</para> +</sect2> +</sect1> + +</chapter>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/skin.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,1244 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.15 $ --> +<appendix id="skin"> +<title><application>MPlayer</application> Skinformat</title> + +<sect1 id="skin-overview"> +<title>Überblick</title> +<para> + Es hat nicht wirklich etwas mit dem Skinformat zu tun, aber du solltest + wissen, dass <application>MPlayer</application> <emphasis role="bold">keinen</emphasis> + eingebauten Skin besitzt, also <emphasis role="bold">muß zumindest ein Skin + installiert sein, damit das GUI verwendet werden kann.</emphasis> +</para> + +<sect2 id="skin-overview-directories"> +<title>Verzeichnisse</title> +<para> + Die nach Skins durchsuchten Verzeichnisse sind (der Reihe nach): +<orderedlist> +<listitem><para> + <filename class="directory">$(DATADIR)/skins/</filename> +</para></listitem> +<listitem><para> + <filename class="directory">$(PREFIX)/share/mplayer/skins/</filename> +</para></listitem> +<listitem><para> + <filename class="directory">~/.mplayer/skins/</filename> +</para></listitem> +</orderedlist> +</para> + +<para> + Beachte, dass der erste Pfad je nach Art der + <application>MPlayer</application>-Konfiguration variieren kann + (siehe Argumente <option>--prefix</option> und <option>--datadir</option> + des <command>configure</command>-Scripts). +</para> + +<para> + Jeder Skin wird in sein eigenes Verzeichnis unterhalb einem der oben + aufgeführten Verzeichnisse installiert, zum Beispiel: +<screen>$(PREFIX)/share/mplayer/skins/default/</screen> +</para> +</sect2> + +<sect2 id="skin-overview-formats"> +<title>Bildformate</title> +<para> + Die Bilder müssen Truecolor-PNGs sein (24 oder 32 bpp). +</para> + +<para> + Im Hauptfenster und in der Abspilleiste (siehe unten) kannst du Bilder + mit 'Transparenz' verwenden: Mit der Farbe #FF00FF (Magenta) gefüllte Bereiche + sind beim Betrachten mit <application>MPlayer</application> voll transparent. + Die bedeutet, dass du sogar Formfenster haben kannst, wenn dein X-Server die + XShape-Extension besitzt. +</para> +</sect2> + +<sect2 id="skin-overview-components"> +<title>Skin-Komponenten</title> +<para> + Skins sind ziemlich frei im Format (im Unterschied zu den Skins mit festem + Format von <application>Winamp</application>/<application>XMMS</application> + zum Beispiel), somit liegt es an dir, einen tollen zu kreieren. +</para> + +<para> + Zur Zeit sind vier Fenster zu dekorieren: das + <link linkend="skin-file-main">Hauptfenster</link>, das + <link linkend="skin-file-subwindow">Unterfenster</link>, die + <link linkend="skin-file-main">Abspielleise</link> und das + <link linkend="skin-file-menu">Skin-Menü</link> (das durch einen + Rechtsklick aktiviert werden kann). + +<itemizedlist> +<listitem><para> + Das <emphasis role="bold">Hauptfenster</emphasis> und/oder die + <emphasis role="bold">Abspielleise</emphasis> befindet sich dort, wo du + <application>MPlayer</application> kontrollieren kannst. Der Hintergrund + des Fensters ist ein Grafik. + Ins Fenster können (und müssen) diverse Elemente platziert werden: + <emphasis>Buttons</emphasis>, <emphasis>Potentiometer</emphasis> (Schieberegler) + und <emphasis>Labels</emphasis>. + Für jedes Element, musst du dessen Position und Größe. +</para><para> + Ein <emphasis role="bold">Button</emphasis> besitzt drei Zustände (gedrückt, + losgelassen, deaktiviert), deshalb muss seine Grafik vertikal in drei Teile + getrennt werden. Siehe Eintrag <link linkend="skin-button">Button</link> + mit mehr Details. +</para><para> + Ein <emphasis role="bold">Potentiometer</emphasis> (hauptsächlich für + die Suchleiste und die Lautstärke-/Balance-Regler) kann eine beliebige + Anzahl von Phasen by dividing its Grafik + into different parts below each other. See + <link linkend="skin-hpotmeter">hpotmeter</link> and + <link linkend="skin-potmeter">Potentiometer</link> for details. +</para><para> + <emphasis role="bold">Labels</emphasis> sind ein wenig speziell: Die Zeichen, + die manzu ihrer Darzustellung benötigt, werden von einer Grafikdatei, und + die Zeichen in der Grafik werden durch eine + <link linkend="skin-fonts">Schrift-Beschreibungsdatei</link> festgelegt. + Letztere ist eine Volltextdatei, welche die x-,y-Position und Größe jedes + Zeichens in der Grafik beschreibt (die Grafikdatei und ihre + Schrift-Beschreibungsdatei bilden <emphasis>zusammen</emphasis> eine Schrift). + Siehe + <link linkend="skin-dlabel">dlabel</link> + und + <link linkend="skin-slabel">slabel</link> fpr Details. +</para> +<note> +<para> + Alle Grafiken können wie im Abschnitt über die + <link linkend="skin-overview-formats">Grafikformate</link> erklärt + volle Transparenz besitzen. Wenn der X-Server keine XShape-Extension + unterstützt, werden die als transparent markierten Teile schwarz. + Wenn du dieses Feature gerne nutzen möchtest, muss die Breite der + Hintergrundgrafik des Hauptfensters durch 8 teilbar sein. +</para> +</note> +</listitem> + +<listitem><para> + Das <emphasis role="bold">Unterfenster</emphasis> ist dort wo der Film + erscheint. Es kann eine festgelegte Grafik anzeigen, wenn kein Film geladen + iat (es ist ziemlich langweilig, ein leeres Fenster vor sich zu haben :-)) + <emphasis role="bold">Beachte:</emphasis> Transparenz ist hier + <emphasis role="bold">nicht erlaubt</emphasis>. +</para></listitem> + +<listitem><para> + Das <emphasis role="bold">Skin-Menü</emphasis> ist ganz einfach ein + Weg, <application>MPlayer</application> mittels der Menüeinträge zu + kontrollieren. Zwei Grafiken sind für das Menü erforderlich: + eine davon ist die Basisgrafik, die den Normalzustand des Menüs darstellt, + die andere wird zur Anzeige des gewählten Einträge verwendet. + Wenn due das Menü aufklappst, wird die erste Grafik angezeigt. Bewegst du + die Maus über die Menüeinträge, wird der aktuell gewählte Eintrag aus der + zweiten Grafik über den Menüeintrag unterhalb des Mauszeigers kopiert + (die zweite Grafik wird nie als Ganzes angezeigt). +</para><para> + Rin Menüeintrag wird definiert durch seine Position und Größe innerhalb + der Grafik (sieh nach mehr Details im Abschnitt über das + <link linkend="skin-file-menu">Skin-Menü</link>). +</para></listitem> +</itemizedlist> +</para> + +<para> + Eine wichtige Sache wurde noch nicht aufgeführt: Damit Buttons, Potentiometer und + Menüeinträge funktionieren, muss <application>MPlayer</application> wissen, was + er machen soll, wenn sie angeklickt werden. + Dies geschieht mittels <link linkend="skin-gui">Meldungen</link> (Ereignisse). + Für diese Elemente musst du die beim Klick auf sie zu generierenden Meldungen + definieren. +</para> +</sect2> + +<sect2 id="skin-files"> +<title>Dateien</title> +<para> + Du benötigst folgende Dateien, um einen Skin zu bauen: +<itemizedlist> +<listitem><para> + Die Konfigurationsdatei genannt <link linkend="skin-file">skin</link> erzählt + <application>MPlayer</application>, wie er unterschiedliche Teile des Skins + zusammengefügt werden und was er tun soll, wenn du irgendwo innerhalb des Fenster + hinklickst. +</para></listitem> +<listitem><para> + Die Hintergrundgrafik fürs Hauptfenster. +</para></listitem> +<listitem><para> + Grafiken für die Elemente im Hauptfenster (einschließlich einer oder mehrerer + Schrift-Beschreibungsdateien zum zeichnen der Labels). +</para></listitem> +<listitem><para> + Die Grafik, die im Unterfenster angezeigt werden soll (optional). +</para></listitem> +<listitem><para> + Zwei Grafiken für das Skin-Menü (sie werden nur gebraucht, wenn du want + ein Menü erzeugst). +</para></listitem> +</itemizedlist> + Mit Ausnahme der skin-Konfigurationsdatei, kannst du die anderen Dateien + benenne, wie es dir beliebt (beachte aber, dass Schrift-Beschreibungsdateien + eine <filename>.fnt</filename>-Erweiterung besitzen müssen). +</para> +</sect2> +</sect1> + +<sect1 id="skin-file"> +<title>Die skin-Datei</title> +<para> + Wie oben erwähnt, ist dies die skin-Konfigurationsdatei. Sie ist + Zeilen-orientiert; + Kommentarzeilen beginnen mit einem '<literal>;</literal>' Semikolon-Zeichen + am Zeilenanfang (es sind nur Leer- und Tabulator-Zeichen vor dem + '<literal>;</literal>' erlaubt). +</para> + +<para> + Die Datei ist in Abschnitte unterteilt. Jeder Abschnitt beschreibt den Skin + für eine Anwendung und besitzt folgende Form: +<programlisting> +section = <replaceable>abschnittsname</replaceable> +. +. +. +end +</programlisting> +</para> + +<para> + Zur Zeit gibt es nur eine Anwendung, somit brauchst du nur einen Abschnitt: + sein Name ist <emphasis role="bold">movieplayer</emphasis>. +</para> + +<para> + Innerhalb dieses Abschnitts wird jedes Fenster durch einen Block folgender + Form beschrieben: +<programlisting> +window = <replaceable>fenstername</replaceable> +. +. +. +end +</programlisting> +</para> + +<para> + wobei <replaceable>fenstername</replaceable> einer dieser Strings sein + kann: +<itemizedlist> +<listitem><para><emphasis role="bold">main</emphasis> - für das Hauptfenster</para></listitem> +<listitem><para><emphasis role="bold">sub</emphasis> - für das Unterfenster</para></listitem> +<listitem><para><emphasis role="bold">menu</emphasis> - für das Skin-Menü</para></listitem> +<listitem><para><emphasis role="bold">playbar</emphasis> - Abspielleise</para></listitem> +</itemizedlist> +</para> + +<para> + (Die sub- und menu-Blöcke sind optional - du musst kein Menü erzeugen oder + das Unterfenster dekorieren.) +</para> + +<para> + Innerhalb des Fensterblocks kannst du jedes Element für das Fenster durch eine + Zeile in dieser Form definieren: +<programlisting>item = parameter</programlisting> + Wobei <literal>item</literal> ein String ist, der den Typ des GUI-elements + identifiziert, <literal>parameter</literal> ist ein numerischer oder textueller + Wert (oder eine Liste Komma-getrennter Werte). +</para> + +<para> + Fügt man nun das oben genannte zusammen, sieht die komplette Datei etwa so aus: +<programlisting> +section = movieplayer + window = main + ; ... Elemente fürs Hauptfenster ... + end + + window = sub + ; ... Elemente fürs Unterfenster ... + end + + window = menu + ; ... Elemente fürs Menü ... + end + + window = playbar + ; ... Elemente für die Abspielleise ... + end +end +</programlisting> +</para> + +<para> + Der Name einer Grafikdatei muss ohne führende Pfadangaben angegeben werden - + Grafiken werden im Verzeichnis <filename class="directory">skins</filename> + gesucht. + Du kannst (musst aber nicht) die Erweiterungder Datei spezifizieren. + Existiert die Datei nicht, versucht <application>MPlayer</application> die + <filename><dateiname>.<ext></filename> zu laden, wobwei + <literal>png</literal> und <literal>PNG</literal> als + <filename><ext></filename> (Erweiterung) versucht werden + (in dieser Reihenfolge). Die erste zutreffende Datei wird verwendet. +</para> + +<para> + Zum Schluss einige Worte zur Positionierung. + Hauptfenster und Unterfenster können in verschiedenen Ecken des Bilschirms + über die <literal>X</literal>- und <literal>Y</literal>-Koordinaten + platziert werden. <literal>0</literal> ist oben oder links, + <literal>-1</literal> bedeutet zentriert und <literal>-2</literal> ist + rechts oder unten, wie in dieser Illustration gezeigt: +</para> +<informalfigure> +<screen> +(0, 0)----(-1, 0)----(-2, 0) + | | | + | | | +(0,-1)----(-1,-1)----(-2,-1) + | | | + | | | +(0,-2)----(-1,-2)----(-2,-2) +</screen> +</informalfigure> + +<para> + Hier ein Beispiel, um es zu verdeutlichen. Angenommen du hast eine Grafik + mit Namen <filename>main.png</filename>, die für das Hauptfenster nutzt: + <programlisting>base = main, -1, -1</programlisting> + <application>MPlayer</application> versucht, die Dateien + <filename>main</filename>, + <filename>main.png</filename>, + <filename>main.PNG</filename> + zu laden. +</para> + + +<sect2 id="skin-file-main"> +<title>Hauptfenster und Abspielleise</title> +<para> + Unten steht eine Liste von Einträgen, die in den Blöcken + '<literal>window = main</literal>' ... '<literal>end</literal>', + und the '<literal>window = playbar</literal>' ... '<literal>end</literal>' + genutzt werden können. +</para> + +<variablelist> +<varlistentry> + <term><literal> + <anchor id="skin-main-base"/>base = image, X, Y + </literal></term> + <listitem><para> + Lässt dich die Hintergrundgrafik fürs Hauptfenster spezifizieren. + Das Fenster wird an der angegebenen Position <literal>X,Y</literal> auf + dem Bildschirm erscheinen. Es wird die Größe der Grafik besitzen. +</para> +<note> +<para> + Diese Koordinaten funktionieren im Moment nicht beim Anzeigefenster. +</para> +</note> +<warning> +<para> + Transparente Bereiche innerhalb der Grafik (mit der Farbe #FF00FF) erscheinen + auf X-Servern ohne die XShape-Extension schwarz. Die Breite der Grafik muss + durch 8 teilbar sein. +</para> +</warning> + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-button"/>button = image, X, Y, width, height, message + </literal></term> + <listitem><para> + Platziere einen Button mit der Größe <literal>width</literal> * <literal>height</literal> + an Position <literal>X,Y</literal>. Die angegebene <literal>message</literal> wird + erzeugt, wenn der Button angeklickt wird. Die mittels <literal>image</literal> + festgelegte Grafik muss drei untereinander liegende Teile aufweisen (entsprechend + der möglichen Zustände des Buttons), etwa so: +</para> +<informalfigure> +<screen> ++---------------+ +| gedrückt | ++---------------+ +| losgelassen | ++---------------+ +| deaktiviert | ++---------------+ +</screen> +</informalfigure> + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-decoration"/>decoration = enable|disable + </literal></term> + <listitem><para> + Aktiviere oder deaktiviere die Fenstermanager-Dekoration des Hauptfensters. + Standard ist <emphasis role="bold">disable</emphasis>. + </para> +<note> +<para> + Dies funktioniert nicht beim Anzeigefenster, dort braucht man es nicht. +</para> +</note> + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-hpotmeter"/>hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message + </literal></term> + <listitem><para> + + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-vpotmeter"/>vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message + </literal></term> + <listitem> + <para> + Platziere einen horizontal (hpotmeter) oder vertikal (vpotmeter) Potentiometer mit + der Größe <literal>width</literal> * <literal>height</literal> an Position + <literal>X,Y</literal>. Die Grafik kann in unterschiedliche Teile für die + verschiedenen Phasen des Potentiometers aufgeteilt werden (du kannst zum Beispiel + eines für die Lautstärkeregelung haben, das von rot nach grün wechselt während + sein Wert sich vom Minimum zum Mmaximum ändert.). + <literal>hpotmeter</literal> kann einen Button besitzen, der horizontal gezogen + werden kann. Die Parameter sind: + </para> + <itemizedlist> + <listitem><para><literal>button</literal> - die für den Button zu verwendende + Grafik (muss drei untereinander liegende Teile aufweisen, wie im Fall des + <link linkend="skin-button">Buttons</link>) + </para></listitem> + <listitem><para><literal>bwidth</literal>, <literal>bheight</literal> - Größe + de Buttons + </para></listitem> + <listitem><para><literal>phases</literal> - die für die verschiedenen Phasen + zu verwendende Grafik des hpotmeter. Ein spezieller Wert von <literal>NULL</literal> + kann benutzt werden, wenn du keine solche Grafik anwenden willst. Die Grafik muss + in vertikal <literal>numphases</literal> Teile wie folgt aufgeteilt werden: + </para> +<informalfigure> +<screen> ++------------+ +| phase #1 | ++------------+ +| phase #2 | ++------------+ + ... ++------------+ +| phase #n | ++------------+ +</screen> +</informalfigure> + </listitem> + <listitem><para><literal>numphases</literal> - Anzahl der Phasen, die in der + <literal>phases</literal>-Grafik untergebracht sind + </para></listitem> + <listitem><para><literal>default</literal> - Standard Wert fürs hpotmeter + (im Bereich <literal>0</literal> bis <literal>100</literal>) + </para></listitem> + <listitem><para><literal>X</literal>, <literal>Y</literal> - Position fürs hpotmeter + </para></listitem> + <listitem><para><literal>width</literal>, <literal>height</literal> - Breite und Höhe + des <literal>hpotmeter</literal> + </para></listitem> + <listitem><para><literal>message</literal> - die Meldung, die erzeugt werden soll, + wenn der Wert des <literal>hpotmeter</literal> geändert wird + </para></listitem> + </itemizedlist> + + </listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, width, height, message + </literal></term> + <listitem><para> + Ein <literal>hpotmeter</literal> ohne einen Button. (ich schätze, es ist dazu + bestimmt, herumgedreht zu werden, reagiert aber nur auf horizontales Ziehen.) + Eine Beschreibung der Parameter findest du unter + <link linkend="skin-hpotmeter">hpotmeter</link>. + <literal>phases</literal> können <literal>NULL</literal> sein, dies ist aber ziemlich + sinnlos, da du nicht sehen kannst, wo das <literal>Potentiometer</literal> hingesetzt + wurde. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-font"/>font = fontfile, fontid + </literal></term> + <listitem><para> + Definiert eine Schrift. <literal>fontfile</literal> ist der Name der + Schrift-Beschreibungsdatei mit der Erweiterung <filename>.fnt</filename> + (geib hier keine Erweiterung an). + <literal>fontid</literal> wird verwendet, um auf die Schrift zu verweisen + (siehe <link linkend="skin-dlabel">dlabel</link> + und <link linkend="skin-slabel">slabel</link>). Bis zu 25 Schrift können + definiert werden. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-slabel"/>slabel = X, Y, fontid, "text" + </literal></term> + <listitem><para> + Platziere ein statisches Label an Position <literal>X,Y</literal>. + <literal>text</literal> wird mittels der identifizierten + <literal>fontid</literal> angezeigt. Der Text ist einfach ein + eine Ausgangszeichenkette (<literal>$x</literal>-Variablen funktionieren nicht), + eingeschlossen von doppelten Anführungszeichen (das "-Zeichen kann jedoch + nicht Teil des Textes sein). + Das Label wird mittels der über die <literal>fontid</literal> identifizierten + Schrift angezeigt. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-dlabel"/>dlabel = X, Y, length, align, fontid, "text" + </literal></term> + <listitem> +<para> + Platziere ein dynamisches Label an Position <literal>X,Y</literal>. + Das Label wird als dynamisch bezeichnet, weil sein Text periodisch + aktualisiert wird. Die Maximallänge des Labels wird mit dem + Wert <literal>length</literal> vorgegeben (seine Höhe ist die der + Zeichen). + Wird der anzuzeigende Text breiter als dieser Wert, wird er gescrollt, + andernfalls wird er innerhalb des mittels des Wertes des + <literal>align</literal>-Parameters festgelegten Zwischenraums ausgerichtet: + <literal>0</literal> steht für rechts, + <literal>1</literal> steht für zentriert, + <literal>2</literal> steht für links. +</para> +<para> + Der anzuzeigende Text wird mit <literal>text</literal> festgelegt: + Er muss zwischen doppelten Anführungszeichen stehen (das "-Zeichen kann jedoch + nicht Teil des Textes sein). + Das Label wird mittels der über die <literal>fontid</literal> identifizierten + Schrift angezeigt. + Kannst folgende Variablen im Text verwenden: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Variable</entry><entry>Bedeutung</entry></row> +</thead> +<tbody> +<row> +<entry>$1</entry> +<entry>Abspieldauer im <emphasis>hh:mm:ss</emphasis>-Format</entry> +</row> +<row> +<entry>$2</entry> +<entry>Abspieldauer im <emphasis>mmmm:ss</emphasis>-Format</entry> +</row> +<row> +<entry>$3</entry> +<entry>Abspieldauer im <emphasis>hh</emphasis>-Format (Stunden)</entry> +</row> +<row> +<entry>$4</entry> +<entry>Abspieldauer im <emphasis>mm</emphasis>-Format (Minuten)</entry> +</row> +<row> +<entry>$5</entry> +<entry>Abspieldauer im <emphasis>ss</emphasis>-Format (Sekunden)</entry> +</row> +<row> +<entry>$6</entry> +<entry>Filmlänge im <emphasis>hh:mm:ss</emphasis>-Format</entry> +</row> +<row> +<entry>$7</entry> +<entry>Filmlänge im <emphasis>mmmm:ss</emphasis>-Format</entry> +</row> +<row> +<entry>$8</entry> +<entry>Abspieldauer im <emphasis>h:mm:ss</emphasis>-Format</entry> +</row> +<row> +<entry>$v</entry> +<entry>Lautstärke im <emphasis>xxx.xx</emphasis>%-Format</entry> +</row> +<row> +<entry>$V</entry> +<entry>Lautstärke im <emphasis>xxx.xx</emphasis>-Format</entry> +</row> +<row> +<entry>$b</entry> +<entry>Balance im <emphasis>xxx.xx</emphasis>%-Format</entry> +</row> +<row> +<entry>$B</entry> +<entry>Balance in <emphasis>xxx.xx</emphasis>-Format</entry> +</row> +<row> +<entry>$$</entry> +<entry>das $-Zeichen</entry> +</row> +<row> +<entry>$a</entry> +<entry>ein dem Audio-Typ entsprechendes Zeichen (Nichts: <literal>n</literal>, +Mono: <literal>m</literal>, Stereo: <literal>t</literal>)</entry> +</row> +<row> +<entry>$t</entry> +<entry>Track-Nummer (in der Playliste)</entry> +</row> +<row> +<entry>$o</entry> +<entry>Dateiname</entry> +</row> +<row> +<entry>$f</entry> +<entry>Dateiname in kleinbuchstaben</entry> +</row> +<row> +<entry>$F</entry> +<entry>Dateiname in GROSSBUCHSTABEN</entry> +</row> +<row> +<entry>$T</entry> +<entry>Ein dem Stream-Typen entsprechendes Zeichen (Datei: <literal>f</literal>, +Video-CD: <literal>v</literal>, DVD: <literal>d</literal>, URL: <literal>u</literal>)</entry> +</row> +<row> +<entry>$p</entry> +<entry>Das <keycap>p</keycap>-Zeichen (wenn ein Film abgespielt wird und die Schrift +das Zeichen <keycap>p</keycap> enthält)</entry> +</row> +<row> +<entry>$s</entry> +<entry>Das <keycap>s</keycap>-Zeichen (wenn ein Film angehallten wird und die Schrift +das Zeichen <keycap>s</keycap> enthält)</entry> +</row> +<row> +<entry>$e</entry> +<entry>Das <keycap>e</keycap>-Zeichen (wenn ein Film pausiert wird und die Schrift +das Zeichen <keycap>e</keycap> enthält)</entry> +</row> +<row> +<entry>$x</entry> +<entry>Filmbreite</entry> +</row> +<row> +<entry>$y</entry> +<entry>Filmhöhe</entry> +</row> +<row> +<entry>$C</entry> +<entry>Name des verwendeten Codecs</entry> +</row> + +</tbody> +</tgroup> +</informaltable> +</listitem> + +</varlistentry> +</variablelist> + +<note><para> + Die Variablen <literal>$a, $T, $p, $s</literal> und <literal>$e</literal> + geben alle Zeichen zurück, die als spezielle Symbole angezeigt werden sollen + (zum Beispiel steht <keycap>e</keycap> für das Pause-Symbol, welches gewöhnlich + etwa so || aussieht). + Du solltest eine Schrift für normale Zeichen und eine weitere Schrift für + Symbole haben. Schau in den Abschnitt über + <link linkend="skin-fonts-symbols">Symbole</link> + für mehr Informationen. +</para></note> +</sect2> + +<sect2 id="skin-file-subwindow"> +<title>Unterfenster</title> +<para> + Die folgenden Einträge können in diesem Block verwendet werden +'<literal>window = sub</literal>' . . . '<literal>end</literal>'. +</para> + +<variablelist> +<varlistentry> + <term><literal> + <anchor id="skin-sub-base"/>base = image, X, Y, breite, hoehe + </literal></term> + <listitem><para> + Die im Fenster anzuzeigende Grafik. Das Fenster wird an der angegebenen + Position <literal>X,Y</literal> auf dem Bildschirm erscheinen + (<literal>0,0</literal> ist die obere linke Ecke). + Du kannst <literal>-1</literal> für zentriert und <literal>-2</literal> + für rechts (<literal>X</literal>) und unten (<literal>Y</literal>) festlegen. + Das Fenster wird so groß sein wie die Grafik. + <literal>width</literal> und <literal>height</literal> + kennzeichnen die Größe des Fensters; sie sind optional (wenn sie fehlen, hat + das Fenster die selbe Größe wie die Grafik). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-background"/>background = R, G, B + </literal></term> + <listitem><para> + Lässt dich die Hintergrundfarbe setzen. Dies ist von Nutzen, wenn die Grafik + kleiner ist als das Fenster. + <literal>R</literal>, <literal>G</literal> und <literal>B</literal> + spezifizieren die Rot-, Grün- und Blau-Komponenten der Farbe (jede davon ist + eine Dzimalzahl von 0 bis 255). + </para></listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2 id="skin-file-menu"> +<title>Skin-Menü</title> +<para> + Wie bereits zuvor erwähnt, wird das Menü mittels zweier Grafiken dargestellt. + Normale Menüeinträge werden aus der Grafik entnommen, die durch das Element + <literal>base</literal> festgelegt sind, während der aktuell gewählte Eintrag + aus der Grafik entnommen wird, die durch das Element <literal>selected</literal> + spezifiziert wurde. Du musst Position und Größe jedes Menüeintrags mittels des + Elements <literal>menu</literal> definieren. +</para> + +<para> + Die folgenden Einträge können im Block + '<literal>window = menu</literal>'. . .'<literal>end</literal>' genutzt werden. +</para> + +<variablelist> +<varlistentry> + <term><literal> + <anchor id="skin-menu-base"/>base = image + </literal></term> + <listitem><para> + Die Grafik für normale Menüeinträge. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-selected"/>selected = image + </literal></term> + <listitem><para> + Die Grafik, die das Menü mit allen gewählten Einträgen anzeigt. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><literal> + <anchor id="skin-menu"/>menu = X, Y, width, height, message + </literal></term> + <listitem><para> + Definiert die Position <literal>X,Y</literal> und die Größe eines Menüeintrags + innerhalb der Grafik. <literal>message</literal> ist die Meldung, die erzeugt + werden soll, wenn die Maustaste über dem Eintrag losgelassen wird. + </para></listitem> +</varlistentry> +</variablelist> +</sect2> +</sect1> + +<sect1 id="skin-fonts"> +<title>Schriften</title> +<para> + Wie im Abschnitt über die Skin-Teile beschrieben, wird eine Schrift durch eine + Grafik und eine Beschreibungsdatei definiert. Du kannst die Zeichen irgendwo + innerhalb der Grafik platzieren, aber stell sicher, dass Position und Größe + der Zeichen in der Beschreibungsdatei exakt angegeben sind. +</para> + +<para> + Die Schrift-Beschreibungsdatei (mit Erweiterung <filename>.fnt</filename>) + kann mit '<literal>;</literal>' beginnende Kommentarzeilen enthalten. + Die Datei muss eine Zeile in der Form enthalten + <anchor id="skin-font-image"/> + <programlisting>image = <replaceable>image</replaceable></programlisting> + Wobei <literal><replaceable>image</replaceable></literal> der Name der für + die Schrift anzuwendenden Grafikdatei ist (du musst keine Erweiterung angeben). + <anchor id="skin-font-char"/> +<programlisting>"char" = X, Y, width, hight</programlisting> + Hier legen <literal>X</literal> und <literal>Y</literal> die Position des + <literal>char</literal>-Zeichens innerhalb der Grafik fest + (<literal>0,0</literal> steht für die obere linke Ecke). + <literal>width</literal> und <literal>height</literal> sind die Maße der + Zeichen in Pixel. +</para> + +<para> + Dieses Beispiel definiert die Zeichen A, B, C unter Anwendung von + <filename>font.png</filename>. +<programlisting> +; Kann eine "Schrift" anstatt "font.png" sein. +image = font.png + +; Drei Zeichen reichen zu Demonstrationszwecken :-) +"A" = 0,0, 7,13 +"B" = 7,0, 7,13 +"C" = 14,0, 7,13 +</programlisting> +</para> + +<sect2 id="skin-fonts-symbols"> +<title>Symbole</title> +<para> + Einige Zeichen haben spezielle Bedeutungen, wenn sie von bestimmten + Variablen in <link linkend="skin-dlabel">dlabel</link> zurückgegeben + werden. Diese Zeichen sind dazu gedacht, als Symbole angezeigt zu werden, + sodass Sachen wie ein hübsches DVD-Logo an Stelle des Zeichens + '<literal>d</literal>' für einen DVD-Stream angezeigt werden können. +</para> +<para> + Die folgende Tabelle listet alle Zeichen auf, die zum Anzeigen von + Symbolen genutzt werden können (und daher eine andere Schrift benötigen). +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Zeichen</entry><entry>Symbol</entry></row> +</thead> +<tbody> +<row><entry><keycap>p</keycap></entry><entry>Play</entry></row> +<row><entry><keycap>s</keycap></entry><entry>Stop</entry></row> +<row><entry><keycap>e</keycap></entry><entry>Pause</entry></row> +<row><entry><keycap>n</keycap></entry><entry>Kein Sound</entry></row> +<row><entry><keycap>m</keycap></entry><entry>Mono-Sound</entry></row> +<row><entry><keycap>t</keycap></entry><entry>Stereo-Sound</entry></row> +<row><entry><keycap>f</keycap></entry><entry>Stream ist eine Datei</entry></row> +<row><entry><keycap>v</keycap></entry><entry>Stream ist eine Video-CD</entry></row> +<row><entry><keycap>d</keycap></entry><entry>Stream ist eine DVD</entry></row> +<row><entry><keycap>u</keycap></entry><entry>Stream ist eine URL</entry></row> +</tbody> +</tgroup> +</informaltable> +</sect2> +</sect1> + +<sect1 id="skin-gui"> +<title>GUI-Meldungen</title> +<para> + Dies sind die Meldungen, die von Buttons, Potentiometern und + Menüeinträgen generiert werden können. +</para> +<note> +<para> + Einige der Meldungen funktionieren vielleicht nicht wie erwartet + (oder vielleicht auch gar nicht). + Wie du weißt, befindet sich das GUI in der Entwicklung. +</para> +</note> + +<variablelist> +<title>Playback-Kontrolle:</title> +<varlistentry> + <term><emphasis role="bold">evNext</emphasis></term> + <listitem><para> + Springe zum nächsten Track in der Playliste. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPause</emphasis></term> + <listitem><para> + Formt einen Schalter zusammen mit <literal>evPlaySwitchToPause</literal>. + Sie können dazu benutzt werden, einen gebräuchlichen Play/Pause-Button + zu bekommen. Beide Meldungen sollten den Buttons zugewiesen werden, die + an genau der selben Position inerhalb des Fensters dargestellt werden. + Diese Meldung pausiert das Abspielen und die Grafik für den + <literal>evPlaySwitchToPause</literal>-Button wird gezeigt + (um anzudeuten, dass der Button zum Fortsetzen des Abspielens gedrückt + werden kann). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlay</emphasis></term> + <listitem><para> + Starte das Abspielen. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlaySwitchToPause</emphasis></term> + <listitem><para> + Das Gegenteil von <literal>evPauseSwitchToPlay</literal>. Diese Meldung + startet das Abspielen und die Grafik für den + <literal>evPauseSwitchToPlay</literal>-Button wird angezeigt + (um anzudeuten, dass der Button zum Pausieren des Abspielvorgangs gedrückt + werden kann). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPrev</emphasis></term> + <listitem><para> + Springe zum vorherigen Track in der Playliste. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evStop</emphasis></term> + <listitem><para> + Stoppe das Abspielen. + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Springen:</title> +<varlistentry> + <term><emphasis role="bold">evBackward10sec</emphasis></term> + <listitem><para> + Springe 10 Sekunden rückwärts. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evBackward1min</emphasis></term> + <listitem><para> + Springe 1 Minute rückwärts. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evBackward10min</emphasis></term> + <listitem><para> + Springe 10 Minuten rückwärts. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evForward10sec</emphasis></term> + <listitem><para> + Springe 10 Sekunden vorwärts. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evForward1min</emphasis></term> + <listitem><para> + Springe 1 Minute vorwärts. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evForward10min</emphasis></term> + <listitem><para> + Springe 10 Minuten vorwärts. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetMoviePosition</emphasis></term> + <listitem><para> + Springe zu Position (kann von einem Potentiometer genutzt werden; + mit dem relativen Wert (0-100%) des Potentiometers). + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Video-Kontrolle:</title> +<varlistentry> + <term><emphasis role="bold">evHalfSize</emphasis></term> + <listitem><para> + Setze das Filmfenster auf halbe Größe. + </para></listitem> +</varlistentry> +<varlistentry> + <term><emphasis role="bold">evDoubleSize</emphasis></term> + <listitem><para> + Setze das Filmfenster auf doppelte Größe. + </para></listitem> +</varlistentry> +<varlistentry> + <term><emphasis role="bold">evFullScreen</emphasis></term> + <listitem><para> + Schalte Vollbildmodus an/aus. + </para></listitem> +</varlistentry> +<varlistentry> + <term><emphasis role="bold">evNormalSize</emphasis></term> + <listitem><para> + Setze das Filmfenster auf normale Größe. + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Audio-Kontrolle:</title> +<varlistentry> + <term><emphasis role="bold">evDecAudioBufDelay</emphasis></term> + <listitem><para> + Verringere die Verzögerung des Audiopuffers. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evDecBalance</emphasis></term> + <listitem><para> + Verringere die Balance. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evDecVolume</emphasis></term> + <listitem><para> + Verringere die Lautstärke. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIncAudioBufDelay</emphasis></term> + <listitem><para> + Erhöhe die Verzögerung des Audiopuffers. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIncBalance</emphasis></term> + <listitem><para> + Erhöhe die Balance. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIncVolume</emphasis></term> + <listitem><para> + Erhöhe die Lautstärke. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evMute</emphasis></term> + <listitem><para> + Schalte den Sound an/aus (Mute/Unmute). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetBalance</emphasis></term> + <listitem><para> + Setze die Balance(kann von einem Potentiometer genutzt werden; + mit dem relativen Wert (0-100%) des Potentiometers). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetVolume</emphasis></term> + <listitem><para> + Setze die Lautstärke(kann von einem Potentiometer genutzt werden; + mit dem relativen Wert (0-100%) des Potentiometers). + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>Verschiedenes:</title> +<varlistentry> + <term><emphasis role="bold">evAbout</emphasis></term> + <listitem><para> + Öffne das About-Fenster. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evDropSubtitle</emphasis></term> + <listitem><para> + Deaktiviert den aktuell verwendeten Untertitel. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evEqualizer</emphasis></term> + <listitem><para> + Schaltet den Equalizer an/aus. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evExit</emphasis></term> + <listitem><para> + Schließe das Programm. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evIconify</emphasis></term> + <listitem><para> + Minimiere das Fenster zu einem Symbol. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoad</emphasis></term> + <listitem><para> + Lade eine Datei (durch Öffnen des Datei-Browser-Fensters, + in dem du die Datei wählen kannst). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoadPlay</emphasis></term> + <listitem><para> + Macht das selbe wie <literal>evLoad</literal>, es startet jedoch + das Abspielen nach dem Laden der Datei automatisch. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoadSubtitle</emphasis></term> + <listitem><para> + Lädt eine Untertiteldatei (mit dem Dateiwähler) + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evLoadAudioFile</emphasis></term> + <listitem><para> + Lädt eine Audio-Datei (mit dem Dateiwähler) + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evNone</emphasis></term> + <listitem><para> + Leere Meldung, besitzt keinen Effekt (außer vielleicht in CVS-Versionen :-)). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlaylist</emphasis></term> + <listitem><para> + Öffne/schließe das Playlisten-Fenster. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlayDVD</emphasis></term> + <listitem><para> + Versucht die DVD im angegebenen DVD-ROM-Laufwerk zu öffnen. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPlayVCD</emphasis></term> + <listitem><para> + Versucht die VCD im angegebenen CD-ROM-Laufwerk zu öffnen. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evPreferences</emphasis></term> + <listitem><para> + Öffne das Einstellungsfenster. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetAspect</emphasis></term> + <listitem><para> + Setzt das angezeigte Grafikseitenverhältnis. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSetURL</emphasis></term> + <listitem><para> + Zeigt das URL-Dialog-Fenster. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><emphasis role="bold">evSkinBrowser</emphasis></term> + <listitem><para> + Öffne das Skin-Browser-Fenster. + </para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="skin-quality"> +<title>Herstellung von Qualitätsskins</title> + +<para> + Jetzt hast du dich über das Herstellen eines Skins für das + <application>MPlayer</application>-GUI informiert, in + <application>Gimp</application> dein bestes gegeben und willst + deinen Skin an uns schicken? + Lies weiter dann findest du einige Vorgaben häufige Irrtümer zu + vermeiden und produiere einen hochwertigen Skin. +</para> + +<para> + Wir wollen dass Skins, die wir in unser Repository eingefügt werden, + zu bestimmten Qualitätsstandars konform sind. Es gibt auch vieles, das + du tun kannst, um uns das Leben leichter zu machen. +</para> + +<para> + Als ein Beispiel kannst du dir den <systemitem>Blue</systemitem>-Skin + ansehen. Er genügt seit Version 1.5 allen unten aufgelisteten Kriterien. +</para> + +<itemizedlist> +<listitem><para> + Jeder Skin sollte mit einer + <filename>README</filename>-Datei ankommen, die Iformationen über + dich, den Autor, Copyright- und Licenzanmerkungen und alles, was du + sonst noch anfügen willst, enthält. + Willst du einen Changelog, ist diese Datei ein geeigneter Ort dafür. +</para></listitem> + +<listitem><para> + Es sollte eine Datei namens <filename>VERSION</filename> + mit nicht mehr als der Versionsnummer des Skins in einer einzigen + Zeile geben (z.B. 1.0). +</para></listitem> + +<listitem><para> + Horizontale und vertikale Regler (wie die für Lautstärke + oder Position) sollten die Mitte des Knaufs sauber in der Mitte + des Regglers zentriert haben. Es sollte möglich sein, den Knauf + an beide Enden des Reglers zu bewegen, jedoch nicht darüber hinaus. +</para></listitem> + +<listitem><para> + Für Skin-Elemente sollten die richtigen Größen in der skin-Datei + deklariert sein. Ist dies nicht der Fall, kannst du außerhalb + z.B. eines Buttons klicken und trotzdem einen Klick innerhalb + seiner Fläche auslösen und diesen dennoch nicht auslösen.</para></listitem> + +<listitem><para> + Die <filename>skin</filename>-Datei sollte sauber + aussehen und keine Tabs enthalten. Mit sauber aussehen ist + gemeint, dass die Zahlen ordentlich in Reihe stehen. +</para></listitem> +</itemizedlist> + +</sect1> + +</appendix>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/users-vs-dev.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.17 $ --> +<appendix id="users-vs-dev"> +<title>Aufschrei der Entwickler</title> + +<sect1 id="gcc-296"> +<title>GCC 2.96</title> + +<formalpara> +<title>Der Hintergrund:</title> +<para> +Die GCC <emphasis role="bold">2.95</emphasis> Serie ist ein offizielles +GNU-Release und Version 2.95.3 ist die fehlerfreieste dieser Serie. +Wir haban niemals Compilier-Probleme beobachten können, die auf den GCC 2.95.3 +zurückzuführen gewesen wären. +Angefangen mit Red Hat Linux 7.0 begann <emphasis role="bold">Red Hat</emphasis> +eine stark veränderte CVS-Version des GCC mitzuliefern und nannte sie +<emphasis role="bold">2.96</emphasis>. +Red Hat hat diese Version in seine Distribution aufgenommen, weil GCC 3.0 zu diesem +Zeitpunkt noch nicht fertiggestellt war und weil sie einen Compiler brauchten, der +auf allen unterstützten Plattformen gut arbeitete, einschließlich IA64 und s390. +Der Linux-Distributor <emphasis role="bold">Mandrake</emphasis> (jetzt Mandriva) +folgte ebenfalls dem Beispiel Red Hat's und begann bald darauf GCC 2.96 mit seiner +Linux-Mandrake 8.0 Serie auszuliefern. +</para> +</formalpara> + +<formalpara> +<title>Die Stellungnahmen:</title> +<para> +Das GCC-Team dementierte jegliche Verbindung zu GCC 2.96 und publizierte +eine <ulink url="http://gcc.gnu.org/gcc-2.96.html">offizielle Stellungnahme</ulink> +auf GCC 2.96. +Viele Entwickler weltweit trafen auf Probleme mit GCC 2.96 und +verschiedene Projekte, darunter +<ulink url="http://avifile.sf.net/news-old1.htm">avifile</ulink>, +fingen an, andere Compiler zu empfehlen. +Weitere interessante Links sind der +<ulink url="http://www.atnf.csiro.au/people/rgooch/linux/docs/kernel-newsflash.html"> +Linux kernel news flash about kernel 2.4.17</ulink> +und das +<ulink url="http://www.voy.com/3516/572.html">Voy Forum</ulink>. +<application>MPlayer</application> litt ebenfalls an zeitweiligen Problemen, die +alle durch den Wechsel zu einer anderen Version von GCC gelöst waren. +Verschiedene Projekte begannen daraufhin damit, Workarounds für einige der +Probleme mit 2.96 zu implementieren, aber wir lehnten es ab, Fehler anderer +Leute zu beheben. +Dazu kommt, dass einige Workarounds zu Performance-Einbußen führten. +</para> +</formalpara> + +<para> +GCC 2.96 erlaubt keine <literal>|</literal> (pipe-Zeichen) in +Assembler-Kommentaren, weil er gleichermaßen die Intel- wie auch die +AT&T-Syntax unterstützt und das Zeichen <literal>|</literal> +ein Symbol in der Intel-Variante darstellt. +Das Problem liegt nun darin, dass der GCC den kompletten Assembler-Block +<emphasis>stillschweigend</emphasis> ignoriert. +Dieser Fehler wurde inzwischen angeblich behoben. GCC gibt eine Warnung +aus anstatt den Block einfach zu überspringen. +</para> + +<formalpara> +<title>Die Gegenwart:</title> +<para> +Red Hat erklärt, dass GCC 2.96-85 und neuer keine Fehler mehr enthalten. +Die Situation hat sich tatsächlich verbessert, jedoch sehen wir nach wie vor +Problemberichte auf unseren Mailing-Listen, die mit Verwenden eines anderen +Compilers verschwinden. +Wie dem auch sei, es ist inzwischen nicht mehr von Bedeutung. +Hoffentlich wird ein herangereifter GCC 3.x all dieses Problem ein für alle +mal beheben. +Wenn du wirklich mit 2.96 compilieren willst, füge <filename>configure</filename> +die Option <option>--disable-gcc-checking</option> hinzu. +Vergiss nicht, du bist auf dich allein gestellt und +<emphasis role="bold">melde keine Bugs</emphasis>. +Tust du dies trotzdem, wirst du nur aus der Mailing-Liste verbannt, da wir +mehr als genug Flamewars wegen GCC 2.96 erlebt hatten. +Lass dieses Thema bitte ruhen. +</para> +</formalpara> + +<para> +Solltest du Probleme mit dem GCC 2.96 hast, bekommst du Pakete für die +Version 2.96-85 auf +<ulink url="ftp://updates.redhat.com">Red Hats FTP-Server</ulink>, +oder benutze einfach die für Version 7.2 und neuer bereit liegenden Pakete +für die Version 3.0.4. +Du kannst auch Pakete für +<ulink url="ftp://people.redhat.com/jakub/gcc/errata/3.2.3-37/">gcc-3.2.3-37</ulink> +herunterzuladen (inoffiziell, aber sie funktionieren einwandfrei) +und du kannst diese analog zu deinem GCC 2.96 installieren. +<application>MPlayer</application> wird es erkennen und Version 3.2 statt +2.96 verwenden. +Wenn du aus irgendeinem Grund die binären Pakete nicht anwenden willst oder kannst, +lies hier eine kleine Anleitung, wie du GCC 3 aus der Source compilieren kannst: +</para> + +<procedure> +<step><para> + Gehe zur Seite mit den + <ulink url="http://gcc.gnu.org/mirrors.html">GCC-Mirrors</ulink> + und lade <filename>gcc-core-<replaceable>XXX</replaceable>.tar.gz</filename> + herunter, wobei <replaceable>XXX</replaceable> die Versionsnummer bedeutet. + Dieses Paket beinhaltet den kompletten C-Compiler und reicht für + <application>MPlayer</application> aus. + Willst du darüber hinaus Unterstützung C++, Java oder einige der + erweiterten GCC-Features, ist + <filename>gcc-<replaceable>XXX</replaceable>.tar.gz</filename> womöglich + besser für deine Bedürfnisse geeignet. + </para></step> +<step><para> + Entpacke das Archiv mit + <screen>tar -xvzf gcc-core-<replaceable>XXX</replaceable>.tar.gz</screen> + </para></step> +<step><para> + Der GCC ist nicht innerhalb der Quelltextverzeichnisses selbst eingebaut + wie andere Programme, sondern benötigt ein spezielles Build-Verzeichnis + ausserhalb des Quelltextbaumes. + Deshalb erstelle dieses Verzeichnis mit + <screen>mkdir gcc-build</screen> + </para></step> +<step><para> + Danach kannst du mit dem Konfigurieren des GCC im Build-Verzeichnis + fortfahren, du brauchst aber das <filename>configure</filename>-Script + aus dem Quelltextverzeichnis: + <screen> +cd gcc-build +../gcc-3.<replaceable>XXX</replaceable>/configure</screen> + </para></step> +<step><para> + Compiliere GCC mit folgendem Befehl im Build-Verzeichnis: + <screen>make bootstrap</screen> + </para></step> +<step><para> + Jetzt kannst du GCC (als root) mit diesem Befehl installieren + <screen>make install</screen> + </para></step> +</procedure> +</sect1> + + +<sect1 id="mplayer-binary"> +<title>Vorcompilierte (binäre) Pakete</title> + +<para> +Früher enthielt <application>MPlayer</application> Quelltext des +OpenDivX-Projekts, welches es verbietet, vorcompilierte Pakete zu verteilen. +Dieser Code wurde in Version 0.90-pre1 entfernt und die verbliebene +Datei <filename>divx_vbr.c</filename>, die noch auf den OpenDivX-Quellen +aufbaut, wurde wie Version 0.90pre9 durch die Autoren unter die GPL gestellt. +Du darfst jetzt also nach Herzenslust binäre Pakete bauen und verteilen. +</para> + +<para> +Ein weiteres Hindernis für Binärpakete waren Optimierungen der Compilierzeit für +die CPU-Architektur. +<application>MPlayer</application> unterstützt nun die CPU-Erkennung zur Laufzeit +(übergib <command>configure</command> einfach <option>--enable-runtime-cpudetection</option>). +Diese Option ist standardmäßig deaktiviert, weil es eine kleine negative +Auswirkung auf die Geschwindigkeit mitbringt. +Andererseits ist es mit ihr nun möglich, Binärpakete zu erstellen, die auf verschiedenen +Mitgliedern der Intel-kompatiblen CPU-Familie laufen. +</para> +</sect1> + + +<sect1 id="nvidia-opinions"> +<title>nVidia</title> + +<para> +Uns misfällt die Tatsache, dass <ulink url="http://www.nvidia.com">nVidia</ulink> +nur binäre Treiber (zur Verwendung mit XFree86) bereitstellt, die oft genug auch +noch einige Fehler enthalten. +Wir bekamen auf +<ulink url="http://mplayerhq.hu/pipermail/mplayer-users/">mplayer-users</ulink> +viele Berichte über Probleme, die diese Closed-Source-Treiber +und deren dürftige Qualität, Instabilität und armseligen User- und +Experten-Support betreffen. +Viele dieser Probleme/Sachverhalte treten nach wie vor immer wieder auf. +nVidia hat letztens Kontakt mit uns aufgenommen und behauptet, diese Fehler +würden nicht existieren, die Instabilität würden von schlechten AGP-Chips +verursacht, und sie hätten keine Fehlerberichte (wie etwa die lila Linien) +erhalten. +Wenn du also ein Problem mit deiner nVidia-Karte hast, solltest du du auf +jeden Fall deinen nVidia-Treiber aktualisieren und/oder ein neues Motherboard +kaufen oder nVidia um die Bereitstellung von Open-Source-Treibern bitten. +Wie dem auch sei, wenn du binäre nVidia-Treiber verwendest und Treiberprobleme +auftreten, sei dir bitte bewusst, dass du von unserer Seite aus sehr wenig +Hilfe erhalten wirst, weil wir da einfach wenig helfen können. +</para> +</sect1> + + +<sect1 id="joe-barr"> +<title>Joe Barr</title> + +<para> +Joe Barr wurde im Dezember 2001 durch das Verfassen eines für +<application>MPlayer</application> mehr als üblen Berichts berüchtigt, genannt +<ulink url="http://www.linuxworld.com/story/32880.htm"><application>MPlayer</application>: +The project from hell</ulink>. +Er war der Meinung, <application>MPlayer</application> sei schwer zu installieren und +kam zu dem Schluß, die Entwickler seinen unfreundlich und die Dokumentation +unvollständig und beleidigend. +Entscheide selbst, wie es damit steht. +Er fuhr fort, Arpi negativ in seinen +<ulink url="http://www.linuxworld.com/story/32887.htm">10 Linux predictions for 2002</ulink> +zu erwähnen. +In einem darauf folgenden Bericht von xine, genannt +<ulink url="http://www.linuxworld.com/story/32716.htm">A streaming media player for +the rest of us</ulink>, machte er mit dem Hochrühren der Kontroverse weiter. +Ironischerweise zitiert er am Ende dieses Artikels seine Konversation mit +Günter Bartsch, dem Autor von <application>xine</application>, +der die ganze Situation perfekt zusammenfasste: + +<blockquote><para> +Seis drum, er sagte auch noch, er sei "überrascht" von meiner +Kolumne zu <application>Mplayer</application> gewesen und meinte, sie sei +unfair, während er mich daran erinnerte, es ein freies Software-Projekt. +"Wenn du ihn nicht magst," sagte Bartsch, "steht es dir frei, +ihn nicht zu nutzen." +</para></blockquote> + +Fast zwei Jahre später im Oktober 2003 schrieb er einen anderen Bericht, genannt +<ulink url="http://www.newsforge.com/article.pl?sid=03/10/02/0343200">Mplayer revisited</ulink> +(falsche Rechtschreibung wurde beibehalten). +Darin kam er zu folgenden Schlußfolgerungen: + +<blockquote><para> +Ich würde gerne erzählen, es hätte bei der Anzahl der Features, in der Performance +und in der Dokumentation Verbesserungen gegeben. +Es ist nach wie vor nicht die leichteste Installation der Welt, speziell für +Neulinge, aber es ist ein bisschen besser als es mal war. +</para></blockquote> + +und + +<blockquote><para> +Aber noch wichtiger, mir sind keinerlei neue Kommentare zum Missbrauch durch +Nutzer aufgefallen. Ich denke, ich verdiene etwas von dem Ansehen dafür, auch +wenn ich das selbst nicht so sage. +Arpi und der Rest des Projektteams muss das auch so empfinden, da sie darauf +bedacht waren, sich in einem speziellen, im Tarball enthaltenen Abschnitt +der Dokumentation an mich zu erinnern. +Wie ich anfangs schon sagte, die Dinge haben sich überhaupt nicht geändert. +</para></blockquote> + +Wir konnten unsere Gefühle für Joe Barr nicht besser zusammen fassen: +"Es ist nach wie vor nicht der fairste oder am besten recherchierte +Artikel der Welt, aber er ist besser als früher. "Hoffentlich werden +wir das nächste Mal jedermanns Erwartungen entsprechen. Wie auch immer, +die Reife ist nur unserem wachsenden Alter gutzuschreiben und womöglich der +Tatsache, dass wir der Flamewars müde sind. +</para> + +</sect1> +</appendix>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/de/video.xml Mon Jun 05 05:02:47 2006 +0000 @@ -0,0 +1,2788 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.85 $ --> +<chapter id="video"> +<title>Video-Ausgabe-Geräte</title> + +<sect1 id="mtrr"> +<title>MTRR einrichten</title> + +<para> + Du solltest UNBEDINGT sicherstellen, dass die MTRR-Register richtig belegt + sind, denn sie können eine großen Geschwindigkeits-Schub + bringen. +</para> + +<para> + Gebe den Begehl <command>cat /proc/mtrr</command> ein: +<screen> +<prompt>--($:~)--</prompt> cat /proc/mtrr +reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9 +reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1<!-- +--></screen> +</para> + +<para> + Diese Anzeige ist richtig. Sie zeigt meine Matrox G400 mit 16MB Speicher. + Ich habe die Einstellung von XFree 4.x.x, was die MTRR-Register automatisch + einstellt. +</para> + +<para> + Wenn nichts funktioniert, musst du sie manuell setzen. Als erstes musst du + die Basisadresse finden. Dazu gibt es drei Möglichkeiten: + +<orderedlist> +<listitem><para> + durch die X11 Start-Meldungen, zum Beispiel: + <screen> +(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 +(--) SVGA: Linear framebuffer at 0xD8000000<!-- +--></screen> + </para></listitem> +<listitem><para> + für (verwende<filename>/proc/pci</filename> (verwende den Befehl +<command>lspci -v</command>): + <screen> +01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 +Memory at d8000000 (32-bit, prefetchable) + </screen> + </para></listitem> +<listitem><para> + von mga_vid kernel Kerneltreiber-Meldungen (verwende <command>dmesg</command>): + <screen>mga_mem_base = d8000000</screen> + </para></listitem> +</orderedlist> +</para> + +<para> + So, nun gilt es, die Speichergröße zu finden. Dies ist sehr + einfach, konvertiere einfach die Video-RAM-Größe nach Hexdezimal, + oder verwende diese Tabelle: +<informaltable frame="none"> +<tgroup cols="2"> +<tbody> +<row><entry>1 MB</entry><entry>0x100000</entry></row> +<row><entry>2 MB</entry><entry>0x200000</entry></row> +<row><entry>4 MB</entry><entry>0x400000</entry></row> +<row><entry>8 MB</entry><entry>0x800000</entry></row> +<row><entry>16 MB</entry><entry>0x1000000</entry></row> +<row><entry>32 MB</entry><entry>0x2000000</entry></row> +</tbody> +</tgroup> +</informaltable> +</para> + +<para> + Du weißt die Base-Adresse und die Speichergröße? Lass uns + die MTRR Register einstellen! Für die Matrox Karte von oben + (<literal>base=0xd8000000</literal>) mit 32MB RAM (<literal>size=0x2000000</literal>) + führst du einfach das Folgende aus: +<screen> +echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr +</screen> +</para> + +<para> + Nicht alle CPUs unterstützen MTRRs. Zum Beispiel ältere K6-2s + [die bei ca. 266MHz, stepping 0] unterstützen kein MTRR, aber stepping + 12 CPUs tun es (<command>cat /proc/cpuinfo</command> gibt Aufschluss). +</para> +</sect1> + +<sect1 id="output-trad"> +<title>Videoausgabegeräte für traditionelle Grafikkarten</title> +<sect2 id="xv"> +<title>Xv</title> + +<para> + Mit XFree86 4.0.2 oder neureren Versionen kannst du die Hardware-YUV-Routinen + deiner Grafikkarte mit Hilfe der XVideo-Erweiterungen benutzen. Das ist die + Technik, die <option>-vo xv</option> benutzt. Dieser Treiber unterstützt + darüber hinaus die Anpassung von Helligkeit/Kontrast/Sättigung etc + (es sei denn, du benutzt den alten und langsamen DirectShow DivX-Codec, + welcher diese Anpassungen unabhängig vom Videoausgabetreiber unterstützt). + Schau in der Man Page nach. +</para> + +<para> + Um Xv zum Laufen zu bringen, musst du auf die folgenden Punkte achten: + +<orderedlist> +<listitem><para> + Du musst XFree86 4.0.2 oder eine neuere Version verwenden, da die + älteren Versionen XVideo noch nicht kannten. + </para></listitem> +<listitem><para> + Deine Grafikkarte muss Hardware-Unterstützung für YUV bieten, was alle + modernen Karten tun. + </para></listitem> +<listitem><para> + X muss die XVideo-Erweiterung auch tatsächlich laden, was zu + Meldungen ähnlich den folgenden führt: + + <programlisting>(II) Loading extension XVideo</programlisting> + + in <filename>/var/log/XFree86.0.log</filename> + + <note><para> + Diese Meldung besagt nur, dass die XFree86-Erweiterung + geladen wird. Bei einer guten Installation sollte das immer der Fall + sein. Das heißt allerdings noch nicht, dass die + <emphasis role="bold">XVideo-Unterstützung der Grafikkarte</emphasis> + auch geladen wurde! + </para></note> + </para></listitem> +<listitem><para> + Deine Karte muss unter Linux Xv-Unterstützung haben. Du kannst dich + dessen mit <command>xvinfo</command> vergewsissern, das Teil der + XFree86-Distribution ist. Es sollte einen längeren Text ausgeben, + der ungefähr so aussieht: + +<screen> +X-Video Extension version 2.2 +screen #0 + Adaptor #0: "Savage Streams Engine" + number of ports: 1 + port base: 43 + operations supported: PutImage + supported visuals: + depth 16, visualID 0x22 + depth 16, visualID 0x23 + number of attributes: 5 +(...) + Number of image formats: 7 + id: 0x32595559 (YUY2) + guid: 59555932-0000-0010-8000-00aa00389b71 + bits per pixel: 16 + number of planes: 1 + type: YUV (packed) + id: 0x32315659 (YV12) + guid: 59563132-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) +(...etc...)<!-- +--></screen> + Damit <application>MPlayer</application> Xv benutzen kann, müssen die + Pixelformate YUY2 packed und YV12 planar unterstützt werden. + </para></listitem> + <listitem><para> + Stell als letztes sicher, dass <application>MPlayer</application> mit + Unterstützung für Xv compiliert wurde. <command>configure</command> gibt eine + entsprechende Meldung aus. + Führ den Befehl <command>mplayer -vo help | grep xv </command> aus. + Wurde Unterstützung für Xv eingebaut, sollte eine ähnliche Meldung + wie diese erscheinen: + <screen> + xv X11/Xv<!-- + --></screen> + </para></listitem> +</orderedlist> +</para> + +<sect3 id="tdfx"> +<title>3dfx-Karten</title> + +<para> + Ältere 3dfx-Treiber hatten bekanntermaßen Probleme mit der + XVideo-Beschleuningung, die entweder YUY2 oder YV12 nicht unterstützte. + Stell sicher, dass du XFree86 Version 4.2.0 oder neuer verwendest, da diese + Versionen mit YV12 und YUY2 keine Probleme haben. Vorherige Versionen, auch + 4.1.0, sind <emphasis role="bold">bei Verwendung von YV12 abgestürzt</emphasis>. + Wenn du merkwürdige Effekte bei der Verwendung von <option>-vo xv</option> + bemerktst, dann probier aus, ob mit SDL, das ebenfalls XVideo benutzen kann, + diese Effekte verschwinden. In der <link linkend="sdl">SDL</link> stehen + Details darüber. +</para> + +<para> + <emphasis role="bold">Alternativ</emphasis> kannst du auch den NEUEN + tdfxfb-Treiber mit <option>-vo tdfxfb</option>verwenden! + Lies dazu die <link linkend="tdfxfb">tdfxfb</link> tdfxfb-Sektion +</para> +</sect3> + + +<sect3 id="s3"> +<title>S3-Karten</title> + +<para> + S3 Savage3D-Karten sollten problemlos funktionieren, aber bei Savage4- + Chips solltest du XFree86 4.0.3 oder neuer verwenden. Probier bei Problemen + den 16bpp-Farbmodus aus. Und der S3 Virge... Es gibt für ihn zwar Xv- + Unterstützung, aber die Karte selber ist so langsam, dass du sie besser + verkaufst. +</para> + +<note> +<para> + Momentan ist nicht ganz klar, welche Savage-Modelle keine Unterstützung + für YV12 in Hardware haben, sodass bei ihnen der Treiber diese Konvertierung + sehr langsam vornimmt. Wenn du deine Karte deswegen verdächtigst, dann + besorg dir einen neueren Treiber, oder frag auf der MPlayer-Users-Mailingliste + freundlich nach einem Treiber, der MMX/3DNow unterstützt. +</para> +</note> +</sect3> + + +<sect3 id="nvidia"> +<title>nVidia-Karten</title> + +<para> + nVidia ist für Linux keine optimale Wahl (auch wenn das laut nVidia + <link linkend="nvidia-opinions">nicht stimmt</link>)... + XFree86's Open-Source-Treiber unterstützt die meisten dieser Karten, jedoch + musst du in einigen Fällen die binären Closed-Source-Treiber von nVidia + verwenden, verfügbar auf der + <ulink url="http://www.nvidia.com/object/linux.html">nVidia-Webseite</ulink>. + Du brauchst diese Treiber immer, wenn du zusätzlich 3D-Beschleunigung + haben willst. +</para> + +<para> + Riva128-Karten bieten nicht einmal mit den binären nVidia-Treibern + XVideo-Unterstützung (beklag dich bei nVidia). +</para> + +<para> + However, <application>MPlayer</application> enthält einen + <link linkend="vidix">VIDIX</link> -Treibern für die meisten nVidia-Karten. + Er ist aktuell in der Beta-Phase und besitzt einige Nachteil. Mehr + Informationen findest du in der + <link linkend="vidix-nvidia">nVidia-VIDIX</link>-Sektion. +</para> +</sect3> + + +<sect3 id="ati"> +<title>ATI-Karten</title> + +<para> + Die <ulink url="http://gatos.sf.net">GATOS-Treiber</ulink>, die du + einsetzen solltest, sofern du keine Rage128- oder Radeon-Karte hast, + haben standardmäßig VSYNC angeschlatet. Dies bedeutet, dass + die Decodiergeschwindigkeit (!) zur Bildwiederholrate des Monitors + synchronisiert wird. Wenn dir die Wiedergabe langsam vorkommt, dann + versuche, irgendwie VSYNC abzuschalten, oder setze die Bildwiederholrate + des Monitors auf n * (fps des Films) Hz. +</para> + +<para> + Radeon VE - wenn du X benötigst, verwende XFree86 4.2.0 oder höher für + diese Karte. Außerdem gibt es keine Unterstützung für den TV-Ausgang. + Natürlich bekommst du mit <application>MPlayer</application> + <emphasis role="bold">Hardware-beschleunigte</emphasis> Wiedergabe, das + ganze wahlweise <emphasis role="bold">mit oder ohne TV-Ausgang</emphasis>, + und es werden dabei nicht einmal weitere Bibliotheken oder X selber benötigt. + Lies dazu die <link linkend="vidix">VIDIX-Sektion</link>. +</para> +</sect3> + + +<sect3 id="neomagic"> +<title>NeoMagic-Karten</title> + +<para> + Diese Chips befinden sich in vielen Laptops. Du musst XFree86 4.3.0 oder + höher oder andernfalls die + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/">Xv-fähigen + Treiber</ulink> von Stefan Seyfried verwenden. + Wähle einfach einen, der zu deiner XFree86-Version passt. +</para> + +<para> + XFree86 4.3.0 beinhaltet die Unterstützung für Xv, jetzt schickte Bohdan Horst + einen kleinen + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neo_driver.patch">Patch</ulink> + auf die XFree86-Quellen, der Framebuffer-Operationen (daher XVideo) + bis auf das Vierfache beschleunigt. Der Patch wurde das in XFree86-CVS + eingebunden und sollte im nächsten Release nach 4.3.0 vorhanden sein. +</para> + +<para> + Um die Wiedergabe von Video in DVD-Auflösung zu ermöglichen, + ändere deine XF86Config wie folgt: +<programlisting> +Section "Device" + [...] + Driver "neomagic" + <emphasis>Option "OverlayMem" "829440"</emphasis> + [...] +EndSection<!-- +--></programlisting> +</para> +</sect3> + + +<sect3 id="trident"> +<title>Trident-Karten</title> +<para> + Wenn du Xv mit einer Trident-Grafikkarte benutzen willst, dann installiere + XFree86 4.2.0, sofern Xv nicht schon mit 4.1.0 funktioniert. Version 4.2.0 + enthält Unterstützung für Xv im Vollbild für Cyberblade XP-Karten. +</para> + +<para> + Alternativ enthält <application>MPlayer</application> einen + <link linkend="vidix">VIDIX</link>-Treiber für the Cyberblade/i1-Karten. +</para> + +</sect3> + + +<sect3 id="kyro"> +<title>Kyro/PowerVR-Karten</title> +<para> + Wenn du Xv mit einer Kyro-basierten Karte (wie z.B. der Hercules Prophet 4000XT) + verwenden möchstest, dann solltest du die Treiber von der + <ulink url="http://www.powervr.com/">PowerVR-Seite</ulink> herunterladen. +</para> +</sect3> +</sect2> + +<!-- ********** --> + +<sect2 id="dga"> +<title>DGA</title> + +<formalpara> +<title>EINLEITUNG</title> +<para> + Dieser Abschnitt versucht, in wenigen Worten zu beschreiben, was DGA + generell ist, und was der DGA-Videotreiber in <application>MPlayer</application> + erreichen kann, und was nicht. +</para> +</formalpara> + +<formalpara> +<title>WAS IST DGA?</title> +<para> + <acronym>DGA</acronym> ist die Abkürzung für + <emphasis>Direct Graphics Access</emphasis> (direkter Zugriff auf die + Grafikhardware) und gibt Programmen die Möglichkeit, unter Umgehung + des X-Servers direkt den Framebuffer der Grafikkarte zu verändern. + Technisch gesehen wird das dadurch realisiert, dass der + Framebuffer-Speicher in den virtuellen Adressraum des jeweiligen Prozesses + abgebildet wird. Das wird vom Kernel aber nur dann zugelassen, wenn der + Prozess Superuserprivilegien besitzt. Dazu musst du dich entweder als + <systemitem class="username">root</systemitem> anmelden oder das SUID-bit + des <application>MPlayer</application>-Binaries setzen (was + <emphasis role="bold">nicht empfohlen wird</emphasis>). +</para> +</formalpara> +<para> + Von DGA gibt es zwei Versionen: DGA1 kommt mit XFree 3.x.x, und DGA2 + wurde mit XFree 4.0.1 eingeführt. +</para> + +<para> + DGA1 bietet nur den oben beschriebenen Zugriff auf den Framebuffer. Die + Umschaltung des Videomodus klappt nur mit der XVidMode-Erweiterung. +</para> + +<para> + DGA2 beinhaltet die Features der XVidMode-Erweiterung und erlaubt + außerdem, die Farbtiefe zu ändern. Damit kannst du also auf 32bit + Farbtiefe umschalten, auch wenn der X-Server gerade mit 15bit Farbtiefe + läuft und umgekehrt. +</para> + +<para> + DGA hat aber auch ein paar Nachteile. Die Funktionsweise scheint ein wenig + von der Grafikkarte und deder Implementierung des Grafikkartentreibers + im X-Server abhängig zu sein, der diesen Chip kontrolliert. + Es fuktioniert also nicht auf jedem System... +</para> + +<formalpara> +<title>DGA-UNTERSTÜTZUNG FÜR MPLAYER INSTALLIEREN</title> + +<para> + Stell als erstes sicher, dass X die DGA-Erweiterung lädt. Schau + in <filename>/var/log/XFree86.0.log</filename> nach: + +<programlisting>(II) Loading extension XFree86-DGA</programlisting> + + Wie du siehst ist XFree86 4.0.x oder neuer + <emphasis role="bold">sehr zu empfehlen</emphasis>! + <application>MPlayer</application>s DGA-Treiber wird von + <filename>./configure</filename> automatisch erkannt. Alternativ + kannst du seine Compilierung mit <option>--enable-dga</option> erzwingen. +</para> +</formalpara> + +<para> + Falls der Treiber nicht zu einer kleineren Auflösung wechseln + konnte, dann experimentiere mit den Optionen <option>-vm</option> (nur bei + X 3.3.x), <option>-fs</option>, <option>-bpp</option>, + <option>-zoom</option> herum, um einen Videomodus zu finden, + in den der Film reinpasst. Momentan gibt es keinen Konverter :( +</para> + +<para> + Werde <systemitem class="username">root</systemitem>. + DGA bruacht <systemitem class="username">root</systemitem>-Privilegien, + um direkt in den Grafikspeicher zu schreiben. Wenn du MPlayer als + normaler Benutzer starten möchtest, dann installiere + <application>MPlayer</application> mit dem SUID-Bit: + +<screen> +chown root <replaceable>/usr/local/bin/mplayer</replaceable> +chmod 750 <replaceable>/usr/local/bin/mplayer</replaceable> +chmod +s <replaceable>/usr/local/bin/mplayer</replaceable> +</screen> + + Jetzt funktioniert es auch als normaler Benutzer. +</para> + +<caution> +<title>Warnung: Sicherheitsrisiko!</title> +<para> + Dieses ist ein <emphasis role="bold">großes</emphasis> Sicherheitsloch. + Tu das <emphasis role="bold">niemals</emphasis> auf einem Server oder + auf einem Computer, auf den auch andere Leute Zugriff haben, da sie durch einen + SUID-<systemitem class="username">root</systemitem>-<application>MPlayer</application> + <systemitem class="username">root</systemitem>-Privilegien erlangen können. +</para> +</caution> + +<para> + Benutze jetzt die Option <option>-vo dga</option>, und ab geht's (hoffe ich + zumindest :))! Du solltest auch ausprobieren, ob bei dir die Option + <option>-vo sdl:dga</option> funktioniert. Sie ist viel schneller. +</para> + + +<formalpara id="dga-modelines"> +<title>ÄNDERN DER AUFLÖSUNG</title> + +<para> + Der DGA-Treiber ermöglicht es, die Auflösung des Outpu-Signals zu ändern. + Damit entfällt die Notwendigkeit der (langsamen) Softwareskalierung und + bietet gleichzeitig ein Vollbild. Idealerweise würde DGA in die gleiche + Auflösung schalten, die das Video (natürlich unter Beachtung des + Höhen-/Breitenverhältnisses) hat, aber der X-Server lässt nur + Auflösungen zu, die vorher in der <filename>/etc/X11/XF86Config</filename> bzw. + <filename>/etc/X11/XF86Config-4</filename> definiert wurden, bezüglich XFree 4.X.X. + Diese werden durch sogenannte Modelines festgelegt und hängen von den Fähigkeiten + deiner Grafikhardware ab. Der X-Server liest diese Konfigurationsdatei beim + Start ein und deaktiviert alle Modelines, die sich nicht mit deiner Hardware + vertragen. Du kannst die überlebenden Modelines anhand der X11-Logdatei + herausfinden (normalerweise <filename>/var/log/XFree86.0.log</filename>). +</para> +</formalpara> + +<para> + Diese Einträge funktionieren mit einem Riva128-Chip und dem + nv.o-X-Server-Treibermodul. +</para> + + +<para><programlisting> +Section "Modes" + Identifier "Modes[0]" + Modeline "800x600" 40 800 840 968 1056 600 601 605 628 + Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 + Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 + Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan + Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 + Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan + Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan +EndSection +</programlisting></para> + + +<formalpara> +<title>DGA & MPLAYER</title> +<para> + DGA wird bei <application>MPlayer</application> an zwei Stellen benutzt: + beim SDL-Treiber mit (<option>-vo sdl:driver=dga</option>) oder beim + DGA-Treiber selber (<option>-vo dga</option>). + Das oben gesagte gilt für beide Treiber. In den folgenden Abschnitten + erkläre ich, wie der DGA-Treiber von <application>MPlayer</application> + selber arbeitet. +</para> +</formalpara> + + +<formalpara> +<title>FEATURES DES DGA-TREIBERS</title> + +<para> + Der DGA-Treiber wird durch die Option <option>-vo dga</option> aktiviert. + Sein Standardverhalten sieht vor, dass er in die Auflösung schaltet, die + der Videoauflösung am nächsten kommt. Der Treiber ignoriert absichtlich + die Optionen <option>-vm</option> (Videomodusumschaltung aktivieren) und + <option>-fs</option> (Vollbildmodus erzwingen) - er versucht immer, so viel + des Bildefläche wie möglich durch eine Änderung der Auflösung zu bedecken. + Dadurch wird nicht ein einziger weitere CPU-Takt für die Skalierung des + Bildes verwendet. Wenn du mit dem Modus nicht zufrieden bist, den der Treiber + gewählt hat, dann kannst du ihn zwingen, denjenigen Modus zu + wählen, der am besten zu dem mit den Optionen <option>-x</option> und + <option>-y</option> angegebenen Werten passt. Die Option <option>-v</option> + veranlasst den DGA-Treiber, neben einigen anderen Dingen auch alle von deiner + <filename>XF86Config</filename>-Datei unterstützen Videomodi aufzulisten. + Wenn DGA2 verwendet wird, dann kannst du mit der Option <option>-bpp</option> die + Verwendung einer bestimmten Farbtiefe erzwingen. Gültige Werte sind 15, + 16, 24 und 32. Es hängt dann von deiner Hardware ab, ob der Modus nativ + unterstützt wird, oder ob eine (möglicherweise langsame) + Konvertierung stattfindet. +</para> +</formalpara> +<para> + Wenn du Glück hast und dir genug unbenutzter Grafikspeicher zur + Verfügung steht, um ein komplettes Bild aufzunehmen, dann wird der + DGA-Treiber Doppelpufferung verwenden, was zu regelmäßigerer + Wiedergabe führt. Der DGA-Treiber wird dir mitteilen, ob Doppelpufferung + angeschaltet ist oder nicht. +</para> + +<para> + Doppelpufferung bedeutet, dass das nächste Bild deines Videos bereits + an einer anderen Stelle im Grafikspeicher aufgebaut wird, während das + aktuelle Bild angezeigt wird. Wenn das nächste Bild fertig ist, so wird + dem Grafikchip nur noch mitgeteilt, wo er das neue Bild im Speicher finden + kann. Somit holt sich der Chip seine Daten einfach von dort. In der + Zwischenzeit wird der andere, jetzt unbenutze Puffer wieder mit neuen + Videodaten gefüllt. +</para> + +<para> + Doppelpufferung kann mit der Option <option>-double</option> aktiviert und mit + <option>-nodouble</option> deaktiviert werden. Momentan ist die Doppelpufferung + standardmäßig deaktiviert. Wenn der DGA-Treiber verwendet wird, + dann funktioniert das Onscreen-Display (ODS) nur dann, wenn auch die + Doppelpufferung aktiviert ist. Andererseits kann die Doppelpufferung auch + einen großen Einbruch bei der Geschwindigkeit hervorrufen, was sehr von + der DGA-Implementierung der Treiber für deine Hardware abhängt (auf + meinem K6-II+ 525 benötigt Doppelpufferung weitere 20% CPU-Zeit!). +</para> + + +<formalpara> +<title>PUNKTE BZGL. DER GESCHWINDIGKEIT</title> + +<para> + Generell gesehen sollte der Zugriff auf den DGA-Framebuffer genauso + schnell sein wie der X11-Treiber, wobei man zusätzlich noch ein Vollbild + erhält. Die prozentualen Geschwindigkeitswerte, die <application>MPlayer</application> + ausgibt, müssen mit Vorsicht genossen werden, da sie z.B. beim X11-Treiber + nicht die Zeit beinhalten, die der X-Server tatsächlich zum + Anzeigen des Bildes benötigt. Klemm ein Terminal an deinen seriellen + Port und starte <command>top</command>, wenn du wissen willst, wie's wirklich mit + der Geschwindigkeit aussieht. +</para> +</formalpara> + +<para> + Allgemein betrachtet hängt die Geschwindigkeitsverbesserung von DGA + gegenüber dem 'normalen' X11-Treiber sehr von deiner Grafikkarte und + davon ab, wie gut das X-Servermodul optimiert ist. +</para> + +<para> + Wenn du ein langsames System hast, dann benutz besser eine Farbtiefe von + 15 oder 16bit, da sie nur die halbe Bandbreite des 32bit-Farbmodus + benötigen. +</para> + +<para> + Einge gute Idee ist auch die Verwendung von 24bit Farbtiefe selbst dann, + wenn deine Grafikkarte nativ nur 32bit unterstützt, da bei 24bit 25% + weniger Daten im Vergleich zum 32/32-Modus über den Bus transferiert + werden müssen. +</para> + +<para> + Ich habe schon gesehen, wie einige AVI-Dateien auf einem Pentium MMX 266 + wiedergegeben werden konnten. AMD K6-2-CPUs werden ab ca. 400 MHz oder + höher funktionieren. +</para> + + +<formalpara> +<title>BEKANNTE FEHLER</title> + +<para> + Die Entwickler von XFree sagen selbst, dass DGA ein ganz schönes + Monstrum ist. Sie raten eher davon ab, es zu benutzen, da seine + Implementierung in einige Chipset-Treiber für XFree nicht immer + ganz fehlerfrei war. +</para> +</formalpara> + +<itemizedlist> +<listitem><simpara> + Bei der Kombination aus XFree 4.0.3 und dem + <filename>nv.o</filename>-Treiber gibt es einen Fehler, der zu + merkwürdigen Farben führt. +</simpara></listitem> +<listitem><simpara> + Die ATI-Treiber müssen den Videomodus mehrmals zurückstellen, + nachdem der DGA-Modus verlassen wurde. + </simpara></listitem> +<listitem><simpara> + Einige Treiber schaffen es manchmal einfach nicht, in die vorherige + Auflösung zurückzuschalten. Benutze in solch einem Fall + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>Keypad +</keycap> und + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>Keypad -</keycap>, + um manuell die Auflösung zu ändern. +</simpara></listitem> +<listitem><simpara> + Einige Treiber zeigen einfach nur merkwürdige Farben an. +</simpara></listitem> +<listitem><simpara> + Einige Treiber lügen, was die von ihnen in den Prozessorspeicher + eingeblendete Menge Grafikspeicher anbelangt, weswegen vo_dga + nicht die Doppelpufferung verwendet (SIS?). +</simpara></listitem> +<listitem><simpara> + Einige Treiber schaffen es nicht einmal, auch nur einen einzigen + gültigen Grafikmodus bereitzustellen. In solchen Fällen + gibt der DGA-Treiber schwachsinnige Modi wie z.B. 100000x100000 oder + so ähnlich aus. +</simpara></listitem> +<listitem><simpara> + Das OSD funktioniert nur, wenn auch die Doppelpufferung aktiviert + ist (sonst flimmert es). +</simpara></listitem> +</itemizedlist> + +</sect2> +<!--</sect1>--> + +<!-- ********** --> + +<sect2 id="sdl"> +<title>SDL</title> + +<para> + <acronym>SDL</acronym> (Simple Directmedia Layer, Simpele Schicht für + den direkten Zugriff auf Mediageräte) bietet grundsätzlich eine einheitliche + Schnittstelle zu Audio- und Videogeräten. Programme, die die SDL + benutzen, kennen nur die SDL und brauchen kein Wissen darüber, welche + Video- oder Audiotreiber die SDL tatsächlich benutzt. So kann z.B. eine + Doom-Portierung mit der SDL die Svgalib, aalib, X11, fbdev und andere Treiber + benutzen. Dazu musst du z.B. nur den Videotreiber angeben, indem du die + Umgebungsvariable <envar>SDL_VIDEODRIVER</envar> setzt. + So lautet zumindest die Theorie. +</para> + +<para> + Bei <application>MPlayer</application> benutzten wir damals die + Software-Skalierroutinen der X11-Treiber von SDL bei Grafikkarten/-treiber, + die keine Unterstützung für XVideo hatten, bis wir unsere eigenen schrieben, + die schneller und hübscher waren. Wir benutzten damals ausßerdem SDLs + aalib-Ausgabe. jetzt haben wir unsere eigenen, was wesentlich komfortabler + ist. Auch davon haben wir selber eine komfortablere Version geschrieben. + SDLs DGA-Code war besser als unserer - zumindest bis vor kurzem. + Verstehst du, worauf ich hinauswill? :) +</para> + +<para> + SDL ist auch bei einigen fehlerbehafteten Treibern/Karten nützlich, + wenn das Video ruckelig abgespielt wird (und es nicht an einem langsamen + System liegt), oder wenn der Ton hinterherhinkt. +</para> + +<para> + Die SDL-Videoausgabe unterstützt die Anzeige von Untertiteln unterhalb + des Films auf den schwarzen Balken (sofern diese vorhanden sind). +</para> + +<variablelist> +<title>Es gibt einige Komanndozeilenparameter bezüglich SDL:</title> +<varlistentry> + <term><option>-vo sdl:driver=<replaceable>name</replaceable></option></term> + <listitem><simpara> + Gibt den Namen des SDL-Videotreibers an (z.B. <literal>aalib</literal>, + <literal>dga</literal>, <literal>x11</literal>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-ao sdl:<replaceable>name</replaceable></option></term> + <listitem><simpara> + Gibt den Namen des SDL-Audiotreibers an (z.B. <literal>dsp</literal>, + <literal>esd</literal>, <literal>artsc</literal>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-noxv</option></term> + <listitem><simpara> + Deaktiviert die XVideo-Hardwarebeschleunigung + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-forcexv</option></term> + <listitem><simpara> + Versucht, die Verwendung der XVideo-Beschleunigung zu erzwingen + </simpara></listitem> +</varlistentry> +</variablelist> + +<table> +<title>SDL-Tasten:</title> +<tgroup cols="2"> +<thead> +<row><entry>Taste</entry><entry>Aktion</entry></row> +</thead> +<tbody> +<row><entry><keycap>c</keycap></entry><entry> + Wechselt zwischen den vorhandenen Vollbildmodi + </entry></row> +<row><entry><keycap>n</keycap></entry><entry> + Wechselt zurück zum normalen Fenstermodus + </entry></row> +</tbody> +</tgroup> +</table> + +<itemizedlist> +<title>BEKANNTE FEHLER</title> +<listitem><simpara> + Tasten, die bei sdl:driver=aalib einmal gedrückt werden, bleiben aus + Sicht des Programmes gedrückt (benutz also <option>-vo aa</option>!). + Das ist ein Fehler in SDL, den ich nicht beheben kann (mit SDL 1.2.1 + getestet). +</simpara></listitem> +<listitem><simpara> + Benutze AUF KEINEN FALL SDL mit dem GUI! Das funktioniert nicht so, + wie es sollte. +</simpara></listitem> +</itemizedlist> +</sect2> + + +<sect2 id="svgalib"> +<title>SVGAlib</title> + +<formalpara> +<title>INSTALLATION</title> +<para> + Du musst zuerst die svgalib und die dazugehörigen Devel-Pakete + installieren, bevor du <application>MPlayer</application> compilierst, + da es die Svgalib sonst nicht automatisch findet und den Treiber dazu + nicht compiliert (das kann aber trotzdem erzwungen werden). Vergiss auch + nicht, in <filename>/etc/vga/libvga.config</filename> richtige Werte + für deine Grafikkarte und deinen Monitor anzugeben. +</para> +</formalpara> + +<note> +<para> + Verwende nicht die Option <option>-fs</option>, da sie die Benutzung des + Softwareskalierers erzwingt, und das ganze dann langsam wird. Wenn du diese + Option wirklich brauchst, dann verwende auch <option>-sws 4</option>, + welche zwar schlechte Qualität produziert, dafür aber auch ein wenig + schneller ist. +</para> +</note> + +<formalpara><title>EGA(4bpp)-UNTERSTÜTZUNG</title> +<para> + SVGAlib beinhaltet die EGAlib, und MPlayer kann damit jeden Film in + 16 Farben bei folgenden Modi anzeigen: +</para> +</formalpara> + +<itemizedlist> +<listitem><simpara> + EGA-Karte mit EGA-Monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp +</simpara></listitem> +<listitem><simpara> + EGA-Karte mit CGA-Monitor: 320x200x4bpp, 640x200x4bpp +</simpara></listitem> +</itemizedlist> + +<para> + Der bpp-Wert (Bits pro Pixel) muss von Hand auf vier gesetzt werden: + <option>-bpp 4</option> +</para> + +<para> + Die Auflösung des Films muss wahrscheinlich verkleinert werden, damit + er in den EGA-Modus reinpasst: + <screen>-vf scale=640:350</screen> + oder + <screen>-vf scale=320:200</screen> +</para> + +<para> + Dafür brauchen wir eine schnelle, aber schlechte Qualität + produzierende Skalierroutine: + <screen>-sws 4</screen> +</para> + +<para> + Eventuell muss die automatische Anpassung des + Höhen-/Breitenverältnisses ausgeschaltet werden: + <screen>-noaspect</screen> +</para> + +<note><para> + Die besten Ergebnisse bei EGA-Bildschirmen erhält man meiner Erfahrung nach, + wenn man die Helligkeit ein wenig verringert: + <option>-vf eq=-20:0</option>. Ich musste auch die Audiosamplerate erniedrigen, + weil bei 44KHz der Sound nicht richtig funktionierte: + <option>-srate 22050</option>. +</para></note> + +<para> + Du kannst das OSD und Untertitel mit dem <option>expand</option>-Filter + aktivieren. Die man-Page enthält die exakten Parameter. +</para> +</sect2> + + +<sect2 id="fbdev"> +<title>Framebuffer-Ausgabe (FBdev)</title> + +<para> + <filename>./configure</filename> erkennt automatisch, ob es den Framebuffertreiber + (fbdev) compilieren soll oder nicht. Lies die Framebufferdokumentation in den + Kernelquellen (<filename>Documentation/fb/*</filename>); dort stehen mehr + Informationen. +</para> + +<para> + Falls deine Karte den VBE 2.0-Standard nicht unterstützt (wie z.B. + ältere ISA-/PCI-Karten wie die S3 Trio64) oder nur VBE 1.2 und + älter unterstützt: Tja, dann kannst du immer noch VESAfb benutzen, + benötigst aber den SciTech Display Doctor (ehemals UniVBE), der vor dem + Booten von Linux geladen werden muss. Benutze dazu eine DOS-Bootdiskette oder + was auch immer. Vergiss nicht, deine Kopie von UniVBE zu registrieren ;). +</para> + +<para> + Die Fbdev-Ausgabe kenn neben den üblichen Parametern noch einige andere: +</para> + +<variablelist> +<varlistentry> + <term><option>-fb</option></term> + <listitem><simpara> + Gibt das zu benutzende Framebuffergerät an (Standard <filename>/dev/fb0</filename>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-fbmode</option></term> + <listitem><simpara> + Gibt zu benutzenden Modusnamen an (wie sie in <filename>/etc/fb.modes</filename> sehen) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-fbmodeconfig</option></term> + <listitem><simpara> + Konfigurationsdatei für die Modi (Standard <filename>/etc/fb.modes</filename>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-monitor-hfreq</option></term> + <term><option>-monitor-vfreq</option></term> + <term><option>-monitor-dotclock</option></term> + <listitem><simpara> + <emphasis role="bold">Wichtige</emphasis> Werte, schau dir die + <filename>example.conf</filename> an + </simpara></listitem> +</varlistentry> +</variablelist> + +<para> + Wenn du in einen speziellen Modus wechseln willst, dann benutze +<screen> +mplayer -vm -fbmode <replaceable>Modusname</replaceable> <replaceable>Dateiname</replaceable> +</screen> +</para> + +<itemizedlist> +<listitem><para> + <option>-vm</option> ohne weitere Optionen wird den am besten passenden Modus + aus <filename>/etc/fb.modes</filename> auswählen. Kann auch zusammen mit + <option>-x</option> und <option>-y</option> benutzt werden. Die Option + <option>-flip</option> wird nur dann unterstützt, wenn das Pixelformat des + Films mit dem Pixelformat des Videomodus übereinstimmt. Pass auf den + bpp-Wert auf. fbdev wird den aktuell eingestellten benutzen, wenn du + nicht mit <option>-bpp</option> einen bestimmten angibst. +</para></listitem> +<listitem><para> + Die Option <option>-zoom</option> wird nicht unterstützt (Softwareskalierung + ist langsam, verwende <option>-vf scale</option>). Du kannst keine Modi mit + 8bpp oder weniger benutzen. +</para></listitem> +<listitem><para> + Wahrscheinlich wirst du den Cursor (<screen>echo -e '\033[?25l'</screen> + oder <screen>setterm -cursor off</screen>) und den Bildschirmschoner + (<option>setterm -blank 0</option>) deaktivieren wollen. Um den Cursor wieder + zu aktivieren: <screen>echo -e '\033[?25h'</screen> oder + <screen>setterm -cursor on</screen>. + </para></listitem> +</itemizedlist> + +<note> +<para> + fbdev kann den Videomodus in Verbindung mit dem VESA-Framebuffer + <emphasis>nicht</emphasis> ändern. Frag auch nicht danach - das ist + keine Einschränkung seitens <application>MPlayer</application>. +</para> +</note> +</sect2> + + +<sect2 id="mga_vid"> +<title>Matrox-Framebuffer (mga_vid)</title> + +<para> + Dieser Abschnitt beschäftigt sich mit der Unterstützung für + den BES (Back-End Scaler, Hardwareskalierungseinheit) bei Karten mit dem + Matrox-G200/G400/G450/G550-Chip durch das mga_vid-Kernelmodul. Es wird von + A'rpi aktiv entwickelt und bietet Unterstützung für Hardware- + VSYNC und Dreifachpufferung. Dieser Treiber funktioniert sowohl unter der + Framebufferconsole als auch unter X. +</para> + +<warning> +<para> + Das Modul ist nur für Linux-Systeme verfügbar! + Auf nicht-Linux-Systemen solltest du statt dessen <link linkend="vidix">VIDIX</link> + benutzen! +</para> +</warning> + +<procedure> +<title>Installation:</title> +<step><para> + Um den Treiber benutzen zu können, musst du erstmal <filename>mga_vid.o</filename> + compilieren: + <screen> +cd drivers +make<!-- +--></screen> + </para></step> +<step><para> + Jetzt erstelle das Gerät <filename>/dev/mga_vid</filename>: + <screen>mknod /dev/mga_vid c 178 0</screen> + und lade das Kernelmodul: + <screen>insmod mga_vid.o</screen> + </para></step> +<step><para> + Du solltest sicherstellen, dass das Modul die Größe des + Grafikkartenspeichers korrekt ermittelt hat. Benutze dazu + <command>dmesg</command>. Wenn die Angabe nicht stimmt, dann gib nach + <command>rmmod mga_vid</command> mithilfe der Option + <option>mga_ram_size</option> die Größe explizit an: + <screen>insmod mga_vid.o mga_ram_size=16</screen> +</para></step> +<step><para> + Wenn das Modul automatisch geladen und entladen werden soll, sobald + es benötigt wird, so füge die folgende Zeile in der Datei + <filename>/etc/modules.conf</filename> ein: + + <programlisting>alias char-major-178 mga_vid</programlisting> + + Jetzt kopiere <filename>mga_vid.o</filename> in das entsprechende Verzeichnis + unterhalt von + <filename>/lib/modules/<replaceable>kernel_version</replaceable>/<replaceable>/irgendwo</replaceable></filename>. + </para><para> + Jetzt gib ein: + <screen>depmod -a</screen> + </para></step> +<step><para> + Schließlich musst du noch <application>MPlayer</application> (erneut) compilieren. + <filename>configure</filename> wird automatisch <filename>/dev/mga_vid</filename> + finden und den 'mga'-Treiber erstellen. Die entsprechende Option für + <application>MPlayer</application> lautet <option>-vo mga</option>, wenn du mit + dem matroxfb auf der Console arbeitest, oder <option>-vo xmga</option>, wenn du + unter XFree 3.x.x oder XFree 4.x.x arbeitest. + </para></step> +</procedure> + +<para> + Der mga_vid-Treiber kooperiert mit Xv. +</para> + +<para> + Das <filename>/dev/mga_vid</filename>-Gerät kann z.B. mit + <screen>cat /dev/mga_vid</screen> + ausgelesen werden, um ein paar Informationen über + den aktuellen Zustand zu erhalten. Die Helligkeit kann zusätzlich mit z.B. + <screen>echo "brightness=120" > /dev/mga_vid</screen> + angepasst werden. +</para> +</sect2> + + +<sect2 id="tdfxfb" xreflabel="3Dfx YUV support (tdfxfb)"> +<title>3dfx-YUV-Unterstützung (tdfxfb)</title> +<para> + Dieser Treiber benutzt den tdfx-Framebuffertreiber des Kernels, um Filme + mit YUV-Beschleunigung abzuspielen. Deswegen benötigst du einen Kernel + mit tdfxfb-Unterstütztung. Danach musst du MPlayer compilieren mit + <screen>./configure --enable-tdfxfb</screen> +</para> +</sect2> + + +<sect2 id="opengl"> +<title>OpenGL-Ausgabe</title> + +<para> + <application>MPlayer</application> unterstützt die Ausgabe von Filmen via + OpenGL. Wenn aber deine Plattform/dein Treibe Xv unterstützt (was bei PCs + mit Linux praktisch immer der Fall ist), dann benutze besser Xv, da die + OpenGL-Geschwindigkeit deutlich geringer als die von Xv ist. Wenn du dagegen + eine X11-Implementierung hast, die Xv nicht unterstützt, so mag OpenGL eine + brauchbare Alternative sein. +</para> + +<para> + Leider unterstützden nicht alle Treiber die erforderlichen Features. + Die Utah-GLX-Treiber (für XFree86 3.3.6) unterstützen sie für + alle Karten. Auf <ulink url="http://utah-glx.sf.net"/> + findest du Details zur Installation. +</para> + +<para> + XFree86(DRI) 4.0.3 oder neuer unterstützt OpenGL mit Matrox- und + Radeon-Karten, 4.2.0 und neuer unterstützen zustätzlich Rage128. + Auf <ulink url="http://dri.sf.net"/> findest du Details zur Installation. +</para> + +<para> + Ein Hinweis von einem unserer User: der GL-Video-Output kann dazu verwendet + werden, einen vertikal synchronisierten TV-Output zu bekommen. + Du musst dann eine Umgebungsvariable setzen (zumindest bei nVidia): +</para> + +<para> +<command>export $__GL_SYNC_TO_VBLANK=1</command> +</para> + +</sect2> + + +<sect2 id="aalib"> +<title>AAlib - Ausgabe im Textmodus</title> + +<para> + AAlib ist eine Bilbiothek, mit der Grafiken im Textmodus angezeigt + werden, wobei ein mächtiger Textmodusrenderer benutzt wird. Es gibt SEHR + viele Programme, die das bereits unterstützen, wie z.B. Doom, Quake etc. + <application>MPlayer</application> enthält einen sehr gut brauchbaren + Treiber für AAlib. Wenn <filename>./configure</filename> feststellt, + dass die AAlib installiert ist, dann wird anschließend der AAlib-Treiber + gebaut. +</para> + +<para> + Du kannst diese Tasten im AA-Fenster benutzen, um die Render-Optionen + zu beeinflussen: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Taste</entry><entry>Aktion</entry></row> +</thead> +<tbody> +<row><entry><keycap>1</keycap></entry><entry> + Kontrast verringern + </entry></row> +<row><entry><keycap>2</keycap></entry><entry> + Kontrast erhöhen + </entry></row> +<row><entry><keycap>3</keycap></entry><entry> + Helligkeit verringern + </entry></row> +<row><entry><keycap>4</keycap></entry><entry> + Helligkeit erhöhen + </entry></row> +<row><entry><keycap>5</keycap></entry><entry> + Schnelles Rendern an-/ausschalten + </entry></row> +<row><entry><keycap>6</keycap></entry><entry> + Wahl des Farbverteilungsmodus (keiner, Fehlerverteilung, Floyd Steinberg) + </entry></row> +<row><entry><keycap>7</keycap></entry><entry> + Bild invertieren + </entry></row> +<row><entry><keycap>8</keycap></entry><entry> + schaltet zwischen den <application>MPlayer</application>- und den AA-Tastenbelegungen um + </entry></row> +</tbody> +</tgroup> +</informaltable> + +<variablelist> +<title>Die folgenden Kommandozeilenparamter stehen zur Verfügungung:</title> +<varlistentry> + <term><option>-aaosdcolor=<replaceable>V</replaceable></option></term> + <listitem><para> + OSD-Farbe ändern + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-aasubcolor=<replaceable>V</replaceable></option></term> + <listitem><para> + Farbe der Untertitel ändern + </para><para> + <replaceable>V</replaceable> kann folgende Werte annehmen: + <literal>0</literal> (normal), + <literal>1</literal> (dunkel), + <literal>2</literal> (fett), + <literal>3</literal> (fette Schrift), + <literal>4</literal> (negative Farben), + <literal>5</literal> (spezial). + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> + <title>Die AAlib selbst bietet ebenfalls eine große Anzahl von Optionen. + Hier sind die wichtigsten:</title> +<varlistentry> + <term><option>-aadriver</option></term> + <listitem><simpara> + wählt den empfohlenen aa-Treiber (X11, curses, Linux) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-aaextended</option></term> + <listitem><simpara> + benutze alle 256 Zeichen + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-aaeight</option></term> + <listitem><simpara> + benutze auch ASCII-Zeichen mit dem achten Bit + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-aahelp</option></term> + <listitem><simpara> + gibt alle aalib-Optionen aus + </simpara></listitem> +</varlistentry> +</variablelist> + +<note> +<para> + Das Rendern ist sehr CPU-intensiv, vor allem, wenn AA unter X + benutzt wird. AAlib braucht auf einer Nicht-Framebuffer-Console am + wenigstens CPU-Zeit. Benutze SVGATextMode, um einen möglichst + großen Textmodus zu wählen, und genieß den Film! (Hercules-Karten + als zweitem Ausgebegerät rocken :)) (Aber IMHOkannst du die Option + <option>-vf 1bpp</option> anwenden, um Grafiken auf hgafb zu bekommen :) +</para> +</note> + +<para> + Wenn dein Computer nicht schnell genug ist, um alle Frames anzuzeigen, + dann benutz die Option <option>-framedrop</option>. +</para> + +<para> + Wenn du auf einem Terminal abspielst, dann erzielst du mit dem Linux- + Treiber (<option>-aadriver linux</option>) bessere Ergebnisse als mit dem curses- + Treiber. Allerdings benötigst du dafür auch Schreibrechte auf + <filename>/dev/vcsa<replaceable><terminal></replaceable></filename>. + Das wird nicht automatisch von aalib festgestellt, aber vo_aa versucht, den + besten Modus herauszufinden. Lies + <ulink url="http://aa-project.sf.net/tune"/> für weitere Tuningtipps. +</para> +</sect2> + + +<sect2 id="caca"> +<title><systemitem class="library">libcaca</systemitem> - Color ASCII Art-Bibliothek</title> + +<para> + Die Bibliothek + <ulink url="http://sam.zoy.org/projects/libcaca/"><systemitem class="library">libcaca</systemitem></ulink> + ist eine Grafik-Bibliothek, Text anstatt Pixel ausgibt, sodass sie auf älteren + Grafikkarten oder Text-Terminals läuft. Sie ist der bekannten Bibliothek + <systemitem class="library">AAlib</systemitem> library nicht unähnlich. + <systemitem class="library">libcaca</systemitem> benötigt ein Terminal, um zu + funktionieren, deshalb sollte sie auf allen Unix-Systemen (inklusive Mac OS X) funktionieren, + wenn man entweder die <systemitem class="library">slang</systemitem>-Bibliothek oder die + <systemitem class="library">ncurses</systemitem>-Bibliothek verwendet, unter DOS die + <systemitem class="library">conio.h</systemitem>-Bibliothek und in Windows-Systemen + entweder <systemitem class="library">slang</systemitem> oder + <systemitem class="library">ncurses</systemitem> (durch Cygwin-Emulation) oder + <systemitem class="library">conio.h</systemitem> verwendet. Wenn + <filename>./configure</filename> <systemitem class="library">libcaca</systemitem> + entdeckt, wird der caca-Treiber gebaut. +</para> + +<itemizedlist> +<title>Die Unterschiede zu <systemitem class="library">AAlib</systemitem> sind + folgende:</title> +<listitem><simpara> + 16 verfügbare Farben für die Zeichenausgabe (256 Farbpaare) + </simpara></listitem> +<listitem><simpara> + Farbbild-Dithering + </simpara></listitem> +</itemizedlist> + +<itemizedlist> +<title>Aber <systemitem class="library">libcaca</systemitem> hat auch folgende + Einschränkungen:</title> +<listitem><simpara> + keine Unterstützung für Helligkeit, Kontrast, Gamma + </simpara></listitem> +</itemizedlist> + +<para> + Du kannst diese Tasten im caca-Fenster benutzen, um die Render-Optionen + zu beeinflussen: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Taste</entry><entry>Aktion</entry></row> +</thead> +<tbody> +<row><entry><keycap>d</keycap></entry><entry> + zwischen den Dithering-Methoden von + <systemitem class="library">libcaca</systemitem> umschalten. + </entry></row> +<row><entry><keycap>a</keycap></entry><entry> + zwischen dem Antialiasing von <systemitem class="library">libcaca</systemitem> + umschalten. + </entry></row> +<row><entry><keycap>b</keycap></entry><entry> + zwischen dem Hintergrund <systemitem class="library">libcaca</systemitem> + umschalten. + </entry></row> +</tbody> +</tgroup> +</informaltable> + +<variablelist> +<title><systemitem class="library">libcaca</systemitem> suchtt auch nach + bestimmten Umgebungsvariablen:</title> +<varlistentry> + <term><option>CACA_DRIVER</option></term> + <listitem><simpara> + Setze den empfohlenen caca-Treiber. z.B. ncurses, slang, x11. + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>CACA_GEOMETRY (X11 only)</option></term> + <listitem><simpara> + Spezifiziere die Anzahl der Spalten und Zeeilen. Z.B. 128x50. + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>CACA_FONT (X11 only)</option></term> + <listitem><simpara> + legt die zu verwendende Schrift fest. Z.B. fixed, nexus. + </simpara></listitem> +</varlistentry> +</variablelist> + +<para> + Nimm die Option <option>-framedrop</option>, wenn dein Rechner nicht schnell + genug ist, alle Frames anzuzeigen. +</para> + +</sect2> + + +<sect2 id="vesa"> +<title>VESA-Ausgabe über das VESA-BIOS</title> + +<para> + Dieser Treiber ist vom Design her ein <emphasis role="bold">generischer Treiber</emphasis> + für alle Grafikkarten, deren Bios VESA VBE 2.0 unterstützt. Ein weiterer + Vorteil dieses Treibers liegt darin, dass er versucht, den TV-Ausgang anzuschalten. + <citetitle>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</citetitle> + (Seite 70) hat folgendes zu sagen: +</para> + +<blockquote> +<formalpara><title>Designs für zwei Controller</title> +<para> + VBE 3.0 unterstützt zwei Controller dadurch, dass angenommen wird, + dass beide Controller vom gleichen OEM (Hardwarehersteller) stammen und + unter Kontrolle desselben BIOS auf derselben Grafikkarte sitzen. Somit ist + es möglich, die Tatsache, dass zwei Controller vorhanden sind, vor der + Anwendung zu verbergen. Dies verhindert zwar, dass beide Controller + unabhängig voneinander gesteuert werden, erlaubt andererseits aber, + dass Anwendungen weiterhin problemlos funktionieren, die vor Erscheinen der + VBE-3.0-Spezifikation geschrieben wurden. Die VBE-Funktion 00h (Auskunft + über die Controller, Return Controller Information) gibt + dementsprechend die kombinierten Informationen über beide Controller + zurück, was auch eine kobinierte Liste der vorhandenen Grafikmodi + einschließt. Sobald eine Anwendung einen Grafikmodus wählt, wird + der entsprechende Controller aktiviert. Alle weiteren VBE-Funtkionen werden + dann auf diesem Controller ausgeführt. +</para> +</formalpara> +</blockquote> + +<para> + Somit hast du also eine Chance, den TV-Ausgang mit diesem Treiber zum + Laufen zu bringen. + (Ich vermute, dass der TV-Ausgang normalerweise auf einer separaten + Grafikkarte oder zumindest ein separater Ausgang ist.) +</para> + +<itemizedlist spacing="compact"> +<title>VORTEILE</title> +<listitem><simpara> + Du hast die Möglichkeit, selbst dann Filme anzusehen, wenn + <emphasis role="bold">Linux nichts von deiner Grafikhardware weiß</emphasis>. +</simpara></listitem> +<listitem><simpara> + Du musst keine einzige Grafikanwendung installiert haben (wie + X11/XFree86, fbdev usw.). Dieser Treiber wird im + <emphasis role="bold">Textmodus</emphasis> + benutzt. +</simpara></listitem> +<listitem><simpara> + Die Chancen stehen gut, dass der <emphasis role="bold">TV-Ausgang funktioniert</emphasis>. + (Es funktioniert nachweislich zumindest auf ATI-Karten.) +</simpara></listitem> +<listitem><simpara> + Dieser Treiber ruft wirklich die <function>int 10h</function>-Routine auf und ist + dementsprechend kein Emulator - er ruft <emphasis role="bold">echte</emphasis> + Funktionen des <emphasis>echten</emphasis> BIOS im <emphasis>Real</emphasis>-Modus + auf (bzw. im vm68-Modus). +</simpara></listitem> +<listitem><simpara> + Du kannst den Treiber zusammen mit VIDIX benutzen und erhälst + dadurch gleichzeitig hardwarebeschleunigte Grafikanzeige + <emphasis role="bold">und</emphasis> den TV-Ausgang! (für ATI-Karten empfohlen) +</simpara></listitem> +<listitem><simpara> + Wenn du ein VESA-VBE-3.0+-BIOS hast und irgendwo die Optionen + <option>monitor-hfreq</option>, <option>monitor-vfreq</option>, + <option>monitor-dotclock</option> angegeben werden (Kommandozeile, + Konfigurationsdatei), dann bekommst du die höchstmögliche + Bildwiederholrate (mit den generischen Timingformeln). Um dieses Feature + zu aktivieren, müssen <emphasis role="bold">alle</emphasis> + Monitoroptionen angegeben werden. +</simpara></listitem> +</itemizedlist> + +<itemizedlist spacing="compact"> +<title>NACHTEILE</title> +<listitem><simpara> + Der Treiber funtkioniert nur auf <emphasis role="bold">x86-Systemen</emphasis>. +</simpara></listitem> +<listitem><simpara> + Er kann nur von <systemitem class="username">root</systemitem> benutzt werden. +</simpara></listitem> +<listitem><simpara> + Momentan ist er nur für <emphasis role="bold">Linux</emphasis> verfügbar. +</simpara></listitem> +</itemizedlist> + +<important> +<para> + Benutz diesen Treiber nicht mit <emphasis role="bold">GCC 2.96</emphasis>! + Das wird nicht funktionieren! +</para> +</important> + +<variablelist> +<title>BEI VESA VERFÜGBARE KOMMANDOZEILENOPTIONEN</title> +<varlistentry> + <term><option>-vo vesa:<replaceable>opts</replaceable></option></term> + <listitem><simpara> + momentan erkannte Optionen <literal>dga</literal>, um den DGA-Modus zu erzwingen + und <literal>nodga</literal>, um ihn zu deaktivieren. Im DGA-Modus kannst du den + Doppelpuffermodus mit <option>-double</option> aktivieren. Anmerkung: Du + kannst diese Parameter auch weglassen, um die <emphasis role="bold">automatische + Erkennung</emphasis> des DGA-Modus zu ermöglichen. + </simpara></listitem> +</varlistentry> +</variablelist> + +<itemizedlist spacing="compact"> +<title>BEKANNTE PROBLEME UND WIE MAN SIE UMGEHT</title> +<listitem><simpara> + Wenn du unter Linux eine <emphasis role="bold">NLS</emphasis>-Schrift + verwendest und du den VESA-Treiber aus dem Textmodus heraus aufrufst, + dann wird nach dem Beenden von <application>MPlayer</application> die + <emphasis role="bold">ROM-Schrift</emphasis> anstelle der nationalen + geladen sein. Du kannst die nationale Schriftart erneut mit + <command>setsysfont</command> laden, das z.B. bei Mandrake zur + Distribution gehört. (<emphasis role="bold">Tipp:</emphasis> Das + gleiche Tool wird für die Lokalisation von fbdev verwendet.) +</simpara></listitem> +<listitem><simpara> + Eine <emphasis role="bold">Linux-Grafiktreiber</emphasis> aktualisieren + nicht den aktiven <emphasis role="bold">BIOS-Modus</emphasis> im DOS-Speicher. + Wenn du also so ein Problem hast, dann benutze den VESA-Treiber nur aus dem + <emphasis role="bold">Textmodus</emphasis> heraus. Andernfalls + wird immer der Textmodus (#03) aktiviert werden, und du wirst den + Computer neustarten müssen. +</simpara></listitem> +<listitem><simpara> + Oftmals siehst du nur einen <emphasis role="bold">schwarzen Bildschirm</emphasis>, + wenn der VESA-Treiber beendet wird. Um die Anzeige wieder in den richtigen Zustand + zu versetzen, wechsele einfach zu einer anderen Console (mit + <keycap>Alt</keycap>+<keycap>F<x></keycap>) und wieder zurück. +</simpara></listitem> +<listitem><simpara> + Um eine <emphasis role="bold">funktionierenden TV-Ausgabe</emphasis> zu erhalten, + musst du das TV-Kabel eingesteckt haben, bevor du deinen PC bootest, da das BIOS + nur einmal während der POST-Phase initialisiert wird. +</simpara></listitem> +</itemizedlist> +</sect2> + + +<sect2 id="x11"> +<title>X11</title> + +<para> + Vermeide diesen Treiber, wenn's geht. Er benutzt X11 (mit den Shared- + Memory-Erweiterungen) ohne jegliche Hardwarebeschleunigung. Unterstützt + MMX-/3DNow/SSE-beschleunigte Softwareskalierung mit den Optionen + <option>-fs -zoom</option>, aber die ist trotzdem langsam. Die meisten + Karten bieten Unterstützung für Hardwareskalierung. Benutze also + <option>-vo xv</option> in den meisten fällen bzw. <option>-vo xmga</option> + bei Matrox-Karten. +</para> + +<para> + Ein Problem liegt darin, dass die meisten Grafikkartentreiber + Hardwarebeschleunigung nicht beim zweiten Ausgang/beim TV-Ausgang + unterstützen. In diesen Fällen siehst du nur ein grünes/blaues + Fenster anstelle des Films. Hier ist der X11-Treiber ganz praktisch, aber du + brauchst trotzdem eine schnelle CPU für die Softwareskalierung. Benutze + nicht den SDL-Ausgabetreiber und SDLs Skalierer, da dieser eine schlechtere + Qualität bietet! +</para> + +<para> + Softwareskalierung ist sehr langsam. Versuch also besser, vorher in einen + anderen Videomodus zu schalten. Das ist sehr einfach. Such die + <link linkend="dga-modelines">Modelines in der DGA-Sektion</link> und füge sie + in deine <filename>XF86Config</filename> ein. + +<itemizedlist spacing="compact"> +<listitem><simpara> + Wenn du XFree86 4.x.x hast, dann benutze die Option <option>-vm</option>. + MPlayer wird dann die Auflösung in diejenige ändern, + in die dein Film am besten hineinpasst. Wenn das nicht funktioniert: +</simpara></listitem> +<listitem><simpara> + Unter XFree86 3.x.x musst du mit + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>plus</keycap> + und + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>minus</keycap> + die Auflösung ändern. +</simpara></listitem> +</itemizedlist> +</para> + +<para> + Wenn du die soeben eingefügten Modi nicht wiederfindest, dann schau + dir die Ausgabe von XFree86 an. Einige Treiber können nicht die + niedrigen Pixelclock-Werte benutzen, die für niedrige Auflösungen + vonnöten sind. +</para> +</sect2> + + +<sect2 id="vidix"> +<title>VIDIX</title> + +<formalpara> +<title>EINLEITUNG</title> +<para> + <acronym>VIDIX</acronym> ist die Abkürzung für <emphasis role="bold">VID</emphasis>eo + <emphasis role="bold">I</emphasis>nterface für + *ni<emphasis role="bold">X</emphasis> (Video-Schnittstelle für *n*x). + VIDIX wurde entworfen, um eine Schnittstelle für schnelle Userspacetreiber für + Grafikkarten zur Verfügung zu stellen, so wie es mga_vid für + Matrox-Karten tut. VIDIX ist ebenfalls sehr portabel. +</para> +</formalpara> +<para> + Diese Schnittstelle wurde als Versuch entworfen, den vorhandenen + Schnittstellen für Videobeschleunigung (mga_vid, rage128_vid, + radeon_vid, pm3_vid) ein einheitliches Dach zu geben. Sie stellt einen + einheitlichen Highlevel-Zugang zu BES- und OV-Chips zur Verfügung + (BackEnd Scaler und Video Overlays). Sie stellt keine Lowlevel-Funktionen + für z.B. Grafikserver zur Verfügung. (Ich möchte nicht mit dem + X11-Leuten in Sachen Grafikmodusumschaltung konkurieren.) Das Ziel dieser + Schnittstelle liegt also einfach darin, die höchstmögliche + Geschwindigkeit bei der Videowiedergabe zu erreichen. +</para> + +<itemizedlist spacing="compact"> +<title>VERWENDUNG</title> +<listitem><simpara> + Du kannst den eigenständigen Videotreiber benutzen: + <option>-vo vidix</option> + Dieser Treiber wurde als das X11-Frontend für die VIDIX-Technologie + entwickelt. Er benötigt dementsprechend einen X-Server und + funktioniert auch nur unter X. Beachte, dass der Pixmap-Cache korumpiert + werden kann, weil der Treiber unter Umgehung des X-Treibers direkt auf + die Hardware zugreift. Du kannst das dadurch verhindern, dass du die von + X verwendete Menge des Grafikspeichers verringerst. Benutze dafür + die Option "VideoRam" in der "device"-Sektion der + <filename>XF86Config</filename>. Du solltest da die installierte Menge + Grafikspeicher minus 4MB eintragen. Wenn du über weniger als 8MB + Grafikspeicher verfügst, dann solltest du stattdessen die Option + "XaaNoPixmapCache" in der "screen"-Sektion verwenden. + </simpara></listitem> +<listitem><simpara> + Es gibt einen VIDIX-Treiber für die Konsole: <option>-vo cvidix</option>. + Dieser benötigt für die meisten Karten einen funktionierenden und + initialisierten Framebuffer (oder du wirst stattdessen den Bildschirm + in Unordnung bringen) und wirst einen Effekt ähnlich wie mit + <option>-vo mga</option> oder <option>-vo fbdev</option> bekommen. + nVidia-Karten sind dagegen in der Lage, wirkliches grafisches Video + auf einer echten Text-Konsole auszugeben. Im Abschnitt + <link linkend="vidix-nvidia">nvidia_vid</link> wirst du mehr Informationen + dazu finden. + </simpara></listitem> +<listitem><simpara> + Du kannst auch das VIDIX-Untergerät verwenden, das bei vielen + Treibern zur Verfügung steht: + <option>-vo vesa:vidix</option> (<emphasis role="bold">nur unter Linux</emphasis>) + und <option>-vo fbdev:vidix</option> + </simpara></listitem> +</itemizedlist> + +<para> + Es ist in der Tat nicht wichtig, welcher Videoausgabetreiber mit + <emphasis role="bold">VIDIX</emphasis> verwendet wird. +</para> + +<itemizedlist spacing="compact"> +<title>ANFORDERUNGEN</title> +<listitem><simpara> + Die Grafikkarte sollte sich gerade im Grafikmodus befinden (ausser + nVidia-Karten mit den <option>-vo cvidix</option> Ausgabe-Treibern). +</simpara></listitem> +<listitem><simpara> + <application>MPlayer</application>s Videoausgabetreiber sollte den + aktiven Videomodus kennen und in der Lage sein, dem VIDIX-Untergerät + ein paar Charakteristika des X-Servers mitzuteilen. +</simpara></listitem> +</itemizedlist> + +<formalpara> +<title>BEDIENUNGSMETHODEN</title> +<para> + Wenn VIDIX als <emphasis role="bold">Untergerät</emphasis> + (<option>-vo vesa:vidix</option>) benutzt wird, dann wird die Konfiguration + des Videomodus vom Videoausgabegerät erledigt (kurz + <emphasis role="bold">vo_server</emphasis>). Deswegen kannst du für + <application>MPlayer</application> die gleichen Kommandozeilenparameter wie + für vo_server verwenden. + Zusätzlich ist die Option <option>-double</option> als global sichtbarer + Parameter verfügbar. (Ich empfehle diese Option zumindest bei VIDIX und + ATI-Karten.) <option>-vo xvidix</option> erkennt momentan die folgenden + Optionen: <option>-fs -zoom -x -y -double</option>. +</para> +</formalpara> +<para> + Du kannst den VIDIX-Treiber auch direkt als drittes Teilargument auf der + Kommandozeile angeben: + + <screen>mplayer -vo xvidix:mga_vid.so -fs -zoom -double <replaceable>file.avi</replaceable></screen> + oder + <screen>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 <replaceable>file.avi</replaceable></screen> + + Das ist allerdings gefährlich, und du solltest das lieber nicht tun. + Hierbei wird die Verwendung des angegebenen Treibers erzwungen, und das + Resultat ist unklar (dein Computer könnte sogar + <emphasis role="bold">abstürzen</emphasis>). + Du solltest das wirklich NUR DANN tun, wenn du absolut sicher bist, dass es + funktioniert und <application>MPlayer</application> es nicht eh schon + automatisch auswählt. + Berichte den Entwicklern von deinen Erfahrungen. Die korrekte Art, VIDIX zu + benutzen, ist ohne das dritte Teilargument, sodass <application>MPlayer</application> + automatisch den richtigen Treiber aussucht. +</para> + +<para> + VIDIX ist eine sehr junge Technologie. Es ist deshalb gut möglich, + dass sie auf deinem System nicht funktioniert. In diesem + Fall liegt deine einzige Möglichkeit darin, VIDIX auf dein System zu + portieren (hauptsächlich die libdha). Aber es gibt immer + noch die Hoffnung, dass es auf den Systemen funktioniert, auf denen auch X11 + funktioniert. +</para> + +<para> + Da VIDIX direkten Zugriff auf die Hardware benötigt, musst du + <application>MPlayer</application> entweder als + <systemitem class="username">root</systemitem> starten oder der + Programmdatei das SUID-Bit setzen (<emphasis role="bold">WARNUNG: + Das ist ein Sicherheitsrisiko!</emphasis>). + Alternativ kannst du auch spezielle Kernelmodule benutzen: +</para> + +<procedure> +<step><para> + Lade dir die + <ulink url="http://www.arava.co.il/matan/svgalib/">Entwicklerversion</ulink> + der svgalib herunter (z.B. 1.9.17), + <emphasis role="bold">ODER</emphasis> lade dir eine von Alex speziell für + die Benutzung mit <application>MPlayer</application> modifizierte Version + (die nicht die svgalib-Sourcen zum Compilieren benötigt) + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/svgalib/svgalib_helper-1.9.17-mplayer.tar.bz2">hier</ulink> + herunter. +</para></step> +<step><para> + Compiliere das Modul im <filename class="directory">svgalib_helper</filename>-Verzeichnis + (das im <filename class="directory">svgalib-1.9.17/kernel/</filename>-Verzeichnis + gefunden werden kann, wenn du die Sourcen von der svgalib-Seite heruntergeladen hast) + und lade es mit insmod. +</para></step> +<step><para> + Um die entsprechenden geräte im <filename class="directory">/dev</filename>-Verzeichnis + zu erstellen, führe ein <screen>make device</screen> im Verzeichnis + <filename class="directory">svgalib_helper</filename> als + <systemitem class="username">root</systemitem> aus. +</para></step> +<step><para> + Verschiebe das Verzeichnis <filename class="directory">svgalib_helper</filename> + nach <filename class="directory">mplayer/main/libdha/svgalib_helper</filename>. +</para></step> +<step><para> + Wenn du die Sourcen von der svgalib-Seite heruntergeladen hast, dann musst + du den Kommentar vor der CFLAGS-Zeile entfernen, die "svgalib_helper" + enthält, und die sich in <filename class="directory">libdha/Makefile</filename> + befindet. +</para></step> +<step><para> + Compiliere erneut und installiere libdha. +</para></step> +</procedure> + +<sect3 id="vidix-ati"> +<title>ATI-Karten</title> +<para> + Momentan werden die meisten ATI-Karten unterstützt, von der Mach64 + bis hin zur neuesten Radeon. +</para> + +<para> + Es gibt zwei compilierte Binaries: <filename>radeon_vid</filename> für Radeons + und <filename>rage128_vid</filename> für Rage128-Karten. Du kannst entweder eine + der beiden erzwingen oder das VIDIX-System automatisch alle verfügbaren + Treiber ausprobieren lassen. +</para> +</sect3> + +<sect3 id="vidix-mga"> +<title>Matrox-Karten</title> +<para> + Matrox G200, G400, G450 und G550 sollen funktionieren. +</para> + +<para> + Der Treiber unterstützt Videoequalizer und sollte fast genauso schnell + wie der <link linkend="mga_vid">Matrox-Framebuffer</link> sein. +</para> +</sect3> + +<sect3 id="vidix-trident"> +<title>Trident-Karten</title> +<para> + Es gibt einen Treiber für den Trident Cyberblade/i1-Chipsatz, der auf + VIA Epia-Mainboards eingesetzt wird. +</para> + +<para> + Der Treiber wurde von + <ulink url="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">Alastair M. Robinson</ulink> + geschrieben und weiterentwickelt. +</para> +</sect3> + +<sect3 id="vidix-3dlabs"> +<title>3DLabs-Karten</title> +<para> + Auch wenn es einen Treiber für 3DLabs GLINT R3-Chips und Permedia3-Chips + gibt, so hat noch niemand diese getestet. Feedback wird deswegen gern gesehen. +</para> +</sect3> + +<sect3 id="vidix-nvidia"> +<title>nVidia-Karten</title> +<para> + Es gibt relativ neuen nVidia-Treiber, der bekanntermaßen mit Riva + 128, TNT und GeForce2-Chipsets finktioniert, auch andere sollen gehen. +</para> + +<itemizedlist spacing="compact"> +<title>EINSCHRÄNKUNGEN</title> +<listitem><para> + Es wird empfohlen, die binären nVidia-Treiber eher als die VIDIX-Treiber + für X zu nutzen, da einiger der Register, die initialisiert werden müssen, + noch nicht entdeckt wurden, somit es möglicherweise mit dem Open Source + XFree86 <filename>nv.o</filename>-Treiber fehlschlagen. + </para></listitem> +<listitem><para> + Im Moment können nur zur UYVY-Farbraumausgabe fähige Codecs in Verbindung + mit diesen Treibern arbeiten. Unglücklicherweise schließt durch die Bank jeden + Decoder der <systemitem class="library">libavcodec</systemitem>-Familie aus. + Dadurch stehen nur folgende verbreiteten Codecs zur Wahl: + <systemitem>cvid, divxds, xvid, divx4, wmv7, wmv8</systemitem> und einige + weiteren. Beachte bitte, dass dies nur eine temporäre Schwierigkeit darstellt. + Dei Gebrauchs-Syntax ist folgende: + <screen>mplayer -vf format=uyvy -vc divxds <replaceable>divx3file.avi</replaceable> + </screen> + </para></listitem> +</itemizedlist> + +<para> + Ein einmaliges Feature des nvidia_vid-Treibers ist seine Fähigkeit, Video auf + <emphasis role="bold">einfacher, purer Textkonsole</emphasis> darzustellen - ohne + Framebuffer oder X magic oder was auch immer. Zu diesem Zweck müssen wir + die <option>cvidix</option>-Videoausgabe verwenden, wie folgendes Beispiel zeigt: + <screen>mplayer -vf format=uyvy -vc divxds -vo cvidix <replaceable>example.avi</replaceable> + </screen> +</para> + +<para> + Berichte erwartet! +</para> +</sect3> + +<sect3 id="vidix-sis"> +<title>SiS-Karten</title> +<para> + Dies ist ein sehr experimenteller Code, ähnlichnvidia_vid. +</para> + +<para> + Er wurde auf SiS 650/651/740 getestet (die verbreitetsten Chipsets in den + SiS-Versionen der Boxen von "Shuttle XPC"-Barebones) +</para> + +<para> + Berichte erwartet! +</para> +</sect3> +</sect2> + +<sect2 id="directfb"> +<title>DirectFB</title> +<blockquote><para> + "DirectFB ist eine Grafikbibliothek, deren Zielplattform eingebettete + Systeme sind. Sie bietet maximale Hardwarebeschleunigung bei minimalem + Ressourcenverbrauch und minimalem Overhead." - Zitat von + <ulink url="http://www.directfb.org"/>. +</para></blockquote> + +<para> + Ich lasse die DirectFB-Features in dieser Sektion weg. +</para> + +<para> + Obwohl <application>MPlayer</application> nicht als "Videoprovider" + bei DirectFB unterstützt wird, bietet dieser Treiber Videowiedergabe mittels + DirectFB. Die Wiedergabe ist - natürlich - hardwarebeschleunigt. Bei + meiner Matrox G400 war der DirectFB genauso schnell wie XVideo. +</para> + +<para> + Versuche immer die neueste Version von DirectFB zu verwenden. Du kannst + DirectFB-Optionen mit der <option>-dfbopts</option>-Option auf der Kommandozeile + angeben. Layer-Auswahl erfolgt durch Angabe als Teilargument, z.B. mit + <option>-vo directfb:2</option> (Layer -1 ist der Standardwert: automatische + Layerauswahl). +</para> +</sect2> + +<sect2 id="dfbmga"> +<title>DirectFB/Matrox (dfbmga)</title> +<para> + Bitte lies die + <link linkend="directfb">DirectFB-Sektion</link> für generelle + Informationen über DiretcFB. +</para> + +<para> + Dieser Videoausgabetreiber wird auf einer Matrox G400/G450/G550-Karten + den CRTC2 (des zweiten Ausgangs) aktivieren und damit das Video + <emphasis role="bold">unabhängig</emphasis> vom primären Ausgang anzeigen. +</para> + +<para> + Anweisungen, um dies zum Laufen zu bringen, stehen direkt in der + <ulink url="http://www.sci.fi/~syrjala/directfb/matrox-tv-out-howto">HOWTO</ulink> + oder der + <ulink url="http://www.sci.fi/~syrjala/directfb/Matrox_TV-out_README.txt">README</ulink> + auf der Homepage von Ville Syrjala. +</para> + +<note><para> + Die erste DirectFB-Version, mir der wir das zum Laufen gebracht haben, war + 0.9.17 (sie ist fehlerhaft, benötigt den <systemitem>surfacemanager</systemitem> von + oben erwähnter URL). Wie auch immer, eine Portierung des CRTC2-Codes für + <link linkend="mga_vid">mga_vid</link> ist bereits in Arbeit. + <ulink url="../../tech/patches.txt">Patches</ulink> sind willkommen. +</para></note> +</sect2> +</sect1> + +<sect1 id="mpeg_decoders"> +<title>MPEG-Dekoderkarten</title> + +<sect2 id="dvb"> +<title>DVB-Output und -Input</title> +<para> + <application>MPlayer</application> unterstützt Karten mit dem Siemens-DVB-Chipsatz von + Herstellern wie Siemens, Technotrend, Galaxis oder Hauppauge. Die neuesten + DVB-Treiber gibt's auf der + <ulink url="http://www.linuxtv.org">Linux TV-Seite</ulink>. Wenn du in + Transcodierung in Software machen willst, dann brauchst du eine CPU mit mindestens 1GHz. +</para> + +<para> + <filename>configure</filename> sollte automatisch deine DVB-Karte erkennen. Wenn + es das nicht tut, dann erzwinge DVB-Unterstützung mit +</para> + +<para><screen>./configure --enable-dvb</screen></para> + +<para> + Wenn die ost-Headerdateien nicht an ihrem normalen Platz liegen, dann gib + explizit den Pfad zu ihnen an mit: +</para> + +<para> +<screen>./configure --with-extraincdir=<replaceable>DVB-Source-Verzeichnis</replaceable>/ost/include +</screen> +</para> + +<para> + Dann compiliere und installiere wie sonst auch. +</para> + +<formalpara> +<title>BEDIENUNG</title> +<para> + Hardwaredecodierung (Abspielen von Standard-MPEG1/2-Dateien) geschieht mit + diesem Kommando: +</para> +</formalpara> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes <replaceable>file.mpg|vob</replaceable> +</screen> +</para> + +<para> + Softwaredecodierung oder die Transcodierung verschiedener Formate nach + MPEG1 klappt so: +</para> +<para> +<screen> +mplayer -ao mpegpes -vo mpegpes <replaceable>yourfile.ext</replaceable> +mplayer -ao mpegpes -vo mpegpes -vf expand <replaceable>yourfile.ext</replaceable> +</screen> +</para> + +<para> + Beachte, dass DVB-Karten nur bestimmte Bildhöhen unterstützen: + 288 und 576 für PAL und 240 und 480 für NTSC. Du + <emphasis role="bold">musst</emphasis> das Bild vorher skalieren, wenn + die Höhe nicht einer der oben erwähnten entspricht: + <option>-vf scale=width:height</option>. DVB-Karten + unterstützen eine Vielzahl von horizontalen Auflösungen wie z.B. + 720, 704, 640, 512, 480, 352 etc. Sie skalieren horizontal selber in + Hardware, sodass du meistens nicht in horizontaler Richtung skalieren musst. + Bei einem 512x384-MPEG4 (DivX) (Verhältnis 4:3) kannst du folgendes probieren: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf scale=512:576 +</screen> +</para> + +<para> + Wenn du einen Widescreen-Film hast und du ihn nicht auf die volle + Höhe skalieren möchtest, dann kannst du den <option>expand=w:h</option>-Filter + benutzen, um schwarze Balken hinzuzufügen. + Um ein 640x384-MPEG4 (DivX) anzuschauen: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> + Wenn deine CPU für 720x576-MPEG4 (DivX) zu langsam ist, dann skalier + herunter: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> + Wenn sich die Geschwindigkeit nicht verbessert, dann skalier auch in + vertikaler Richtung: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> + Für ein OSD und Untertitel kannst du das OSD-Feature des expand- + Filters benutzen. Anstelle von <option>expand=w:h</option> oder + <option>expand=w:h:x:y</option> benutzt du dafür + <option>expand=w:h:x:y:1</option> (der fünfte Parameter <option>:1</option> + schaltet die OSD-Anzeige an). Eventuell willst du das Bild ein wenig nach + oben schieben, um unten mehr Platz für die Untertitel zu haben. + Vielleicht willst du auch die Untertitel hochschieben, wenn sie ansonsten + außerhalb des Sichtbereiches des Fernsehers liegen. Das kannst du mit + <option>-subpos <0-100></option> erreichen, wobei + <option>-subpos 80</option> meistens eine gute Wahl darstellt. +</para> + +<para> + Um Filme mit weniger/mehr als 25 Frames pro Sekunde auf einem + PAL-Fernseher abzuspielen, oder wenn du eine langsame CPU hast, + verwende die Option <option>-framedrop</option>. +</para> + +<para> + Um das Höhen-/Breitenverhältnis des MPEG4 (DivX) beizubehalten und + trotzdem die optimalen Skalierungsparameter zu verweden (Hardwareskalierung + in horizontaler Richtung und Softwareskalierung in vertikaler Richtung unter + Beibehaltung des richtigen Höhen-/Breitenverhältnisses), benutze + den neuen dvbscale-Filter: +</para> + +<para><screen> +for a 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 +for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1 +</screen></para> + +<formalpara> +<title>Digitales TV (DVB-Input-Modul)</title> +<para> + Du kannst deine DVB-Karte zum Ansehen digitales TVs verwenden. +</para> +</formalpara> + +<para> + Du solltest das <command>scan</command> des Programms und + <command>szap/tzap/czap/azap</command> installiert haben; sie sind alle + im Treiberpaket enthalten. +</para> + +<para> + Überprüfe, ob die Treiber sauber mit dem Programm wie etwa + <ulink url="http://sf.net/projects/dvbtools/"><command>dvbstream</command></ulink> + arbeiten (das ist die Basis des DVB-Input-Moduls). +</para> + +<para> + Jetzt solltest du eine Datei <filename>~/.mplayer/channels.conf</filename> + mit der von <command>szap/tzap/czap/azap</command> Syntax compilieren oder + es von <command>scan</command> für dich compilieren lassen. +</para> + +<para> + Hast du mehr als einen Kartentyp (z.B. Satellitar, Terrestrial, Cable und ATSC), + kannst due deine Kanaldateien als + <filename>~/.mplayer/channels.conf.sat</filename>, + <filename>~/.mplayer/channels.conf.ter</filename>, + <filename>~/.mplayer/channels.conf.cbl</filename>, + und respective <filename>~/.mplayer/channels.conf.atsc</filename>, + speichern, um <application>MPlayer</application> unbedingt darauf + hinzuweisen, eher diese Dateien zu verwenden als + <filename>~/.mplayer/channels.conf</filename> + und du musst angeben, welche karte du verwendest. +</para> + +<para> + Stelle sicher, dass du <emphasis>nur</emphasis> frei ausgestrahlte + Kanäle in deiner Datei <filename>channels.conf</filename> hast, oder + <application>MPlayer</application> wird versuchen, den als nächstes + sichtbaren zu überspringen, wobei es lange dauern kann, wenn es + viele aufeinander folgende verschlüsselte Kanäle gibt. +</para> + +<para> + In deinen Audio- und Videofeldern kannst du eine erweiterte Syntax + anwenden: + <option>...:pid[+pid]:...</option> (für ein Maximum von 6 pids bei + jedem); in diesem Fall wird <application>MPlayer</application> + alle gezeigt pids enbinden, plus pid 0 (welche das PAT enthält). + Bindet ruhig in jede Spalte die PMT pid für den + korrespondierenden Kanal ein (falls du ihn kennst). + Ander mögliche Anwendungen sind: televideo pid, zweiter Audio-Track, etc. +</para> + + +<para> + Um den ersten der in deiner Liste vorhandenen Kanäle anzuzeigen, + führe folgendes aus +</para> + +<screen> + mplayer dvb:// +</screen> + +<para> + Willst du einen bestimmten Kanal wie z.B. R1 ansehen, such as R1, + führe dies aus +</para> + +<screen> + mplayer dvb://R1 +</screen> + +<para> + Hast du mehr als eine Karte, musst du die Nummer der Karte, in der + der Kanal zu sehen ist (z.B. 2) mit dieser Syntax angeben: +</para> + +<screen> + mplayer dvb://2@R1 +</screen> + +<para> + Um Kanäle zu wechseln, drücke die Tasten <keycap>h</keycap> (nächster) + und <keycap>k</keycap> (vorheriger) oder verwende das OSD-Menü (erfordert + ein funktionierendes <link linkend="subosd">OSD-Subsystem</link>). +</para> + +<para> + Wenn deine <filename>~/.mplayer/menu.conf</filename> einen Eintrag + <literal><dvbsel></literal> enthält, wie der in der Beispieldatei + <filename>etc/dvb-menu.conf</filename> (die du zum Überschreiben der + <filename>~/.mplayer/menu.conf</filename> nutzen kannst), wird das Hauptmenü + einen Untermeüeintrag anzeigen, der dir die Wahl des Kanal-Presets in deiner + <filename>channels.conf</filename> erlaubt, womöglich gefolgt von einem + Menü mit der Liste der verfügbaren Karten, falls mehr als eine + von <application>MPlayer</application> genutzt werden kann. +</para> + +<para> + Willst du ein Programm auf die Festplatte speichern, nimm +</para> + +<screen> + mplayer -dumpfile r1.ts -dumpstream dvb://R1 +</screen> + +<para> + Willst du ihn stattdessen in einem anderen Format aufnehmen (ihn neu encodieren), + kannst du einen Befehl wie diesen ausführen +</para> + +<screen> + mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1 +</screen> + +<para> + Lies dir in der Man Page eine Liste von Optionen durch, die du an das DVB-Input-Modul + übergeben kannst. +</para> + +<formalpara> +<title>AUSBLICK</title> +<para> + Wenn du Fragen hast oder an der Diskussion über zukünfitge + Features teilnehmen willst, dann melde dich an unserer + <ulink url="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</ulink> + Mailingliste an. Denk bitte daran, dass dort Englisch gesprochen wird. +</para> +</formalpara> + +<para> + Für die Zukunft kannst du mit der Möglichkeit, das OSD und die + Untertitel mit den eingebauten Funktionen der DVB-Karten anzuzeigen, mit + flüssigerer Wiedergabe von Filmen mit weniger/mehr als 25 Bildern pro + Sekunde und mit Echtzeit-Transcodierung zwischen MPEG2 und MPEG4 (partielle + Dekompression) rechnen. + +</para> +</sect2> + +<sect2 id="dxr2"> +<title>DXR2</title> +<para> + <application>MPlayer</application> unterstützt Hardware-beschleunigtes + Playback mit der Creative DXR2-Karte.</para> +<para> + Zuerst brauchst du einen richtig installierten DXR2-Treiber. Du kannst + die Treiber und Installationshinweise auf der Seite + <ulink url="http://dxr2.sf.net/">DXR2 Resource Center</ulink> finden. +</para> + +<variablelist> +<title>BEDIENUNG</title> +<varlistentry> +<term><option>-vo dxr2</option></term> +<listitem><para>aktiviere TV-Ausgabe</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-vo dxr2:x11</option> or <option>-vo dxr2:xv</option></term> +<listitem><para>aktiviere Overlay-Ausgabe in X11</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-dxr2 <option1:option2:...></option></term> +<listitem><para>Diese Option wird zur Kontrolle des DXR2-Treiber verwendet.</para></listitem> +</varlistentry> +</variablelist> + +<para> + Der auf DXR2 genutzte Overlay-Chipset ist von sehr schlechter Qualität, + die Standard-Einstellungen sollten aber bei jedem funktionieren. + Das OSD kann eventuell mit Overlay genutzt werden (nicht bei TV), + indem es im colorkey eingetragen wird. Mit den Standard-Einstellungen des + colorkey bekommst du evtl. variable Ergebnisse, gewöhnlich wirst du den + colorkey rund um die Zeichen sehen oder einige anderen lustigen Effekte. + Aber wenn due die colorkey-Einstellungen korrekt anpasst, solltest du in der + Lage sein, an akzeptable Resultate zu kommen. +</para> + +<para>Lies bitte in der Man Page über die vorhandenen Optionen.</para> +</sect2> + +<sect2 id="dxr3"> +<title>DXR3/Hollywood+</title> +<para> + <application>MPlayer</application> unterstützt die hardwarebeschleunigte + Wiedergabe mit den Karten Creative DXR3 und Sigma Designs Hollywood Plus. + Beide Karten basieren auf dem em8300-MPEG-Decoderchip von Sigma Designs. +</para> + +<para> + Als erstes brauchst du korrekt installierte DXR3/H+-Treiber, Version + 0.12.0 oder neuer. Diese Treiber und weitere Installationsanweisungen findest + du auf der Seite + <ulink url="http://dxr3.sf.net/">DXR3 & Hollywood Plus for Linux</ulink>. + <filename>configure</filename> sollte die Karte automatisch + finden. Die Compilierung sollte auch problemlos funktionieren. +</para> + +<!-- FIXME: find a more clear presentation --> +<variablelist> +<title>BEDIENUNG</title> +<varlistentry> +<term><option>-vo dxr3:prebuf:sync:norm=x:<replaceable>device</replaceable></option></term> +<listitem> +<para> + <option>overlay</option> aktiviert das Overlay anstelle des TV-Ausgangs. + Dafür brauchst du ein korrekt konfiguriertes Overlaysetup. Am einfachsten + konfigurierst du das Overlay mit dem Tool <filename>autocal</filename>. + Danach starte <application>MPlayer</application> mit dxr3-Ausgabe und + ohne Overlay anzuschalten. Starte <filename>dxr3view</filename>. Mit dxr3view + kannst du die Overlayeinstellungen verändern und siehst die + Auswirkungen sofort. Eventuell wird dieses Feature irgendwann vom + <application>MPlayer</application>-GUI unterstützt. Wenn du das Overlay richtig + eingestellt hast, dann brauchst du dxr3view nicht mehr laufen zu lassen. +</para> +<para> + <option>prebuf</option> schaltet Prebuffering ein. Das ist ein Feature des + em8300-Chips, das es ihm ermöglicht, mehr als nur ein Bild + gleichzeitig zu speichern. Das bedeutet, dass <application>MPlayer</application> + in diesem Modus versucht, den Puffer ständig mit Daten gefüllt zu halten. + Wenn du einen langsamen Rechner hast, dann wird <application>MPlayer</application> + wahrscheinlich die meiste Zeit über knapp oder genau 100% der CPU-Zeit belegen. + Das ist vor allem dann der Fall, wenn du echte MPEG-Streams (z.B. DVDs, SVCDs etc) + abspielst, da <application>MPlayer</application> nicht nach MPEG encodieren muss + und den Puffer sehr schnell wird füllen können. +</para> +<para> + Mit Prebuffering ist die Videowiedergabe <emphasis role="bold">viel</emphasis> + weniger gegenüber anderen CPU-intensiven Programmen anfällig. Frames + werden nur dann verworfen, wenn eine andere Applikation für eine + sehr lange Zeit die CPU belegt. +</para> +<para> + Wenn kein Prebuffering verwendet wird, dann ist der em8300 viel + anfälliger gegenüber CPU-Last. Somit wird dringend empfohlen, + MPlayers <option>-framedrop</option>-Option zu verwenden, um die A/V-Sync + zu erhalten. +</para> +<para> + <option>sync</option> aktiviert die neue sync-Methode. Dieses Feature ist + momentan noch experimentell. Bei dieser Methode beobachtet MPlayer + ständig die interne Uhr des em8300-Chips. Weicht diese von + MPlayers Uhr ab, so wird die des em8300-Chips zurückgesetzt, + sodass dieser alle Frames verwirft, die hinterherhängen. +</para> +<para> + <option>norm=x</option> setzt den TV-Standard der DXR3-Karte, ohne dafür + externe Programme wie em8300setup zu benötigen. + Gültige Werte sind 5 = NTSC, 4 = PAL-60, 3 = PAL. Spezielle Standards + sind 2 (automatische Erkennung mit PAL/PAL-60) und 1 (automatische + Erkennung für PAL/NTSC), da sie den Standard in Abhängigkeit + der FPS des Films setzen. norm = 0 (Standard) ändert + den momentan eingestellten TV-Standard nicht. +</para> +<para> + <option><replaceable>device</replaceable></option> = Gerätenummer wählt die zu + verwendene em8300-Karte, falls du mehrere davon hast. +</para> +<para> + Jede dieser Optionen kann auch weggelassen werden. +</para> +<para> + <option>:prebuf:sync</option> scheint sehr gut zu funktionieren, wenn du DivX + abspielst. Es gab Berichte von Leuten, die Probleme mit <option>prebuf</option> + bei der Wiedergabe von MPEG1/2-Dateien hatten. Du + solltest es also zuerst ohne Optionen probieren. Wenn du Sync-Probleme + hast, dann probier <option>:sync</option> aus. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-ao oss:/dev/em8300_ma-<replaceable>X</replaceable></option></term> +<listitem><para> + Audioausgabe, wobei <replaceable>X</replaceable> die Gerätenummer ist + (0 bei nur einer Karte). +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-af resample=<replaceable>xxxxx</replaceable></option></term> +<listitem><para> + Der em8300 kann keine Sampleraten niedriger als 44100Hz abspielen. + Wenn die Samplerate weniger als 44100Hz beträgt, dann wähle + 44100Hz oder 48000Hz, je nachdem, welche davon besser passt. Beispiel: + Wenn der Film 22050Hz benutzt, dann wähle 44100Hz, da 44100 / 2 = + 22050 ist. Bei 24000Hz nimmst du 48000Hz etc. Das funktioniert nicht mit + der digitalen Audioausgabe (<option>-ac hwac3</option>). +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-vf lavc/fame</option></term> +<listitem><para> + Wenn du nicht-MPEG-Filme mit dem em8300 ansehen möchtest (z.B. + DivX oder RealVideo), dann musst du einen MPEG1-Videofilter wie + <systemitem class="library">libavcodec</systemitem> (lavc) oder + <systemitem class="library">libfame</systemitem> (fame) verwenden. + Momentan ist lavc sowohl schneller als auch qualitativ besser, + sodass die Empfehlung lavc lautet. Schau in der Manpage nach. + Dort stehen weitere Informationen zu <option>-vf lavc/fame</option>. + Die Benutzung von lavc wird empfohlen. Momentan gibt es keine + Möglichkeit, die Anzahl der Bilder pro Sekunde des em8300 zu setzen, + was bedeutet, dass sie fest bei 29.97 liegt. Aus diesem Grund solltest du + <option>-vf lavc=<replaceable>quality</replaceable>:25</option> verwenden, + besonders dann, wenn du auch Prebuffering verwendest. Warum aber 25 + und nicht 29.97? Tja, die Sache ist, dass das Bild bei 29.97 unruhig + wird. Wir wissen leider nicht, warum das so ist. Wenn du Werte zwischen + 25 und 27 benutzt, dann wird das Bild stabil. Momentan können wir das + nur als gegeben hinnehmen. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-vf expand=-1:-1:-1:-1:1</option></term> +<listitem><para> + Obwohl der DXR3-Treiber ein OSD über das MPEG1-/2-/4-Video + projezieren kann, ist es qualitativ deutlich schlechter als + <application>MPlayer</application>s traditionelles OSD, und es hat + diverse Probleme mit der Erneuerung der Anzeige. Der oben angegebene + Befehl konvertiert das Video erst nach MPEG4 (das ist leider + erforderlich) und wendet dann den expand-Filter an, der zwar das + Bild nicht vergrößert (-1: = Standardwerte) aber dafür das normale + OSD auf das Bild stanzt (die "1" am Ende). +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-ac hwac3</option></term> +<listitem><para> + Der em8300 unterstützt die Audiowiedergabe von AC3-Streams + (Surroundsound) über den digitalen Ausgang der Karte. Schau oben bei + der Option <option>-ao oss</option> nach. Sie muss angegeben werden, um den + DXR3-Ausgang anstelle der Soundkarte anzugeben. +</para></listitem> +</varlistentry> +</variablelist> +</sect2> + +</sect1> + +<sect1 id="other"> +<title>Andere Anzeigehardware</title> + +<sect2 id="zr"> +<title>Zr</title> + +<para> + Dieser Treiber ist ein Anzeigetreiber (<option>-vo zr</option>), der + verschiedeene MJPEG-Aufnahme-/-Wiedergabekarten unterstützt. Getestet + wurde er mit DC10+ und Buz, und er sollte auch mit der LML33 und der + Original-DC10 funktionieren. Dieser Treiber encodiert jedes Bild nach JPEG + und schickt es dann an die Karte. Für die Encodierung wird + <systemitem class="library">libavcodec</systemitem> benutzt und + dementsprechend auch benötigt. Mit dem speziellen + <emphasis>cinemara</emphasis>-Modus kannst du Filme auch tatsächlich im + Breitbildformat anschauen, wenn du zwei Beamer und zwei MJPEG-Karten hast. + Abhängig von der Qualität und Auflösung braucht dieser Treiber + eine Menge CPU-Power. Benutz also besser die Option <option>-framedrop</option>, + wenn deine Maschine zu langsam ist. Anmerkung: Mein AMD K6-2 350MHz ist + durchaus in der Lage, Filme in VCD-Größe mit <option>-framedrop</option> + wiederzugeben. +</para> + +<para> + Dieser Treiber benutzt den Kerneltreiber, den du unter + <ulink url="http://mjpeg.sf.net"/> + herunterladen kannst. Dieser muss also vorher schon funktionieren. + <filename>configure</filename> erkennt automatisch vorhandene MJPEG-Karten. Wenn + nicht, dann erzwinge zr mit + <screen>./configure --enable-zr</screen> +</para> +<para> + Die Ausgabe kann mit diversen Optionen gesteuert werden. Eine + vollständige Liste findest du in der Manpage. Eine kurze Auflistung gibt + dir auch + <screen>mplayer -zrhelp</screen> +</para> + +<para> + Sachen wie das OSD und Skalierung werden nicht von diesem Treiber + erledigt, aber sie können natürlich durch Filter realisiert werden. + Beispiel: Angenommen, du hast einen Film mit einer Auflösung von + 512x272, und du möchtest ihn im Vollbild auf deiner DC10+ + anschauen. Du hast dann drei Möglichkeiten: den Film auf eine Breite von + 768, 384 oder 192 zu skalieren. Aus + Geschwindigkeits- und Qualitätsgründen würde ich empfehlen, + den Film auf 384x204 mit dem bilinearen Algorithmus zu + skalieren. Die Kommandozeile sieht dazu wie folgt aus: +<screen> +mplayer -vo zr -sws 0 -vf scale=384:204 <replaceable>movie.avi</replaceable> +</screen> +</para> + +<para> + Das Beschneiden des Bildes kann mit dem <option>crop</option>-Filter geschehen + oder vom Treiber selber vorgenommen werden. Angenommen, der Film ist zu breit + für die Anzeige deiner Buz, und du möchtest <option>-zrcrop</option> + benutzen, um den Film schmaler zu machen. Dann benutzt du folgendes + Kommando: +<screen> +mplayer -vo zr -zrcrop 720x320+80+0 <replaceable>benhur.avi</replaceable> +</screen> +</para> + +<para> + Mit dem <option>crop</option>-Filter sieht es so aus: +<screen> +mplayer -vo zr -vf crop=720:320:80:0 <replaceable>benhur.avi</replaceable> +</screen> +</para> + +<para> + Mehrfache Verwendung von <option>-zrcrop</option> aktiviert den + <emphasis>cinerama</emphasis>-Modus. Das heißt, du kannst das Bild über + mehrere Fernseher oder Beamer verteilen, um eine größere + Anzeigefläche zu erreichen. Angenommen, du hast zwei Beamer. Der linke + hängt an deiner Buz an <filename>/dev/video1</filename>, und der rechte + hängt an deiner DC10+ an <filename>/dev/video0</filename>. Der Film hat eine + Auflösung von 704x288. Nehmen wir weiter an, dass du den + rechten Beamer schwarz/weiß betreiben möchtest, und dass du auf + dem linken Beamer Bilder mit der Qualitätsstufe 10 haben + möchtest. Dann benutzt du dafür das folgende Kommando: +<screen> +mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ + <replaceable>movie.avi</replaceable> +</screen> +</para> + +<para> + Wie du siehst gelten die Optionen vor dem zweiten <option>-zrcrop</option> nur + für die DC10+ und die Optionen nach dem zweiten <option>-zrcrop</option> nur + für die Buz. Die maximale Anzahl an MJPEG-Karten, die am + <emphasis>cinerama</emphasis>-Modus teilnehmen, liegt bei vier, sodass du dir + eine 2x2-Videowand basteln kannst. +</para> + +<para> + Zuletzt ein wirklich wichtiger Hinweis: Starte oder beende auf keinen Fall + XawTV während der Wiedergabe, da das deinen Computer zum Absturz bringen + wird. Du kannst aber problemlos <emphasis role="bold">ZUERST</emphasis> XawTV, + <emphasis role="bold">DANN</emphasis> <application>MPlayer</application> + starten, warten, bis <application>MPlayer</application> fertig ist + und <emphasis role="bold">ZULETZT</emphasis> XawTV beenden. +</para> +</sect2> + +<sect2 id="blinkenlights"> +<title>Blinkenlights</title> +<para> + Dieser Trieber kann Video mit dem Blinkenlights UDP-Protokoll wiedergeben. + Wenn du nicht weißt, was + <ulink url="http://www.blinkenlights.de/">Blinkenlights</ulink> + oder dessen Nachfolger <ulink url="http://www.blinkenlights.de/arcade/">Arcade</ulink> + ist, finde es heraus. +</para> +<para> + Obwohl dies höchstwahrscheinlich der neueste Video-Ausgabetreiber ist, + ohne Zweifel der coolste, den <application>MPlayer</application> + anzubieten hat. Schau dir einfach ein paar von den + <ulink url="http://www.blinkenlights.de/video.en.html">Blinkenlights-Dokumentationsvideos</ulink> + an. + Auf dem Arcade-Video siehst du Blinkenlights Ausgabetreiber um 00:07:50 in Aktion. +</para> +</sect2> +</sect1> + +<sect1 id="tvout"> +<title>Unterstützung für die TV-Ausgabe</title> + +<sect2 id="tvout-mga-g400"> +<title>Matrox G400-Karten</title> + +<para> + Unter Linux hast du zwei Möglichkeiten, den TV-Ausgang deiner + G400 anzuschalten: +</para> + +<important> +<para> + Anweisungen für die Matrox G450/G550 und deren TV-Ausgänge findest + du im nächsten Abschnitt! +</para> +</important> + +<variablelist> +<varlistentry> + <term>XFree86</term> + <listitem><para> + mit dem alten Treiber und dem HAL-Modul, welches es + auf der<ulink url="http://www.matrox.com">Matrox-Seite</ulink> gibt. Damit + bekommst du X auf dem Fernseher, aber <emphasis role="bold">keine + Hardwarebeschleunigung</emphasis> wie unter Windows! +</para> +<para> + Der zweite Ausgang besitzt nur einen YUV-Framebuffer. + Der <emphasis>BES</emphasis> (BackEnd Scaler, die YUV-Skalierungseinheit des + G200/G400/G450/G550) funktioniert mit ihm nicht! Der Windows-Treiber + umgeht das irgendwie, wahrscheinlich dadurch, dass er die 3D-Engine + für die Skalierung und den YUV-Framebuffer zur Anzeige des + skalierten Bildes verwendet. Wenn du unbedingt X benutzen willst, dann + probier <option>-vo x11 -fs -zoom</option>, aber das wird + <emphasis role="bold">LANGSAM</emphasis> sein + und den <emphasis role="bold">Macrovision</emphasis>-Kopierschutz + aktiviert haben. (Du kannst Macrovision mit diesem + <ulink url="http://avifile.sf.net/mgamacro.pl">Perlscript</ulink> + umgehen.) +</para></listitem> +</varlistentry> +<varlistentry> + <term>Framebuffer</term> + <listitem><para> + Mit den <emphasis role="bold">matroxfb-Modulen</emphasis> in den 2.4er + Kerneln. 2.2er Kernel kennen den TV-Ausgang noch nicht und sind somit + hierfür nicht geeignet. Du musst ALLE matroxfb-spezifischen Features + bei der Compilierung anschalten (bis auf MultiHead). Compiliere sie als + <emphasis role="bold">Module</emphasis>! Du musst ebenfalls I2C anschalten. +</para> + +<procedure> +<step><para> + Gehe nach <filename class="directory">TVout</filename> und gib + <command>./compile.sh</command> ein. Installiere + <filename>TVout/matroxset/matroxset</filename> in ein Verzeichnis, das + in deinem <envar>PATH</envar> liegt. +</para></step> +<step><para> + Wenn du <command>fbset</command> nicht installiert hast, installiere + <filename>TVout/fbset/fbset</filename> in ein Verzeichnis, das in + deinem <envar>PATH</envar> liegt. +</para></step> +<step><para> + Wenn du <command>con2fb</command> nicht installiert hast, installiere + <filename>TVout/con2fb/con2fb</filename> in ein Verzeichnis, das in + deinem <envar>PATH</envar> liegt. +</para></step> +<step><para> + Geh jetzt in das Verzeichnis <filename class="directory">TVout/</filename> + in den <application>MPlayer</application>-Quellen und führe dort + <filename>./modules</filename> als <systemitem class="username">root</systemitem> + aus. Deine Textmodusconsole wird danach in den Framebuffermodus umschalten, + aus dem es keinen Weg zurück gibt! +</para></step> +<step><para> + Editiere als nächstes das Script <filename>./matroxtv</filename>. + Es ird dir ein simples Menü präsentieren. Drücke + <keycap>2</keycap> gefolgt von <keycap>ENTER</keycap>. Jetzt solltest + du auf dem Fernseher das gleiche Bild wie auf dem Monitor sehen. + Wenn das TV-Bild (PAL ist die Standardeinstellung) merkwürdige Streifen + enthält, dann war das Script nicht in der Lage, die Auflösung richtig zu + setzen (standardmäßig 640x512). Probier andere im Menü + angebotene Auflösungen aus und/oder experimentier mit fbset. +</para></step> +<step><para> + So. Die nächste Aufgabe ist es, den Cursor auf tty1 (oder + woauchimmer) verschwinden zu lassen, und den Bildschirmschoner + auszuschalten. Führ folgende Kommandos aus: + +<screen> +echo -e '\033[?25l' +setterm -blank 0<!-- + --></screen> + oder +<screen> +setterm -cursor off +setterm -blank 0<!-- + --></screen> + + Wahrscheinlich möchtest du das in ein Script packen und dabei + gleich den Bildschirm löschen. Um den Cursor wieder + anzuschalten: + <screen>echo -e '\033[?25h'</screen> or + <screen>setterm -cursor on</screen> +</para></step> +<step><para> + Yeah kewl. Starte die Wiedergabe mit +<screen> +mplayer -vo mga -fs -screenw 640 -screenh 512 <replaceable>filename</replaceable><!-- + --></screen> + + (Wenn du X benutzt, dann wechsel jetzt auf den matroxfb mit z.B. + <keycap>CTRL</keycap>+<keycap>ALT</keycap>+<keycap>F1</keycap>!) + Ändere die <literal>640</literal> und <literal>512</literal>, wenn + du eine andere Auflösung verwendest. +</para></step> +<step><para> + <emphasis role="bold">Genieß die ultra-schnelle und featurereiche Wiedergabe + mit dem Matrox-TV-Ausgang (sogar noch besser als Xv)!</emphasis> + </para></step> + </procedure> + </listitem> +</varlistentry> +</variablelist> + +<formalpara> +<title>Matrox-TV-Ausgangskabel im Eigenbau</title> +<para> + Niemand übernimmt Verantwortung für irgendetwas oder jegliche + Schäden, die durch diese Dokumentation entstehen. +</para> +</formalpara> + +<formalpara> +<title>Kabel für die G400</title> +<para> + Der vierte Pin des CRTC2-Steckers liefert das Composite Video-Signal. + Erde liegt am sechsten, siebten und achten Pin. + (Informationen von Balázs Rácz) +</para> +</formalpara> + +<formalpara> +<title>Kabel für die G450</title> +<para> + Der erste Pin des CRTC2-Steckers liefert + das Composite Video-Signal. Erde liegt am fünften, sechsten, siebten und + fünfzehnten (5, 6, 7, 15) Pin. (Information von Balázs Kerekes) +</para> +</formalpara> +</sect2> + +<sect2 id="tv-out_matrox_g450"> +<title>Matrox G450/G550-Karten</title> +<para> + Unterstützung für den TV-Ausgang dieser Karten wurde erst + kürzlich implementiert und ist noch nicht in den Standardkerneln + enthalten. Momentan kann das <emphasis role="bold">mga_vid</emphasis>-Modul + nicht benutzt werden, wenn ich recht informiert bin, da der G450/G550-Treiber + nur in einer Konfiguration arbeitet: Der erste CRTC-Chip (mit den vielen + Features) am ersten Display (meistens der Monitor), und der zweite CRTC + (kein <emphasis role="bold">BES</emphasis> - Erläuterungen zum BES gibts + in der G400-Sektion oben) am Fernseher. + Somit kannst du momentan nur den <emphasis>fbdev</emphasis>-Ausgabetreiber von + <application>MPlayer</application> benutzen. +</para> + +<para> + Der erste CRTC kann momentan nicht an den zweiten Ausgang umgeleitet + werden. Der Author des matroxfb-Kernelmoduls, Petr Vandrovec, wird auch das + irgendwann unterstützen, indem die Ausgabe des ersten CRTC auf beiden + Ausgängen angezeigt wird, wie es momentan auch für die G400 + empfohlen wird (siehe oben). +</para> + +<para> + Der dafür benötigte Kernelpatch und eine detaillierte Anleitung + kann auf <ulink url="http://www.bglug.ca/matrox_tvout/"/> gefunden werden. +</para> +</sect2> + + +<sect2 id="tvout-ati"> +<title>ATI-Karten</title> + +<formalpara> +<title>EINLEITUNG</title> +<para> + Momentan möchte ATI keinen einzigen ihrer TV-Ausgabe-Chips unter + Linux unterstützen, da sie die Macrovision-Technologie lizensiert + haben. +</para> +</formalpara> + +<itemizedlist> +<title>STATUS DER ATI-TV-AUSGABEUNTERSTÜTZUNG UNTER LINUX</title> +<listitem><simpara> + <emphasis role="bold">ATI Mach64</emphasis>: + Von <ulink url="http://gatos.sf.net">GATOS</ulink> unterstützt. +</simpara></listitem> +<listitem><simpara> + <emphasis role="bold">ASIC Radeon VIVO</emphasis>: + Von <ulink url="http://gatos.sf.net">GATOS</ulink> unterstützt. +</simpara></listitem> +<listitem><simpara> + <emphasis role="bold">Radeon</emphasis> and <emphasis role="bold">Rage128</emphasis>: + Von <application>MPlayer</application> unterstützt! + Lies die <link linkend="vesa">VESA-Treiber-</link> und + <link linkend="vidix">VIDIX</link>-Sektionen. +</simpara></listitem> +<listitem><simpara> + <emphasis role="bold">Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</emphasis>: + Von <ulink url="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/">atitvout</ulink> + unterstützt. +</simpara></listitem> +</itemizedlist> + +<para> + Benutze bei anderen Karten einfach den + <link linkend="vesa">VESA-Treiber</link> + ohne VIDIX. Dafür brauchst du aber eine schnelle CPU. +</para> + +<para> + Nur eines musst du tun - <emphasis role="bold">das TV-Kabel vor dem Booten + eingesteckt haben</emphasis>, da das BIOS sich nur einmal während der + POST-Prozedur initialisiert. +</para> +</sect2> + + +<sect2 id="tvout-voodoo"> +<title>Voodoo 3</title> +<para> + Lies <ulink url="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">diese URL</ulink>. +</para> +</sect2> + +<sect2 id="tvout-nvidia"> +<title>nVidia</title> +<para> + Zuerst musst du die Closed-Soure-Treiber von <ulink url="http://nvidia.com"/> + herunterladen. Ich werde Installation und Konfiguration nicht im Detail + beschreiben, da diese außerhalb der Aufgabe dieses Dokuments liegt. +</para> + +<para> + Nachdem du sichergegangen bist, dass XFree86, XVideo und die + 3D-Beschleunigung funktionieren, ändere die <filename>XF86Config</filename>, + und passe das folgende Beispiel deiner Karte an: + +<programlisting> +Section "Device" + Identifier "GeForce" + VendorName "ASUS" + BoardName "nVidia GeForce2/MX 400" + Driver "nvidia" + #Option "NvAGP" "1" + Option "NoLogo" + Option "CursorShadow" "on" + + Option "TwinView" + Option "TwinViewOrientation" "Clone" + Option "MetaModes" "1024x768,640x480" + Option "ConnectedMonitor" "CRT, TV" + Option "TVStandard" "PAL-B" + Option "TVOutFormat" "Composite" + +EndSection +</programlisting> +</para> + +<para> + Natürlich ist der wichtige Teil die TwinView-Optionen. +</para> +</sect2> + +<sect2 id="tvout-neomagic"> +<title>NeoMagic</title> +<para> + Der NeoMagic-Chip befindet sich auf zahlreichen Laptops, einige von ihnen + sind mit einen einfachen analogen TV-Encoder ausgestattet, einige besitzen + einen fortschrittlicheren. +<itemizedlist> +<listitem><para> + <emphasis role="bold">Analoger Encoder-Chip</emphasis>: + Es wurde berichtet, dass ein zuverlässiger TV-Ausgang mittels + <option>-vo fbdev</option> oder <option>-vo fbdev2</option> + erreicht werden kann. + Du musst vesafb in deinen Kernel compiliert haben und der + Kernel-Befehlszeile folgende Parameter übergeben: + <option>append="video=vesafb:ywrap,mtrr" vga=791</option>. + Du solltest <application>X</application> starten, dann in den + Consolen-Modus z.B. mit + <keycap>CTRL</keycap>+<keycap>ALT</keycap>+<keycap>F1</keycap> wechseln. + Mislingt der Start von <application>X</application> vor dem von + <application>MPlayer</application> in der Console, wird das Video + langsam und abgehackt (Erklärungen sind willkommen). + Log dich in deine Console, dann initialisiere folgenden Befehl: + + <screen>clear; mplayer -vo fbdev -zoom -cache 8192 dvd://</screen> + + Jetzt solltest du den Film im Consolen-Modus laufen sehen. + Er wird etwa die Hälfte des LCD-Bildschirms deines Laptops ausfüllen. + Um in den TV zu wechseln, drücke dreimal + <keycap>Fn</keycap>+<keycap>F5</keycap>. + Getestet auf einem Tecra 8000, 2.6.15 Kernel mit vesafb, ALSA v1.0.10. +</para></listitem> +<listitem><simpara> + <emphasis role="bold">Chrontel 70xx Encoder-Chip</emphasis>: + Zu finden in IBM Thinkpad 390E und möglicherweise anderen Thinkpads oder + Notebooks. + </simpara><simpara> + Du musst <option>-vo vesa:neotv_pal</option> für PAL oder + <option>-vo vesa:neotv_ntsc</option> für NTSC verwenden. + Es wird eine TV-Output-Funktion in folgenden 16bpp und 8bpp-Modi + zur Verfügung stellen: + </simpara> + <itemizedlist> + <listitem><simpara>NTSC 320x240, 640x480 und evtl. auch 800x600.</simpara></listitem> + <listitem><simpara>PAL 320x240, 400x300, 640x480, 800x600.</simpara></listitem> + </itemizedlist> + <simpara>Der Modus 512x384 wird im BIOS nicht unterstützt. Du musst das Bild + auf eine andere Auflösung skalieren, um die TV-Ausgabe zu aktivieren. + Wenn du auf dem Schirm ein Bild in 640x480 oder in 800x600 siehst, jedoch nicht + in 320x240 oder einer kleineren Auflösung, musst du zwei Tabellen in + <filename>vbelib.c</filename> ersetzen. + Siehe Funktion vbeSetTV für Details. Bitte kontaktiere in diesem Fall den Autor. + </simpara> + <simpara> + Bekannte Problem: Nur VESA, keine weiteren Schalter wie Helligkeit, Kontrast, + Blacklevel, Flimmerfilter sind implementiert. + </simpara> +</listitem> +</itemizedlist> +</para> +</sect2> +</sect1> + +</chapter>