diff options
author | kraymer <kraymer@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-09-27 08:59:17 +0000 |
---|---|---|
committer | kraymer <kraymer@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-09-27 08:59:17 +0000 |
commit | 172e0cccb4546ddd2da843babe9e6f8d4c72707e (patch) | |
tree | 9fae5f24f09fa91599a6a32f13a3c13c0316598b /DOCS | |
parent | 4c4d035904b0171a6d17a5e97ab0ef11900b4ef8 (diff) |
cosmetics: reformatting, aligning
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19988 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS')
-rw-r--r-- | DOCS/xml/de/audio.xml | 111 | ||||
-rw-r--r-- | DOCS/xml/de/bugreports.xml | 829 | ||||
-rw-r--r-- | DOCS/xml/de/containers.xml | 1067 | ||||
-rw-r--r-- | DOCS/xml/de/documentation.xml | 382 | ||||
-rw-r--r-- | DOCS/xml/de/encoding-guide.xml | 9967 | ||||
-rw-r--r-- | DOCS/xml/de/install.xml | 1343 | ||||
-rw-r--r-- | DOCS/xml/de/ports.xml | 1851 |
7 files changed, 7916 insertions, 7634 deletions
diff --git a/DOCS/xml/de/audio.xml b/DOCS/xml/de/audio.xml index 899f966065..f84063ce44 100644 --- a/DOCS/xml/de/audio.xml +++ b/DOCS/xml/de/audio.xml @@ -1,61 +1,60 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- in sync with r17322 --> + <chapter id="audio"> -<title>Audioausgabegeräte</title> -<sect1 id="sync"> -<title>Audio/Video-Synchronisation</title> - -<para> -Soundkartentreiber für Linux bereiten Kompatibilitätsprobleme. Dies liegt -daran, dass sich <application>MPlayer</application> auf ein eingebautes -Feature von <emphasis>ordentlich</emphasis> programmierten Soundkartentreibern -verlässt, das es ermöglicht, korrekte Audio/Video-Synchronisation beizubehalten. -Leider ist es jedoch so, dass sich manche Schreiber der Treiber um dieses -Feature nicht kümmern, da es zum Abspielen von MP3s oder für Soundeffekte -nicht benötigt wird. -</para> - -<para> -Andere Mediaplayer wie <ulink url="http://avifile.sf.net">aviplay</ulink> -oder <ulink url="http://xinehq.de">xine</ulink> funktionieren vermutlich -deshalb von Haus aus mit diesen Treibern, da sie "einfache" Methoden -mit internem Timing verwenden. Messungen haben gezeigt, dass deren Methoden -nicht so effizient sind wie die von <application>MPlayer</application>. -</para> - -<para> -Die Benutzung von <application>MPlayer</application> mit einem ordentlich -geschriebenen Audiotreiber wird niemals zu mit Audio im Zusammenhang -stehender A/V-Desynchronisation führen, außer bei sehr schlecht erstellten -Dateien (siehe Manpage für Umgehungsmöglichkeiten). -</para> - -<para> -Sollte es der Fall sein, dass du einen schlechten Audiotreiber hast, probiere -die Option <option>-autosync</option>, diese sollte deine Probleme lösen. -Siehe Manpage für detaillierte Informationen. -</para> -</sect1> - -<sect1 id="troubleshooting"> -<title>Troubleshooting/Problemlösung</title> - -<para>Ein paar Anmerkungen:</para> - -<para> - Wenn du ALSA Version 0.5 in nutzt, musst du fast immer - <option>-ao alsa5</option> verwenden, da ALSA 0.5 fehlerhaften Code für die - OSS-Emulation enthält und <application>MPlayer</application> - <emphasis role="bold"> zum Absturz bringen wird</emphasis>, mit einer - Nachricht wie dieser: - <screen> -DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!<!-- ---></screen> -</para> -<para> - Wenn du bei der Wiedergabe von CD-ROM Klicken hörst, schalte IRQ-Unmasking - an wie im Abschnitt <link linkend="drives">CD-ROM</link> beschrieben. -</para> -</sect1> + <title>Audioausgabegeräte</title> + <sect1 id="sync"> + <title>Audio/Video-Synchronisation</title> + + <para> + Soundkartentreiber für Linux bereiten Kompatibilitätsprobleme. Dies liegt + daran, dass sich <application>MPlayer</application> auf ein eingebautes + Feature von <emphasis>ordentlich</emphasis> programmierten Soundkartentreibern + verlässt, das es ermöglicht, korrekte Audio/Video-Synchronisation beizubehalten. + Leider ist es jedoch so, dass sich manche Schreiber der Treiber um dieses + Feature nicht kümmern, da es zum Abspielen von MP3s oder für Soundeffekte + nicht benötigt wird. + </para> + + <para> + Andere Mediaplayer wie <ulink url="http://avifile.sf.net">aviplay</ulink> + oder <ulink url="http://xinehq.de">xine</ulink> funktionieren vermutlich + deshalb von Haus aus mit diesen Treibern, da sie "einfache" Methoden + mit internem Timing verwenden. Messungen haben gezeigt, dass deren Methoden + nicht so effizient sind wie die von <application>MPlayer</application>. + </para> + + <para> + Die Benutzung von <application>MPlayer</application> mit einem ordentlich + geschriebenen Audiotreiber wird niemals zu mit Audio im Zusammenhang + stehender A/V-Desynchronisation führen, außer bei sehr schlecht erstellten + Dateien (siehe Manpage für Umgehungsmöglichkeiten). + </para> + + <para> + Sollte es der Fall sein, dass du einen schlechten Audiotreiber hast, probiere + die Option <option>-autosync</option>, diese sollte deine Probleme lösen. + Siehe Manpage für detaillierte Informationen. + </para> + </sect1> + + <sect1 id="troubleshooting"> + <title>Troubleshooting/Problemlösung</title> + + <para>Ein paar Anmerkungen:</para> + + <para> + Wenn du ALSA Version 0.5 in nutzt, musst du fast immer + <option>-ao alsa5</option> verwenden, da ALSA 0.5 fehlerhaften Code für die + OSS-Emulation enthält und <application>MPlayer</application> + <emphasis role="bold"> zum Absturz bringen wird</emphasis>, mit einer + Nachricht wie dieser: + <screen>DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!</screen> + </para> + <para> + Wenn du bei der Wiedergabe von CD-ROM Klicken hörst, schalte IRQ-Unmasking + an wie im Abschnitt <link linkend="drives">CD-ROM</link> beschrieben. + </para> + </sect1> </chapter> diff --git a/DOCS/xml/de/bugreports.xml b/DOCS/xml/de/bugreports.xml index b930cd367d..4ff597e6e8 100644 --- a/DOCS/xml/de/bugreports.xml +++ b/DOCS/xml/de/bugreports.xml @@ -1,429 +1,450 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- in sync with r19715 --> + <appendix id="bugreports"> -<title>Wie Fehler (Bugs) berichtet werden</title> -<para> -Gute Fehlerberichte sind ein sehr wertvoller Beitrag zur Entwicklung jedes -Softwareprojekts. Aber genau wie das Schreiben guter Software erfordert das -Anfertigen von Problemberichten etwas Arbeit. Bitte sei dir darüber im -klaren, dass die meisten Entwickler sehr beschäftigt sind und eine unverschämt -hohe Anzahl Mails bekommen. Verstehe daher, dass wir dir, obwohl dein Feedback für die -Verbesserung von <application>MPlayer</application> sehr wichtig ist und geschätzt -wird, <emphasis role="bold">alle</emphasis> Informationen, die wir fordern, zur -Verfügung stellen und dass du die Anweisungen dieses Dokuments strikt befolgen musst. -</para> -<sect1 id="bugreports_security"> -<title>Berichte sicherheitsrelevante Fehler</title> -<para> -Falls du einen Exploit-fähigen Fehler gefunden hast und gern das richtige tun -möchtest und uns diesen beseitigen lässt, bevor du ihn veröffentlichst, würden wir uns -freuen, deinen Rat zur Sicherheit unter -<ulink url="mailto:security@mplayerhq.hu">security@mplayerhq.hu</ulink> -zu erhalten. -Füge dem Betreff bitte [SECURITY] oder [ADVISORY] hinzu. -Stelle bitte sicher, dass dein Bericht eine vollständige und detaillierte Analyse des Fehlers enthält. -Die Einsendung einer Lösung nehmen wir sehr gerne dankend an. -Bitte zögere deinen Bericht nicht hinaus, um einen Proof-of-concept-Exploit zu schreiben, den -kannst du in einer weiteren Mail schicken. -</para> -</sect1> -<sect1 id="bugreports_fix"> -<title>Wie Fehler beseitigt werden</title> -<para> -Wenn du das Gefühl hast, dass du die nötigen Kenntnisse hast, bist du dazu eingeladen, -dich selbst an der Lösung des Fehlers zu versuchen. Vielleicht hast du das schon? -Bitte lies -<ulink url="../../tech/patches.txt">dieses kurze Dokument</ulink>, um herauszufinden, -wie dein Code Teil von <application>MPlayer</application> werden kann. Die Leute der -Mailing-Liste -<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">MPlayer-dev-eng</ulink> -werden dir zur Seite stehen, wenn du Fragen hast. -</para> -</sect1> -<sect1 id="bugreports_regression_test"> -<title>Wie Regressionstests mit Subversion durchgeführt werden</title> -<para> -Ein Problem, das manchmal auftreten kann ist "es hat vorher funktioniert, jetzt -tut es das nicht mehr...". -Hier eine Schritt-für-Schritt-Verfahren, um herauszufinden, wann das Problem -aufgetreten ist. Dies ist <emphasis role="bold">nichts</emphasis> für Gelegenheitsanwender. -</para> -<para> -Zuerst musst du dir MPlayers Sourcenverzeichnis aus dem Subversion-Repository besorgen. -Eine Anleitung hierzu kann unten auf -<ulink url="http://www.mplayerhq.hu/dload.html">dieser Seite</ulink> -gefunden werden. -</para> -<para> -Du wirst dann im mplayer/-Verzeichnis ein Abbild des Subversion-Baums auf der Client-Seite -haben. -Führe jetzt ein Update für dieses Abbild auf das von dir gewünschte Datum durch: -<screen> -cd mplayer/ -svn update -r {"2004-08-23"} -</screen> -Das Datumsformat ist YYYY-MM-DD HH:MM:SS. -Die Benutzung des Datumsformats stellt sicher, dass du in der Lage sein wirst, -Patches anhand des Datums, an dem sie eingespielt wurden, extrahieren kannst, wie im -<ulink url="http://mplayerhq.hu/pipermail/mplayer-cvslog/">MPlayer-cvslog-Archiv</ulink>. -</para> -<para> -Gehe nun wie bei einem normalen Update vor: -<screen> -./configure -make -</screen> -</para> -<para> -Falls ein Nicht-Programmierer dies liest: Der schnellste Weg, zu dem Punkt zu -gelangen, bei dem das Problem auftrat ist eine Binärsuche - das bedeutet: -Suche das Datum der Bruchstelle, indem du das Suchintervall wiederholt halbierst. -Zum Beispiel, wenn das Problem 2003 auftrat, starte in der Mitte des Jahres und -frage "Ist das Problem schon da?". -Wenn ja, gehe zurück zum 1. April; wenn nicht, gehe zum 1. Oktober und so weiter. -</para> -<para> -Wenn du viel Festplattenspeicher frei hast (eine vollständige Compilierung -benötigt momentan 100 MB, und ungefähr 300-350 MB, wenn Debugging-Symbole mit -dabei sind), kopiere vor einem Update die älteste Version, von der bekannt ist, -dass sie funktioniert; das spart Zeit, wenn du zurückgehen musst. -(Es ist normalerweise nicht nötig, 'make distclean' vor einer erneuten Compilierung -einer früheren Version auszuführen. Wenn du also keine Backup-Kopie deines -Original-Sourcebaums machst, wirst du alles neu compilieren müssen, wenn du beim -gegenwärtigen wieder angekommen bist.) -</para> -<para> -Wenn du den Tag gefunden hast, an dem das Problem auftrat, fahre mit der Suche mit -dem mplayer-cvslog-Archiv (sortiert nach Datum) und einem genaueren svn update, -welches Stunde, Minute und Sekunde beinhaltet, fort: -<screen> -svn update -r {"2004-08-23 15:17:25"} -</screen> -Dies wird es dir leicht machen, exakt den verursachenden Patch zu finden. -</para> -<para> -Hast du den Patch gefunden, der Ursache des Problems ist, hast du fast gewonnen; -Berichte darüber im -<ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilla</ulink>-System oder melde -dich bei -<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-Users</ulink> -an und mach es dort bekannt. -Es besteht die Chance, dass der Autor einspringt und eine Lösung vorschlägt. -Du kannst auch solange einen genauen Blick auf den Patch werfen, bis er genötigt ist, -zu offenbaren, wo der Fehler steckt :-). -</para> -</sect1> -<sect1 id="bugreports_report"> -<title>Wie Fehler berichtet werden</title> -<para> -Probiere vor allem zu allererst die letzte Subversion-Version von <application>MPlayer</application>, -da dein Problem dort möglicherweise schon behoben ist. Die Entwicklung geht extrem schnell -voran, die meisten Probleme in offiziellen Versionen werden innerhalb von Tagen oder sogar -Stunden den Entwicklern mitgeteilt. Benutze daher bitte <emphasis role="bold">nur -Subversion</emphasis> beim Berichten von Fehlern. Dies gilt auch für Binärpakete von -<application>MPlayer</application>. Subversion-Anweisungen findest du am unteren Ende <ulink -url="http://www.mplayerhq.hu/dload.html">dieser Seite</ulink> oder in der README. -Wenn dies nicht hilft, ziehe die Liste <link linkend="bugs">bekannter Fehler</link> und den -Rest der Dokumentation zu Rate. Ist dein Problem nicht bekannt oder kann es durch unsere -Anweisungen nicht gelöst werden, dann teil uns den Fehler mit. -</para> + <title>Wie Fehler (Bugs) berichtet werden</title> + <para> + Gute Fehlerberichte sind ein sehr wertvoller Beitrag zur Entwicklung jedes + Softwareprojekts. Aber genau wie das Schreiben guter Software erfordert das + Anfertigen von Problemberichten etwas Arbeit. Bitte sei dir darüber im + klaren, dass die meisten Entwickler sehr beschäftigt sind und eine unverschämt + hohe Anzahl Mails bekommen. Verstehe daher, dass wir dir, obwohl dein Feedback für die + Verbesserung von <application>MPlayer</application> sehr wichtig ist und geschätzt + wird, <emphasis role="bold">alle</emphasis> Informationen, die wir fordern, zur + Verfügung stellen und dass du die Anweisungen dieses Dokuments strikt befolgen musst. + </para> -<para> -Sende bitte keine Fehlerberichte privat an einzelne Entwickler. MPlayer ist -Gemeinschaftsarbeit, also wird es vielleicht mehrere interessierte Leute geben. Es -kommt auch teilweise vor, dass derselbe Fehler von anderen Benutzern gefunden wurde, -die bereits eine Lösung zur Umgehung des Problems haben, auch wenn es sich um einen -Fehler im <application>MPlayer</application>-Code handelt. -</para> + <sect1 id="bugreports_security"> + <title>Berichte sicherheitsrelevante Fehler</title> + <para> + Falls du einen Exploit-fähigen Fehler gefunden hast und gern das richtige tun + möchtest und uns diesen beseitigen lässt, bevor du ihn veröffentlichst, würden wir uns + freuen, deinen Rat zur Sicherheit unter + <ulink url="mailto:security@mplayerhq.hu">security@mplayerhq.hu</ulink> + zu erhalten. + Füge dem Betreff bitte [SECURITY] oder [ADVISORY] hinzu. + Stelle bitte sicher, dass dein Bericht eine vollständige und detaillierte Analyse des Fehlers enthält. + Die Einsendung einer Lösung nehmen wir sehr gerne dankend an. + Bitte zögere deinen Bericht nicht hinaus, um einen Proof-of-concept-Exploit zu schreiben, den + kannst du in einer weiteren Mail schicken. + </para> + </sect1> -<para> -Bitte beschreibe dein Problem so detailliert wie möglich. Dazu gehört ein klein -wenig Detektivarbeit, um die Umstände einzuengen, unter denen das Problem auftritt. -Tritt der Fehler nur in bestimmten Situationen auf? Ist er abhängig von Dateien oder -Dateitypen? Tritt er nur bei einem Codec auf oder ist er davon unabhängig? Kannst -du den Fehler mit allen Ausgabetreibern reproduzieren? Je mehr Informationen du zur -Verfügung stellst, desto besser sind die Chancen, dass das Problem gelöst wird. -Bitte vergiss nicht, auch die unten angeforderten wertvollen Informationen miteinzubeziehen. -Ansonsten sind wir vermutlich nicht in der Lage, das Problem genau zu untersuchen. -</para> + <sect1 id="bugreports_fix"> + <title>Wie Fehler beseitigt werden</title> + <para> + Wenn du das Gefühl hast, dass du die nötigen Kenntnisse hast, bist du dazu eingeladen, + dich selbst an der Lösung des Fehlers zu versuchen. Vielleicht hast du das schon? + Bitte lies + <ulink url="../../tech/patches.txt">dieses kurze Dokument</ulink>, um herauszufinden, + wie dein Code Teil von <application>MPlayer</application> werden kann. Die Leute der + Mailing-Liste + <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">MPlayer-dev-eng</ulink> + werden dir zur Seite stehen, wenn du Fragen hast. + </para> + </sect1> -<para> -Eine exzellente und gut geschriebene Anleitung dazu, wie Fragen in öffentlichen Foren -gestellt werden sollen, ist -<ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions -The Smart Way</ulink> von <ulink url="http://www.catb.org/~esr/">Eric S. Raymond</ulink>. -Es gibt noch einen namens -<ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report -Bugs Effectively</ulink> von <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/">Simon -Tatham</ulink>. -Befolgst du diese Richtlinien, solltest du Hilfe bekommen können. Bitte hab aber Verständnis, -dass wir alle den Mailinglisten freiwillig in unserer Freizeit folgen. Wir sind sehr -beschäftigt und können nicht garantieren, dass du eine Lösung oder auch nur eine Antwort zu -deinem Problem erhältst. -</para> + <sect1 id="bugreports_regression_test"> + <title>Wie Regressionstests mit Subversion durchgeführt werden</title> + <para> + Ein Problem, das manchmal auftreten kann ist "es hat vorher funktioniert, jetzt + tut es das nicht mehr...". + Hier eine Schritt-für-Schritt-Verfahren, um herauszufinden, wann das Problem + aufgetreten ist. Dies ist <emphasis role="bold">nichts</emphasis> für Gelegenheitsanwender. + </para> + <para> + Zuerst musst du dir MPlayers Sourcenverzeichnis aus dem Subversion-Repository besorgen. + Eine Anleitung hierzu kann unten auf + <ulink url="http://www.mplayerhq.hu/dload.html">dieser Seite</ulink> + gefunden werden. + </para> + <para> + Du wirst dann im mplayer/-Verzeichnis ein Abbild des Subversion-Baums auf der Client-Seite + haben. + Führe jetzt ein Update für dieses Abbild auf das von dir gewünschte Datum durch: +<screen>cd mplayer/ +svn update -r {"2004-08-23"}</screen> + Das Datumsformat ist YYYY-MM-DD HH:MM:SS. + Die Benutzung des Datumsformats stellt sicher, dass du in der Lage sein wirst, + Patches anhand des Datums, an dem sie eingespielt wurden, extrahieren kannst, wie im + <ulink url="http://mplayerhq.hu/pipermail/mplayer-cvslog/">MPlayer-cvslog-Archiv</ulink>. + </para> + <para> + Gehe nun wie bei einem normalen Update vor: +<screen>./configure +make</screen> + </para> + <para> + Falls ein Nicht-Programmierer dies liest: Der schnellste Weg, zu dem Punkt zu + gelangen, bei dem das Problem auftrat ist eine Binärsuche - das bedeutet: + Suche das Datum der Bruchstelle, indem du das Suchintervall wiederholt halbierst. + Zum Beispiel, wenn das Problem 2003 auftrat, starte in der Mitte des Jahres und + frage "Ist das Problem schon da?". + Wenn ja, gehe zurück zum 1. April; wenn nicht, gehe zum 1. Oktober und so weiter. + </para> + <para> + Wenn du viel Festplattenspeicher frei hast (eine vollständige Compilierung + benötigt momentan 100 MB, und ungefähr 300-350 MB, wenn Debugging-Symbole mit + dabei sind), kopiere vor einem Update die älteste Version, von der bekannt ist, + dass sie funktioniert; das spart Zeit, wenn du zurückgehen musst. + (Es ist normalerweise nicht nötig, 'make distclean' vor einer erneuten Compilierung + einer früheren Version auszuführen. Wenn du also keine Backup-Kopie deines + Original-Sourcebaums machst, wirst du alles neu compilieren müssen, wenn du beim + gegenwärtigen wieder angekommen bist.) + </para> + <para> + Wenn du den Tag gefunden hast, an dem das Problem auftrat, fahre mit der Suche mit + dem mplayer-cvslog-Archiv (sortiert nach Datum) und einem genaueren svn update, + welches Stunde, Minute und Sekunde beinhaltet, fort: + <screen>svn update -r {"2004-08-23 15:17:25"}</screen> + Dies wird es dir leicht machen, exakt den verursachenden Patch zu finden. + </para> + <para> + Hast du den Patch gefunden, der Ursache des Problems ist, hast du fast gewonnen; + Berichte darüber im + <ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilla</ulink>-System oder melde + dich bei + <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-Users</ulink> + an und mach es dort bekannt. + Es besteht die Chance, dass der Autor einspringt und eine Lösung vorschlägt. + Du kannst auch solange einen genauen Blick auf den Patch werfen, bis er genötigt ist, + zu offenbaren, wo der Fehler steckt :-). + </para> + </sect1> -</sect1> + <sect1 id="bugreports_report"> + <title>Wie Fehler berichtet werden</title> + <para> + Probiere vor allem zu allererst die letzte Subversion-Version von <application>MPlayer</application>, + da dein Problem dort möglicherweise schon behoben ist. Die Entwicklung geht extrem schnell + voran, die meisten Probleme in offiziellen Versionen werden innerhalb von Tagen oder sogar + Stunden den Entwicklern mitgeteilt. Benutze daher bitte <emphasis role="bold">nur + Subversion</emphasis> beim Berichten von Fehlern. Dies gilt auch für Binärpakete von + <application>MPlayer</application>. Subversion-Anweisungen findest du am unteren Ende + <ulink url="http://www.mplayerhq.hu/dload.html">dieser Seite</ulink> oder in der README. + Wenn dies nicht hilft, ziehe die Liste <link linkend="bugs">bekannter Fehler</link> und den + Rest der Dokumentation zu Rate. Ist dein Problem nicht bekannt oder kann es durch unsere + Anweisungen nicht gelöst werden, dann teil uns den Fehler mit. + </para> -<sect1 id="bugreports_where"> -<title>Wo Fehler berichtet werden sollen</title> -<para> -Melde dich bei der Mailingliste MPlayer-users an: -<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/> -und sende deinen Fehlerbericht an -<ulink url="mailto:mplayer-users@mplayerhq.hu"/>, wo dieser diskutiert werden kann. -</para> -<para> -Wenn du es bevorzugst, kannst du statt dessen auch unseren brandneuen -<ulink url="http://bugzilla.mplayerhq.hu/">Bugzilla</ulink> verwenden. -</para> -<para> -Die Sprache der Liste ist <emphasis role="bold">Englisch</emphasis>. Bitte -befolge die Standard- -<ulink url="http://www.ietf.org/rfc/rfc1855.txt">Netiquette-Richtlinien</ulink> -und <emphasis role="bold">sende keine HTML-Mails</emphasis> an eine unserer -Mailinglisten. Du wirst ignoriert oder ausgeschlossen werden. Wenn du nicht -weißt, was eine HTML-Mail ist oder warum sie böse ist, lies dieses -<ulink url="http://expita.com/nomime.html">feine Dokument</ulink>. Es erklärt -alle Details und beinhaltet Instruktionen, wie man HTML abschalten kann. Beachte -auch, dass wir keine Kopien (CC, carbon-copy) verschicken. Es ist daher eine -gute Sache, sich anzumelden, um auch wirklich eine Antwort zu erhalten. -</para> -</sect1> + <para> + Sende bitte keine Fehlerberichte privat an einzelne Entwickler. MPlayer ist + Gemeinschaftsarbeit, also wird es vielleicht mehrere interessierte Leute geben. Es + kommt auch teilweise vor, dass derselbe Fehler von anderen Benutzern gefunden wurde, + die bereits eine Lösung zur Umgehung des Problems haben, auch wenn es sich um einen + Fehler im <application>MPlayer</application>-Code handelt. + </para> -<sect1 id="bugreports_what"> -<title>Was berichtet werden soll</title> -<para> -Du wirst wahrscheinlich Logdateien, Konfigurationsinformationen und Beispieldateien -in deinen Fehlerbericht aufnehmen müssen. Werden einige von ihnen ziemlich groß, -ist es besser, wenn du sie auf unseren -<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/">FTP-Server</ulink> hochlädst, -und zwar in komprimierter Form (gzip und bzip2 bevorzugt). Gib dann in deinem -Fehlerbericht nur den Pfad- und den Dateinamen an. Unsere Mailinglisten haben ein -Nachrichten-Größenlimit von 80k, wenn du etwas größeres hast, musst du es -komprimieren und hochladen. -</para> + <para> + Bitte beschreibe dein Problem so detailliert wie möglich. Dazu gehört ein klein + wenig Detektivarbeit, um die Umstände einzuengen, unter denen das Problem auftritt. + Tritt der Fehler nur in bestimmten Situationen auf? Ist er abhängig von Dateien oder + Dateitypen? Tritt er nur bei einem Codec auf oder ist er davon unabhängig? Kannst + du den Fehler mit allen Ausgabetreibern reproduzieren? Je mehr Informationen du zur + Verfügung stellst, desto besser sind die Chancen, dass das Problem gelöst wird. + Bitte vergiss nicht, auch die unten angeforderten wertvollen Informationen miteinzubeziehen. + Ansonsten sind wir vermutlich nicht in der Lage, das Problem genau zu untersuchen. + </para> -<sect2 id="bugreports_system"> -<title>Systeminformationen</title> -<para> -<itemizedlist> -<listitem><para> -Deine Linuxdistribution, Betriebssystem und Version, z.B.: - <itemizedlist> - <listitem><para>Red Hat 7.1</para></listitem> - <listitem><para>Slackware 7.0 + Entwicklerpakete von 7.1 ...</para></listitem> - </itemizedlist> -</para></listitem> -<listitem><para> -Kernelversion: -<screen>uname -a</screen> -</para></listitem> -<listitem><para> -libc-Version: -<screen>ls -l /lib/libc[.-]*</screen> -</para></listitem> -<listitem><para> -gcc- und ld-Versionen: -<screen> -gcc -v -ld -v -</screen> -</para></listitem> -<listitem><para> -binutils-Version: -<screen> -as --version -</screen> -</para></listitem> -<listitem><para> -Wenn du Probleme mit dem Vollbildmodus hast: - <itemizedlist> - <listitem><para>Window-Manager-Typ und Version</para></listitem> - </itemizedlist> -</para></listitem> -<listitem><para> -Wenn du Probleme mit XVIDIX hast: - <itemizedlist> - <listitem><para>Farbtiefe von X: -<screen>xdpyinfo | grep "depth of root"</screen> - </para></listitem> - </itemizedlist> -</para></listitem> -<listitem><para> -Wenn nur die GUI fehlerhaft ist: - <itemizedlist> - <listitem><para>GTK-Version</para></listitem> - <listitem><para>GLIB-Version</para></listitem> - <listitem><para>libpng-Version</para></listitem> - <listitem><para>GUI-Situation, in welcher der Fehler auftritt</para></listitem> - </itemizedlist> -</para></listitem> -</itemizedlist> -</para> -</sect2> + <para> + Eine exzellente und gut geschriebene Anleitung dazu, wie Fragen in öffentlichen Foren + gestellt werden sollen, ist + <ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions + The Smart Way</ulink> von <ulink url="http://www.catb.org/~esr/">Eric S. Raymond</ulink>. + Es gibt noch einen namens + <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report Bugs Effectively</ulink> + von + <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</ulink>. + Befolgst du diese Richtlinien, solltest du Hilfe bekommen können. Bitte hab aber Verständnis, + dass wir alle den Mailinglisten freiwillig in unserer Freizeit folgen. Wir sind sehr + beschäftigt und können nicht garantieren, dass du eine Lösung oder auch nur eine Antwort zu + deinem Problem erhältst. + </para> + </sect1> -<sect2 id="bugreports_hardware"> -<title>Hardware und Treiber</title> -<para> -<itemizedlist> -<listitem><para> -CPU-Info (funktioniert nur unter Linux): -<screen>cat /proc/cpuinfo</screen> -</para></listitem> -<listitem><para> -Videokartenhersteller und -modell, z.B.: - <itemizedlist> - <listitem><para>ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM</para></listitem> - <listitem><para>Matrox G400 DH 32MB SGRAM</para></listitem> - </itemizedlist> -</para></listitem> -<listitem><para> -Videotreibertyp und -version, .z.B.: - <itemizedlist> - <listitem><para>eingebauter Treiber von X</para></listitem> - <listitem><para>nVidia 0.9.623</para></listitem> - <listitem><para>Utah-GLX CVS 2001-02-17</para></listitem> - <listitem><para>DRI von X 4.0.3</para></listitem> - </itemizedlist> -</para></listitem> -<listitem><para> -Soundkartentyp und -treiber, z.B.: - <itemizedlist> - <listitem><para>Creative SBLive! Gold mit OSS-Treiber von oss.creative.com</para></listitem> - <listitem><para>Creative SB16 mit Kernel-OSS-Treibern</para></listitem> - <listitem><para>GUS PnP mit OSS-Emulation von ALSA</para></listitem> - </itemizedlist> -</para></listitem> -<listitem><para> -Füge bei Linuxsystemen im Zweifel die Ausgabe von <command>lspci -vv</command> bei. -</para></listitem> -</itemizedlist> -</para> -</sect2> + <sect1 id="bugreports_where"> + <title>Wo Fehler berichtet werden sollen</title> + <para> + Melde dich bei der Mailingliste MPlayer-users an: + <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/> + und sende deinen Fehlerbericht an + <ulink url="mailto:mplayer-users@mplayerhq.hu"/>, wo dieser diskutiert werden kann. + </para> + <para> + Wenn du es bevorzugst, kannst du statt dessen auch unseren brandneuen + <ulink url="http://bugzilla.mplayerhq.hu/">Bugzilla</ulink> verwenden. + </para> + <para> + Die Sprache der Liste ist <emphasis role="bold">Englisch</emphasis>. Bitte + befolge die Standard- + <ulink url="http://www.ietf.org/rfc/rfc1855.txt">Netiquette-Richtlinien</ulink> + und <emphasis role="bold">sende keine HTML-Mails</emphasis> an eine unserer + Mailinglisten. Du wirst ignoriert oder ausgeschlossen werden. Wenn du nicht + weißt, was eine HTML-Mail ist oder warum sie böse ist, lies dieses + <ulink url="http://expita.com/nomime.html">feine Dokument</ulink>. Es erklärt + alle Details und beinhaltet Instruktionen, wie man HTML abschalten kann. Beachte + auch, dass wir keine Kopien (CC, carbon-copy) verschicken. Es ist daher eine + gute Sache, sich anzumelden, um auch wirklich eine Antwort zu erhalten. + </para> + </sect1> -<sect2 id="bugreports_configure"> -<title>Configure-Probleme</title> -<para> -Wenn du Fehlermeldungen beim Aufruf von <command>./configure</command> bekommst oder -die automatische Erkennung von etwas fehlschlägt, so lies <filename>configure.log</filename>. -Du könntest dort die Antwort finden, zum Beispiel mehrere Versionen derselben Bibliothek, -die gemischt auf deinem System vorliegen, oder du hast vergessen, das Entwicklerpaket -(die mit dem Suffix -dev) zu installieren. Wenn du denkst, dass es sich um einen -Fehler handelt, binde <filename>configure.log</filename> in deinen Fehlerbericht ein. -</para> -</sect2> + <sect1 id="bugreports_what"> + <title>Was berichtet werden soll</title> + <para> + Du wirst wahrscheinlich Logdateien, Konfigurationsinformationen und Beispieldateien + in deinen Fehlerbericht aufnehmen müssen. Werden einige von ihnen ziemlich groß, + ist es besser, wenn du sie auf unseren + <ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/">FTP-Server</ulink> + hochlädst, und zwar in komprimierter Form (gzip und bzip2 bevorzugt). Gib dann in deinem + Fehlerbericht nur den Pfad- und den Dateinamen an. Unsere Mailinglisten haben ein + Nachrichten-Größenlimit von 80k, wenn du etwas größeres hast, musst du es + komprimieren und hochladen. + </para> -<sect2 id="bugreports_compilation"> -<title>Compilierungsprobleme</title> -<para> -Bitte füge diese Dateien an: -<itemizedlist> -<listitem><para>config.h</para></listitem> -<listitem><para>config.mak</para></listitem> -</itemizedlist> -</para> -</sect2> + <sect2 id="bugreports_system"> + <title>Systeminformationen</title> + <para> + <itemizedlist> + <listitem> + <para> + Deine Linuxdistribution, Betriebssystem und Version, z.B.: + <itemizedlist> + <listitem> + <para>Red Hat 7.1</para> + </listitem> + <listitem> + <para>Slackware 7.0 + Entwicklerpakete von 7.1 ...</para> + </listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + Kernelversion: + <screen>uname -a</screen> + </para> + </listitem> + <listitem> + <para> + libc-Version: + <screen>ls -l /lib/libc[.-]*</screen> + </para> + </listitem> + <listitem> + <para> + gcc- und ld-Versionen: +<screen>gcc -v +ld -v</screen> + </para> + </listitem> + <listitem> + <para> + binutils-Version: + <screen>as --version</screen> + </para> + </listitem> + <listitem> + <para> + Wenn du Probleme mit dem Vollbildmodus hast: + <itemizedlist> + <listitem> + <para>Window-Manager-Typ und Version</para> + </listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + Wenn du Probleme mit XVIDIX hast: + <itemizedlist> + <listitem> + <para>Farbtiefe von X: + <screen>xdpyinfo | grep "depth of root"</screen> + </para> + </listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + Wenn nur die GUI fehlerhaft ist: + <itemizedlist> + <listitem><para>GTK-Version</para></listitem> + <listitem><para>GLIB-Version</para></listitem> + <listitem><para>libpng-Version</para></listitem> + <listitem><para>GUI-Situation, in welcher der Fehler auftritt</para></listitem> + </itemizedlist> + </para> + </listitem> + </itemizedlist> + </para> + </sect2> -<sect2 id="bugreports_playback"> -<title>Wiedergabeprobleme</title> -<para> -Bitte füge die Ausgabe von <application>MPlayer</application> im ausführlichen Modus -bei Level 1 an, denke aber daran, <emphasis role="bold">die Ausgabe nicht zu kürzen</emphasis>, -wenn du sie in deine Mail einfügst. Die Entwickler benötigen alle Ausgaben, um das Problem -angemessen zu untersuchen. Du kannst die Ausgabe folgendermaßen in eine Datei ausgeben: -<screen>mplayer -v <replaceable>Optionen</replaceable> <replaceable>Dateiname</replaceable> > mplayer.log 2>&1</screen> -</para> + <sect2 id="bugreports_hardware"> + <title>Hardware und Treiber</title> + <para> + <itemizedlist> + <listitem> + <para> + CPU-Info (funktioniert nur unter Linux): + <screen>cat /proc/cpuinfo</screen> + </para> + </listitem> + <listitem> + <para> + Videokartenhersteller und -modell, z.B.: + <itemizedlist> + <listitem><para>ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM</para></listitem> + <listitem><para>Matrox G400 DH 32MB SGRAM</para></listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + Videotreibertyp und -version, .z.B.: + <itemizedlist> + <listitem><para>eingebauter Treiber von X</para></listitem> + <listitem><para>nVidia 0.9.623</para></listitem> + <listitem><para>Utah-GLX CVS 2001-02-17</para></listitem> + <listitem><para>DRI von X 4.0.3</para></listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + Soundkartentyp und -treiber, z.B.: + <itemizedlist> + <listitem><para>Creative SBLive! Gold mit OSS-Treiber von oss.creative.com</para></listitem> + <listitem><para>Creative SB16 mit Kernel-OSS-Treibern</para></listitem> + <listitem><para>GUS PnP mit OSS-Emulation von ALSA</para></listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + Füge bei Linuxsystemen im Zweifel die Ausgabe von <command>lspci -vv</command> bei. + </para> + </listitem> + </itemizedlist> + </para> + </sect2> -<para> -Wenn dein Problem speziell mit einer oder mehreren Dateien zu tun hat, lade diese bitte hoch nach: -<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/"/> -</para> + <sect2 id="bugreports_configure"> + <title>Configure-Probleme</title> + <para> + Wenn du Fehlermeldungen beim Aufruf von <command>./configure</command> bekommst oder + die automatische Erkennung von etwas fehlschlägt, so lies <filename>configure.log</filename>. + Du könntest dort die Antwort finden, zum Beispiel mehrere Versionen derselben Bibliothek, + die gemischt auf deinem System vorliegen, oder du hast vergessen, das Entwicklerpaket + (die mit dem Suffix -dev) zu installieren. Wenn du denkst, dass es sich um einen + Fehler handelt, binde <filename>configure.log</filename> in deinen Fehlerbericht ein. + </para> + </sect2> -<para> -Lade bitte auch eine kleine Textdatei hoch, die denselben Basisnamen wie deine Datei -hat, mit der Erweiterung .txt. Beschreibe dort das Problem, das du mit dieser speziellen -Datei hast und gib sowohl deine Emailadresse als auch die Ausgabe von -<application>MPlayer</application> im ausführlichen Modus bei Level 1 an. Normalerweise -reichen die ersten 1-5 MB einer Datei aus, um das Problem zu reproduzieren. Um ganz sicher -zu gehen, bitten wir dich, folgendes zu tun: -<screen>dd if=<replaceable>deine-datei</replaceable> of=<replaceable>kleine-datei</replaceable> bs=1024k count=5</screen> -Dies wird die ersten fünf Megabyte von '<emphasis role="bold">deine-datei</emphasis>' nehmen -und nach '<emphasis role="bold">kleine-datei</emphasis>' schreiben. Probiere es dann erneut -mit dieser kleinen Datei, und wenn der Fehler noch immer auftritt, ist dieses Beispiel für uns -ausreichend. -Bitte sende <emphasis role="bold">niemals</emphasis> solche Dateien via Mail! -Lade sie hoch und schicke nur den Pfad/Dateinamen der Datei auf dem FTP-Server. Ist -die Datei im Netz verfügbar, reicht es, die <emphasis role="bold">exakte</emphasis> -URL zu schicken. -</para> -</sect2> + <sect2 id="bugreports_compilation"> + <title>Compilierungsprobleme</title> + <para> + Bitte füge diese Dateien an: + <itemizedlist> + <listitem><para>config.h</para></listitem> + <listitem><para>config.mak</para></listitem> + </itemizedlist> + </para> + </sect2> -<sect2 id="bugreports_crash"> -<title>Abstürze</title> -<para> -Du musst <application>MPlayer</application> in <command>gdb</command> aufrufen und -uns die komplette Ausgabe schicken, oder du kannst, wenn du ein <filename>core</filename>-Dump -des Absturzes hast, nützliche Informationen aus der Core-Datei extrahieren, -und zwar folgendermaßen: -</para> + <sect2 id="bugreports_playback"> + <title>Wiedergabeprobleme</title> + <para> + Bitte füge die Ausgabe von <application>MPlayer</application> im ausführlichen Modus + bei Level 1 an, denke aber daran, <emphasis role="bold">die Ausgabe nicht zu kürzen</emphasis>, + wenn du sie in deine Mail einfügst. Die Entwickler benötigen alle Ausgaben, um das Problem + angemessen zu untersuchen. Du kannst die Ausgabe folgendermaßen in eine Datei ausgeben: + <screen>mplayer -v <replaceable>Optionen</replaceable> <replaceable>Dateiname</replaceable> > mplayer.log 2>&1</screen> + </para> -<sect3 id="bugreports_debug"> -<title>Wie man Informationen eines reproduzierbaren Absturzes erhält</title> -<para> -Compiliere <application>MPlayer</application> neu mit Debugging-Code aktiviert: -<screen> -./configure --enable-debug=3 -make -</screen> -und rufe dann <application>MPlayer</application> innerhalb gdb auf mit: -<screen>gdb ./mplayer</screen> -Du befindest dich nun innerhalb gdb. Gib ein -<screen>run -v <replaceable>Optionen-an-mplayer</replaceable> <replaceable>Dateiname</replaceable></screen> -und reproduziere den Absturz. Sobald du das getan hast, wird gdb zur Eingabeaufforderung -zurückkehren, wo du folgendes eingeben musst: -<screen> -bt -disass $pc-32 $pc+32 -info all-registers -</screen> -</para> -</sect3> + <para> + Wenn dein Problem speziell mit einer oder mehreren Dateien zu tun hat, lade diese bitte hoch nach: + <ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/"/> + </para> + + <para> + Lade bitte auch eine kleine Textdatei hoch, die denselben Basisnamen wie deine Datei + hat, mit der Erweiterung .txt. Beschreibe dort das Problem, das du mit dieser speziellen + Datei hast und gib sowohl deine Emailadresse als auch die Ausgabe von + <application>MPlayer</application> im ausführlichen Modus bei Level 1 an. Normalerweise + reichen die ersten 1-5 MB einer Datei aus, um das Problem zu reproduzieren. Um ganz sicher + zu gehen, bitten wir dich, folgendes zu tun: + <screen>dd if=<replaceable>deine-datei</replaceable> of=<replaceable>kleine-datei</replaceable> bs=1024k count=5</screen> + Dies wird die ersten fünf Megabyte von '<emphasis role="bold">deine-datei</emphasis>' nehmen + und nach '<emphasis role="bold">kleine-datei</emphasis>' schreiben. Probiere es dann erneut + mit dieser kleinen Datei, und wenn der Fehler noch immer auftritt, ist dieses Beispiel für uns + ausreichend. + Bitte sende <emphasis role="bold">niemals</emphasis> solche Dateien via Mail! + Lade sie hoch und schicke nur den Pfad/Dateinamen der Datei auf dem FTP-Server. Ist + die Datei im Netz verfügbar, reicht es, die <emphasis role="bold">exakte</emphasis> + URL zu schicken. + </para> + </sect2> -<sect3 id="bugreports_core"> -<title>Wie man aussagekräftige Informationen aus einem Core-Dump extrahiert</title> -<para> -Erzeuge die folgende Befehlsdatei: -<screen> -bt + <sect2 id="bugreports_crash"> + <title>Abstürze</title> + <para> + Du musst <application>MPlayer</application> in <command>gdb</command> aufrufen und + uns die komplette Ausgabe schicken, oder du kannst, wenn du ein <filename>core</filename>-Dump + des Absturzes hast, nützliche Informationen aus der Core-Datei extrahieren, + und zwar folgendermaßen: + </para> + + <sect3 id="bugreports_debug"> + <title>Wie man Informationen eines reproduzierbaren Absturzes erhält</title> + <para> + Compiliere <application>MPlayer</application> neu mit Debugging-Code aktiviert: +<screen>./configure --enable-debug=3 +make</screen> + und rufe dann <application>MPlayer</application> innerhalb gdb auf mit: + <screen>gdb ./mplayer</screen> + Du befindest dich nun innerhalb gdb. Gib ein + <screen>run -v <replaceable>Optionen-an-mplayer</replaceable> <replaceable>Dateiname</replaceable></screen> + und reproduziere den Absturz. Sobald du das getan hast, wird gdb zur Eingabeaufforderung + zurückkehren, wo du folgendes eingeben musst: +<screen>bt disass $pc-32 $pc+32 -info all-registers -</screen> -Führe dann einfach folgenden Befehl aus: -<screen>gdb mplayer --core=core -batch --command=<replaceable>Kommando_Datei</replaceable> > mplayer.bug</screen> -</para> -</sect3> -</sect2> -</sect1> +info all-registers</screen> + </para> + </sect3> -<sect1 id="bugreports_advusers"> -<title>Ich weiß, was ich tue...</title> -<para> -Wenn du einen Fehlerbericht wie oben beschrieben geschrieben hast und du dir sicher -bist, dass es ein Bug in <application>MPlayer</application> und nicht ein Problem mit dem -Compiler oder eine defekte Datei ist, du die Dokumentation gelesen hast und keine Lösungen -finden konntest und deine Soundtreiber OK sind, dann kannst du auch der -mplayer-advusers-Mailingliste beitreten und dort deine Fehlerberichte einsenden. Du wirst dort -schnellere und bessere Antworten erhalten. -</para> + <sect3 id="bugreports_core"> + <title>Wie man aussagekräftige Informationen aus einem Core-Dump extrahiert</title> + <para> + Erzeuge die folgende Befehlsdatei: +<screen>bt +disass $pc-32 $pc+32 +info all-registers</screen> + Führe dann einfach folgenden Befehl aus: + <screen>gdb mplayer --core=core -batch --command=<replaceable>Kommando_Datei</replaceable> > mplayer.bug</screen> + </para> + </sect3> + </sect2> + </sect1> -<para> -Aber sei gewarnt: Wenn du Anfängerfragen stellst oder Fragen, die in dieser Anleitung -bereits beantwortet werden, wirst du ignoriert oder angemeckert, anstatt eine Antwort -zu erhalten. Also ärgere uns nicht und trete der -advusers-Liste nur bei, wenn du weißt, -was du tust und du dich für einen erfahrenen MPlayer-Nutzer oder -Entwickler hältst. -Erfüllst du diese Kriterien, sollte es kein Problem für dich sein, dich anzumelden... -</para> + <sect1 id="bugreports_advusers"> + <title>Ich weiß, was ich tue...</title> + <para> + Wenn du einen Fehlerbericht wie oben beschrieben geschrieben hast und du dir sicher + bist, dass es ein Bug in <application>MPlayer</application> und nicht ein Problem mit dem + Compiler oder eine defekte Datei ist, du die Dokumentation gelesen hast und keine Lösungen + finden konntest und deine Soundtreiber OK sind, dann kannst du auch der + mplayer-advusers-Mailingliste beitreten und dort deine Fehlerberichte einsenden. Du wirst dort + schnellere und bessere Antworten erhalten. + </para> -</sect1> + <para> + Aber sei gewarnt: Wenn du Anfängerfragen stellst oder Fragen, die in dieser Anleitung + bereits beantwortet werden, wirst du ignoriert oder angemeckert, anstatt eine Antwort + zu erhalten. Also ärgere uns nicht und trete der -advusers-Liste nur bei, wenn du weißt, + was du tust und du dich für einen erfahrenen MPlayer-Nutzer oder -Entwickler hältst. + Erfüllst du diese Kriterien, sollte es kein Problem für dich sein, dich anzumelden... + </para> + </sect1> </appendix> diff --git a/DOCS/xml/de/containers.xml b/DOCS/xml/de/containers.xml index a5d1843a11..173e84da1a 100644 --- a/DOCS/xml/de/containers.xml +++ b/DOCS/xml/de/containers.xml @@ -1,530 +1,547 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- in sync with r19738 --> + <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, es sei keine MPEG-Datei. Das ist nicht wahr. Zumindest - nicht ganz. Im Gegensatz zur verbreiteten Ansicht - <emphasis>kann</emphasis> solch 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 treten in unterschiedlichen Erscheinungen auf: -</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 anderen - 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 MPEG-2-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">TyStudio-Seite</ulink>. - </simpara></listitem> -</itemizedlist> - -<para> - Serien von Frames bilden unabhängige Gruppen in MPEG-Dateien. Dies - 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, welches das - Breiten-/Höhenverhältnis des Videostreams 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 fehlt - dieses Feld oft, 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, was 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 Videoinhalt - werden paketweise ineinander geschachtelt. Die ist üblich, wird empfohlen - und auch meist gemacht. 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 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-/Audiostreams. 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 mit dieser Methode zu A/V-Desynchronisation - (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 verwenden, aber die meisten Player erwarten CBR-Audio, - weswegen VBR-Audio nicht funktioniert. VBR ist ungewöhnlich, und - Microsofts Spezifikation zu AVI beschreibt 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 haben 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 streng - 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> - NuppelVideo - 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 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 - unkomprimierter YUV 4:2:0 Bilder. -</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 ein 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 auf 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 Projekte 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> das Spulen - in GIF-Dateien nicht. 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 selbst 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>- - 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 von - <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 deshalb bis auf weiteres so bleiben. Die Option - <option>-demuxer</option>, welche in der Manpage 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 Manpage 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> + <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, es sei keine MPEG-Datei. Das ist nicht wahr. Zumindest + nicht ganz. Im Gegensatz zur verbreiteten Ansicht + <emphasis>kann</emphasis> solch 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 treten in unterschiedlichen Erscheinungen auf: + </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 anderen + 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 MPEG-2-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">TyStudio-Seite</ulink>. + </simpara> + </listitem> + </itemizedlist> + + <para> + Serien von Frames bilden unabhängige Gruppen in MPEG-Dateien. Dies + 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, welches das + Breiten-/Höhenverhältnis des Videostreams 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 fehlt + dieses Feld oft, 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, was 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 Videoinhalt + werden paketweise ineinander geschachtelt. Die ist üblich, wird empfohlen + und auch meist gemacht. 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 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-/Audiostreams. 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 mit dieser Methode zu A/V-Desynchronisation + (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 verwenden, aber die meisten Player erwarten CBR-Audio, + weswegen VBR-Audio nicht funktioniert. VBR ist ungewöhnlich, und + Microsofts Spezifikation zu AVI beschreibt 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 haben 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 streng + 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> + NuppelVideo + 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 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 + unkomprimierter YUV 4:2:0 Bilder. + </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 ein 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 auf 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 Projekte 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> das Spulen + in GIF-Dateien nicht. 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 selbst 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>- + 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 von + <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 deshalb bis auf weiteres so bleiben. Die Option + <option>-demuxer</option>, welche in der Manpage 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 Manpage 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> diff --git a/DOCS/xml/de/documentation.xml b/DOCS/xml/de/documentation.xml index 2305f894a2..582d178f7a 100644 --- a/DOCS/xml/de/documentation.xml +++ b/DOCS/xml/de/documentation.xml @@ -2,181 +2,213 @@ <!-- in sync with r19973 --> <bookinfo id="toc"> - <title><application>MPlayer</application> - Movie Player</title> - <subtitle><ulink url="http://www.mplayerhq.hu"></ulink></subtitle> - <date>24. März 2003</date> - <copyright> - <year>2000</year> - <year>2001</year> - <year>2002</year> - <year>2003</year> - <year>2004</year> - <year>2005</year> - <year>2006</year> - <holder>MPlayer-Team</holder> - </copyright> - <!-- - <legalnotice> - <title>License</title> - <para>This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version.</para> - - <para>This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details.</para> - - <para>You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</para> - </legalnotice> - --> - </bookinfo> - - - <preface id="howtoread"> - <title>Wie diese Dokumentation gelesen werden soll</title> - - <para> - Wenn du zum ersten Mal installierst: Lies in jedem Fall alles von hier bis zum - Ende des Installationsabschnitts, und folge den Links, die du findest. Wenn Fragen - bleiben, gehe zurück zum <link linkend="toc">Inhaltsverzeichnis</link> und suche nach - dem Thema, lies die <xref linkend="faq"/> oder versuche, die Dateien zu greppen. - Die meisten Fragen sollten irgendwo hier beantwortet werden, und nach dem Rest wurde - vermutlich auf den - <ulink url="http://www.mplayerhq.hu/design7/info.html#mailing_lists">Mailing-Listen</ulink> gefragt. - <!-- FIXME: This refers to nonexistent links - Checke die - <ulink url="http://lists.mplayerhq.hu/cgi-bin/s-arch.cgi">Archive</ulink>, - dort gibt es viele wertvolle Informationen. - --> - </para> - </preface> - - - <chapter id="intro"> - <title>Einführung</title> - - <para> - <application>MPlayer</application> ist ein Movie-Player für Linux (der auch auf vielen - anderen Unices und <emphasis role="bold">nicht-x86</emphasis>-Architekturen läuft, siehe - <xref linkend="ports"/>). Er spielt die meisten Dateien in den Formaten MPEG, VOB, AVI, - OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, - Matroska-Dateien, unterstützt von vielen eingebauten, XAnim-, RealPlayer und Win32-DLL-Codecs. - Es können auch <emphasis role="bold">VideoCDs, SVCDs, DVDs, 3ivx-, RealMedia-, Sorenson-, Theora-</emphasis> - und <emphasis role="bold">MPEG-4 (DivX)</emphasis> - Filme angeschaut werden. - - Ein weiteres großes Feature von <application>MPlayer</application> ist die Fülle an - unterstützten Ausgabetreibern. Er funktioniert mit X11, Xv, DGA, OpenGL, SVGAlib, - fb-dev, AAlib, libcaca und DirectFB, du kannst ihn aber auch mit GGI und SDL (und damit - allen von SDL unterstützen Treibern), sowie mit einigen kartenspezifischen Low-Level-Treibern - (für Matrox, 3Dfx und Radeon, Mach64, Permedia3) benutzen! Die meisten von ihnen unterstützen - Software- oder Hardwareskalierung, so dass die Vollbildwiedergabe kein Problem ist. - <application>MPlayer</application> unterstützt die Wiedergabe mittels einiger - Hardware-MPEG-Decoderkarten wie der DVB, DXR2 und DXR3/Hollywood+ benutzen. - Und was ist mit diesen schönen, großen, kantengeglätteten und schattierten Untertiteln - (<emphasis role="bold">14 unterstützte Typen</emphasis>) mit Europäischen/ISO 8859-1,2 - (Ungarisch, Englisch, Tschechisch usw.), Kryllisch und Koreanische Schriftarten, und - On-Screen-Display (OSD)? - </para> - - <para> - Der Player ist superstabil bei der Wiedergabe von beschädigten MPEG-Dateien (nützlich - für manche VCDs) und spielt schlechte AVI-Dateien ab, die mit dem berühmten - Windows Media Player nicht abgespielt werden können. Selbst AVI-Dateien ohne Index-Abschnitt - sind abspielbar, und du kannst den Index mit der Option <option>-idx</option> - temporär neu generieren, oder permanent mit <application>MEncoder</application>, - was Spulen ermöglicht! Wie du siehst, sind Stabilität und Qualität die - wichtigsten Dinge, die Geschwindigkeit ist jedoch auch erstaunlich. Es gibt - außerdem ein mächtiges Filtersystem für die Manipulation von Video und Ton. - </para> - - <para> - <application>MEncoder</application> (<application>MPlayer</application>s Movie - Encoder) ist ein einfacher Film-Encoder, der so ausgelegt ist, von - <application>MPlayer</application>-abspielbaren Formaten - (<emphasis role="bold">AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA</emphasis>) - in andere <application>MPlayer</application>-abspielbare Formate (siehe unten) - zu encodieren. Er kann mit verschiedenen Codecs encodieren, zum Beispiel - <emphasis role="bold">MPEG-4 (DivX4)</emphasis> (ein oder zwei Durchläufe), - <systemitem class="library">libavcodec</systemitem>, und - <emphasis role="bold">PCM/MP3/VBR MP3</emphasis>-Audio. - </para> - - - <itemizedlist> - <title><application>MEncoder</application> Features</title> - <listitem><simpara> - Encodierung zu der weitreichenden Menge Dateiformate und Decoder von - <application>MPlayer</application> - </simpara></listitem> - <listitem><simpara> - Encodierung zu allen Codecs von FFmpegs - <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> - </simpara></listitem> - <listitem><simpara> - Videoencodierung von <emphasis role="bold">V4L-kompatiblen TV-Empfängern</emphasis> - </simpara></listitem> - <listitem><simpara> - Encodierung/Multiplexing von interleaved AVI-Dateien mit ordentlichem Index - </simpara></listitem> - <listitem><simpara> - Erstellung von Dateien aus externen Audiostreams - </simpara></listitem> - <listitem><simpara> - Encodierung in 1, 2 oder 3 Durchläufen - </simpara></listitem> - <listitem><para> - <emphasis role="bold">VBR</emphasis>-MP3-Audio - <important><simpara> - VBR-MP3-Audio wird von Windows-Playern nicht immer sauber wiedergegeben! - </simpara></important> - </para></listitem> - <listitem><simpara> - PCM-Audio - </simpara></listitem> - <listitem><simpara> - Streamkopien - </simpara></listitem> - <listitem><simpara> - Input-A/V-Synchronisation (PTS-basiert, kann mit der Option - <option>-mc 0</option> deaktiviert werden) - </simpara></listitem> - <listitem><simpara> - fps-Korrektur mit der Option <option>-ofps</option> (nützlich bei Encodierung von - 30000/1001 fps VOB zu 24000/1001 fps AVI) - </simpara></listitem> - <listitem><simpara> - Benutzung unseres sehr mächtigen Filtersystems (abschneiden, expandieren, spiegeln, - nachbearbeiten, rotieren, skalieren, rgb/yuv-Konvertierung) - </simpara></listitem> - <listitem><simpara> - Kann DVD/VOBsub- <emphasis role="bold">UND</emphasis> Textuntertitel in die - Ausgabedatei encodieren - </simpara></listitem> - <listitem><simpara> - Kann DVD-Untertitel in das VOBsub-Format rippen - </simpara></listitem> - </itemizedlist> - - <itemizedlist> - <title>Geplante Features</title> - <listitem><simpara> - Noch breiteres Feld an verfügbaren En-/Decodierungsformaten/-codecs - (erstellen von VOB-Dateien mit DivX4/Indeo5/VIVO-Streams :). - </simpara></listitem> - </itemizedlist> - - <!-- FIXME: Lizenz sollte in bookinfo sein --> - <para> - <application>MPlayer</application> und <application>MEncoder</application> können - weitergegeben werden unter den Bedingungen der GNU General Public License Version 2. - </para> - - &history.xml; - </chapter> + <title><application>MPlayer</application> - Movie Player</title> + <subtitle> + <ulink url="http://www.mplayerhq.hu"></ulink> + </subtitle> + <date>24. März 2003</date> + <copyright> + <year>2000</year> + <year>2001</year> + <year>2002</year> + <year>2003</year> + <year>2004</year> + <year>2005</year> + <year>2006</year> + <holder>MPlayer-Team</holder> + </copyright> + <!-- + <legalnotice> + <title>License</title> + <para>This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version.</para> + + <para>This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details.</para> + + <para>You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</para> + </legalnotice> + --> + </bookinfo> + + + <preface id="howtoread"> + <title>Wie diese Dokumentation gelesen werden soll</title> + + <para> + Wenn du zum ersten Mal installierst: Lies in jedem Fall alles von hier bis zum + Ende des Installationsabschnitts, und folge den Links, die du findest. Wenn Fragen + bleiben, gehe zurück zum <link linkend="toc">Inhaltsverzeichnis</link> und suche nach + dem Thema, lies die <xref linkend="faq"/> oder versuche, die Dateien zu greppen. + Die meisten Fragen sollten irgendwo hier beantwortet werden, und nach dem Rest wurde + vermutlich auf den + <ulink url="http://www.mplayerhq.hu/design7/info.html#mailing_lists">Mailing-Listen</ulink> gefragt. + <!-- FIXME: This refers to nonexistent links + Checke die + <ulink url="http://lists.mplayerhq.hu/cgi-bin/s-arch.cgi">Archive</ulink>, + dort gibt es viele wertvolle Informationen. + --> + </para> + </preface> + + + <chapter id="intro"> + <title>Einführung</title> + + <para> + <application>MPlayer</application> ist ein Movie-Player für Linux (der auch auf vielen + anderen Unices und <emphasis role="bold">nicht-x86</emphasis>-Architekturen läuft, siehe + <xref linkend="ports"/>). Er spielt die meisten Dateien in den Formaten MPEG, VOB, AVI, + OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, + Matroska-Dateien, unterstützt von vielen eingebauten, XAnim-, RealPlayer und Win32-DLL-Codecs. + Es können auch <emphasis role="bold">VideoCDs, SVCDs, DVDs, 3ivx-, RealMedia-, Sorenson-, Theora-</emphasis> + und <emphasis role="bold">MPEG-4 (DivX)</emphasis> - Filme angeschaut werden. + + Ein weiteres großes Feature von <application>MPlayer</application> ist die Fülle an + unterstützten Ausgabetreibern. Er funktioniert mit X11, Xv, DGA, OpenGL, SVGAlib, + fb-dev, AAlib, libcaca und DirectFB, du kannst ihn aber auch mit GGI und SDL (und damit + allen von SDL unterstützen Treibern), sowie mit einigen kartenspezifischen Low-Level-Treibern + (für Matrox, 3Dfx und Radeon, Mach64, Permedia3) benutzen! Die meisten von ihnen unterstützen + Software- oder Hardwareskalierung, so dass die Vollbildwiedergabe kein Problem ist. + <application>MPlayer</application> unterstützt die Wiedergabe mittels einiger + Hardware-MPEG-Decoderkarten wie der DVB, DXR2 und DXR3/Hollywood+ benutzen. + Und was ist mit diesen schönen, großen, kantengeglätteten und schattierten Untertiteln + (<emphasis role="bold">14 unterstützte Typen</emphasis>) mit Europäischen/ISO 8859-1,2 + (Ungarisch, Englisch, Tschechisch usw.), Kryllisch und Koreanische Schriftarten, und + On-Screen-Display (OSD)? + </para> + + <para> + Der Player ist superstabil bei der Wiedergabe von beschädigten MPEG-Dateien (nützlich + für manche VCDs) und spielt schlechte AVI-Dateien ab, die mit dem berühmten + Windows Media Player nicht abgespielt werden können. Selbst AVI-Dateien ohne Index-Abschnitt + sind abspielbar, und du kannst den Index mit der Option <option>-idx</option> + temporär neu generieren, oder permanent mit <application>MEncoder</application>, + was Spulen ermöglicht! Wie du siehst, sind Stabilität und Qualität die + wichtigsten Dinge, die Geschwindigkeit ist jedoch auch erstaunlich. Es gibt + außerdem ein mächtiges Filtersystem für die Manipulation von Video und Ton. + </para> + + <para> + <application>MEncoder</application> (<application>MPlayer</application>s Movie + Encoder) ist ein einfacher Film-Encoder, der so ausgelegt ist, von + <application>MPlayer</application>-abspielbaren Formaten + (<emphasis role="bold">AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA</emphasis>) + in andere <application>MPlayer</application>-abspielbare Formate (siehe unten) + zu encodieren. Er kann mit verschiedenen Codecs encodieren, zum Beispiel + <emphasis role="bold">MPEG-4 (DivX4)</emphasis> (ein oder zwei Durchläufe), + <systemitem class="library">libavcodec</systemitem>, und + <emphasis role="bold">PCM/MP3/VBR MP3</emphasis>-Audio. + </para> + + + <itemizedlist> + <title><application>MEncoder</application> Features</title> + <listitem> + <simpara> + Encodierung zu der weitreichenden Menge Dateiformate und Decoder von + <application>MPlayer</application> + </simpara> + </listitem> + <listitem> + <simpara> + Encodierung zu allen Codecs von FFmpegs + <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> + </simpara> + </listitem> + <listitem> + <simpara> + Videoencodierung von <emphasis role="bold">V4L-kompatiblen TV-Empfängern</emphasis> + </simpara> + </listitem> + <listitem> + <simpara> + Encodierung/Multiplexing von interleaved AVI-Dateien mit ordentlichem Index + </simpara> + </listitem> + <listitem> + <simpara> + Erstellung von Dateien aus externen Audiostreams + </simpara> + </listitem> + <listitem> + <simpara> + Encodierung in 1, 2 oder 3 Durchläufen + </simpara> + </listitem> + <listitem> + <para> + <emphasis role="bold">VBR</emphasis>-MP3-Audio + <important><simpara> + VBR-MP3-Audio wird von Windows-Playern nicht immer sauber wiedergegeben! + </simpara></important> + </para> + </listitem> + <listitem> + <simpara> + PCM-Audio + </simpara> + </listitem> + <listitem> + <simpara> + Streamkopien + </simpara> + </listitem> + <listitem> + <simpara> + Input-A/V-Synchronisation (PTS-basiert, kann mit der Option + <option>-mc 0</option> deaktiviert werden) + </simpara> + </listitem> + <listitem> + <simpara> + fps-Korrektur mit der Option <option>-ofps</option> (nützlich bei Encodierung von + 30000/1001 fps VOB zu 24000/1001 fps AVI) + </simpara> + </listitem> + <listitem> + <simpara> + Benutzung unseres sehr mächtigen Filtersystems (abschneiden, expandieren, spiegeln, + nachbearbeiten, rotieren, skalieren, rgb/yuv-Konvertierung) + </simpara> + </listitem> + <listitem> + <simpara> + Kann DVD/VOBsub- <emphasis role="bold">UND</emphasis> Textuntertitel in die + Ausgabedatei encodieren + </simpara> + </listitem> + <listitem> + <simpara> + Kann DVD-Untertitel in das VOBsub-Format rippen + </simpara> + </listitem> + </itemizedlist> + + <itemizedlist> + <title>Geplante Features</title> + <listitem> + <simpara> + Noch breiteres Feld an verfügbaren En-/Decodierungsformaten/-codecs + (erstellen von VOB-Dateien mit DivX4/Indeo5/VIVO-Streams :). + </simpara> + </listitem> + </itemizedlist> + + <!-- FIXME: Lizenz sollte in bookinfo sein --> + <para> + <application>MPlayer</application> und <application>MEncoder</application> können + weitergegeben werden unter den Bedingungen der GNU General Public License Version 2. + </para> + + &history.xml; + </chapter> &install.xml; diff --git a/DOCS/xml/de/encoding-guide.xml b/DOCS/xml/de/encoding-guide.xml index 41a4f16283..309d1cc775 100644 --- a/DOCS/xml/de/encoding-guide.xml +++ b/DOCS/xml/de/encoding-guide.xml @@ -1,4960 +1,5093 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- In sync with r19043 --> + <chapter id="encoding-guide"> -<title>Encodieren mit <application>MEncoder</application></title> - -<sect1 id="menc-feat-dvd-mpeg4"> -<title>Erzeugen eines hochwertigen MPEG-4-Rips ("DivX") eines DVD-Films</title> - -<para> - Eine häufig gestellte Frage ist "Wie mache ich den hochwertigsten - Rip für eine gegebene Größe?". Eine weitere Frage ist "Wie mache ich den qualitativ - bestmöglichen DVD-Rip? Die Dateigröße ist mir egal, ich will einfach nur - die beste Qualität." -</para> - -<para> - Die letzte Frage ist zumindest etwas falsch gestellt. Wenn du dir - schließlich keine Gedanken um die Dateigröße machst, warum kopierst Du - dann nicht einfach den kompletten MPEG-2-Videostream der DVD? - Sicherlich, deine AVI wird am Ende 5GB groß sein, so oder so, jedoch ist - dies mit Sicherheit deine beste Option, wenn du die beste Qualität - erhalten willst und dich nicht um die Größe kümmerst. -</para> - -<para> - Tatsache ist, der Grund eine DVD in MPEG-4 umzuencodieren ist - gerade <emphasis role="bold">weil</emphasis> dir die Größe wichtig ist. -</para> - -<para> - Es ist sehr schwierig, ein Rezept zum Erzeugen eines sehr - hochwertigen DVD-Rips anzubieten. Es gilt mehrere Faktoren zu - berücksichtigen, und du solltest dich mit diesen Details auskennen oder - du wirst voraussichtlich am Ende von den Resultaten enttäuscht. - Nachfolgend werden wir einige dieser Themen etwas näher untersuchen - und uns danach ein Beispiel ansehen. Wir gehen davon aus, dass Du - <systemitem class="library">libavcodec</systemitem> zum Encodieren des - Videos verwendest, obwohl diese Theorie genauso gut auf andere Codecs - zutrifft. -</para> - -<para> - Ist dies alles zu viel für dich, solltest du womöglich auf eins der vielen - guten Frontends zurückgreifen, die in der - <ulink url="http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends">MEncoder-Sektion</ulink> - unserer diesbezüglichen Projektseite zu finden sind. - Auf diese Weise solltest du in der Lage sein, hochwertige Rips zu - erhalten ohne viel nachdenken zu müssen, da die meisten dieser Tools dazu entworfen - wurden, clevere Entscheidungen für dich zu treffen. -</para> - -<sect2 id="menc-feat-dvd-mpeg4-preparing-encode"> -<title>Vorbereitung aufs Encodieren: Identifiziere Quellmaterial und Framerate</title> -<para> - Bevor du über das Encodieren eines Films nachdenkst, solltest du einige einleitende - Schritte vornehmen. -</para> - -<para> - Der erste und allerwichtigste Schritt vor dem Encodieren sollte sein, - festzustellen, mit welchem Inhaltstyp du umgehst. - Kommt dein Quellmaterial von einer DVD oder einem Rundfunk-/Kabel-/Satelliten-TV, - wird es in einem von zwei Formaten abgespeichert: NTSC für Nord-Amerika und Japan, - PAL für Europa usw. - Es ist wichtig, sich klar zu machen, dass dies ganz einfach die Formatierung - für die Präsentation auf einem Fernsehgerät ist und häufig - <emphasis role="bold">nicht</emphasis> mit dem originalen Format des Films - korrespondiert. Die Erfahrung zeigt, dass NTSC-Material schwieriger zu - encodieren ist, da mehr Elemente in der Quelle zu identifizieren sind. - Um eine geeignete Encodierung zu produzieren, solltest du das originale - Format kennen. - Fehler, dies sollte man berücksichtigen, führen zu diversen Fehlerstellen - in deiner Encodierung, einschließlich hässlicher Kammartefakte (combing/interlacing) - und doppelten oder gar verlorenen Frames. - Abgesehen davon, dass sie unschön sind, beeinflussen diese Artefakte die - Codierungseffizienz negativ: - Du erhältst eine schlechtere Qualität pro Bitrateneinheit. -</para> - -<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps"> -<title>Identifizieren der Quellframerate</title> -<para> - Hier ist eine Liste der verbreiteten Typen des Quellmaterials, in der Du - diese und ihre Eigenschaften voraussichtlich finden wirst: -</para> -<itemizedlist> -<listitem><para> - <emphasis role="bold">Standardfilm</emphasis>: Produziert für - theatralische Anzeige bei 24fps. -</para></listitem> -<listitem><para> - <emphasis role="bold">PAL-Video</emphasis>: Aufgenommen mit einer - PAL-Videokamera bei 50 Feldern pro Sekunde. - Ein Feld besteht ganz einfach aus den ungerade oder gerade nummerierten - Zeilen eines Frames. - Das Fernsehen wurde entworfen, diese Felder als billige Form einer - analogen Komprimierung im Wechsel zu aktualisieren. - Das menschliche Auge kompensiert dies angeblich, aber wenn du - Interlacing einmal verstanden hast, wirst du lernen, es auch auf - dem TV-Bildschirm zu erkennen und nie wieder Spass am Fernsehen haben. - Zwei Felder machen <emphasis role="bold">keinen</emphasis> kompletten - Frame, da sie in einer 50-stel Sekunde zeitlich getrennt aufgenommen - werden und so nicht Schlange stehen solange keine Bewegung da ist. -</para></listitem> -<listitem><para> - <emphasis role="bold">NTSC-Video</emphasis>: Aufgenommen mit einer - NTSC-Videokamera bei 60000/1001 Feldern pro Sekunde oder 60 Feldern - pro Sekunde zu Zeiten vor dem Farbfernsehen. - Ansonsten ähnlich wie PAL. -</para></listitem> -<listitem><para> - <emphasis role="bold">Animation</emphasis>: Üblicherweise bei - 24fps gezeichnet, kommt jedoch auch in Varianten mit gemischter - Framerate vor. -</para></listitem> -<listitem><para> - <emphasis role="bold">Computer Graphics (CG)</emphasis>: Kann - irgendeine Framerate sein, jedoch sind einige üblicher als andere; - 24 und 30 Frames pro Sekunde sind typisch für NTSC und 25fps ist - typisch für PAL. -</para></listitem> -<listitem><para> - <emphasis role="bold">Alter Film</emphasis>: Diverse niedrigere - Frameraten. -</para></listitem> -</itemizedlist> -</sect3> - -<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material"> -<title>Identifizieren des Quellmaterials</title> -<para> - Filme, die sich aus Frames zusammensetzen, werden den progressiven - zugeordnet, während die aus unabhängigen Feldern bestehenden - entweder interlaced (engl. für verschachteln) oder Video - genannt werden - somit ist letzterer Terminus zweideutig. -</para> -<para> - Um das ganze noch komplizierter zu machen, sind manche Filme ein - Gemisch aus einigen den oben beschriebenen Formen. -</para> -<para> - Das wichtigste Unterscheidungsmerkmal zwischen all diesen - Formaten ist, dass einige Frame-basiert, andere wiederum - Feld-basiert sind. - <emphasis role="bold">Immer</emphasis> wenn ein Film für die - Anzeige auf dem Fernseher vorbereitet wird (einschließlich - DVD), wird er in ein Feld-basiertes Format konvertiert. - Die zahlreichen Methoden, mit denen dies bewerkstelligt werden - kann, werden insgesamt dem "pulldown" zugeordnet, von welchem - das verrufene NTSC "3:2 telecine" eine Abart darstellt. - Sofern das Originalmaterial nicht Feld-basiert war (bei gleicher - Feldrate), erhältst du einen Film in einem anderen Format als - das Original. -</para> - -<itemizedlist> -<title>Es gibt einige verbreitete Typen des pulldown:</title> -<listitem><para> - <emphasis role="bold">PAL 2:2 pulldown</emphasis>: Das schönste von - allen. - Jeder Frame wird durch das wechselweise Extrahieren und Anzeigen - der geradzahligen und ungeradzahligen Zeilen für die Dauer von zwei - Feldern dargestellt. - Hat das Originalmaterial 24fps, beschleunigt dieser Prozess den Film - um 4%. -</para></listitem> -<listitem><para> - <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown</emphasis>: - Jeder 12-te Frame, anstatt nur jeder 2-te, wird für die Dauer von zwei - Feldern dargestellt. - Dies vermeidet die 4% Geschwindigkeitssteigerung, macht jedoch das - Umkehren des Prozesses viel schwieriger. - Es ist üblicherweise in Musical-Produktionen zu sehen, wo das Anpassen der - Geschwindigkeit um 4% sicherlich das musikalische Ergebnis kaputt machen würde. -</para></listitem> -<listitem><para> - <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Frames werden - abwechselnd für die Dauer von 3 oder 2 Feldern angezeigt. - Dies verleiht der Feldrate das 2.5-fache der originalen Framerate. - Das Resultat wird dadurch auch leicht von 60 Feldern pro Sekunde auf - 60000/1001 Felder pro Sekunde verlangsamt, um die NTSC-Felddrate - beizubehalten. -</para></listitem> -<listitem><para> - <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Verwendet zur - Darstellung von 30fps Material auf NTSC. - Schön, genau wie das 2:2 PAL pulldown. -</para></listitem> -</itemizedlist> - -<para> - Es gibt auch Methoden zur Konvertierung zwischen NTSC- und PAL-Video, - jedoch liegen diese Themen jenseits des Rahmens dieser Anleitung. - Wenn du auf solch einen Film stößt und ihn encodieren willst, solltest - du besser eine Kopie im originalen Format suchen. - Die Konvertierung zwischen diesen beiden Formaten ist hochdestruktiv und - kann nicht spurlos rückgängig gemacht werden, somit wird deine Encodierung - außerordentlich darunter leiden, wenn sie aus einer konvertierten Quelle - erzeugt wurde. -</para> -<para> - Wenn ein Video auf DVD gespeichert wird, werden fortlaufend Feldpaare - als Frames gruppiert, auch wenn nicht beabsichtigt ist, diese gleichzeitig - zu zeigen. - Der bei DVD und digitalem TV verwendete MPEG-2-Standard bietet einen Weg - für beides, die originalen progressiven Frames zu encodieren und die Anzahl - der Felder, für die ein Frame gezeigt werden soll, im Header dieses Frames - zu speichern. - Wurde diese Methode angewandt, wird dieser Film oft als "soft telecined" - beschrieben, da der Prozess eher nur den DVD-Player anweist, pulldown - auf den Film anzuwenden, als den Film selbst abzuändern. - Dieser Fall sollte möglichst bevorzugt werden, da er (eigentlich ignoriert) - leicht vom Encoder rückgängig gemacht werden kann und da er die maximale - Qualität beibehält. - Wie auch immer, viele DVD- und Rundfunkproduktionsstudios verwenden - keine passenden Encodierungstechniken, sie produzieren stattdessen Filme mit - "hard telecine", bei denen Felder sogar in encodiertes MPEG-2 dupliziert - werden. -</para> -<para> - Die Vorgehensweisen für den Umgang mit solchen Fällen werden - <link linkend="menc-feat-telecine">später in diesem Handbuch</link> - behandelt. - Wir lassen dich jetzt mit einigen Anleitungen zur Identifizierung der - Materialtypen zurück, mit denen du es zu tun hast: -</para> - -<itemizedlist> -<title>NTSC-Bereiche:</title> -<listitem><para> - Wenn <application>MPlayer</application> angibt, dass die Framerate - während des Betrachtens des Films zu 24000/1001 gewechselt hat - und diese nie wieder zurückwechselt, handelt es sich meist mit - Sicherheit um progressiven Inhalt, der "soft telecined" wurde. -</para></listitem> -<listitem><para> - Wenn <application>MPlayer</application> anzeigt, dass die Framerate - zwischen 24000/1001 und 30000/1001 vor und zurück wechselt, und Du - siehst hin und wieder Kammartefakte, dann gibt es mehrere Möglichkeiten. - Die Segmente mit 24000/1001 fps sind meist mit Sicherheit progressiver - Inhalt, "soft telecined", jedoch könnten die Teile mit 30000/1001 fps - entweder "hard telecined" 24000/1001 fps Inhalt oder 60000/1001 Felder - pro Sekunde NTSC-Video sein. - Verwende die selben Richtwerte wie in den folgenden zwei Fällen, um zu - bestimmen, um was es sich handelt. -</para></listitem> -<listitem><para> - Wenn <application>MPlayer</application> nie einen Frameratenwechsel - anzeigt und jeder einzelne Frame mit Bewegung gekämmt (combed) erscheint, - ist dein Film ein NTSC-Video bei 60000/1001 Feldern pro Sekunde. -</para></listitem> -<listitem><para> - Wenn <application>MPlayer</application> nie einen Frameratenwechsel - anzeigt und zwei von fünf Frames gekämmt (combed) erscheinen, ist der - Inhalt deines Films "hard telecined" 24000/1001 fps. -</para></listitem> -</itemizedlist> - -<itemizedlist> -<title>PAL-Bereiche:</title> -<listitem><para> - Wenn du niemals irgend ein Combing siehst, ist dein Film 2:2 pulldown. -</para></listitem> -<listitem><para> - Siehst du alle halbe Sekunde abwechselnd ein- und ausgehendes Combing, - dann ist dein Film 2:2:2:2:2:2:2:2:2:2:2:3 pulldown. -</para></listitem> -<listitem><para> - Hast du immer während Bewegungen Combing gesehen, dann ist dein Film - PAL-Video bei 50 Feldern pro Sekunde. -</para></listitem> -</itemizedlist> - -<note><title>Tipp:</title> -<para> - <application>MPlayer</application> kann das Filmplayback - mittels der Option -speed verlangsamen oder Frame für Frame abspielen. - Versuche <option>-speed</option> 0.2 zu verwenden, um den Film sehr lamgsam - anzusehen oder drücke wiederholt die Taste "<keycap>.</keycap>", um jeweils - einen Frame abzuspielen und identifiziere dann das Muster, falls du bei voller - Geschwindigkeit nichts erkennen kannst. -</para> -</note> -</sect3> -</sect2> - -<sect2 id="menc-feat-dvd-mpeg4-2pass"> -<title>Konstanter Quantisierungsparameter vs. Multipass</title> - -<para> - Es ist möglich, deinen Film in einer großen Auswahl von Qualitäten zu - encodieren. - Mit modernen Videoencodern und ein wenig Pre-Codec-Kompression - (Herunterskalierung und Rauschunterdrückung), kann eine sehr gute - Qualität bei 700 MB für einen 90-110-minütigen Breitwandfilm erreicht werden. - Des Weiteren können alle Filme - sogar die längsten - mit nahezu perfekter - Qualität bei 1400 MB encodiert werden. -</para> - -<para> - Es gibt drei Annäherungen für das Encodieren eines Videos: konstante Bitrate - (CBR), konstanter Quantisierungsparameter und Multipass (ABR, oder mittlere Bitrate). -</para> - -<para> - Die Komplexität der Frames eines Filmes und somit die Anzahl der für - deren Komprimierung erforderlichen Bits kann von einer Szene zur anderen - außerordentlich variieren. - Moderne Videoencoder können sich durch Variieren der Bitrate an diese - Anforderungen anpassen. - In einfachen Modi wie CBR kennen die Encoder jedoch nicht den - Bitratenbedarf zukünftiger Szenen und sind somit nicht in der Lage, - die angeforderte mittlere Bitrate über längere Zeitspannen zu - überschreiten. - Erweiterte Modi wie etwa Multipass-Encodierung können die Statistik - früherer Durchgänge berücksichtigen; dies behebt das oben erwähnte - Problem. -</para> - -<note><title>Anmerkung:</title> -<para> - Die meisten Codecs, die ABR-Encodierung unterstützen, unterstützen nur - die Encodierung in zwei Durchgängen (two pass) während einige andere wie - etwa <systemitem class="library">x264</systemitem>, - <systemitem class="library">XviD</systemitem> - und <systemitem class="library">libavcodec</systemitem> Multipass - unterstützen, was die Qualität bei jedem Durchgang leicht verbessert. - Jedoch ist diese Verbesserung weder messbar noch ist sie nach dem - 4-ten Durchgang oder so spürbar. - Aus diesem Grund werden in diesem Abschnitt die Encoderierung mit 2 Durchläufen - (two pass) und Multipass abwechselnd angewandt. -</para> -</note> - -<para> - In jedem dieser Modi bricht der Videocodec (wie etwa - <systemitem class="library">libavcodec</systemitem>) - den Videoframe in 16x16 Pixel Macroblöcke und wendet danach einen - Quantisierer auf jeden Macroblock an. Je niedriger der Quantisierer desto - besser die Qualität und desto höher die Bitrate. - Die Methode, die der Filmencoder zur Bestimmung des auf einen gegebenen - Macroblock anzuwendenden Quantisierer verwendet, variiert und ist in - hohem Maße einstellbar. (Dies ist eine extrem übertriebene Vereinfachung - des aktuellen Prozesses aber nützlich, um das Grundkonzept zu verstehen.) -</para> - -<para> - Wenn du eine konstante Bitrate festlegst, wird der Videocodec das Video - so encodieren, dass so viele Details wie notwendig und so wenig - wie möglich ausgesondert werden, um unterhalb der vorgegebenen Bitrate zu - bleiben. Wenn du dich wirklich nicht um die Dateigröße kümmerst, könntest - du auch CBR verwenden und eine nahezu endlose Bitrate festlegen. - (In der Praxis bedeutet dies einen Wert, der hoch genug ist, kein Limit - aufzuwerfen wie 10000Kbit.) Ohne echte Einschränkung der Bitrate wird - der Codec als Ergebnis den niedrigsten möglichen Quantisierer für jeden - Macroblock anwenden (wie durch <option>vqmin</option> für - <systemitem class="library">libavcodec</systemitem> - spezifiziert, Standardwert ist 2). - Sobald du eine Bitrate festlegst, die niedrig genug ist, den - Codec zur Anwendung eines höheren Quantisierers zu zwingen, bist Du - nahezu sicher dabei, die Qualität deines Videos zu ruinieren. - Um dies zu vermeiden, solltst du möglicherweise dein Video wie - in der später in diesem Handbuch beschriebenen Methode reduzieren. - Im Allgemeinen solltst du CBR vollkommen meiden, wenn dir Qualität - wichtig ist. -</para> - -<para> - Mit konstantem Quantisierer wendet der Codec denselben Quantisierer, wie - durch die Option <option>vqscale</option> (für - <systemitem class="library">libavcodec</systemitem>) spezifiziert, auf jeden - Macroblock an. - Willst du einen Rip mit höchstmöglicher Qualität und ignorierst dabei - wiederum die Bitrate, kannst du <option>vqscale=2</option> verwenden. - Dies wird dieselbe Bitrate und PSNR (peak signal-to-noise ratio) liefern - wie CBR mit <option>vbitrate</option>=infinity und der Standardeinstellung - <option>vqmin</option>=2. -</para> - -<para> - Das Problem mit konstantem Quantisierer ist, dass der vorgegebene Quantisierer - zum Einsatz kommt, egal ob der Macroblock ihn benötigt oder nicht. Dies heißt, - es wäre möglich, einen höheren Quantisierer auf einen Macroblock anzuwenden, - ohne sichtbare Qualität zu opfern. Warum die Bits für einen unnötig kleinen - Quantisierer verschwenden? Deine CPU hat soundso viele Arbeitsgänge Zeit zur - Verfügung, die Festplatte jedoch nur soundso viele Bits. -</para> - -<para> - Bei einer Encodierung mit zwei Durchläufen (two pass), wird der erste Durchgang - den Film so rippen, als würde CBR vorliegen, jedoch wird ein Log die Eigenschaften - jedes Frames beibehalten. Diese Daten werden danach während des zweiten Durchgangs - dazu verwendet, intelligente Entscheidungen zur Wahl des Quantisierers zu treffen. - Während schneller Action oder hochdetaillierter Szenen werden womöglich - höhere Quantisierer, während langsamen Bewegungen und Szenen mit weniger Details - niedrigere Quantisierer verwendet. - Normalerweise ist die Anzahl der Bewegungen wichtiger als die der Details. -</para> - -<para> - Wenn du <option>vqscale=2</option> verwendest, verschwendest du Bits. Wenn - du <option>vqscale=3</option> anwendest, wirst du keinen Rip mit bestmöglicher - Qualität erhalten. Angenommen du rippst eine DVD mit <option>vqscale=3</option> - und das Resultat ist 1800Kbit. Wenn du in zwei Durchgängen mit - <option>vbitrate=1800</option> encodierst, wird das daraus resultierende Video - eine <emphasis role="bold">bessere Qualität</emphasis> bei - <emphasis role="bold">gleicher Bitrate</emphasis> haben. -</para> - -<para> - Da du nun davon überzeugt bist, dass zwei Durchgänge (two pass) den besten - Weg darstellen, stellt sich jetzt tatsächlich die Frage, welche Bitrate - verwendet werden soll? Die Antwort ist, dass es nicht nur eine - Antwort gibt. Idealerweise willst du eine Bitrate wählen, die die beste Balance - zwischen Qualität und Dateigröße ergibt. Die kann abhängig vom Quellvideo - variieren. -</para> - -<para> - Interessiert die Größe nicht, stellen etwa 2000Kbit plus oder minus 200Kbit - einen guten Ausgangspunkt für einen sehr hochqualitativen Rip dar. - Bei einem Video mit schneller Action oder hohen Details, oder wenn du schlicht - und ergreifend ein sehr kritisches Auge besitzst, könntest du dich für 2400 - oder 2600 entscheiden. - Bei einigen DVDs kannst du eventuell keinen Unterschied bei 1400Kbit feststellen. - Um ein besseres Gefühl zu bekommen, ist es eine gute Idee, mit Szenen bei - unterschiedlichen Bitraten herumzuexperimentieren. -</para> - -<para> - Wenn du eine bestimmte Größe anvisierst, musst du die Bitrate irgendwie - kalkulieren. - Aber zuvor solltest du wissen, wieviel Platz du für den/die Audiotrack(s) - reservieren musst, daher solltest Du - <link linkend="menc-feat-dvd-mpeg4-audio">diese(n) zuerst rippen</link>. - Du kannst die Bitrate mit folgender Gleichung berechnen: - <systemitem>Bitrate = (zielgroesse_in_MByte - soundgroesse_in_MByte) * - 1024 * 1024 / laenge_in_sek * 8 / 1000</systemitem> - Um zum Beispiel einen zweistündigen Film auf eine 702MB CD mit einem 60MB - Audiotrack zu bekommen, sollte die Videobitrate folgendermaßen sein: - <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 - = 740kbps</systemitem> -</para> - -</sect2> - - -<sect2 id="menc-feat-dvd-mpeg4-constraints"> -<title>Randbedingungen für effizientes Encodieren</title> - -<para> - Aufgrund der Natur der MPEG-Komprimierung gibt es zahlreiche - Randbedingungen, denen du zum Erreichen maximaler Qualität folgen - solltest. - MPEG splittet das Video in Macroblöcke genannte 16x16 Quadrate auf, - jeder davon zusammengesetzt aus 4 8x8 Blöcken mit - Luma-(Intensitäts)-Informationen und zwei halb-auflösenden 8x8 - Chroma-(Farb)-Blöcken (einer für die Rot-Cyan-Achse und der andere für - die Blau-Gelb-Achse). - Selbst wenn Breite und Höhe deines Films kein Vielfaches von 16 sind, - wird der Encoder ausreichend 16x16 Macroblöcke zur Abdeckung des - gesamten Bildbereichs verwenden und der Extraplatz wird verschwendet. - Folglich ist es keine gute Idee, im Interesse der Maximierung der - Qualität bei fester Dateigröße, Abmessungen zu verwenden, die kein - Vielfaches von 16 sind. -</para> - -<para> - Die meisten DVDs besitzen ein bestimmtes Maß schwarzer Balken - an ihren Rändern. Diese dort zu belassen 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 muss sie viel mehr Bits verwenden, - oder es wird andernfalls ein als Ringing bekannter Artefakt - auftreten. -</para> - -<para> - Die Discrete Frequency Transform (DCT) erfolgt separat auf jeden - Macroblock (eigentlich auf jeden Block), somit trifft dieses Problem - nur zu, wenn sich in einem Block eine scharfe Kante befindet. - Beginnt dein schwarzer Rand exakt an den Grenzen zum Vielfachen von - 16 Pixeln, stellt dies kein Problem dar. - Seis drum, die schwarzen Ränder bei DVDs werden in den seltensten - Fällen schön angeordnet, daher wirst du sie in der Praxis immer - abschneiden müssen, um diesen Nachteil zu vermeiden. -</para> -</listitem> -</orderedlist> - -<para> - Zusätzlich zu den Frequenzbereichs-Transformationen verwendet die - MPEG-Kompression Bewegungsvektoren, um den Wechsel von einem Frame - zum anderen darzustellen. - Bewegungsvektoren arbeiten bei Inhalt, der von den Kanten eines Bildes - her einfließt, normalerweise weniger effizient, da dieser im vorherigen - Frame nicht vorhanden ist. Solange sich das Bild bis voll zur Kante des - encodierten Bereichs hin vergrößert, haben Bewegungsvektoren kein Problem - mit Inhalt, der sich aus den Kanten des Bildes hinausbewegt. Die Präsenz - schwarzer Ränder kann jedoch Ärger machen: -</para> - -<orderedlist continuation="continues"> -<listitem> -<para> - Die MPEG-Kompression speichert für jeden Macroblock einen Vektor, - um ausfindig zu machen, welcher Teil des vorherigen Frames in diesen - Macroblock als Basis zur Vorhersage des nächsten Frames kopiert - werden soll. Nur die verbleibenden Unterschiede müssen encodiert werden. - Überspannt der Macroblock die Kante des Bildes und enthält einen - Teil des schwarzen Randes, werden Bewegungsvektoren aus anderen - Teilen des Bildes den schwarzen Rand überschreiben. Dies bedeutet, dass - jede Menge Bits entweder zur wiederholten Schwärzung des überschriebenen - Randes aufgewendet werden müssen, oder es wird (eher) erst gar kein - Bewegungsvektor genutzt und alle Änderungen innerhalb dieses Macroblocks - müssen explizit encodiert werden. So oder so wird die Encodiereffizienz - außerordentlich reduziert. -</para> - -<para> - Nochmal, dieses Problem trifft nur dann zu, wenn schwarze Ränder - nicht an den Grenzen eines Vielfachen von 16 anstehen. -</para> -</listitem> - -<listitem> -<para> - Zuletzt noch was, angenommen wir haben einen Macroblock im Inneren des - Bildes und ein Objekt bewegt sich aus Richtung Nähe der Kante des Bildes - her in diesen Block hinein. Die MPEG-Encodierung kann nicht sagen - "kopiere den Teil, der innerhalb des Bildes liegt, den schwarzen Rand - aber nicht". Somit wird der schwarze Rand ebenfalls mit hinein kopiert - und jede Menge Bits müssen zur Encodierung des Teils des Bildes, der - dort angenommen wird, aufgewendet werden. -</para> - -<para> - Läuft das Bild ständig zur Kante des encodierten Bereichs hin, besitzt - MPEG spezielle Optimierungen, um immer wieder dann die Pixel am Rand des - Bildes zu kopieren, wenn ein Bewegungsvektor von außerhalb des - encodierten Bereichs ankommt. Dieses Feature wird nutzlos, wenn der Film - schwarze Ränder hat. Im Gegensatz zu den Problemen 1 und 2 hilft hier - kein Anordnen der Ränder am Vielfachen von 16. -</para> -</listitem> - -<listitem> -<para> - Obwohl die Ränder komplett schwarz sind und sich nie ändern, ist - zumindest ein minimaler Overhead damit verbunden, mehr Macroblöcke - zu besitzen. -</para> -</listitem> -</orderedlist> - -<para> - Aus all diesen Gründen wird empfohlen, schwarze Ränder komplett abzuschneiden. - Mehr noch, liegt ein Bereich mit Rauschen/Verzerrung an der Kante des Bildes, - steigert dessen Abschneiden ebenso die Encodiereffizienz. Videophile Puristen, - die den Originalzustand so nah wie möglich sichern wollen, - mögen dieses Abschneiden (cropping) beanstanden, wenn du jedoch nicht planst, - bei konstantem Quantisierer zu encodieren, wird der Qualitätsgewinn, den Du - durch dieses Abschneiden erreichst, beträchtlich über dem Verlust an Informationen - an den Kanten liegen. -</para> -</sect2> - - -<sect2 id="menc-feat-dvd-mpeg4-crop"> -<title>Abschneiden und Skalieren</title> - -<para> - Wiederaufruf der vorherigen Sektion, dass die letzte von Dir - encodierte Bildgröße ein Vielfaches von 16 sein sollte (bei beidem, - Breite und Höhe). - Diese kann durch Abschneiden, Skalieren erreicht werden oder durch - eine Kombination von beidem. -</para> - -<para> - Beim Abschneiden gibt es ein paar Richtwerte, die befolgt werden müssen, - um eine Zerstörung des Films zu vermeiden. - Das normale YUV-Format, 4:2:0, speichert Chroma-(Farb)-Informationen - in einer Unterstichprobe (subsampled), z.B. wird Chroma nur halb so oft - in jede Richtung gesampelt wie Luma-(Intensitäts)-Informationen. - Beobachte dieses Diagramm, in dem L Luma-Samplingpunkte bedeuten und C - für Chroma steht. -</para> - -<informaltable> -<?dbhtml table-width="40%" ?> -<?dbfo table-width="40%" ?> -<tgroup cols="8" align="center"> -<colspec colnum="1" colname="col1"/> -<colspec colnum="2" colname="col2"/> -<colspec colnum="3" colname="col3"/> -<colspec colnum="4" colname="col4"/> -<colspec colnum="5" colname="col5"/> -<colspec colnum="6" colname="col6"/> -<colspec colnum="7" colname="col7"/> -<colspec colnum="8" colname="col8"/> -<spanspec spanname="spa1-2" namest="col1" nameend="col2"/> -<spanspec spanname="spa3-4" namest="col3" nameend="col4"/> -<spanspec spanname="spa5-6" namest="col5" nameend="col6"/> -<spanspec spanname="spa7-8" namest="col7" nameend="col8"/> - <tbody> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - <row> - <entry spanname="spa1-2">C</entry> - <entry spanname="spa3-4">C</entry> - <entry spanname="spa5-6">C</entry> - <entry spanname="spa7-8">C</entry> - </row> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - <row> - <entry spanname="spa1-2">C</entry> - <entry spanname="spa3-4">C</entry> - <entry spanname="spa5-6">C</entry> - <entry spanname="spa7-8">C</entry> - </row> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - </tbody> -</tgroup> -</informaltable> - -<para> - Wie du sehen kannst, kommen Zeilen und Spalten des Bildes natürlich paarweise. - Folglich <emphasis>müssen</emphasis> deine Abschneide-Offsets und - Abmessungen geradzahlig sein. - Sind sie dies nicht, wird Chroma nicht mehr korrekt mit Luma abgeglichen. - In der Theorie ist es möglich, mit ungeraden Offsets abzuschneiden, jedoch - erfordert dies ein Resampling von Chroma, was potentiell eine mit Verlust - verbundene Operation bedeutet und vom Crop-Filter nicht unterstützt - wird. -</para> - -<para> - Weiterhin wird interlaced Video folgendermaßen gesampelt: -</para> - -<informaltable> -<?dbhtml table-width="80%" ?> -<?dbfo table-width="80%" ?> -<tgroup cols="16" align="center"> -<colspec colnum="1" colname="col1"/> -<colspec colnum="2" colname="col2"/> -<colspec colnum="3" colname="col3"/> -<colspec colnum="4" colname="col4"/> -<colspec colnum="5" colname="col5"/> -<colspec colnum="6" colname="col6"/> -<colspec colnum="7" colname="col7"/> -<colspec colnum="8" colname="col8"/> -<colspec colnum="9" colname="col9"/> -<colspec colnum="10" colname="col10"/> -<colspec colnum="11" colname="col11"/> -<colspec colnum="12" colname="col12"/> -<colspec colnum="13" colname="col13"/> -<colspec colnum="14" colname="col14"/> -<colspec colnum="15" colname="col15"/> -<colspec colnum="16" colname="col16"/> -<spanspec spanname="spa1-2" namest="col1" nameend="col2"/> -<spanspec spanname="spa3-4" namest="col3" nameend="col4"/> -<spanspec spanname="spa5-6" namest="col5" nameend="col6"/> -<spanspec spanname="spa7-8" namest="col7" nameend="col8"/> -<spanspec spanname="spa9-10" namest="col9" nameend="col10"/> -<spanspec spanname="spa11-12" namest="col11" nameend="col12"/> -<spanspec spanname="spa13-14" namest="col13" nameend="col14"/> -<spanspec spanname="spa15-16" namest="col15" nameend="col16"/> - <tbody> - <row> - <entry namest="col1" nameend="col8">Oberes Feld</entry> - <entry namest="col9" nameend="col16">Unteres Feld</entry> - </row> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry spanname="spa1-2">C</entry> - <entry spanname="spa3-4">C</entry> - <entry spanname="spa5-6">C</entry> - <entry spanname="spa7-8">C</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry spanname="spa9-10">C</entry> - <entry spanname="spa11-12">C</entry> - <entry spanname="spa13-14">C</entry> - <entry spanname="spa15-16">C</entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry spanname="spa1-2">C</entry> - <entry spanname="spa3-4">C</entry> - <entry spanname="spa5-6">C</entry> - <entry spanname="spa7-8">C</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - <row> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry spanname="spa9-10">C</entry> - <entry spanname="spa11-12">C</entry> - <entry spanname="spa13-14">C</entry> - <entry spanname="spa15-16">C</entry> - </row> - <row> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - <entry>L</entry> - </row> - </tbody> -</tgroup> -</informaltable> - -<para> - Wie du erkennen kannst, wiederholt sich das Muster bis nach 4 Zeilen nicht. - Somit müssen bei interlaced Video dein y-Offset und die Höhe für das - Ausschneiden ein Vielfaches von 4 sein. -</para> - -<para> - Die ursprüngliche DVD-Auflösung ist 720x480 für NTSC und 720x576 für PAL, es - gibt jedoch ein Aspektkennzeichen, das spezifiziert, ob Vollbild (4:3) oder - Breitwandfilm (16:9) vorliegt. Viele (wenn nicht die meisten) Breitwandfilm-DVDs - sind nicht grundsätzlich 16:9, sondern entweder 1.85:1 oder 2.35:1 (Cinescope). - Dies bedeutet, dass es schwarze Bänder im Video geben wird, die herausgeschnitten - werden müssen. -</para> - -<para> - <application>MPlayer</application> stellt einen Crop-Erkennungsfilter - zur Verfügung, der das Ausschnittsrechteck (<option>-vf cropdetect</option>) - bestimmt. - Starte <application>MPlayer</application> mit - <option>-vf cropdetect</option>, und er wird die Crop-Einstellungen - zum Entfernen der Ränder ausgeben. - du solltest den Film lange genug laufen lassen, damit die gesamte Bildfläche - verwendet wird, um akkurate Crop-Werte zu erhalten. -</para> - -<para> - Teste danach die Werte, die von <application>MPlayer</application> - über die Befehlszeile mittels <option>cropdetect</option> ausgegeben wurden - und passe das Rechteck nach deinen Bedürfnissen an. - Der Filter <option>rectangle</option> kann dabei helfen, indem er dir erlaubt, - das Rechteck interaktiv über dem Film zu positionieren. - Vergiss nicht, den oben genannten Teilbarkeitsrichtwerten zu folgen, sodass du - die Chroma-Ebenen nicht verkehrt anordnest. -</para> - -<para> - In bestimmten Fällen könnte Skalieren nicht wünschenswert sein. - Skalierung in vertikaler Richtung ist mit interlaced Video - schwierig, und wenn du das Interlacing beibehalten willst, solltest - du für gewöhnlich das Skalieren bleiben lassen. - Hast du nicht vor zu skalieren, willst aber nach wie vor Abmessungen - in einem Vielfachen von 16 verwenden, musst du über den Rand - hinausschneiden. - Schneide aber lieber nicht über den Rand hinaus, da schwarze Ränder - sehr schlecht zu encodieren sind! -</para> - -<para> - Weil MPEG-4 16x16 Macroblöcke nutzt, solltest du dich vergewissern, - dass jede Abmessung des zu encodierenden Videos ein Vielfaches von - 16 ist oder du verschlechterst andernfalls die Qualität, speziell bei - niedrigeren Bitraten. Du kannst dies durch Abrunden der Breite und - Höhe des Ausschnittsrechtecks hinunter auf den nächsten Wert eines - Vielfachen von 16 erreichen. - Wie früher bereits erklärt, wirst du beim Abschneiden das y-Offset - um die Hälfte der Differenz der alten und neuen Höhe erhöhen wollen, - sodass das daraus resultierende Video aus der Mitte des Frames genommen - wird. Und stelle wegen der Art, wie ein DVD-Video gesampelt wird, sicher, - dass das Offset eine gerade Zahl ist. (Verwende in der Tat - als eine - Regel - nie ungerade Werte für irgendwelche Parameter beim Abschneiden - oder Skalieren eines Videos) Wenn du dich beim Wegwerfen einiger extra - Pixel nicht wohl fühlst, ziehst du es stattdessen vor, das Video zu - skalieren. - Wir werden uns dies im unten stehenden Beispiel mal ansehen. - Du kannst den <option>cropdetect</option>-Filter sogar alles oben erwähnte - für dich erledigen lassen, da dieser einen optionalen Parameter - <option>round</option> besitzt, der standardmäßig gleich 16 ist. -</para> - -<para> - Pass auch auf "halbschwarze" Pixel an den Kanten auf. Stelle sicher, dass - du diese ebenfalls mit abschneidest oder du vergeudest dort Bits, wo sie - doch besser anderswo verwendet werden sollten. -</para> - -<para> - Nachdem nun alles gesagt ist, wirst du möglicherweise bei einem - Video landen, dessen Pixel nicht ganz 1.85:1 oder 2.35:1, aber ziemlich - nahe dran sind. Du könntest ein neues Seitenverhältnis manuell berechnen, - aber <application>MEncoder</application> bietet eine Option für - <systemitem class="library">libavcodec</systemitem> genannt - <option>autoaspect</option>, die das für dich erledigt. - Skaliere dieses Video auf keinen Fall hoch, um die Pixel abzugleichen - solange du keinen Festplattenplatz verschwenden willst. - Das Skalieren sollte beim Playback gemacht werden und der Player wird das - in der AVI gespeicherte Seitenverhältnis zur Bestimmung der besten - Auflösung verwenden. - Unglücklicherweise erzwingen nicht alle Player diese Auto-Skalierinformation, - und deshalb willst du vielleicht trotzdem neu skalieren. -</para> -</sect2> - - -<sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate"> -<title>Auswahl von Auflösung und Bitrate</title> - -<para> - Wenn du nicht vor hast, im Modus mit konstantem Quantisier zu encodieren, - musst du eine Bitrate auswählen. - Das Konzept der Bitrate ist denkbar einfach. - Sie ist die (mittlere) Anzahl Bits, die pro Sekunde zum Speichern des - Films verbraucht werden. - Normalerweise wird die Bitrate in Kilobit (1000 Bit) pro Sekunde gemessen. - Die Größe deines Films auf der Platte ist die Bitrate multipliziert mit der - Dauer des Films, plus einem kleinen "Overhead" (siehe zum Beispiel in der - Sektion über - <link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">den AVI-Container</link>). - Weitere Parameter wie Skalierung, Cropping, usw. werden die Dateigröße - <emphasis role="bold">nicht</emphasis> ändern, solange du nicht auch - die Bitrate veränderst! -</para> -<para> - Die Bitrate skaliert <emphasis role="bold">nicht</emphasis> proportional - zur Auflösung. - Dies bedeutet, eine Datei 320x240 mit 200 KBit/Sek wird nicht dieselbe - Qualität aufweisen wie der gleiche Film bei 640x480 und 800 KBit/Sek! - Dafür gibt es zwei Gründe: -<orderedlist> - <listitem><para> - <emphasis role="bold">Wahrnehmbar</emphasis>: du bemerkst - MPEG-Artefakte eher, wenn sie größer hochskaliert sind! - Artefakte erscheinen bei einer Skalierung von Blöcken (8x8). - Dein Auge wird in 4800 kleinen Blöcken nicht so leicht Fehler sehen - wie es welche in 1200 großen Blöcken sieht (vorausgesetzt du skalierst - beide auf Vollbild). - </para></listitem> - <listitem><para> - <emphasis role="bold">Theoretisch</emphasis>: Wenn du ein Bild - runterskalierst, aber nach wie vor die selbe Größe der (8x8) - Blöcke zur Frequenzraumtransformation verwendest, bewegst Du - mehr Daten in die Hochfrequenzbänder. - Grob gesagt, jedes Pixel enthält mehr des Details als es dies - zuvor tat. - Somit enthält dein herunterskaliertes Bild 1/4 der Information - in räumlichen Richtungen, es könnte immer noch einen hohen Anteil - Information im Frequenzbereich enthalten (vorausgesetzt dass die - hohen Frequenzen im originalen 640x480 Bild nicht ausgenutzt wurden). - </para></listitem> - </orderedlist> -</para> -<para> - Vergangene Leitfäden legten nahe, eine Bitrate und Auflösung zu wählen, - die auf eine "Bits pro Pixel"-Näherung basieren, dies ist jedoch im - allgemeinen aus oben genannten Gründen nicht gültig. - Eine bessere Schätzung scheint zu sein, dass Bitraten proportional zur - Quadratwurzel der Auflösung skalieren, sodass 320x240 und 400 KBit/Sek - vergleichbar mit 640x480 bei 800 KBit/Sek wären. - Dies wurde aber nicht mit theoretischer oder empirischer Strenge verifiziert. - Desweiteren ist es in Anbetracht der Tatsache, dass Filme in Bezug auf Rauschen, Details, - Bewegungsgrad usw. außerordentlich variieren, zwecklos, allgemeine Empfehlungen - für die Bits pro Diagonallänge (dem Analog zu Bits pro Pixel - unter Verwendung der Quadratwurzel) abzugeben. -</para> -<para> - So weit haben wir nun die Schwierigkeit der Wahl von Bitrate und - Auflösung diskutiert. -</para> - - -<sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute"> -<title>Berechnen der Auflösung</title> -<para> - Die folgenden Schritte werden dich in der Berechnung der Auflösung - deiner Encodierung anleiten, ohne das Video allzusehr zu verzerren, - indem verschiedene Typen von Informationen über das Quellvideo in - Betracht gezogen werden. - Zuerst solltest du die encodierte Auflösung berechnen: - <systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem> -<itemizedlist> -<title>wobwei:</title> -<listitem><para> - Wc und Hc die Breite und Höhe des zugeschnittenen Videos darstellen -</para></listitem> -<listitem><para> - ARa das angezeigte Seitenverhältnis ist, das üblicherweise 4/3 oder 16/9 beträgt -</para></listitem> -<listitem><para> - PRdvd das Pixelverhältnis der DVD ist, welches gleich 1.25=(720/576) für - PAL-DVDs und 1.5=(720/480) für NTSC-DVDs beträgt -</para></listitem> -</itemizedlist> -</para> - -<para> - Dann kannst du die X- und Y-Auflösung berechnen, gemäß eines gewisse Faktors - der Kompressionsqualität (CQ): - <systemitem>ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem> - und - <systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem> -</para> - -<para> - Okay, aber was ist der CQ? - Der CQ repräsentiert die Anzahl Bits pro Pixel und pro Frame der Encodierung. - Grob ausgedrückt, je größer der CQ, desto geringer die Wahrscheinlichkeit, - Encodierungsartefakte zu sehen. - Trotz allem, wenn du eine Zielgröße für deinen Film hast (1 oder 2 CDs zum Beispiel), - gibt es eine begrenzte Gesamtzahl an Bits, die du aufwenden kannst; deswegen ist es - notwendig, einen guten Kompromiss zwischen Komprimierbarkeit und Qualität zu suchen. -</para> - -<para> - Der CQ hängt von der Bitrate, der Effektivität des Videocodecs und der - Filmauflösung ab. - Um den CQ anzuheben, könntest du typischerweise den Film unter der Annahme - herunterskalieren, dass die Bitrate mit der Funktion der Zielgröße und der - Länge des Films berechnest, die ja konstant sind. - Mit MPEG-4 ASP-Codecs wie <systemitem class="library">XviD</systemitem> - und <systemitem class="library">libavcodec</systemitem>, resultiert ein CQ - unter 0.18 für gewöhnlich in einem ziemlich blockhaften Bild, weil nicht - genug Bits zum Codieren der Information jedes Macroblocks vorhanden sind. - (MPEG4, wie auch viele andere Codecs, gruppiert Pixel nach Blöcken verschiedener - Pixel, um das Bild zu komprimieren; sind nicht genügend Bits vorhanden, - werden die Kanten dieser Blöcke sichtbar.) - Es ist daher weise, einen CQ im Bereich von 0.20 bis 0.22 für einen 1 CD-Rip - und 0.26-0.28 für einen 2 CD-Rip mit Standard-Encodieroptionen zu nehmen. - Höherentwickelte Encodieroptionen wie die hier für - <link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link> - und - <link linkend="menc-feat-xvid-example-settings"><systemitem class="library">XviD</systemitem></link> - aufgelisteten sollten es möglich machen, dieselbe Qualität mit einem CQ im Bereich - von 0.18 bis 0.20 für einen 1 CD-Rip und 0.24 bis 0.26 für einen 2 CD-Rip zu erreichen. - Mit den MPEG-4 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 richtungsweisendes Maß ist, - da sie vom encodierten Inhalt abhängt. Ein CQ von 0.18 kann für einen - Bergman-Film recht hübsch aussehen, im Gegensatz zu einem Film wie - The Matrix, der jede Menge High-Motion-Szenen enthält. - Auf der anderen Seite ist es nutzlos, den CQ höher als 0.30 zu schrauben, - da du ohne spürbaren Qualitätsgewinn Bits vergeuden würdest. - Beachte ebenso, dass wie früher in diesem Handbuch bereits angemerkt, - niedrig auflösende Videos einen größeren CQ benötigen, um gut auszusehen - (im Vergleich z.B. zur DVD-Auflösung). -</para> -</sect3> - -</sect2> - -<sect2 id="menc-feat-dvd-mpeg4-filtering"> -<title>Filtern</title> - -<para> - Zu lernen, wie man <application>MEncoder</application>s Videofilter - verwendet, ist essentiell, um gute Encodierungen zu produzieren. - Jede Videoverarbeitung wird über Filter ausgeführt -- Ausschneiden, - Skalieren, Farbanpassung, Rauschentfernung, Scharfzeichnen, Deinterlacing, - telecine, inverses telecine und Deblocking, um nur ein paar davon aufzuzählen. - Zusammen mit der gewaltigen Zahl unterstützter Inputformate, ist die Vielfalt der - in <application>MEncoder</application> verfügbaren Filter eine seiner - Hauptvorteile im Vergleich zu ähnlichen Programmen. -</para> - -<para> - Filter werden in einer Kette über die Option -vf geladen: - - <screen>-vf filter1=Optionen,filter2=Optionen,...</screen> - - Die meisten Filter nehmen mehrere numerische, kommagetrennte - Optionen entgegen, jedoch variiert die Syntax der Optionen von - Filter zu Filter, also lies bitte die Manpage für Details - zu den Filtern, die du verwenden willst. -</para> - -<para> - Filter wirken auf das Video in der Reihenfolge ein, in der sie geladen werden. - Zum Beispiel wird folgende Kette: - - <screen>-vf crop=688:464:12:4,scale=640:464</screen> - - zuerst den Bereich 688x464 aus dem Bild schneiden mit der oberen, linken - Ecke bei (12,4) und danach das Ergebnis auf 640x464 herunter skalieren. -</para> - -<para> - Bestimmte Filter müssen zu oder nahe dem Anfang der Filterkette geladen - werden, um Vorteile aus den Informationen des Videodecoders zu ziehen, - die ansonsten durch andere Filter verloren gehen oder ungültig gemacht - würden. - Die wichtigsten Beispiele sind <option>pp</option> - (Nachbearbeitung (postprocessing), nur wenn es Deblock- oder - Dering-Operationen durchführt), <option>spp</option> (ein weiterer - Postprozessor zum Entfernen von MPEG-Artefakten), <option>pullup</option> - (umgekehrtes telecine) und <option>softpulldown</option> (zur Konvertierung - von soft telecine nach hard telecine). -</para> - -<para> - Im Allgemeinen solltest du den Film so wenig wie möglich Filtern, um - nahe an der originalen DVD-Quelle zu bleiben. Ausschneiden ist oft - notwendig (wie oben beschrieben), vermeide aber das Skalieren von Videos. - Obwohl das Herunterskalieren manchmal vorgezogen wird, um höhere Quantisierer - zu verwenden, wollen wir beide diese Dinge vermeiden: Erinnere dich daran, - dass wir von Anfang an beschlossen hatten, einen Kompromiss zwischen - Bits und Qualität zu schließen. -</para> - -<para> - Passe ebenso kein Gamma, Kontrast, Helligkeit, usw. an. Was auf deinem - Display gut aussieht, sieht auf anderen eventuell nicht gut aus. Diese - Anpassungen sollten nur im Playback vorgenommen werden. -</para> - -<para> - Eine Sache, die du vielleicht machen willst, ist, das Video durch einen sehr - feinen Entrauschfilter (Denoise) zu schicken, wie etwa <option>-vf hqdn3d=2:1:2</option>. - Nochmals, es geht darum, die Bits einer besseren Verwendung zuzuführen: Warum - Bits zum Encodieren des Rauschens verschwenden, wenn du dieses Rauschen auch - während des Playback entfernen kannst? - Die Parameter für <option>hqdn3d</option> zu erhöhen, wird überdies - die Komprimierbarkeit erhöhen, erhöhst du jedoch die Werte zu sehr, riskierst Du - eine Verringerung der Bildsichtbarkeit. Die oben vorgeschlagenen Werte - (<option>2:1:2</option>) sind ziemlich konservativ; du solltest dich frei - fühlen, mit höheren Werten herumzuexperimentieren und die Ergebnisse - selbst zu beobachten. -</para> - -</sect2> - - -<sect2 id="menc-feat-dvd-mpeg4-interlacing"> -<title>Interlacing und Telecine</title> - -<para> - Nahezu alle Filme sind bei 24 fps aufgenommen. Weil NTSC 30000/1001 fps entspricht, - müssen mit diesen 24 fps Videos einige Verarbeitungen durchgeführt werden, - um sie mit der korrekten NTSC-Framerate laufen zu lassen. Der Prozess wird 3:2 - pulldown genannt, allgemein telecine zugeordnet (weil pulldown des öfteren - während des telecine-Prozesses angewandt wird), und naiv so beschrieben, - dass er durch Verlangsamung des Films auf 24000/1001 fps und dem - Wiederholen jeden vierten Frames arbeitet. -</para> - -<para> - Keine spezielle Verarbeitung ist jedoch bei einem Video für PAL-DVDs - durchzuführen, das bei 25 fps läuft. (Technisch gesehen kann PAL telecined - werden, 2:2 pulldown genannt, dies ist jedoch in der Praxis nicht von Bedeutung.) - Der 24 fps Film wird einfach mit 25 fps abgespielt. Das Resultat ist, dass - der Film ein wenig schneller abläuft, doch solange du kein Alien bist, wirst - du möglicherweise keinen Unterschied wahrnehmen. - Die meisten PAL-DVDs haben pitch-korrigiertes Audio, dadurch hören sie sich - bei 25 fps abgespielt korrekt an, obwohl der Audiotrack (und infolgedessen der - gesamte Film) eine 4% kürzere Abspielzeit hat wie NTSC-DVDs. -</para> - -<para> - Weil das Video in einer PAL-DVD nicht verändert wurde, musst du dich nicht - viel um die Framerate sorgen. Die Quelle ist 25 fps und dein Rip wird 25 - fps haben. Wenn du jedoch einen NTSC-DVD-Film rippst, musst du eventuell - umgekehrtes telecine anwenden. -</para> - -<para> - Für mit 24 fps aufgenommene Filme ist das Video auf der NTSC-DVD entweder telecined - 30000/1001 oder hat andernfalls progressive 24000/1001 fps und es ist vorgesehen, - on-the-fly vom DVD-Player telecined zu werden. Auf der anderen Seite sind TV-Serien - üblicherweise nur interlaced, nicht telecined. Dies ist keine feste Regel: Einige - TV-Serien sind interlaced (wie etwa Buffy die Vampirjägerin), wogegen andere - eine Mixtur aus progressive und interlaced sind (so wie Angel oder 24) - wers kennt :). -</para> - -<para> - Es wird strengstens empfohlen, die Sektion über - <link linkend="menc-feat-telecine">Wie mit telecine und interlacing in NTSC-DVDs umgehen</link> - durchzulesen, um den Umgang mit den verschiedenen Möglichkeiten zu lernen. -</para> - -<para> - Wenn du aber hauptsächlich nur Filme rippst, gehst du wahrscheinlich entweder - mit 24 fps progressivem oder telecined Video um, in welchem Falle du - den Filter <option>pullup</option> mittels <option>-vf pullup,softskip</option> - verwenden kannst. -</para> - -</sect2> - -<sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced"> -<title>Interlaced Video encodieren</title> - -<para> - Ist der Film, den du encodieren willst, interlaced (NTSC-Video oder - PAL-Video), wirst du wählen müssen, ob du ihn deinterlacen willst - oder nicht. - Während das Deinterlacing deinen Film zwar auf progressiven Scan-Displays - wie Computermonitoren und Projektoren verwendbar macht, wird dich dies - doch etwas kosten: Die Feldrate von 50 oder 60000/1001 Feldern pro Sekunde - wird auf 25 oder 30000/1001 Frames pro Sekunde halbiert und annähernd die - Hälfte der Informationen in deinem Film geht während Szenen mit - signifikanter Bewegung verloren. -</para> - -<para> - Deswegen wird empfohlen, wenn du aus Gründen hochqualitativer - Archivierung encodierst, kein Deinterlacing durchzuführen. - Du kannst den Film immer noch beim Playback deinterlacen, - wenn du ihn auf progressiven Scan-Geräten anzeigst. Und zukünftige - Player werden in der Lage sein, auf volle Feldrate zu - deinterlacen, mit Interpolation auf 50 oder 60000/1001 komplette - Frames pro Sekunde aus interlaced Video heraus. -</para> - -<para> - Spezielle Sorgfalt solltest du bei der Arbeit mit interlaced Video walten lassen: -</para> - -<orderedlist> -<listitem><para> - Ausschneidehöhe und y-Offset müssen Vielfache von 4 sein. -</para></listitem> -<listitem><para> - Jedes vertikale Skalieren muss im interlaced Modus durchgeführt werden. -</para></listitem> -<listitem><para> - Nachbearbeitungs- (postprocessing) und Rauschunterdrückungsfilter (denoising) - funktionieren eventuell nicht wie erwartet, wenn du nicht speziell darauf achtest, - dass sie zu einem Zeitpunkt nur ein Feld verarbeiten, und sie können das Video - kaputt machen, wenn sie inkorrekt angewendet werden. -</para></listitem> -</orderedlist> - -<para> - Mit diesen Dingen im Kopf, hier das erste Beispiel: -</para> -<screen> - mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \ - vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224 -</screen> -<para> - Beachte die Optionen <option>ilme</option> und <option>ildct</option>. -</para> -</sect2> - - -<sect2 id="menc-feat-dvd-mpeg4-av-sync"> -<title>Anmerkungen zur Audio-/Videosynchronisation</title> -<para> - <application>MEncoder</application>s Algorithmen der Audio-/Videosynchronisation - wurden mit der Intention entwickelt, Dateien mit kaputter Sychronisation wieder herzustellen. - In einigen Fällen können unnötiges Überspringen und Duplizieren - von Frames und möglicherweise leichte A/V-Desynchronisation verursachen, auch wenn sie - mit dem richtigen Input verwendet werden - (gewiss, Probleme mit A/V-Synchronisation treffen nur zu, wenn du den Audiotrack während - der Transcodierung des Videos verarbeitest oder kopierst, wozu auch nachhaltig - ermutigt wird). - Hierfür müsstest du mit der Option <option>-mc 0</option> in die - Grundeinstellung der A/V-Synchronisation wechseln oder diese in deine - <systemitem>~/.mplayer/mencoder</systemitem> Konfigurationsdatei eintragen, - solange du ausschließlich mit guten Quellen arbeitest (DVD, TV-Capture, - hochqualitativen MPEG-4-Rips usw.) und mit nicht-kaputten ASF/RM/MOV-Dateien. -</para> -<para> - Wenn du dich überdies gegen merkwürdige Frameübersprünge und -duplikationen - absichern willst, kannst du beides verwenden, <option>-mc 0</option> - und <option>-noskip</option>. - Dies verhindert <emphasis>jede</emphasis> A/V-Synchronisation und kopiert die Frames - eins-zu-eins, somit kannst du sie nicht verwenden, falls du irgendwelche Filter - verwendest, die unvorhersagbar Frames hinzufügen oder streichen oder falls - deine Input-Datei eine variable Framerate besitzt! - Deshalb wird eine allgemeine Anwendung von <option>-noskip</option> nicht empfohlen. -</para> -<para> - Die von <application>MEncoder</application> unterstützte sogenannte - "3-pass" Audioencodierung soll laut Berichten A/V-Desynchronisation - verursachen. - Dies geschieht definitiv dann, wenn sie in Verbindung mit bestimmten Filtern - verwendet wird, daher wird <emphasis>nicht</emphasis> empfohlen, den - 3-pass-Audio-Modus anzuwenden. - Dieses Feature ist nur aus Kompatibilitätsgründen übrig geblieben und für - erfahrene Benutzer, die wissen, wann es sicher anzuwenden ist und wann nicht. - Wenn du zuvor noch nie etwas vom 3-pass-Modus gehört hast, vergiss, dass wir es je - erwähnt haben! -</para> -<para> - Es gab auch Berichte über A/V-Desynchronisation, wenn - mit <application>MEncoder</application> von stdin encodiert wurde. - Lass das bleiben! Verwende immer eine Datei oder ein CD/DVD/usw-Laufwerk - als Input. -</para> -</sect2> - -<sect2 id="menc-feat-dvd-mpeg4-codec"> -<title>Auswahl des Videocodecs</title> - -<para> - Welcher Videocodec die beste Wahl ist, hängt von mehreren Faktoren - wie Größe, Qualität, Streambarkeit, Brauchbarkeit und Popularität, manche - davon weitgehend vom persönlichen Geschmack und technischen - Randbedingungen ab. -</para> -<itemizedlist> - <listitem><para> - <emphasis role="bold">Kompressionseffizienz</emphasis>: - Es ist leicht zu verstehen, dass die meisten Codecs der neueren Generation - dafür gemacht wurden, Qualität und Komprimierung zu verbessern. - Deshalb behauptet der Autor dieses Handbuches und viele andere Leute, dass - du nichts verkehrt machen kannst, - <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'> - <para>Sei trotzdem vorsichtig: MPEG-4 AVC-Videos in DVD-Auflösung zu - decodieren erfordert einen schnellen Rechner (z.B. einen Pentium 4 - über 1.5Ghz oder einen Pentium M über 1Ghz). - </para></footnote> - wenn du MPEG-4 AVC-Codecs wie - <systemitem class="library">x264</systemitem> anstatt MPEG-4 ASP-Codecs - wie <systemitem class="library">libavcodec</systemitem> MPEG-4 oder - <systemitem class="library">XviD</systemitem> wählst. - (Zukunftsorientierte Codec-Entwickler interessiert eventuell Michael - Niedermayers Meinung - "<ulink url="http://guru.multimedia.cx/?p=10">why MPEG4-ASP sucks</ulink>" - zu lesen.) - Ebenso solltest du mit MPEG-4 ASP eine bessere Qualität erhalten als mit - MPEG-2-Codecs. - </para> - <para> - Allerdings können neuere Codecs, die noch stark in der Entwicklung stecken, - unter unentdeckten Bugs leiden, die die Encodierung ruinieren können. - Dies nimmt man schlicht in Kauf, wenn man "bleeding edge"-Technologie - verwendet. - </para> - <para> - Außerdem erfordert der Umgang mit einem neuen Codec und sich mit dessen Optionen - vertraut zu machen eine Zeit, bis du weißt, was alles anzupassen - ist, um die erhoffte Bildqualität zu erreichen. - </para></listitem> - - <listitem><para> - <emphasis role="bold">Hardware-Kompatibilität</emphasis>: - Gewöhnlich dauert es bei neuen standalone Video-Playern lange, bis der - Support für die neuesten Videocodecs eingebunden ist. - Als ein Ergebnis unterstützen die meisten nur MPEG-1 (wie VCD, XVCD - und KVCD), MPEG-2 (wie DVD, SVCD und KVCD) und MPEG-4 ASP (wie DivX, - LMP4 von <systemitem class="library">libavcodec</systemitem> und - <systemitem class="library">XviD</systemitem>) - (Vorsicht: Im Allgemeinen werden nicht alle MPEG-4 ASP-Features unterstützt). - Sieh bitte in den technischen Spezifikationen deines Players nach (falls - welche vorhanden sind) oder google nach mehr Informationen. - </para></listitem> - - <listitem><para> - <emphasis role="bold">Beste Qualität pro Encodierzeit</emphasis>: - Codecs, die es schon einige Zeit gibt (wie - <systemitem class="library">libavcodec</systemitem> MPEG-4 und - <systemitem class="library">XviD</systemitem>), sind gewöhnlich heftig - mit allen möglichen intelligenten Algorithmen und SIMD Assembly-Code optimiert. - Das sind sie deshalb, weil sie darauf abzielen, das beste Verhältnis von Qualität - pro Encodierzeit zu liefern. - Jedoch haben sie oft einige sehr fortschrittliche Optionen, die, - wenn aktiviert, das Encodieren bei marginalem Gewinn wirklich langsam - machen. - </para> - <para> - Wenn du es auf die Wahnsinnsgeschwindigkeit abzielst, solltest du - in der Nähe der Standardeinstellungen des Videocodecs bleiben - (obwohl du ruhig weitere Optionen ausprobieren solltest, die in - anderen Sektionen dieses Handbuchs angesprochen werden). - </para> - <para> - Vielleicht überlegst du auch, einen Codec auszuwählen, der mit - Multi-Threading klarkommt, was nur für Benutzer von Rechnern - mit mehreren CPUs von Nutzen ist. - <systemitem class="library">libavcodec</systemitem> MPEG-4 erlaubt - dies zwar, aber die Geschwindigkeitsgewinne sind begrenzt und es gibt - einen leicht negativen Effekt in Bezug auf die Bildqualität. - Die Multi-Thread-Encodierung von <systemitem class="library">XviD</systemitem>, - durch die Option <option>threads</option> aktiviert, kann zum Ankurbeln - der Encodiergeschwindigkeit - um in typischen Fällen etwa 40-60% - - bei wenn überhaupt geringer Bildverschlechterung verwendet werden. - <systemitem class="library">x264</systemitem> erlaubt ebenfalls - Multi-Thread-Encodierung, was 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 wirken, ziehen einige Leute - <systemitem class="library">XviD</systemitem> - oder <systemitem class="library">libavcodec</systemitem> MPEG-4 dem - <systemitem class="library">x264</systemitem> vor. - </para> - <para> - Du solltest dir dein eigenes Urteil bilden; lass dich nicht von Leuten - vollquasseln, die auf den einen Codec schwören. - Nimm ein paar Beispiel-Clips von Originalquellen und vergleiche die - verschiedenen Encodier-Optionen und Codecs, um den einen zu finden, mit - dem du am besten klarkommst. - Der beste Codec ist der, den du beherrschst und der in deinen Augen - auf deinem Display am besten aussieht. - <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'> - <para>Dieselbe Encodierung kann auf dem Monitor eines anderen vollkommen - anders aussehen oder wenn sie von einem anderen Decoder abgespielt wird, - also mach deine Encodierungen zukunftssicher indem du sie unter verschiedenen - Setups ablaufen lässt.</para></footnote>! - </para></listitem> -</itemizedlist> -<para> - Sieh dazu bitte in der Sektion - <link linkend="menc-feat-selecting-codec">Auswahl der Codecs und Containerformate</link> - nach der Liste der unterstützten Codecs. -</para> -</sect2> - -<sect2 id="menc-feat-dvd-mpeg4-audio"> -<title>Audio</title> - -<para> - Audio ist ein leichter zu lösendes Problem: Wenn du Wert auf Qualität legst, - lass es einfach so wie es ist. - Gerade AC3 5.1 Streams sind meist 448Kbit/s und jedes Bit wert. - Möglicherweise gerätst du in Versuchung, Audio in hochwertiges Vorbis - umzuwandeln, aber nur weil du heute keinen A/V-Receiver für AC3-pass-through - besitzt, bedeutet dies nicht, dass du nicht morgen doch einen hast. - Halte deine DVD-Rips zukunftssicher, indem du den AC3-Stream beibehältst. - Du behältst den AC3-Stream entweder, indem du ihn - <link linkend="menc-feat-mpeg4">während der Encodierung</link> direkt in den - Video-Stream kopierst. - Du kannst den AC3-Stream aber auch extrahieren, um ihn in Container wie NUT - oder Matroska zu muxen. - <screen>mplayer <replaceable>source_file.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>sound.ac3</replaceable></screen> - dumpt Audiotrack Nummer 129 aus der Datei <replaceable>source_file.vob</replaceable> - (NB: DVD-VOB-Dateien verwenden gewöhnlich andere Audionummerierungen, - was bedeutet, dass der VOB-Audiotrack 129 der 2-te Audiotrack der Datei ist) - in die Datei <replaceable>sound.ac3</replaceable>. -</para> - -<para> - Aber manchmal hast du wirklich keine andere Wahl als den Sound weiter zu - komprimieren, sodass mehr Bits fürs Video aufgewendet werden können. - Die meisten Leute entscheiden sich für eine Audiokomprimierung mit MP3- oder - Vorbis-Audiocodecs. - Wobei letzterer ein sehr platzsparender Codec ist, MP3 wird von Hardware-Playern - besser unterstützt, wobei sich dieser Trend auch ändert. -</para> - -<para> - Verwende <emphasis>nicht</emphasis> <option>-nosound</option> beim Encodieren - einer Datei, die Audio enhält, sogar wenn du Audio später separat - encodierst und muxt. - Zwar kann es im Idealfall manchmal funktionieren, wenn du <option>-nosound</option> - verwendest, wahrscheinlich um einige Probleme in deinen - Encodier-Befehlszeileneinstellungen zu verbergen. - In anderen Worten, einen Soundtrack während dem Encodieren zu haben, stellt sicher, - vorausgesetzt du siehst keine Meldungen wie - <quote>Too many audio packets in the buffer</quote>, dass du in der Lage sein - wirst, eine korrekte Synchronisation zu erhalten. -</para> - -<para> - Du brauchst <application>MEncoder</application> zur Verarbeitung des Sounds. - Du kannst zum Beispiel den originalen Soundtrack während dem Encodieren mit - <option>-oac copy</option> kopieren oder ihn mittels - <option>-oac pcm -channels 1 -srate 4000</option> in eine "leichte" - 4 kHz Mono WAV-PCM konvertieren. - Anderenfalls wird er - in einigen Fällen - eine Videodatei erzeugen, die - nicht mit Audio synchron läuft. - So was kommt vor, wenn die Anzahl der Videoframes in der Quelldatei nicht - mit der Gesamtlänge der Audioframes zusammenpasst oder immer dann, wenn - Unstetigkeiten/Splices vorhanden sind, wo Audioframes oder extra Audioframes - fehlen. - Der korrekte Weg, mit dieser Art Problem umzugehen, ist Stille (silence) - einzufügen oder Audio an diesen Punkten wegzuschneiden. - Seis drum, <application>MPlayer</application> kann das nicht, also wenn du - AC3-Audio demuxt und es in einer separaten Anwendung encodierst (oder - es mit <application>MPlayer</application> in eine PCM dumpst), die Splices - bleiben inkorrekt und der einzige Weg sie zu korrigieren ist, Videoframes - an diesem Splice zu streichen bzw. zu duplizieren. - Solange <application>MEncoder</application> Audio beim Encodieren des - Videos sieht, kann er dieses Streichen/Duplizieren erledigen, was - gewöhnlich OK ist, da es bei voller Schwärze/Szenenwechsel stattfindet, - aber wenn <application>MEncoder</application> Audio nicht erkennen kann, - wird er einfach alle Frames so wie sie ankommen verarbeiten und sie werden - einfach nicht zum endgültigen Audiostream passen, wenn du beispielsweise - deinen Audio- und Videotrack in eine Matroska-Datei mergst. -</para> - -<para> - Zuallererst wirst du den DVD-Sound in eine WAV-datei konvertieren müssen, die - der Audiocodec als Input nutzen kann. - Zum Beispiel: - <screen>mplayer <replaceable>source_file.vob</replaceable> -ao pcm:file=<replaceable>destination_sound.wav</replaceable> -vc dummy -aid 1 -vo null</screen> - wird den zweiten Audiotrack aus der Datei <replaceable>source_file.vob</replaceable> - in die Datei <replaceable>destination_sound.wav</replaceable> dumpen. - Vielleicht willst du den Sound vor dem Encodieren normalisieren, da - DVD-Audiotracks gemeinhin bei niedriger Lautstärke aufgenommen sind. - Du kannst beispielsweise das Tool <application>normalize</application> verwenden, - das in den meisten Distributionen zur Verfügung steht. - Wenn du Windows nutzt, kann ein Tool wie <application>BeSweet</application> - denselben Job erledigen. - Du wirst entweder nach Vorbis oder MP3 komprimieren. - Zum Beispiel: - <screen>oggenc -q1 <replaceable>destination_sound.wav</replaceable></screen> - wird <replaceable>destination_sound.wav</replaceable> mit - der Encodierqualität 1 encodieren, was annähernd 80Kb/s ergibt und - die Minimalqualität darstellt, mit der du encodieren solltest, wenn du - Wert auf Qualität legst. - Nimm bitte zur Kenntnis, dass 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 in der Lage, - Audio und Video nativ in MPEG- und AVI-Containerformate auszugeben. - Zum Beispiel: - <screen>mencoder -oac copy -ovc copy -o <replaceable>output_movie.avi</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable></screen> - würde die Video-Datei <replaceable>input_video.avi</replaceable> - und die Audio-Datei <replaceable>input_audio.mp2</replaceable> - in die AVI-Datei <replaceable>output_movie.avi</replaceable> mergen. - Dieser Befehl funktioniert mit MPEG-1 Layer I, II und III Audio (eher - bekannt als MP3), WAV und auch mit ein paar weiteren Audioformaten. -</para> - -<para> - 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> - wird das selbe machen, wie das obere Beispiel, außer dass der - Output-Container ASF sein wird. - Bitte nimm zur Kenntnis, dass dieser Support hochexperimentell ist - (aber von Tag zu Tag besser wird) und nur funktionieren wird, wenn du - <application>MPlayer</application> mit aktiviertem Support für - <systemitem class="library">libavformat</systemitem> kompiliert - hast (was meint, dass eine Pre-Packaged Binary Version in den meisten - Fällen nicht funktionieren wird). -</para> - - -<sect3 id="menc-feat-dvd-mpeg4-muxing-filter-issues"> -<title>Verbessern der Mux- und A/V-Synchronisationszuverlässigkeit</title> -<para> - Es kann vorkommen, dass du ernsthafte A/V-Synchronisationsprobleme hast während - du versuchst, deine Video- und einige Audiotracks zu muxen, wobei es nichts - ändert, wenn du das Audiodelay anpasst, du bekommst nie eine korrekte - Synchronisation zu Stande. - Dies kann vorkommen, wenn du manche Videofilter verwendest, die einige Frames - weglassen oder duplizieren, wie etwa die inverse telecine-Filter. - ich kann dich nur dazu ermutigen, den <option>harddup</option>-Videofilter - ans Ende der Filterkette anzuhängen, um solcherlei Problemen aus dem Weg - zu gehen. -</para> - -<para> - Ohne <option>harddup</option> verlässt sich <application>MEncoder</application>, - wenn er einen Frame duplizieren will, darauf, dass der Muxer eine Marke auf den - Container setzt, sodass der letzte Frame nochmals angezeigt wird, um - während des Schreibens des aktuellen Frames synchron zu bleiben. - Mit <option>harddup</option> wird <application>MEncoder</application> - statt dessen einfach den zuletzt angezeigten Frame nochmal in die Filterkette - einschieben. - Dies bedeutet, dass der Encoder <emphasis>exakt</emphasis> denselben Frame - zweimal entgegen nimmt und komprimiert. - Dies ergibt eine etwas größere Datei, verursacht jedoch keine Probleme - beim Demuxen oder Remuxen in ein anderes Containerformat. -</para> - -<para> - Du kommst auch nicht um den Einsatz von <option>harddup</option> im - Zusammenhang mit Containerformaten herum, die nicht allzu fest mit - <application>MEncoder</application> verlinkt sind, wie etwa diejenigen, - welche von <systemitem class="library">libavformat</systemitem> unterstützt - werden, der keine Frameduplikation auf Container-Level unterstützt. -</para> -</sect3> - - -<sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations"> -<title>Limitierungen des AVI-Containers</title> -<para> - Obwohl es das am breitesten unterstützte Containerformat nach MPEG-1 ist, - besitzt AVI auch einige gravierende Nachteile. - Der vielleicht offensichtlichste ist der Overhead. - Für jeden Block der AVI-Datei werden 24 Byte auf Header und Indizes - verschwendet. - Dies heißt übersetzt etwas mehr als 5 MB pro Stunde oder 1-2.5% - Overhead für einen 700 MB Film. Das sieht nicht nach viel aus, könnte aber - die Differenz zwischen einem Video mit 700 KBit/Sek oder 714 KBit/Sek - bedeuten, und jedes bisschen mehr an Qualität zählt. -</para> - -<para> - Zu dieser schockierenden Ineffizienz kommen bei AVI noch folgende - wesentlichen Einschränkungen: -</para> - -<orderedlist> -<listitem> -<para> - Nur Inhalt mit festen fps kann gespeichert werden. Dies ist insbesondere - dann einschränkend, wenn das Originalmaterial, das du encodieren willst, - gemischter Inhalt ist, zum Beispiel ein Mix aus NTSC-Video und - Filmmaterial. - Eigentlich gibt es Hacks, die es ermöglichen, Inhalt mit gemischter - Framerate in einer AVI unterzubringen, diese vergrößern jedoch den - (ohnehin großen) Overhead fünffach oder mehr und sind somit ungeeignet. -</para> -</listitem> -<listitem> -<para> - Audio in AVI-Dateien muss entweder konstante Bitrate (CBR) oder - konstante Framegröße haben (also alle Frames decodieren zur selben Anzahl - Samples). - Unglücklicherweise erfüllt Vorbis, der effektivste Codec, keine dieser - Anforderungen. - Deshalb wirst du einen weniger effizienten Codec wie MP3 oder AC3 verwenden - müssen, wenn du planst, einen Film in AVI zu speichern. -</para> -</listitem> -</orderedlist> - -<para> - Nachdem ich nun all dies erzählt habe, muss ich anmerken, momentan - unterstützt <application>MEncoder</application> keinen Output mit - variablen fps oder Vorbis-Encodierung. - Deswegen magst du dies nicht als Einschränkung ansehen, falls - <application>MEncoder</application> das einzige Tool ist, das du - nutzt, um deine Ecodierungen zu produzieren. - Es ist dennoch möglich, <application>MEncoder</application> nur zur - Videoencodierung zu verwenden und danach externe Tools, um Audio - zu encodieren und in ein anderes Containerformat zu muxen. -</para> -</sect3> - -<sect3 id="menc-feat-dvd-mpeg4-muxing-matroska"> -<title>Muxen in den Matroska-Container</title> -<para> - Matroska ist ein freies, offenes Containerformat, das darauf abzielt, - eine Menge erweiterter Features bereitzustellen, mit denen ältere Container - wie AVI nicht umgehen können. - Zum Beispiel unterstützt Matroska Audioinhalt mit variabler Bitrate (VBR), - variable Frameraten (VFR), Kapitel, Dateianhänge, - Fehlererkennung Error Detection Code (EDC) und modern A/V-Codecs wie "Advanced Audio - Coding" (AAC), "Vorbis" oder "MPEG-4 AVC" (H.264), so gut wie nichts - womit AVI etwas anfangen kann. -</para> - -<para> - Die zum Erzeugen von Matroska-Dateien erforderlichen Tools werden - zusammen <application>mkvtoolnix</application> genannt und stehen - für die meisten Unix-Plattformen wie auch <application>Windows</application> - zur Verfügung. - Weil Matroska ein offener Standard ist, findest du vielleicht andere - Tools, die sich besser für dich eignen, aber da mkvtoolnix das am meisten - Verbreitete ist und von Matroska selbst unterstützt wird, werden wir nur - dessen Anwendung einbeziehen. -</para> - -<para> - Möglicherweise der einfachste Weg, mit Matroska anzufangen, ist - <application>MMG</application> zu verwenden, das grafische Frontend, - das mit <application>mkvtoolnix</application> daherkommt, und dem - <ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guide to mkvmerge GUI (mmg)</ulink> - zu folgen. -</para> - -<para> - Du kannst Audio und Video-Dateien auch per Befehlszeile muxen: - <screen>mkvmerge -o <replaceable>output.mkv</replaceable> <replaceable>input_video.avi</replaceable> <replaceable>input_audio1.mp3</replaceable> <replaceable>input_audio2.ac3</replaceable></screen> - würde die Video-Datei <replaceable>input_video.avi</replaceable> - und die zwei Audio-Dateien <replaceable>input_audio1.mp3</replaceable> - und <replaceable>input_audio2.ac3</replaceable> in die Matroska-Datei - <replaceable>output.mkv</replaceable> mergen. - Matroska, wie zuvor beschrieben, ist in der Lage, noch viel mehr als - das zu tun, wie etwa multiple Audiotracks (inklusive Feintuning der - Audio-/Videosynchronisation), Kapitel, Untertitel, Splitting, usw... - Sieh bitte in den Dokumentationen dieser Anwendungen nach mehr Details. -</para> - -</sect3> - -</sect2> - -</sect1> - -<sect1 id="menc-feat-telecine"> -<title>Wie mit telecine und interlacing in NTSC-DVDs umgehen</title> - -<sect2 id="menc-feat-telecine-intro"> -<title>Einführung</title> -<formalpara> -<title>Was ist telecine?</title> -<para> - Wenn du nicht viel von dem verstehst, was in diesem Dokument beschrieben wird, lies den - <ulink url="http://en.wikipedia.org/wiki/Telecine">Wikipedia-Artikel über Telecine</ulink>. - Dies ist eine verständliche und einigermaßen umfassende - Beschreibung dessen, was telecine ist. -</para></formalpara> - -<formalpara> -<title>Eine Anmerkung zu Zahlen</title> -<para> - Viele Dokumente, einschließlich des oben verlinkten Handbuchs, beziehen - sich auf den Wert Felder pro Sekunde von NTSC-Video als 59.94 und den - korrespondierenden Frames pro Sekunde als 29.97 (für telecined und - interlaced) und 23.976 (für progressiv). Zur Vereinfachung runden - manche dieser Dokumente sogar auf 60, 30 und 24 auf. -</para></formalpara> - -<para> - Streng genommen sind alle diese Zahlen Näherungswerte. Das schwarz/weiße - NTSC-Video war exakt 60 Felder pro Sekunde, später wurde jedoch 60000/1001 - gewählt, um die Farbdaten anzupassen, solange man gleichzeitig - zu Schwarz/weiß-Fernsehen kompatibel blieb. Digitales NTSC-Video - (so wie auf einer DVD) hat ebenfalls 60000/1001 Felder pro Sekunde. Hieraus - wird interlaced und telecined Video als 30000/1001 Frames pro Sekunde - enthaltend abgeleitet; progressive Video hat 24000/1001 Frames pro Sekunde. -</para> - -<para> - Ältere Versionen der <application>MEncoder</application>-Dokumentation - und viele archivierten Posts in Mailing-Listen beziehen sich auf 59.94, - 29.97 und 23.976. - Alle <application>MEncoder</application>-Dokumentationen wurden insofern - aktualisiert, dass sie fraktionale Werte verwenden, und du solltest dies - auch tun. -</para> - -<para> - <option>-ofps 23.976</option> ist inkorrekt. - <option>-ofps 24000/1001</option> sollte statt dessen benutzt werden. -</para> - -<formalpara> -<title>Wie telecine angewandt wird</title> -<para> - Jedes Video, das zur Anzeige auf einem NTSC-Fernseh-Set vorgesehen ist, - muss 60000/1001 Felder pro Sekunde haben. Für TV-Filme und Shows - hergestellt sind sie häufig direkt mit 60000/1001 Feldern pro Sekunde - aufgenommen, die Mehrheit der Kinofilme jedoch mit 24 oder 24000/1001 - Frames pro Sekunde. Wenn cinematische Movie-DVDs gemastert werden, - wird das Video danach fürs Fernsehen mittels eines telecine genannten - Prozesses konvertiert. -</para></formalpara> - -<para> - Auf einer DVD wird das Video eigentlich nie als 60000/1001 Felder - pro Sekunde abgelegt. Für ein Video, das ursprünglich 60000/1001 war, - wird jedes Feldpaar zu einem Frame kombiniert, was dann 30000/1001 - Frames pro Sekunde ergibt. Hardware-DVD-Player lesen dann ein im - Videostream eingebettetes Kennzeichen aus, um zu bestimmen, ob die gerade - oder ungerade nummerierten Zeilen das erste Feld formen sollen. -</para> - -<para> - Üblicherweise bleibt ein Inhalt mit 24000/1001 Frames pro Sekunde - so wie er ist, wenn er für eine DVD encodiert wird, und der DVD-Player - muss das Telecining on-the-fly bewerkstelligen. Manchmal jedoch wird das - Video telecined <emphasis>bevor</emphasis> es auf der DVD gespeichert wird; - selbst wenn es ursprünglich 24000/1001 Frames pro Sekunde war, wird es - 60000/1001 Felder pro Sekunde. Wenn es auf der DVD gespeichert wird, - werden Feldpaare zu 30000/1001 Frames pro Sekunde kombiniert. -</para> - -<para> - Wenn man das aus 60000/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 - geradzahlig nummerierten Zeilen) einen Moment zur Zeit 1/(60000/1001) Sekunden - später als das andere repräsentiert. Spielt man ein interlaced Video auf - einem Computer ab, sehen beide hässlich aus, weil der Monitor eine höhere - Auflösung besitzt und weil das Video Frame für Frame anstatt Feld für Feld - angezeigt wird. -</para> - -<itemizedlist> -<title>Anmerkungen</title> -<listitem><para> - Dieser Abschnitt gilt nur für NTSC-DVDs und nicht für PAL. - </para></listitem> -<listitem><para> - Die <application>MEncoder</application>-Beispielzeilen überall im - Dokument sind <emphasis role="bold">nicht</emphasis> zum - eigentlichen Gebrauch vorgesehen. Sie sind schlicht das bloße Minimum, - das zum Encodieren der betreffenden Videokategorie benötigt wird. - Wie mache ich gute DVD-Rips oder wie feintune ich - <systemitem class="library">libavcodec</systemitem> auf maximale - Qualität gehören nicht zum Umfang dieses Dokuments. - </para></listitem> -<listitem><para> - Es gibt ein paar Fußnoten speziell für dieses Handbuch, die so ähnlich - verlinkt sind: - <link linkend="menc-feat-telecine-footnotes">[1]</link> - </para></listitem> -</itemizedlist> -</sect2> - -<sect2 id="menc-feat-telecine-ident"> -<title>Wie kann man sagen, welchen Typ Video man hat</title> - -<sect3 id="menc-feat-telecine-ident-progressive"> -<title>Progressiv</title> -<para> - Progressive Video wurde ursprünglich mit 24000/1001 fps gefilmt und - ohne Änderung auf der DVD abgespeichert. -</para> - -<para> - Wenn du eine progressive DVD in <application>MPlayer</application> abspielst, - wird <application>MPlayer</application> folgende Zeile ausgeben, sobald - das Abspielen des Films beginnt: - - <screen> demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.</screen> - - Von diesem Punkt an vorwärts sollte demux_mpg nie erzählen, es finde - "30000/1001 fps NTSC content." -</para> - -<para> - Wenn du progressives Video ankuckst, solltest du nie irgendein - Interlacing sehen. Sei trotzdem vorsichtig, weil manchmal ein winziges - bisschen telecine dort hineingemischt wurde, wo du es nicht erwartest. - Ich bin TV-Serien-DVDs begegnet, die eine Sekunde telecine bei jedem - Szenenwechsel haben oder an extrem zufälligen Stellen. Ich hatte mir einmal - eine DVD angesehen, die eine progressive erste Hälfte besaß, und die - zweite Hälfte war telecined. Willst du<emphasis>wirklich</emphasis> - gründlich sein, kannst du den kompletten Film scannen: - - <screen>mplayer dvd://1 -nosound -vo null -benchmark</screen> - - Das Verwenden von <option>-benchmark</option> veranlasst - <application>MPlayer</application>, den Film so schnell er es nur kann - abzuspielen; dies dauert je nach Hardware trotzdem noch eine - Weile. Jedesmal wenn demux_mpg einen Frameratenwechsel meldet, wird dir - die Zeile unmittelbar darüber die Zeit zeigen, bei welcher der Wechsel - auftrat. -</para> - -<para> - Manchmal wird progressive Video auf DVDs - "soft telecine" zugeordnet, weil es dazu vorgesehen ist, - vom DVD-Player telecined zu werden. -</para> -</sect3> - -<sect3 id="menc-feat-telecine-ident-telecined"> -<title>Telecined</title> -<para> - Telecined Video war ursprünglich mit 24000/1001 aufgenommen, wurde aber - telecined, <emphasis>bevor</emphasis> es auf die DVD geschrieben wurde. -</para> - -<para> - <application>MPlayer</application> meldet keine (nie) - Frameratenwechsel, wenn er telecined Video abspielt. -</para> - -<para> - Beim Betrachten eines telecined Videos wirst du Interlacing-Artefakte - sehen, die zu "blinken" scheinen: sie erscheinen wiederholt - und verschwinden wieder. - Du kannst dir das so genauer hinschauen - <orderedlist> - <listitem> - <screen>mplayer dvd://1</screen> - </listitem> - <listitem><para> - Suche einen Teil mit Bewegung. - </para></listitem> - <listitem><para> - Benutze die Taste <keycap>.</keycap>, um jeweils einen Frame vorwärts zu rücken. - </para></listitem> - <listitem><para> - Schau auf das Muster der interlaced und progressive aussehenden - Frames. Ist das Muster, das du siehst PPPII,PPPII,PPPII,... dann ist das - Video telecined. Siehst du andere Muster, dann wurde das Video womöglich - mittels einiger Nicht-Standard-Methoden telecined; - <application>MEncoder</application> kann ein Nicht-Standard-telecine - nicht verlustfrei nach progressive konvertieren. Siehst du überhaupt - keine Muster, ist es höchstwahrscheinlich interlaced. - </para></listitem> - </orderedlist> -</para> - -<para> - Manchmal wird telecined Video auf DVDs "hard telecine" - zugeordnet. Da hard telecine bereits 60000/1001 Felder pro Sekunde hat, - spielt der DVD-Player das Video ohne irgendeine Manipulation ab. -</para> - -<para> - Ein anderer Weg, zu sagen, ob deine Quelle telecined ist oder nicht, - ist die Quelle mit den Befehlszeilenoptionen <option>-vf pullup</option> - und <option>-v</option> abzuspielen, um nachzusehen, wie - <option>pullup</option> zu den Frames passt. - Ist die Quelle telecined, solltest du in der Befehlszeile ein 3:2 Muster - mit abwechselnd <systemitem>0+.1.+2</systemitem> und <systemitem>0++1</systemitem> - anzeigen. - Diese Technik hat den Vorteil, dass du die Quelle nicht zu beobachten - brauchst, um sie zu identifizieren, was von Nutzen sein könnte, falls du - den Encodiervorgang automatisieren willst oder besagte Prozedur ferngesteuert - mittels einer langsamen Verbindung vornehmen willst. -</para> - -</sect3> - -<sect3 id="menc-feat-telecine-ident-interlaced"> -<title>Interlaced</title> -<para> - Interlaced Video wurde ursprünglich als 60000/1001 Felder pro Sekunde - aufgenommen und auf der DVD als 30000/1001 Frames pro Sekunde abgespeichert. - Der interlacing-Effekt (oft "combing" genannt) ist ein Ergebnis - von Kammpaaren von Feldern in Frames. Jedes Feld wird einzeln als - 1/(60000/1001) Sekunden angenommen, und wenn sie simultan angezeigt werden, - wird der Unterschied offensichtlich. -</para> - -<para> - Wie bei telecined Video sollte <application>MPlayer</application> niemals - einen Frameratewechsel beim Abspielen des interlaced Inhalts melden. -</para> - -<para> - Wenn du ein interlaced Video genau ansiehst, in dem du dich mit der Taste - <keycap>.</keycap> durch die Frames bewegst, wirst du sehen, dass - jeder einzelne Frame interlaced ist. -</para> -</sect3> - -<sect3 id="menc-feat-telecine-ident-mixedpt"> -<title>Gemischtes progressive und telecine</title> -<para> - Alle "gemischten progressive und telecine" Videos wurden ursprünglich - als 24000/1001 Frames pro Sekunde aufgenommen, jedoch werden einige Teile - telecined beendet. -</para> - -<para> - Spielt <application>MPlayer</application> diese Kategorie ab, wird er - (oft wiederholt) zwischen "30000/1001 fps NTSC" - und "24000/1001 fps progressive NTSC" zurück und vor wechseln. - Beobachte die untere Hälfte von <application>MPlayer</application>s Ausgabe, - um diese Meldungen anzusehen. -</para> - -<para> - Du solltest die Sektion "30000/1001 fps NTSC" überprüfen, um - sicher zu gehen, dass sie auch wirklich telecine sind und nicht einfach - interlaced. -</para> -</sect3> - -<sect3 id="menc-feat-telecine-ident-mixedpi"> -<title>Gemischtes progressive und interlaced</title> -<para> - In "gemischtem progressive und interlaced" Inhalt wurde progressive - und interlaced Video zusammengeklebt. -</para> - -<para> - Diese Kategorie sieht aus wie "gemischtes progressive und telecine", - bis du die Sektion 30000/1001 fps untersuchst und feststellst, dass - sie das telecine-Muster nicht haben. -</para> -</sect3> - -</sect2> - -<sect2 id="menc-feat-telecine-encode"> -<title>Wie jede Kategorie encodieren</title> -<para> - Wie ich anfangs angemerkt hatte, sind die - <application>MEncoder</application>-Beispielzeilen unten eigentlich - <emphasis role="bold">nicht</emphasis> zur Anwendung bestimmt; - sie demonstrieren nur die Minimalparameter zur korrekten Encodierung - jeder Kategorie. -</para> - -<sect3 id="menc-feat-telecine-encode-progressive"> -<title>Progressive</title> -<para> - Progressive Video erfordert kein spezielles Filtern, um es zu encodieren. - Der einzige Parameter, den du gewiss anwenden solltest ist - <option>-ofps 24000/1001</option>. Andernfalls wird - <application>MEncoder</application> versuchen, bei 30000/1001 fps - zu encodieren und Frames duplizieren. -</para> - -<para> - <screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen> -</para> - -<para> - Dennoch ist es öfters der Fall, dass ein Video, das progressive aussieht, - eigentlich kurze Teile telecine eingemischt hat. Solange du dir nicht - sicher bist, ist es am sichersten, das Video als - <link linkend="menc-feat-telecine-encode-mixedpt">gemischtes progressive und telecine</link>. - zu behandeln. Der Performance-Verlust ist gering - <link linkend="menc-feat-telecine-footnotes">[3]</link>. -</para> -</sect3> - -<sect3 id="menc-feat-telecine-encode-telecined"> -<title>Telecined</title> -<para> - Telecine kann umgekehrt werden, um den originalen 24000/1001-Inhalt zu erhalten, - indem man einen Prozess verwendet, der inverse-telecine genannt wird. - <application>MPlayer</application> enthält verschiedene Filter, um dies - zu erreichen; der beste Filter, <option>pullup</option> wird in der Sektion - <link linkend="menc-feat-telecine-encode-mixedpt">Gemischtes progressive und telecine</link> - beschrieben. -</para> -</sect3> - -<sect3 id="menc-feat-telecine-encode-interlaced"> -<title>Interlaced</title> -<para> - - In den meisten praktischen Fällen ist es nicht möglich, ein komplett - progressives Video aus interlaced Inhalt zu erhalten. Der einzige Weg, - dies ohne den Verlust der Hälfte der vertikalen Auflösung zu erreichen, - ist das Verdoppeln der Framerate, und man kann versuchen zu - "schätzen", wie die korrespondierenden Zeilen für jedes Feld - vervollständigt werden sollten (dies hat Nachteile - siehe Methode 3). -</para> - -<orderedlist> -<listitem><para> - Das Video in interlaced Form encodieren. Normalerweise richtet Interlacing - verheerenden Schaden für die Fähigkeit des Encoders an, gut zu komprimieren, - <systemitem class="library">libavcodec</systemitem> hat jedoch zwei - eigens für das ein wenig bessere Abspeichern von interlaced Video gedachte - Parameter: <option>ildct</option> und <option>ilme</option>. Auch wenn - die Verwendung von <option>mbd=2</option> dringend zu empfehlen ist - <link linkend="menc-feat-telecine-footnotes">[2]</link>, weil es - Macroblöcke wie nicht-interlaced an Stellen encodiert, an denen keine Bewegung - stattfindet. Beachte, dass <option>-ofps</option> hier NICHT notwendig ist. - - <screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen> - </para></listitem> -<listitem><para> - Nutze einen Deinterlacing-Filter vor dem Encodieren. Es stehen verschiedene - dieser Filter zur Auswahl, jeder mit seinen eigenen Vor- - und Nachteilen. Ziehe <option>mplayer -pphelp</option> zu Rate, um zu sehen, welche - verfügbar sind (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 außerdem nach dem Zuschneiden - (cropping) <link linkend="menc-feat-telecine-footnotes">[1]</link> - und vor dem Skalieren angewandt werden. - - <screen>mencoder dvd://1 -oac copy -vf pp=lb -ovc lavc</screen> - </para></listitem> -<listitem><para> - Unglücklicherweise arbeitet diese Option im Zusammenhang mit - <application>MEncoder</application> fehlerhaft; sie sollte mit - <application>MEncoder G2</application> gut funktionieren, den gibts aber - noch nicht. Du könntest Abstürze erleben. Seis drum, der Zweck von - <option> -vf tfields</option> ist es, einen vollen Frame aus jedem Feld - zu erzeugen, was eine Framerate von 60000/1001 ergibt. Der Vorteil dieses - Lösungsansatzes ist, dass nie irgendwelche Daten verloren gehen; - dennoch, da jeder Frame aus nur einem Feld kommt, müssen die fehlenden Zeilen - irgendwie interpoliert werden. Es gibt keine sehr guten Methoden, die - fehlenden Daten zu generieren, und so wird das Resultat ein bisschen aussehen, - als hätte man irgendeinen Deinterlacing-Filter verwendet. Die fehlenden Zeilen - zu generieren erzeugt auch weitere Probleme, einfach weil sich die Menge - an Daten verdoppelt. Somit sind höhere Encodier-Bitraten nötig, um - die Qualität beizubehalten und mehr CPU-Power wird für beides, - Encodieren und Decodieren, aufgewendet. Das Attribut tfields hat mehrere - verschiedene Optionen dafür, wie die fehlenden Zeilen jedes Frames erzeugt - werden. - Wenn du diese Methode nutzt, dann nimm Bezug auf das Handbuch und wähle, - welche Option auch immer am besten für dein Material aussieht. - Beachte, dass du wenn <option>tfields</option> verwendet wird, - sowohl <option>-fps</option> als auch <option>-ofps</option>spezifizieren <emphasis role="bold">musst</emphasis>, - um die doppelte Framerate der originalen Quelle zu erhalten. - - <screen>mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> - </para></listitem> -<listitem><para> - Wenn du vorhast, dramatisch herunterzuskalieren, kannst du nur eins - der beiden Felder extrahieren und encodieren. Sicherlich, du wirst die - Hälfte der vertikalen Auflösung verlieren, aber wenn du planst, bis auf - 1/2 des Originals herunter zu skalieren, macht der Verlust so gut wie - gar nichts aus. Das Resultat wird eine progressive Datei mit 30000/1001 - Frames pro Sekunde sein. Die Prozedur ist, <option>-vf field</option> - zu verwenden, dann die Ränder abzuschneiden - <link linkend="menc-feat-telecine-footnotes">[1]</link> und angemessen - zu skalieren. Vergiss nicht, dass du die Skalierung anpassen musst, um - das Halbieren der vertikalen Auflösung zu kompensieren. - <screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen> - </para></listitem> -</orderedlist> -</sect3> - -<sect3 id="menc-feat-telecine-encode-mixedpt"> -<title>Gemischtes progressive und telecine</title> -<para> - Um progressive und telecine Video komplett in progressive Video - umzuwandeln, müssen die telecined Teile inverse-telecined werden. - Die drei Wege, dies zu erreichen, werden unten beschrieben. - Beachte, dass du inverse-telecine <emphasis role="bold">immer</emphasis> - vor der Reskalierung durchführen solltest; es sei denn, du weißt wirklich, - was du tust; mache inverse-telecine auch vor dem Entfernen der Ränder - <link linkend="menc-feat-telecine-footnotes">[1]</link>. - <option>-ofps 24000/1001</option> wird hier benötigt, weil das Output-Video - 24000/1001 Frames pro Sekunde werden soll. -</para> - -<itemizedlist> -<listitem><para> - <option>-vf pullup</option> wurde entworfen, um auf telecined Material - inverse-telecine anzuwenden, während die progressiven Daten unangetastet - bleiben. Damit dies richtig funktioniert, <emphasis role="bold">muss</emphasis> - <option>pullup</option> vom <option>softskip</option>-Filter gefolgt werden, sonst - wird <application>MEncoder</application> abstürzen. - <option>pullup</option> ist trotz allem die sauberste und akkurateste - Methode, die zum Encodieren von beidem telecine und - "gemischtem progressive und telecine" zur Verfügung steht. - - <screen>mencoder dvd://1 -oac copy -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen> - </para> - - - </listitem> - <listitem><para> - Eine ältere Methode ist, anstatt inverse-telecine auf die telecined Teile - anzuwenden, telecine auf nicht-telecined Teile und dann inverse-telecine auf das - ganze Video anzuwenden. Hört sich verwirrend an? softpulldown ist - ein Filter, der ein Video durchgeht und die komplette Datei telecined macht. - Lassen wir auf softpulldown entweder <option>detc</option> oder <option>ivtc</option> - folgen, wird das Endergebnis vollkommen progressiv. <option>-ofps 24000/1001</option> - wird benötigt. - - <screen>mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen> - </para> - </listitem> - -<listitem><para> - Ich habe <option>-vf filmdint</option> selbst verwendet, aber lies hier, was - D Richard Felker III zu erzählen hat: - - <blockquote><para>Es ist OK, aber IMO versucht er zu oft eher ein deinterlace - als ein inverse telecine durchzuführen (ganz wie Settop-DVD-Player - & progressive TVs), was ein hässliches Flimmern erzeugt und - andere Artefakte. Wenn du vorhast, es anzuwenden, musst du zumindest - einige Zeit darauf verwenden, die Optionen zu tunen und zuerst den Output - zu beobachten, damit du auch sicher sein kannst, dass du nichts - vermasselst.</para></blockquote> - </para></listitem> -</itemizedlist> -</sect3> - -<sect3 id="menc-feat-telecine-encode-mixedpi"> -<title>Gemischtes progressive und interlaced</title> -<para> - Es gibt zwei Optionen für den Umgang mit dieser Kategorie, jede von - beiden stellt einen Kompromiss dar. Du solltest basierend auf - Dauer/Stelle jedes Typs entscheiden. -</para> - -<itemizedlist> -<listitem><para> - Behandle es wie progressive. Die interlaced Teile werden interlaced - aussehen und einige der interlaced Felder müssen weggelassen werden, - was ein wenig zu Sprüngen führt. Du kannst einen - Nachbearbeitungsfilter verwenden, wenn du willst, aber dies wird die - progressive-Anteile geringfügig verringern. - </para> - - <para> - Diese Option sollte definitiv nicht verwendet werden, wenn du eventuell - Video auf einem interlaced Gerät anzeigen willst (mit einer TV-Karte - zum Beispiel). Wenn du interlaced Frames in einem Video mit 24000/1001 - Frames pro Sekunde hast, werden diese zusammen mit den progressive - Frames telecined. Die Hälfte der interlaced "Frames" werden für die - Dauer von drei Feldern (3/(60000/1001) Sekunden) angezeigt, was - einen flimmernden "Zeitrücksprung"-Effekt zur Folge hat, der - ziemlich schlecht aussieht. Solltest du dies dennoch versuchen, - <emphasis role="bold">musst</emphasis> du einen - Deinterlacing-Filter wie <option>lb</option> oder <option>l5</option> - anwenden. - </para> - - <para> - Es wäre auch keine gute Idee für eine progressive Anzeige. Es wird - Paare aufeinander folgender interlaced Felder auslassen, was eine - Unstetigkeit zur Folge hat, die eher sichtbar ist als mit der - zweiten Methode, die einige progressive Frames zweimal anzeigt. - Ein interlaced Video mit 30000/1001 Frames pro Sekunde ist bereits - ein bisschen abgehackt, weil es wirklich mit 60000/1001 Felder pro - Sekunde angezeigt werden sollte, sodass sich die doppelten Frames - nicht zu sehr abzeichnen. - </para> - - <para> - Egal welchen Weg du wählst, es ist das beste, deinen Inhalt - zu berücksichtigen und wie du ihn anzeigen willst. Ist dein Video - zu 90% progressive und du hast nie vor, es auf einem TV-Bildschirm - anzuzeigen, solltest du einen progressive-Ansatz wählen. Ist es nur - halb-progressive, willst du es eventuell so encodieren, als sei alles - interlaced. - </para> - </listitem> - -<listitem><para> - Behandle es wie interlaced. Einige Frames des progressive-Anteils - müssen dupliziert werden, was zu Sprüngen führt. Nochmal, - Deinterlacing-Filter können die progressive-Anteile leicht verringern. - </para></listitem> - -</itemizedlist> -</sect3> - -</sect2> - -<sect2 id="menc-feat-telecine-footnotes"> -<title>Fußnoten</title> -<orderedlist> -<listitem><formalpara> - <title>Über das Zuschneiden (cropping):</title> - <para> - Videodaten auf DVDs werden in einem YUV 4:2:0 genannten Format abgelegt. - In einem YUV-Video, werden Helligkeit und Chrominanz separat gespeichert. - Da das menschliche Auge ein bisschen weniger empfindlich auf Farbe - reagiert als auf Helligkeit, ist in einem YUV 4:2:0 Bild nur ein - Chrominanz-Pixel für alle vier Helligkeits-Pixel vorhanden. - In einem progressive Bild, besitzt jedes Quadrat von vier luma-Pixeln (zwei - auf jeder Seite) ein gemeinsames chroma-Pixel. Du musst progressive YUV - 4:2:0 zu geradzahligen Auflösungen zurechtschneiden und geradzahlige - Offsets verwenden. Zum Beispiel ist - <option>crop=716:380:2:26</option> OK, - <option>crop=716:380:3:26 </option> aber nicht. - </para> - </formalpara> - - <para> - Wenn du es mit interlaced YUV 4:2:0 zu tun hast, ist die Situation - ein wenig komplizierter. Anstatt dass immer vier luma-Pixel im - <emphasis>Frame</emphasis> sich ein chroma-Pixel teilen, teilen sich - immer vier luma-Pixel in jedem <emphasis>Feld</emphasis> ein - chroma-Pixel. Wenn Felder zur Formung eines Frames interlaced werden, - ist jede Scanzeile ein Pixel hoch. Jetzt liegen anstatt je vier - luma-Pixel in einem Quadrat immer zwei Pixel nebeneinander und die - anderen zwei Pixel liegen zwei Scanzeilen weiter unten nebeneinander. - Die zwei luma-Pixel in der dazwischen liegenden Scanzeile sind vom - anderen Feld und teilen sich somit ein anderes chroma-Pixel mit - zwei luma-Pixeln zwei Scanzeile entfernt. All diese Konfusion macht - es notwendig, vertikale Ausschneide-Abmessungen und Offsets zu - haben, die ein Vielfaches von vier sind. Horizontal kann geradzahlig - bleiben. - </para> - - <para> - Für telecined Video empfehle ich, das Zuschneiden nach dem inverse - telecining stattfinden zu lassen. Ist das Video einmal progressive, - musst du nur noch mit geraden Zahlen zuschneiden. Wenn du wirklich die - leichte Beschleunigung haben willst, die zuerst zuzuschneiden - möglicherweise bietet, musst du vertikal mit einem Vielfachen von vier - zuschneiden, oder der inverse-telecine Filter wird keine korrekten Daten - haben. - </para> - - <para> - Für interlaced (nicht telecined) Video musst du immer - mit einem Vielfachen von vier zuschneiden, es sei denn, du verwendest - <option>-vf field</option> vor dem Schneiden. - </para> - </listitem> - -<listitem><formalpara> - <title>Über Encodier-Parameter und Qualität:</title> - <para> - Nur weil ich hier <option>mbd=2</option> vorschlage, heißt das nicht, - dass es woanders benutzt werden soll. Zusammen mit <option>trell</option> - ist <option>mbd=2</option> eine der Optionen von - <systemitem class="library">libavcodec</systemitem>, welche die - Qualität am deutlichsten heben, und du solltest stets das letzte der beiden - anwenden, außer das Abfallen der Encodiergeschwindigkeit ist abschreckend - hoch (z.B. Encodierung in Echtzeit). Es gibt eine Menge anderer Optionen für - <systemitem class="library">libavcodec</systemitem>, die die Encodierqualität - verbessern (und die Encodiergeschwindigkeit verringern), dies liegt aber jenseits - des Rahmens dieses Dokuments. - </para> - </formalpara> - </listitem> - -<listitem><formalpara> - <title>Über die Performance von pullup:</title> - <para> - <option>Pullup</option> kann sicher (zusammen mit <option>softskip</option>) - auf progressive Video angewandt werden und ist für gewöhnlich eine gute Idee, - es sei denn, die Quelle wurde definitiv als vollkommen progressive verifiziert. - Der Performaceverlust ist in den meisten Fällen gering. Bei einer Minimalencodierung - macht <option>pullup</option> <application>MEncoder</application> - 50% langsamer. Das Hinzufügen von Soundverarbeitung und erweiterten - <option>lavcopts</option> überschattet diesen Unterschied - und drückt den Performanceabfall, der mit dem Verwenden von <option>pullup</option> - verbunden war, runter auf 2%. - </para> - </formalpara> - </listitem> - -</orderedlist> - -</sect2> - -</sect1> - - -<sect1 id="menc-feat-enc-libavcodec"> -<title>Encodieren mit der <systemitem class="library">libavcodec</systemitem> - Codecfamilie</title> - -<para> -<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> - stellt einfache Encodierung für eine Menge interessanter Video- und Audioformate - zur Verfügung. - Du kannst folgende Codecs encodieren (mehr oder weniger aktuell): -</para> - -<sect2 id="menc-feat-enc-libavcodec-video-codecs"> -<title>Videocodecs von <systemitem class="library">libavcodec</systemitem></title> - -<para> -<informaltable frame="all"> -<tgroup cols="2"> -<thead> -<row><entry>Name des Videocodecs</entry><entry>Beschreibung</entry></row> -</thead> -<tbody> -<row><entry>mjpeg</entry><entry> - Motion-JPEG - </entry></row> -<row><entry>ljpeg</entry><entry> - Verlustfreies JPEG - </entry></row> -<row><entry>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 Codecnamen, die nach der Konfiguration - <literal>vcodec</literal> übergeben werden müssen, wie: - <option>-lavcopts vcodec=msmpeg4</option> -</para> -<informalexample> -<para> - Ein Beispiel mit MJPEG-Komprimierung: - <screen>mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen> -</para> -</informalexample> -</sect2> - -<sect2 id="menc-feat-enc-libavcodec-audio-codecs"> -<title>Audiocodecs von <systemitem class="library">libavcodec</systemitem></title> -<para> -<informaltable frame="all"> -<tgroup cols="2"> -<thead> -<row><entry>Name des Audiocodecs</entry><entry>Beschreibung</entry></row> -</thead> -<tbody> - <row> - <entry>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 Bit pro Sample, 4:1-Kompression)</entry> - </row> - <row> - <entry>sonic</entry> - <entry>experimenteller verlustbehafteter/verlustfreier Codec</entry> - </row> -</tbody> -</tgroup> -</informaltable> - - Die erste Spalte enthält die Codecnamen, die nach der Konfiguration - <literal>acodec</literal> übergeben werden müssen, wie: - <option>-lavcopts acodec=ac3</option> -</para> - -<informalexample> -<para> -Ein Beispiel mit AC3-Kompression: -<screen>mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy</screen> -</para> -</informalexample> - -<para> - Im Gegensatz zu den Videocodecs von <systemitem class="library">libavcodec</systemitem> - machen dessen Audiocodecs keinen weisen Gebrauch von den Bits, die ihnen übergeben - werden, da es ihnen an einem minimalen psychoakustischen Modell fehlt (falls - überhaupt eins vorhanden ist), wodurch sich die meisten anderen - Codec-Implementierungen auszeichnen. - Beachte jedoch, dass all diese Audiocodecs sehr schnell sind und überall dort - hervorragend arbeiten, wo <application>MEncoder</application> mit - <systemitem class="library">libavcodec</systemitem> kompiliert wurde (was - meistens der Fall ist) und nicht von externen Programmbibliotheken abhängt. -</para> -</sect2> - - -<sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options"> -<title>Encodieroptionen von libavcodec</title> - -<para> - Idealerweise möchtest du eventuell in der Lage sein, dem Encoder einfach zu sagen, - er soll in den "hochqualitativen" Modus wechseln und weiter machen. - Das wäre vermutlich nett, aber unglücklicherweise schwer zu implementieren, da - verschiedene Encodieroptionen unterschiedliche Qualitätsresultate hervorbringen, - abhängig vom Quellmaterial. - Das liegt daran, dass die Komprimierung von den visuellen Eigenschaften des fraglichen Videos abhängt. - Zum Beispiel haben Anime und Live-Action sehr unterschiedliche Eigenschaften und - benötigen aus diesm Grund verschiedene Optionen, um optimale Encodierung zu erreichen. - Die gute Neuigkeit ist, dass einige Optionen wie <option>mbd=2</option>, - <option>trell</option> und <option>v4mv</option> nie ausgelassen werden sollten. - Siehe unten nach der detaillierten Beschreibung allgemeiner Encodieroptionen. -</para> - - -<itemizedlist> -<title>Anzupassende Optionen:</title> -<listitem><para> - <emphasis role="bold">vmax_b_frames</emphasis>: 1 oder 2 ist gut, abhängig vom - Film. - Beachte, dass du, falls deine Encodierung von DivX5 decodierbar sein muss, den - Support für "closed GOP" aktivieren musst, indem du die - <systemitem class="library">libavcodec</systemitem>-Option <option>cgop</option> - verwendest, du musst jedoch Szenenerkennung deaktivieren, was wiederum keine gute - Idee ist, da es die Ecodierungseffizienz etwas angreift. -</para></listitem> - -<listitem><para> - <emphasis role="bold">vb_strategy=1</emphasis>: hilft in Szenen mit viel - Bewegung (high-motion). - Bei manchen Videos wird vmax_b_frames der Qualität schaden, vmax_b_frames=2 - zusammen mit vb_strategy=1 hilft jedoch. -</para></listitem> - -<listitem><para> - <emphasis role="bold">dia</emphasis>: Bewegungssuchbereich. Größer ist besser - als kleiner. - Negative Werte sind ein komplett anderer Maßstab. - Gute Werte sind -1 für ein schnelle oder 2-4 für langsame Encodierung. -</para></listitem> - -<listitem><para> - <emphasis role="bold">predia</emphasis>: Bewegungssuche Vorabdurchlauf (pre-pass). - Nicht so wichtig wie dia. Gute Werte sind 1 (Standard) bis 4. Erfordert preme=2, um - wirklich was zu nützen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Vergleichsfunktion zur - Bewegungseinschätzung. - Experimentiere mit Werten von 0 (Standard), 2 (hadamard), 3 (dct) und - 6 (Ratenverzerrung). - 0 ist am schnellsten und ausreichend für precmp. - Für cmp und subcmp ist 2 gut bei Anime, und 3 ist gut bei Live-Action. - 6 kann leicht besser sein oder auch nicht, ist aber langsam. -</para></listitem> - -<listitem><para> - <emphasis role="bold">last_pred</emphasis>: Anzahl der Bewegungsvorhersagen, die - vom vorherigen Frame genommen werden sollen. - 1-3 oder so hilft bei geringer Geschwindigkeitseinbuße. - Höhere Werte sind langsam bei keinerlei Zusatzgewinn. -</para></listitem> - -<listitem><para> - <emphasis role="bold">cbp, mv0</emphasis>: Kontrolliert die Auswahl von Macroblöcken. - Kleine Geschwindigkeitseinbußen bei kleinem Qualitätsgewinn. -</para></listitem> - -<listitem><para> - <emphasis role="bold">qprd</emphasis>: adaptive Quantisierung basierend auf der - Komplexität des Macroblocks. - Kann hilfreich sein oder schaden, abhängig vom Video und anderen Optionen. - Dies kann Artefakte verursachen, es sei denn, du setzt vqmax auf einen halbwegs - kleinen Wert (6 ist gut, vielleicht so langsam wie 4); vqmin=1 sollte ebenfalls - helfen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">qns</emphasis>: sehr langsam, speziell wenn kombiniert - mit qprd. - Diese Option veranlasst den Encoder, durch Kompressionsartefakte entstandenes - Rauschen zu minimieren anstatt das encodierte Video strikt der Quelle anzupassen. - Verwende dies nicht, es sei denn du, hast bereits alles andere so weit wie möglich - optimiert und die Resultate sind immer noch nicht gut genug. -</para></listitem> - -<listitem><para> - <emphasis role="bold">vqcomp</emphasis>: Frequenzkontrolle optimieren. - Welche Werte gut sind, hängt vom Film ab. - Du kannst dies sicher so lassen wie es ist, wenn du willst. - Wird vqcomp verringert, werden mehr Bits auf Szenen mit geringer Komlexität - gelegt, wird es erhöht, legt es diese Bits auf Szenen mit hoher Komlexität - (Standard: 0.5, Bereich: 0-1. empfohlener Bereich: 0.5-0.7). -</para></listitem> - -<listitem><para> - <emphasis role="bold">vlelim, vcelim</emphasis>: Setzt die Schwelle für die - Eliminierung einzelner Koeffizienten bei Helligkeits- und Farbanteilen. - Sie werden in allen MPEG-ähnlichen Algorithmen getrennt encodiert. - Die Idee hinter diesen Optionen ist, einige gute Heuristiken zu verwenden, - um zu bestimmen, wenn ein Wechsel innerhalb eines Blocks kleiner als der - der von dir festgelegte Schwellenwert ist und in solch einem Fall den - Block einfach so zu encodieren als fände "kein Wechsel" statt. - Das spart Bits und beschleunigt womöglich die Encodierunng. vlelim=-4 und vcelim=9 - scheinen gut für Live-Filme zu sein, helfen aber scheinbar nicht bei Anime; - beim Encodieren einer Animation solltest du sie womöglich unverändert lassen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">qpel</emphasis>: Bewegungsabschätzung auf ein viertel - Pixel (quarter pel). - MPEG-4 verwendet als Voreinstellung eine Halbpixel-Genauigkeit für die Bewegungssuche, - deswegen hat diese Option einen Overhead, da mehr Informationen in der - encodierte Datei untergebracht werden. - Der Kompressionsgewinn/-verlust hängt vom Film ab, ist aber in der Regel nicht - sonderlich effektiv bei Anime. - qpel zieht immer eine signifikante Erhöhung der CPU-Decodierzeit nach - sich (+25% in der Praxis). -</para></listitem> - -<listitem><para> - <emphasis role="bold">psnr</emphasis>: wirkt sich eigentlich nicht auf - das Encodieren aus, schreibt jedoch eine Log-Datei mit Typ/Größe/Qualität - jedes Frames und gibt am Ende die Summe des PSNR Signal-zu-Rauschabstands - (Peak Signal to Noise Ratio) aus. -</para></listitem> - -</itemizedlist> - -<itemizedlist> -<title>Optionen, mit denen besser nicht herumgespielt werden sollte:</title> -<listitem><para> - <emphasis role="bold">vme</emphasis>: Der Standardwert ist der beste. -</para></listitem> - -<listitem><para> - <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisuell adaptive - Quantisierung. - Du solltest nicht im Traum daran denken, mit diesen Optionen herumzuspielen, - wenn dir Qualität wichtig ist. - Vernünftige Werte mögen in deinem Fall effektiv sein, aber sei gewarnt, - dies ist sehr subjektiv. -</para></listitem> - -<listitem><para> - <emphasis role="bold">scplx_mask</emphasis>: Versucht, Blockartefakte - zu verhindern, Postprocessing ist aber besser. -</para></listitem> -</itemizedlist> -</sect2> - -<sect2 id="menc-feat-mpeg4-lavc-example-settings"> -<title>Beispiele für Encodierungseinstellungen</title> - -<para> - Die folgenden Einstellungen sind Beispiele verschiedener Kombinationen - von Encodierungsoptionen, die den Kompromiss Geschwindigkeit gegenüber - Qualität bei gleicher Zielbitrate beeinflussen. -</para> - -<para> - Alle Encodierungseinstellungen wurden auf einem Beispielvideo - mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps und - der Rechner war ein AMD-64 3400+ mit 2400 Mhz im 64bit-Modus. - Jede Encodiereinstellung zeichnet sich aus durch die gemessene - Encodiergeschwindigkeit (in Frames pro Sekunde) und den PSNR-Verlust - (in dB) im Vergleich zu Einstellungen für "sehr hohe Qualität". - Bitte habe Verständnis, dass du abhängig von deiner Quelldatei, - deinem Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche - Resultate erzielen wirst. -</para> - -<para> -<informaltable frame="all"> -<tgroup cols="4"> -<thead> -<row><entry>Beschreibung</entry><entry>Encodieroptionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> -</thead> -<tbody> -<row> - <entry>Sehr hohe Qualität</entry> - <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry> - <entry>6fps</entry> - <entry>0dB</entry> -</row> -<row> - <entry>Hohe Qualität</entry> - <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry> - <entry>15fps</entry> - <entry>-0.5dB</entry> -</row> -<row> - <entry>Schnell</entry> - <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry> - <entry>42fps</entry> - <entry>-0.74dB</entry> -</row> -<row> - <entry>Echtzeit</entry> - <entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry> - <entry>54fps</entry> - <entry>-1.21dB</entry> -</row> -</tbody> -</tgroup> -</informaltable> -</para> -</sect2> - -<sect2 id="custommatrices"><title>Maßgeschneiderte inter/intra-Matrizen</title> - -<para> -Mit diesem Feature von <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> -bist du in der Lage, eigene inter- (I-Frames/Keyframes) und intra-Matrizen -(P-Frames/predicted Frames) zu setzen. Es wird von vielen Codecs unterstützt: -<systemitem>mpeg1video</systemitem> und <systemitem>mpeg2video</systemitem> -sollen damit funktionieren. -</para> - -<para> -Eine typische Anwendung dieses Features ist, die von den -<ulink url="http://www.kvcd.net/">KVCD</ulink>-Specifikationen -bevorzugten Matrizen zu setzen. -</para> - -<para> -Die <emphasis role="bold">KVCD "Notch" Quantisierungsmatrix:</emphasis> -</para> - -<para> -Intra: -<screen> - 8 9 12 22 26 27 29 34 - 9 10 14 26 27 29 34 37 + <title>Encodieren mit <application>MEncoder</application></title> + + <sect1 id="menc-feat-dvd-mpeg4"> + <title>Erzeugen eines hochwertigen MPEG-4-Rips ("DivX") eines DVD-Films</title> + + <para> + Eine häufig gestellte Frage ist + "Wie mache ich den hochwertigsten Rip für eine gegebene Größe?". + Eine weitere Frage ist + "Wie mache ich den qualitativ bestmöglichen DVD-Rip? Die Dateigröße ist + mir egal, ich will einfach nur die beste Qualität." + </para> + + <para> + Die letzte Frage ist zumindest etwas falsch gestellt. Wenn du dir + schließlich keine Gedanken um die Dateigröße machst, warum kopierst Du + dann nicht einfach den kompletten MPEG-2-Videostream der DVD? + Sicherlich, deine AVI wird am Ende 5GB groß sein, so oder so, jedoch ist + dies mit Sicherheit deine beste Option, wenn du die beste Qualität + erhalten willst und dich nicht um die Größe kümmerst. + </para> + + <para> + Tatsache ist, der Grund eine DVD in MPEG-4 umzuencodieren ist + gerade <emphasis role="bold">weil</emphasis> dir die Größe wichtig ist. + </para> + + <para> + Es ist sehr schwierig, ein Rezept zum Erzeugen eines sehr + hochwertigen DVD-Rips anzubieten. Es gilt mehrere Faktoren zu + berücksichtigen, und du solltest dich mit diesen Details auskennen oder + du wirst voraussichtlich am Ende von den Resultaten enttäuscht. + Nachfolgend werden wir einige dieser Themen etwas näher untersuchen + und uns danach ein Beispiel ansehen. Wir gehen davon aus, dass Du + <systemitem class="library">libavcodec</systemitem> zum Encodieren des + Videos verwendest, obwohl diese Theorie genauso gut auf andere Codecs + zutrifft. + </para> + + <para> + Ist dies alles zu viel für dich, solltest du womöglich auf eins der vielen + guten Frontends zurückgreifen, die in der + <ulink url="http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends">MEncoder-Sektion</ulink> + unserer diesbezüglichen Projektseite zu finden sind. + Auf diese Weise solltest du in der Lage sein, hochwertige Rips zu + erhalten ohne viel nachdenken zu müssen, da die meisten dieser Tools dazu entworfen + wurden, clevere Entscheidungen für dich zu treffen. + </para> + + <sect2 id="menc-feat-dvd-mpeg4-preparing-encode"> + <title>Vorbereitung aufs Encodieren: Identifiziere Quellmaterial und Framerate</title> + <para> + Bevor du über das Encodieren eines Films nachdenkst, solltest du einige einleitende + Schritte vornehmen. + </para> + + <para> + Der erste und allerwichtigste Schritt vor dem Encodieren sollte sein, + festzustellen, mit welchem Inhaltstyp du umgehst. + Kommt dein Quellmaterial von einer DVD oder einem Rundfunk-/Kabel-/Satelliten-TV, + wird es in einem von zwei Formaten abgespeichert: NTSC für Nord-Amerika und Japan, + PAL für Europa usw. + Es ist wichtig, sich klar zu machen, dass dies ganz einfach die Formatierung + für die Präsentation auf einem Fernsehgerät ist und häufig + <emphasis role="bold">nicht</emphasis> mit dem originalen Format des Films + korrespondiert. Die Erfahrung zeigt, dass NTSC-Material schwieriger zu + encodieren ist, da mehr Elemente in der Quelle zu identifizieren sind. + Um eine geeignete Encodierung zu produzieren, solltest du das originale + Format kennen. + Fehler, dies sollte man berücksichtigen, führen zu diversen Fehlerstellen + in deiner Encodierung, einschließlich hässlicher Kammartefakte (combing/interlacing) + und doppelten oder gar verlorenen Frames. + Abgesehen davon, dass sie unschön sind, beeinflussen diese Artefakte die + Codierungseffizienz negativ: + Du erhältst eine schlechtere Qualität pro Bitrateneinheit. + </para> + + <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps"> + <title>Identifizieren der Quellframerate</title> + <para> + Hier ist eine Liste der verbreiteten Typen des Quellmaterials, in der Du + diese und ihre Eigenschaften voraussichtlich finden wirst: + </para> + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">Standardfilm</emphasis>: Produziert für + theatralische Anzeige bei 24fps. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">PAL-Video</emphasis>: Aufgenommen mit einer + PAL-Videokamera bei 50 Feldern pro Sekunde. + Ein Feld besteht ganz einfach aus den ungerade oder gerade nummerierten + Zeilen eines Frames. + Das Fernsehen wurde entworfen, diese Felder als billige Form einer + analogen Komprimierung im Wechsel zu aktualisieren. + Das menschliche Auge kompensiert dies angeblich, aber wenn du + Interlacing einmal verstanden hast, wirst du lernen, es auch auf + dem TV-Bildschirm zu erkennen und nie wieder Spass am Fernsehen haben. + Zwei Felder machen <emphasis role="bold">keinen</emphasis> kompletten + Frame, da sie in einer 50-stel Sekunde zeitlich getrennt aufgenommen + werden und so nicht Schlange stehen solange keine Bewegung da ist. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">NTSC-Video</emphasis>: Aufgenommen mit einer + NTSC-Videokamera bei 60000/1001 Feldern pro Sekunde oder 60 Feldern + pro Sekunde zu Zeiten vor dem Farbfernsehen. + Ansonsten ähnlich wie PAL. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Animation</emphasis>: Üblicherweise bei + 24fps gezeichnet, kommt jedoch auch in Varianten mit gemischter + Framerate vor. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Computer Graphics (CG)</emphasis>: Kann + irgendeine Framerate sein, jedoch sind einige üblicher als andere; + 24 und 30 Frames pro Sekunde sind typisch für NTSC und 25fps ist + typisch für PAL. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Alter Film</emphasis>: Diverse niedrigere + Frameraten. + </para> + </listitem> + </itemizedlist> + </sect3> + + <sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material"> + <title>Identifizieren des Quellmaterials</title> + <para> + Filme, die sich aus Frames zusammensetzen, werden den progressiven + zugeordnet, während die aus unabhängigen Feldern bestehenden + entweder interlaced (engl. für verschachteln) oder Video + genannt werden - somit ist letzterer Terminus zweideutig. + </para> + <para> + Um das ganze noch komplizierter zu machen, sind manche Filme ein + Gemisch aus einigen den oben beschriebenen Formen. + </para> + <para> + Das wichtigste Unterscheidungsmerkmal zwischen all diesen + Formaten ist, dass einige Frame-basiert, andere wiederum + Feld-basiert sind. + <emphasis role="bold">Immer</emphasis> wenn ein Film für die + Anzeige auf dem Fernseher vorbereitet wird (einschließlich + DVD), wird er in ein Feld-basiertes Format konvertiert. + Die zahlreichen Methoden, mit denen dies bewerkstelligt werden + kann, werden insgesamt dem "pulldown" zugeordnet, von welchem + das verrufene NTSC "3:2 telecine" eine Abart darstellt. + Sofern das Originalmaterial nicht Feld-basiert war (bei gleicher + Feldrate), erhältst du einen Film in einem anderen Format als + das Original. + </para> + + <itemizedlist> + <title>Es gibt einige verbreitete Typen des pulldown:</title> + <listitem> + <para> + <emphasis role="bold">PAL 2:2 pulldown</emphasis>: Das schönste von + allen. + Jeder Frame wird durch das wechselweise Extrahieren und Anzeigen + der geradzahligen und ungeradzahligen Zeilen für die Dauer von zwei + Feldern dargestellt. + Hat das Originalmaterial 24fps, beschleunigt dieser Prozess den Film + um 4%. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown</emphasis>: + Jeder 12-te Frame, anstatt nur jeder 2-te, wird für die Dauer von zwei + Feldern dargestellt. + Dies vermeidet die 4% Geschwindigkeitssteigerung, macht jedoch das + Umkehren des Prozesses viel schwieriger. + Es ist üblicherweise in Musical-Produktionen zu sehen, wo das Anpassen der + Geschwindigkeit um 4% sicherlich das musikalische Ergebnis kaputt machen würde. + </para> + </listitem> + <listitem><para> + <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Frames werden + abwechselnd für die Dauer von 3 oder 2 Feldern angezeigt. + Dies verleiht der Feldrate das 2.5-fache der originalen Framerate. + Das Resultat wird dadurch auch leicht von 60 Feldern pro Sekunde auf + 60000/1001 Felder pro Sekunde verlangsamt, um die NTSC-Felddrate + beizubehalten. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Verwendet zur + Darstellung von 30fps Material auf NTSC. + Schön, genau wie das 2:2 PAL pulldown. + </para> + </listitem> + </itemizedlist> + + <para> + Es gibt auch Methoden zur Konvertierung zwischen NTSC- und PAL-Video, + jedoch liegen diese Themen jenseits des Rahmens dieser Anleitung. + Wenn du auf solch einen Film stößt und ihn encodieren willst, solltest + du besser eine Kopie im originalen Format suchen. + Die Konvertierung zwischen diesen beiden Formaten ist hochdestruktiv und + kann nicht spurlos rückgängig gemacht werden, somit wird deine Encodierung + außerordentlich darunter leiden, wenn sie aus einer konvertierten Quelle + erzeugt wurde. + </para> + <para> + Wenn ein Video auf DVD gespeichert wird, werden fortlaufend Feldpaare + als Frames gruppiert, auch wenn nicht beabsichtigt ist, diese gleichzeitig + zu zeigen. + Der bei DVD und digitalem TV verwendete MPEG-2-Standard bietet einen Weg + für beides, die originalen progressiven Frames zu encodieren und die Anzahl + der Felder, für die ein Frame gezeigt werden soll, im Header dieses Frames + zu speichern. + Wurde diese Methode angewandt, wird dieser Film oft als "soft telecined" + beschrieben, da der Prozess eher nur den DVD-Player anweist, pulldown + auf den Film anzuwenden, als den Film selbst abzuändern. + Dieser Fall sollte möglichst bevorzugt werden, da er (eigentlich ignoriert) + leicht vom Encoder rückgängig gemacht werden kann und da er die maximale + Qualität beibehält. + Wie auch immer, viele DVD- und Rundfunkproduktionsstudios verwenden + keine passenden Encodierungstechniken, sie produzieren stattdessen Filme mit + "hard telecine", bei denen Felder sogar in encodiertes MPEG-2 dupliziert + werden. + </para> + <para> + Die Vorgehensweisen für den Umgang mit solchen Fällen werden + <link linkend="menc-feat-telecine">später in diesem Handbuch</link> + behandelt. + Wir lassen dich jetzt mit einigen Anleitungen zur Identifizierung der + Materialtypen zurück, mit denen du es zu tun hast: + </para> + + <itemizedlist> + <title>NTSC-Bereiche:</title> + <listitem> + <para> + Wenn <application>MPlayer</application> angibt, dass die Framerate + während des Betrachtens des Films zu 24000/1001 gewechselt hat + und diese nie wieder zurückwechselt, handelt es sich meist mit + Sicherheit um progressiven Inhalt, der "soft telecined" wurde. + </para> + </listitem> + <listitem> + <para> + Wenn <application>MPlayer</application> anzeigt, dass die Framerate + zwischen 24000/1001 und 30000/1001 vor und zurück wechselt, und Du + siehst hin und wieder Kammartefakte, dann gibt es mehrere Möglichkeiten. + Die Segmente mit 24000/1001 fps sind meist mit Sicherheit progressiver + Inhalt, "soft telecined", jedoch könnten die Teile mit 30000/1001 fps + entweder "hard telecined" 24000/1001 fps Inhalt oder 60000/1001 Felder + pro Sekunde NTSC-Video sein. + Verwende die selben Richtwerte wie in den folgenden zwei Fällen, um zu + bestimmen, um was es sich handelt. + </para> + </listitem> + <listitem> + <para> + Wenn <application>MPlayer</application> nie einen Frameratenwechsel + anzeigt und jeder einzelne Frame mit Bewegung gekämmt (combed) erscheint, + ist dein Film ein NTSC-Video bei 60000/1001 Feldern pro Sekunde. + </para> + </listitem> + <listitem> + <para> + Wenn <application>MPlayer</application> nie einen Frameratenwechsel + anzeigt und zwei von fünf Frames gekämmt (combed) erscheinen, ist der + Inhalt deines Films "hard telecined" 24000/1001 fps. + </para> + </listitem> + </itemizedlist> + + <itemizedlist> + <title>PAL-Bereiche:</title> + <listitem> + <para> + Wenn du niemals irgend ein Combing siehst, ist dein Film 2:2 pulldown. + </para> + </listitem> + <listitem> + <para> + Siehst du alle halbe Sekunde abwechselnd ein- und ausgehendes Combing, + dann ist dein Film 2:2:2:2:2:2:2:2:2:2:2:3 pulldown. + </para> + </listitem> + <listitem> + <para> + Hast du immer während Bewegungen Combing gesehen, dann ist dein Film + PAL-Video bei 50 Feldern pro Sekunde. + </para> + </listitem> + </itemizedlist> + + <note> + <title>Tipp:</title> + <para> + <application>MPlayer</application> kann das Filmplayback + mittels der Option -speed verlangsamen oder Frame für Frame abspielen. + Versuche <option>-speed</option> 0.2 zu verwenden, um den Film sehr lamgsam + anzusehen oder drücke wiederholt die Taste "<keycap>.</keycap>", um jeweils + einen Frame abzuspielen und identifiziere dann das Muster, falls du bei voller + Geschwindigkeit nichts erkennen kannst. + </para> + </note> + </sect3> + </sect2> + + <sect2 id="menc-feat-dvd-mpeg4-2pass"> + <title>Konstanter Quantisierungsparameter vs. Multipass</title> + + <para> + Es ist möglich, deinen Film in einer großen Auswahl von Qualitäten zu + encodieren. + Mit modernen Videoencodern und ein wenig Pre-Codec-Kompression + (Herunterskalierung und Rauschunterdrückung), kann eine sehr gute + Qualität bei 700 MB für einen 90-110-minütigen Breitwandfilm erreicht werden. + Des Weiteren können alle Filme - sogar die längsten - mit nahezu perfekter + Qualität bei 1400 MB encodiert werden. + </para> + + <para> + Es gibt drei Annäherungen für das Encodieren eines Videos: konstante Bitrate + (CBR), konstanter Quantisierungsparameter und Multipass (ABR, oder mittlere Bitrate). + </para> + + <para> + Die Komplexität der Frames eines Filmes und somit die Anzahl der für + deren Komprimierung erforderlichen Bits kann von einer Szene zur anderen + außerordentlich variieren. + Moderne Videoencoder können sich durch Variieren der Bitrate an diese + Anforderungen anpassen. + In einfachen Modi wie CBR kennen die Encoder jedoch nicht den + Bitratenbedarf zukünftiger Szenen und sind somit nicht in der Lage, + die angeforderte mittlere Bitrate über längere Zeitspannen zu + überschreiten. + Erweiterte Modi wie etwa Multipass-Encodierung können die Statistik + früherer Durchgänge berücksichtigen; dies behebt das oben erwähnte + Problem. + </para> + + <note><title>Anmerkung:</title> + <para> + Die meisten Codecs, die ABR-Encodierung unterstützen, unterstützen nur + die Encodierung in zwei Durchgängen (two pass) während einige andere wie + etwa <systemitem class="library">x264</systemitem>, + <systemitem class="library">XviD</systemitem> + und <systemitem class="library">libavcodec</systemitem> Multipass + unterstützen, was die Qualität bei jedem Durchgang leicht verbessert. + Jedoch ist diese Verbesserung weder messbar noch ist sie nach dem + 4-ten Durchgang oder so spürbar. + Aus diesem Grund werden in diesem Abschnitt die Encoderierung mit 2 Durchläufen + (two pass) und Multipass abwechselnd angewandt. + </para> + </note> + + <para> + In jedem dieser Modi bricht der Videocodec (wie etwa + <systemitem class="library">libavcodec</systemitem>) + den Videoframe in 16x16 Pixel Macroblöcke und wendet danach einen + Quantisierer auf jeden Macroblock an. Je niedriger der Quantisierer desto + besser die Qualität und desto höher die Bitrate. + Die Methode, die der Filmencoder zur Bestimmung des auf einen gegebenen + Macroblock anzuwendenden Quantisierer verwendet, variiert und ist in + hohem Maße einstellbar. (Dies ist eine extrem übertriebene Vereinfachung + des aktuellen Prozesses aber nützlich, um das Grundkonzept zu verstehen.) + </para> + + <para> + Wenn du eine konstante Bitrate festlegst, wird der Videocodec das Video + so encodieren, dass so viele Details wie notwendig und so wenig + wie möglich ausgesondert werden, um unterhalb der vorgegebenen Bitrate zu + bleiben. Wenn du dich wirklich nicht um die Dateigröße kümmerst, könntest + du auch CBR verwenden und eine nahezu endlose Bitrate festlegen. + (In der Praxis bedeutet dies einen Wert, der hoch genug ist, kein Limit + aufzuwerfen wie 10000Kbit.) Ohne echte Einschränkung der Bitrate wird + der Codec als Ergebnis den niedrigsten möglichen Quantisierer für jeden + Macroblock anwenden (wie durch <option>vqmin</option> für + <systemitem class="library">libavcodec</systemitem> + spezifiziert, Standardwert ist 2). + Sobald du eine Bitrate festlegst, die niedrig genug ist, den + Codec zur Anwendung eines höheren Quantisierers zu zwingen, bist Du + nahezu sicher dabei, die Qualität deines Videos zu ruinieren. + Um dies zu vermeiden, solltst du möglicherweise dein Video wie + in der später in diesem Handbuch beschriebenen Methode reduzieren. + Im Allgemeinen solltst du CBR vollkommen meiden, wenn dir Qualität + wichtig ist. + </para> + + <para> + Mit konstantem Quantisierer wendet der Codec denselben Quantisierer, wie + durch die Option <option>vqscale</option> (für + <systemitem class="library">libavcodec</systemitem>) spezifiziert, auf jeden + Macroblock an. + Willst du einen Rip mit höchstmöglicher Qualität und ignorierst dabei + wiederum die Bitrate, kannst du <option>vqscale=2</option> verwenden. + Dies wird dieselbe Bitrate und PSNR (peak signal-to-noise ratio) liefern + wie CBR mit <option>vbitrate</option>=infinity und der Standardeinstellung + <option>vqmin</option>=2. + </para> + + <para> + Das Problem mit konstantem Quantisierer ist, dass der vorgegebene Quantisierer + zum Einsatz kommt, egal ob der Macroblock ihn benötigt oder nicht. Dies heißt, + es wäre möglich, einen höheren Quantisierer auf einen Macroblock anzuwenden, + ohne sichtbare Qualität zu opfern. Warum die Bits für einen unnötig kleinen + Quantisierer verschwenden? Deine CPU hat soundso viele Arbeitsgänge Zeit zur + Verfügung, die Festplatte jedoch nur soundso viele Bits. + </para> + + <para> + Bei einer Encodierung mit zwei Durchläufen (two pass), wird der erste Durchgang + den Film so rippen, als würde CBR vorliegen, jedoch wird ein Log die Eigenschaften + jedes Frames beibehalten. Diese Daten werden danach während des zweiten Durchgangs + dazu verwendet, intelligente Entscheidungen zur Wahl des Quantisierers zu treffen. + Während schneller Action oder hochdetaillierter Szenen werden womöglich + höhere Quantisierer, während langsamen Bewegungen und Szenen mit weniger Details + niedrigere Quantisierer verwendet. + Normalerweise ist die Anzahl der Bewegungen wichtiger als die der Details. + </para> + + <para> + Wenn du <option>vqscale=2</option> verwendest, verschwendest du Bits. Wenn + du <option>vqscale=3</option> anwendest, wirst du keinen Rip mit bestmöglicher + Qualität erhalten. Angenommen du rippst eine DVD mit <option>vqscale=3</option> + und das Resultat ist 1800Kbit. Wenn du in zwei Durchgängen mit + <option>vbitrate=1800</option> encodierst, wird das daraus resultierende Video + eine <emphasis role="bold">bessere Qualität</emphasis> bei + <emphasis role="bold">gleicher Bitrate</emphasis> haben. + </para> + + <para> + Da du nun davon überzeugt bist, dass zwei Durchgänge (two pass) den besten + Weg darstellen, stellt sich jetzt tatsächlich die Frage, welche Bitrate + verwendet werden soll? Die Antwort ist, dass es nicht nur eine + Antwort gibt. Idealerweise willst du eine Bitrate wählen, die die beste Balance + zwischen Qualität und Dateigröße ergibt. Die kann abhängig vom Quellvideo + variieren. + </para> + + <para> + Interessiert die Größe nicht, stellen etwa 2000Kbit plus oder minus 200Kbit + einen guten Ausgangspunkt für einen sehr hochqualitativen Rip dar. + Bei einem Video mit schneller Action oder hohen Details, oder wenn du schlicht + und ergreifend ein sehr kritisches Auge besitzst, könntest du dich für 2400 + oder 2600 entscheiden. + Bei einigen DVDs kannst du eventuell keinen Unterschied bei 1400Kbit feststellen. + Um ein besseres Gefühl zu bekommen, ist es eine gute Idee, mit Szenen bei + unterschiedlichen Bitraten herumzuexperimentieren. + </para> + + <para> + Wenn du eine bestimmte Größe anvisierst, musst du die Bitrate irgendwie + kalkulieren. + Aber zuvor solltest du wissen, wieviel Platz du für den/die Audiotrack(s) + reservieren musst, daher solltest Du + <link linkend="menc-feat-dvd-mpeg4-audio">diese(n) zuerst rippen</link>. + Du kannst die Bitrate mit folgender Gleichung berechnen: + <systemitem>Bitrate = (zielgroesse_in_MByte - soundgroesse_in_MByte) * 1024 * 1024 / laenge_in_sek * 8 / 1000</systemitem> + Um zum Beispiel einen zweistündigen Film auf eine 702MB CD mit einem 60MB + Audiotrack zu bekommen, sollte die Videobitrate folgendermaßen sein: + <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = 740kbps</systemitem> + </para> + + </sect2> + + + <sect2 id="menc-feat-dvd-mpeg4-constraints"> + <title>Randbedingungen für effizientes Encodieren</title> + + <para> + Aufgrund der Natur der MPEG-Komprimierung gibt es zahlreiche + Randbedingungen, denen du zum Erreichen maximaler Qualität folgen + solltest. + MPEG splittet das Video in Macroblöcke genannte 16x16 Quadrate auf, + jeder davon zusammengesetzt aus 4 8x8 Blöcken mit + Luma-(Intensitäts)-Informationen und zwei halb-auflösenden 8x8 + Chroma-(Farb)-Blöcken (einer für die Rot-Cyan-Achse und der andere für + die Blau-Gelb-Achse). + Selbst wenn Breite und Höhe deines Films kein Vielfaches von 16 sind, + wird der Encoder ausreichend 16x16 Macroblöcke zur Abdeckung des + gesamten Bildbereichs verwenden und der Extraplatz wird verschwendet. + Folglich ist es keine gute Idee, im Interesse der Maximierung der + Qualität bei fester Dateigröße, Abmessungen zu verwenden, die kein + Vielfaches von 16 sind. + </para> + + <para> + Die meisten DVDs besitzen ein bestimmtes Maß schwarzer Balken + an ihren Rändern. Diese dort zu belassen 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 muss sie viel mehr Bits verwenden, + oder es wird andernfalls ein als Ringing bekannter Artefakt + auftreten. + </para> + + <para> + Die Discrete Frequency Transform (DCT) erfolgt separat auf jeden + Macroblock (eigentlich auf jeden Block), somit trifft dieses Problem + nur zu, wenn sich in einem Block eine scharfe Kante befindet. + Beginnt dein schwarzer Rand exakt an den Grenzen zum Vielfachen von + 16 Pixeln, stellt dies kein Problem dar. + Seis drum, die schwarzen Ränder bei DVDs werden in den seltensten + Fällen schön angeordnet, daher wirst du sie in der Praxis immer + abschneiden müssen, um diesen Nachteil zu vermeiden. + </para> + </listitem> + </orderedlist> + + <para> + Zusätzlich zu den Frequenzbereichs-Transformationen verwendet die + MPEG-Kompression Bewegungsvektoren, um den Wechsel von einem Frame + zum anderen darzustellen. + Bewegungsvektoren arbeiten bei Inhalt, der von den Kanten eines Bildes + her einfließt, normalerweise weniger effizient, da dieser im vorherigen + Frame nicht vorhanden ist. Solange sich das Bild bis voll zur Kante des + encodierten Bereichs hin vergrößert, haben Bewegungsvektoren kein Problem + mit Inhalt, der sich aus den Kanten des Bildes hinausbewegt. Die Präsenz + schwarzer Ränder kann jedoch Ärger machen: + </para> + + <orderedlist continuation="continues"> + <listitem> + <para> + Die MPEG-Kompression speichert für jeden Macroblock einen Vektor, + um ausfindig zu machen, welcher Teil des vorherigen Frames in diesen + Macroblock als Basis zur Vorhersage des nächsten Frames kopiert + werden soll. Nur die verbleibenden Unterschiede müssen encodiert werden. + Überspannt der Macroblock die Kante des Bildes und enthält einen + Teil des schwarzen Randes, werden Bewegungsvektoren aus anderen + Teilen des Bildes den schwarzen Rand überschreiben. Dies bedeutet, dass + jede Menge Bits entweder zur wiederholten Schwärzung des überschriebenen + Randes aufgewendet werden müssen, oder es wird (eher) erst gar kein + Bewegungsvektor genutzt und alle Änderungen innerhalb dieses Macroblocks + müssen explizit encodiert werden. So oder so wird die Encodiereffizienz + außerordentlich reduziert. + </para> + + <para> + Nochmal, dieses Problem trifft nur dann zu, wenn schwarze Ränder + nicht an den Grenzen eines Vielfachen von 16 anstehen. + </para> + </listitem> + + <listitem> + <para> + Zuletzt noch was, angenommen wir haben einen Macroblock im Inneren des + Bildes und ein Objekt bewegt sich aus Richtung Nähe der Kante des Bildes + her in diesen Block hinein. Die MPEG-Encodierung kann nicht sagen + "kopiere den Teil, der innerhalb des Bildes liegt, den schwarzen Rand + aber nicht". Somit wird der schwarze Rand ebenfalls mit hinein kopiert + und jede Menge Bits müssen zur Encodierung des Teils des Bildes, der + dort angenommen wird, aufgewendet werden. + </para> + + <para> + Läuft das Bild ständig zur Kante des encodierten Bereichs hin, besitzt + MPEG spezielle Optimierungen, um immer wieder dann die Pixel am Rand des + Bildes zu kopieren, wenn ein Bewegungsvektor von außerhalb des + encodierten Bereichs ankommt. Dieses Feature wird nutzlos, wenn der Film + schwarze Ränder hat. Im Gegensatz zu den Problemen 1 und 2 hilft hier + kein Anordnen der Ränder am Vielfachen von 16. + </para> + </listitem> + + <listitem> + <para> + Obwohl die Ränder komplett schwarz sind und sich nie ändern, ist + zumindest ein minimaler Overhead damit verbunden, mehr Macroblöcke + zu besitzen. + </para> + </listitem> + </orderedlist> + + <para> + Aus all diesen Gründen wird empfohlen, schwarze Ränder komplett abzuschneiden. + Mehr noch, liegt ein Bereich mit Rauschen/Verzerrung an der Kante des Bildes, + steigert dessen Abschneiden ebenso die Encodiereffizienz. Videophile Puristen, + die den Originalzustand so nah wie möglich sichern wollen, + mögen dieses Abschneiden (cropping) beanstanden, wenn du jedoch nicht planst, + bei konstantem Quantisierer zu encodieren, wird der Qualitätsgewinn, den Du + durch dieses Abschneiden erreichst, beträchtlich über dem Verlust an Informationen + an den Kanten liegen. + </para> + </sect2> + + + <sect2 id="menc-feat-dvd-mpeg4-crop"> + <title>Abschneiden und Skalieren</title> + + <para> + Wiederaufruf der vorherigen Sektion, dass die letzte von Dir + encodierte Bildgröße ein Vielfaches von 16 sein sollte (bei beidem, + Breite und Höhe). + Diese kann durch Abschneiden, Skalieren erreicht werden oder durch + eine Kombination von beidem. + </para> + + <para> + Beim Abschneiden gibt es ein paar Richtwerte, die befolgt werden müssen, + um eine Zerstörung des Films zu vermeiden. + Das normale YUV-Format, 4:2:0, speichert Chroma-(Farb)-Informationen + in einer Unterstichprobe (subsampled), z.B. wird Chroma nur halb so oft + in jede Richtung gesampelt wie Luma-(Intensitäts)-Informationen. + Beobachte dieses Diagramm, in dem L Luma-Samplingpunkte bedeuten und C + für Chroma steht. + </para> + + <informaltable> + <?dbhtml table-width="40%" ?> + <?dbfo table-width="40%" ?> + <tgroup cols="8" align="center"> + <colspec colnum="1" colname="col1"/> + <colspec colnum="2" colname="col2"/> + <colspec colnum="3" colname="col3"/> + <colspec colnum="4" colname="col4"/> + <colspec colnum="5" colname="col5"/> + <colspec colnum="6" colname="col6"/> + <colspec colnum="7" colname="col7"/> + <colspec colnum="8" colname="col8"/> + <spanspec spanname="spa1-2" namest="col1" nameend="col2"/> + <spanspec spanname="spa3-4" namest="col3" nameend="col4"/> + <spanspec spanname="spa5-6" namest="col5" nameend="col6"/> + <spanspec spanname="spa7-8" namest="col7" nameend="col8"/> + <tbody> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry spanname="spa1-2">C</entry> + <entry spanname="spa3-4">C</entry> + <entry spanname="spa5-6">C</entry> + <entry spanname="spa7-8">C</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry spanname="spa1-2">C</entry> + <entry spanname="spa3-4">C</entry> + <entry spanname="spa5-6">C</entry> + <entry spanname="spa7-8">C</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para> + Wie du sehen kannst, kommen Zeilen und Spalten des Bildes natürlich paarweise. + Folglich <emphasis>müssen</emphasis> deine Abschneide-Offsets und + Abmessungen geradzahlig sein. + Sind sie dies nicht, wird Chroma nicht mehr korrekt mit Luma abgeglichen. + In der Theorie ist es möglich, mit ungeraden Offsets abzuschneiden, jedoch + erfordert dies ein Resampling von Chroma, was potentiell eine mit Verlust + verbundene Operation bedeutet und vom Crop-Filter nicht unterstützt + wird. + </para> + + <para> + Weiterhin wird interlaced Video folgendermaßen gesampelt: + </para> + + <informaltable> + <?dbhtml table-width="80%" ?> + <?dbfo table-width="80%" ?> + <tgroup cols="16" align="center"> + <colspec colnum="1" colname="col1"/> + <colspec colnum="2" colname="col2"/> + <colspec colnum="3" colname="col3"/> + <colspec colnum="4" colname="col4"/> + <colspec colnum="5" colname="col5"/> + <colspec colnum="6" colname="col6"/> + <colspec colnum="7" colname="col7"/> + <colspec colnum="8" colname="col8"/> + <colspec colnum="9" colname="col9"/> + <colspec colnum="10" colname="col10"/> + <colspec colnum="11" colname="col11"/> + <colspec colnum="12" colname="col12"/> + <colspec colnum="13" colname="col13"/> + <colspec colnum="14" colname="col14"/> + <colspec colnum="15" colname="col15"/> + <colspec colnum="16" colname="col16"/> + <spanspec spanname="spa1-2" namest="col1" nameend="col2"/> + <spanspec spanname="spa3-4" namest="col3" nameend="col4"/> + <spanspec spanname="spa5-6" namest="col5" nameend="col6"/> + <spanspec spanname="spa7-8" namest="col7" nameend="col8"/> + <spanspec spanname="spa9-10" namest="col9" nameend="col10"/> + <spanspec spanname="spa11-12" namest="col11" nameend="col12"/> + <spanspec spanname="spa13-14" namest="col13" nameend="col14"/> + <spanspec spanname="spa15-16" namest="col15" nameend="col16"/> + <tbody> + <row> + <entry namest="col1" nameend="col8">Oberes Feld</entry> + <entry namest="col9" nameend="col16">Unteres Feld</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry spanname="spa1-2">C</entry> + <entry spanname="spa3-4">C</entry> + <entry spanname="spa5-6">C</entry> + <entry spanname="spa7-8">C</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="spa9-10">C</entry> + <entry spanname="spa11-12">C</entry> + <entry spanname="spa13-14">C</entry> + <entry spanname="spa15-16">C</entry> + </row> + <row> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry spanname="spa1-2">C</entry> + <entry spanname="spa3-4">C</entry> + <entry spanname="spa5-6">C</entry> + <entry spanname="spa7-8">C</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + <row> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="spa9-10">C</entry> + <entry spanname="spa11-12">C</entry> + <entry spanname="spa13-14">C</entry> + <entry spanname="spa15-16">C</entry> + </row> + <row> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + <entry>L</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para> + Wie du erkennen kannst, wiederholt sich das Muster bis nach 4 Zeilen nicht. + Somit müssen bei interlaced Video dein y-Offset und die Höhe für das + Ausschneiden ein Vielfaches von 4 sein. + </para> + + <para> + Die ursprüngliche DVD-Auflösung ist 720x480 für NTSC und 720x576 für PAL, es + gibt jedoch ein Aspektkennzeichen, das spezifiziert, ob Vollbild (4:3) oder + Breitwandfilm (16:9) vorliegt. Viele (wenn nicht die meisten) Breitwandfilm-DVDs + sind nicht grundsätzlich 16:9, sondern entweder 1.85:1 oder 2.35:1 (Cinescope). + Dies bedeutet, dass es schwarze Bänder im Video geben wird, die herausgeschnitten + werden müssen. + </para> + + <para> + <application>MPlayer</application> stellt einen Crop-Erkennungsfilter + zur Verfügung, der das Ausschnittsrechteck (<option>-vf cropdetect</option>) + bestimmt. + Starte <application>MPlayer</application> mit + <option>-vf cropdetect</option>, und er wird die Crop-Einstellungen + zum Entfernen der Ränder ausgeben. + du solltest den Film lange genug laufen lassen, damit die gesamte Bildfläche + verwendet wird, um akkurate Crop-Werte zu erhalten. + </para> + + <para> + Teste danach die Werte, die von <application>MPlayer</application> + über die Befehlszeile mittels <option>cropdetect</option> ausgegeben wurden + und passe das Rechteck nach deinen Bedürfnissen an. + Der Filter <option>rectangle</option> kann dabei helfen, indem er dir erlaubt, + das Rechteck interaktiv über dem Film zu positionieren. + Vergiss nicht, den oben genannten Teilbarkeitsrichtwerten zu folgen, sodass du + die Chroma-Ebenen nicht verkehrt anordnest. + </para> + + <para> + In bestimmten Fällen könnte Skalieren nicht wünschenswert sein. + Skalierung in vertikaler Richtung ist mit interlaced Video + schwierig, und wenn du das Interlacing beibehalten willst, solltest + du für gewöhnlich das Skalieren bleiben lassen. + Hast du nicht vor zu skalieren, willst aber nach wie vor Abmessungen + in einem Vielfachen von 16 verwenden, musst du über den Rand + hinausschneiden. + Schneide aber lieber nicht über den Rand hinaus, da schwarze Ränder + sehr schlecht zu encodieren sind! + </para> + + <para> + Weil MPEG-4 16x16 Macroblöcke nutzt, solltest du dich vergewissern, + dass jede Abmessung des zu encodierenden Videos ein Vielfaches von + 16 ist oder du verschlechterst andernfalls die Qualität, speziell bei + niedrigeren Bitraten. Du kannst dies durch Abrunden der Breite und + Höhe des Ausschnittsrechtecks hinunter auf den nächsten Wert eines + Vielfachen von 16 erreichen. + Wie früher bereits erklärt, wirst du beim Abschneiden das y-Offset + um die Hälfte der Differenz der alten und neuen Höhe erhöhen wollen, + sodass das daraus resultierende Video aus der Mitte des Frames genommen + wird. Und stelle wegen der Art, wie ein DVD-Video gesampelt wird, sicher, + dass das Offset eine gerade Zahl ist. (Verwende in der Tat - als eine + Regel - nie ungerade Werte für irgendwelche Parameter beim Abschneiden + oder Skalieren eines Videos) Wenn du dich beim Wegwerfen einiger extra + Pixel nicht wohl fühlst, ziehst du es stattdessen vor, das Video zu + skalieren. + Wir werden uns dies im unten stehenden Beispiel mal ansehen. + Du kannst den <option>cropdetect</option>-Filter sogar alles oben erwähnte + für dich erledigen lassen, da dieser einen optionalen Parameter + <option>round</option> besitzt, der standardmäßig gleich 16 ist. + </para> + + <para> + Pass auch auf "halbschwarze" Pixel an den Kanten auf. Stelle sicher, dass + du diese ebenfalls mit abschneidest oder du vergeudest dort Bits, wo sie + doch besser anderswo verwendet werden sollten. + </para> + + <para> + Nachdem nun alles gesagt ist, wirst du möglicherweise bei einem + Video landen, dessen Pixel nicht ganz 1.85:1 oder 2.35:1, aber ziemlich + nahe dran sind. Du könntest ein neues Seitenverhältnis manuell berechnen, + aber <application>MEncoder</application> bietet eine Option für + <systemitem class="library">libavcodec</systemitem> genannt + <option>autoaspect</option>, die das für dich erledigt. + Skaliere dieses Video auf keinen Fall hoch, um die Pixel abzugleichen + solange du keinen Festplattenplatz verschwenden willst. + Das Skalieren sollte beim Playback gemacht werden und der Player wird das + in der AVI gespeicherte Seitenverhältnis zur Bestimmung der besten + Auflösung verwenden. + Unglücklicherweise erzwingen nicht alle Player diese Auto-Skalierinformation, + und deshalb willst du vielleicht trotzdem neu skalieren. + </para> + </sect2> + + + <sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate"> + <title>Auswahl von Auflösung und Bitrate</title> + + <para> + Wenn du nicht vor hast, im Modus mit konstantem Quantisier zu encodieren, + musst du eine Bitrate auswählen. + Das Konzept der Bitrate ist denkbar einfach. + Sie ist die (mittlere) Anzahl Bits, die pro Sekunde zum Speichern des + Films verbraucht werden. + Normalerweise wird die Bitrate in Kilobit (1000 Bit) pro Sekunde gemessen. + Die Größe deines Films auf der Platte ist die Bitrate multipliziert mit der + Dauer des Films, plus einem kleinen "Overhead" (siehe zum Beispiel in der + Sektion über + <link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">den AVI-Container</link>). + Weitere Parameter wie Skalierung, Cropping, usw. werden die Dateigröße + <emphasis role="bold">nicht</emphasis> ändern, solange du nicht auch + die Bitrate veränderst! + </para> + <para> + Die Bitrate skaliert <emphasis role="bold">nicht</emphasis> proportional + zur Auflösung. + Dies bedeutet, eine Datei 320x240 mit 200 KBit/Sek wird nicht dieselbe + Qualität aufweisen wie der gleiche Film bei 640x480 und 800 KBit/Sek! + Dafür gibt es zwei Gründe: + <orderedlist> + <listitem> + <para> + <emphasis role="bold">Wahrnehmbar</emphasis>: du bemerkst + MPEG-Artefakte eher, wenn sie größer hochskaliert sind! + Artefakte erscheinen bei einer Skalierung von Blöcken (8x8). + Dein Auge wird in 4800 kleinen Blöcken nicht so leicht Fehler sehen + wie es welche in 1200 großen Blöcken sieht (vorausgesetzt du skalierst + beide auf Vollbild). + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Theoretisch</emphasis>: Wenn du ein Bild + runterskalierst, aber nach wie vor die selbe Größe der (8x8) + Blöcke zur Frequenzraumtransformation verwendest, bewegst Du + mehr Daten in die Hochfrequenzbänder. + Grob gesagt, jedes Pixel enthält mehr des Details als es dies + zuvor tat. + Somit enthält dein herunterskaliertes Bild 1/4 der Information + in räumlichen Richtungen, es könnte immer noch einen hohen Anteil + Information im Frequenzbereich enthalten (vorausgesetzt dass die + hohen Frequenzen im originalen 640x480 Bild nicht ausgenutzt wurden). + </para> + </listitem> + </orderedlist> + </para> + <para> + Vergangene Leitfäden legten nahe, eine Bitrate und Auflösung zu wählen, + die auf eine "Bits pro Pixel"-Näherung basieren, dies ist jedoch im + allgemeinen aus oben genannten Gründen nicht gültig. + Eine bessere Schätzung scheint zu sein, dass Bitraten proportional zur + Quadratwurzel der Auflösung skalieren, sodass 320x240 und 400 KBit/Sek + vergleichbar mit 640x480 bei 800 KBit/Sek wären. + Dies wurde aber nicht mit theoretischer oder empirischer Strenge verifiziert. + Desweiteren ist es in Anbetracht der Tatsache, dass Filme in Bezug auf Rauschen, Details, + Bewegungsgrad usw. außerordentlich variieren, zwecklos, allgemeine Empfehlungen + für die Bits pro Diagonallänge (dem Analog zu Bits pro Pixel + unter Verwendung der Quadratwurzel) abzugeben. + </para> + <para> + So weit haben wir nun die Schwierigkeit der Wahl von Bitrate und + Auflösung diskutiert. + </para> + + + <sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute"> + <title>Berechnen der Auflösung</title> + <para> + Die folgenden Schritte werden dich in der Berechnung der Auflösung + deiner Encodierung anleiten, ohne das Video allzusehr zu verzerren, + indem verschiedene Typen von Informationen über das Quellvideo in + Betracht gezogen werden. + Zuerst solltest du die encodierte Auflösung berechnen: + <systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem> + <itemizedlist> + <title>wobwei:</title> + <listitem> + <para> + Wc und Hc die Breite und Höhe des zugeschnittenen Videos darstellen + </para> + </listitem> + <listitem> + <para> + ARa das angezeigte Seitenverhältnis ist, das üblicherweise 4/3 oder 16/9 beträgt + </para> + </listitem> + <listitem> + <para> + PRdvd das Pixelverhältnis der DVD ist, welches gleich 1.25=(720/576) für + PAL-DVDs und 1.5=(720/480) für NTSC-DVDs beträgt + </para> + </listitem> + </itemizedlist> + </para> + + <para> + Dann kannst du die X- und Y-Auflösung berechnen, gemäß eines gewisse Faktors + der Kompressionsqualität (CQ): + <systemitem>ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem> + und + <systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem> + </para> + + <para> + Okay, aber was ist der CQ? + Der CQ repräsentiert die Anzahl Bits pro Pixel und pro Frame der Encodierung. + Grob ausgedrückt, je größer der CQ, desto geringer die Wahrscheinlichkeit, + Encodierungsartefakte zu sehen. + Trotz allem, wenn du eine Zielgröße für deinen Film hast (1 oder 2 CDs zum Beispiel), + gibt es eine begrenzte Gesamtzahl an Bits, die du aufwenden kannst; deswegen ist es + notwendig, einen guten Kompromiss zwischen Komprimierbarkeit und Qualität zu suchen. + </para> + + <para> + Der CQ hängt von der Bitrate, der Effektivität des Videocodecs und der + Filmauflösung ab. + Um den CQ anzuheben, könntest du typischerweise den Film unter der Annahme + herunterskalieren, dass die Bitrate mit der Funktion der Zielgröße und der + Länge des Films berechnest, die ja konstant sind. + Mit MPEG-4 ASP-Codecs wie <systemitem class="library">XviD</systemitem> + und <systemitem class="library">libavcodec</systemitem>, resultiert ein CQ + unter 0.18 für gewöhnlich in einem ziemlich blockhaften Bild, weil nicht + genug Bits zum Codieren der Information jedes Macroblocks vorhanden sind. + (MPEG4, wie auch viele andere Codecs, gruppiert Pixel nach Blöcken verschiedener + Pixel, um das Bild zu komprimieren; sind nicht genügend Bits vorhanden, + werden die Kanten dieser Blöcke sichtbar.) + Es ist daher weise, einen CQ im Bereich von 0.20 bis 0.22 für einen 1 CD-Rip + und 0.26-0.28 für einen 2 CD-Rip mit Standard-Encodieroptionen zu nehmen. + Höherentwickelte Encodieroptionen wie die hier für + <link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link> + und + <link linkend="menc-feat-xvid-example-settings"><systemitem class="library">XviD</systemitem></link> + aufgelisteten sollten es möglich machen, dieselbe Qualität mit einem CQ im Bereich + von 0.18 bis 0.20 für einen 1 CD-Rip und 0.24 bis 0.26 für einen 2 CD-Rip zu erreichen. + Mit den MPEG-4 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 richtungsweisendes Maß ist, + da sie vom encodierten Inhalt abhängt. Ein CQ von 0.18 kann für einen + Bergman-Film recht hübsch aussehen, im Gegensatz zu einem Film wie + The Matrix, der jede Menge High-Motion-Szenen enthält. + Auf der anderen Seite ist es nutzlos, den CQ höher als 0.30 zu schrauben, + da du ohne spürbaren Qualitätsgewinn Bits vergeuden würdest. + Beachte ebenso, dass wie früher in diesem Handbuch bereits angemerkt, + niedrig auflösende Videos einen größeren CQ benötigen, um gut auszusehen + (im Vergleich z.B. zur DVD-Auflösung). + </para> + </sect3> + + </sect2> + + <sect2 id="menc-feat-dvd-mpeg4-filtering"> + <title>Filtern</title> + + <para> + Zu lernen, wie man <application>MEncoder</application>s Videofilter + verwendet, ist essentiell, um gute Encodierungen zu produzieren. + Jede Videoverarbeitung wird über Filter ausgeführt -- Ausschneiden, + Skalieren, Farbanpassung, Rauschentfernung, Scharfzeichnen, Deinterlacing, + telecine, inverses telecine und Deblocking, um nur ein paar davon aufzuzählen. + Zusammen mit der gewaltigen Zahl unterstützter Inputformate, ist die Vielfalt der + in <application>MEncoder</application> verfügbaren Filter eine seiner + Hauptvorteile im Vergleich zu ähnlichen Programmen. + </para> + + <para> + Filter werden in einer Kette über die Option -vf geladen: + + <screen>-vf filter1=Optionen,filter2=Optionen,...</screen> + + Die meisten Filter nehmen mehrere numerische, kommagetrennte + Optionen entgegen, jedoch variiert die Syntax der Optionen von + Filter zu Filter, also lies bitte die Manpage für Details + zu den Filtern, die du verwenden willst. + </para> + + <para> + Filter wirken auf das Video in der Reihenfolge ein, in der sie geladen werden. + Zum Beispiel wird folgende Kette: + + <screen>-vf crop=688:464:12:4,scale=640:464</screen> + + zuerst den Bereich 688x464 aus dem Bild schneiden mit der oberen, linken + Ecke bei (12,4) und danach das Ergebnis auf 640x464 herunter skalieren. + </para> + + <para> + Bestimmte Filter müssen zu oder nahe dem Anfang der Filterkette geladen + werden, um Vorteile aus den Informationen des Videodecoders zu ziehen, + die ansonsten durch andere Filter verloren gehen oder ungültig gemacht + würden. + Die wichtigsten Beispiele sind <option>pp</option> + (Nachbearbeitung (postprocessing), nur wenn es Deblock- oder + Dering-Operationen durchführt), <option>spp</option> (ein weiterer + Postprozessor zum Entfernen von MPEG-Artefakten), <option>pullup</option> + (umgekehrtes telecine) und <option>softpulldown</option> (zur Konvertierung + von soft telecine nach hard telecine). + </para> + + <para> + Im Allgemeinen solltest du den Film so wenig wie möglich Filtern, um + nahe an der originalen DVD-Quelle zu bleiben. Ausschneiden ist oft + notwendig (wie oben beschrieben), vermeide aber das Skalieren von Videos. + Obwohl das Herunterskalieren manchmal vorgezogen wird, um höhere Quantisierer + zu verwenden, wollen wir beide diese Dinge vermeiden: Erinnere dich daran, + dass wir von Anfang an beschlossen hatten, einen Kompromiss zwischen + Bits und Qualität zu schließen. + </para> + + <para> + Passe ebenso kein Gamma, Kontrast, Helligkeit, usw. an. Was auf deinem + Display gut aussieht, sieht auf anderen eventuell nicht gut aus. Diese + Anpassungen sollten nur im Playback vorgenommen werden. + </para> + + <para> + Eine Sache, die du vielleicht machen willst, ist, das Video durch einen sehr + feinen Entrauschfilter (Denoise) zu schicken, wie etwa <option>-vf hqdn3d=2:1:2</option>. + Nochmals, es geht darum, die Bits einer besseren Verwendung zuzuführen: Warum + Bits zum Encodieren des Rauschens verschwenden, wenn du dieses Rauschen auch + während des Playback entfernen kannst? + Die Parameter für <option>hqdn3d</option> zu erhöhen, wird überdies + die Komprimierbarkeit erhöhen, erhöhst du jedoch die Werte zu sehr, riskierst Du + eine Verringerung der Bildsichtbarkeit. Die oben vorgeschlagenen Werte + (<option>2:1:2</option>) sind ziemlich konservativ; du solltest dich frei + fühlen, mit höheren Werten herumzuexperimentieren und die Ergebnisse + selbst zu beobachten. + </para> + + </sect2> + + + <sect2 id="menc-feat-dvd-mpeg4-interlacing"> + <title>Interlacing und Telecine</title> + + <para> + Nahezu alle Filme sind bei 24 fps aufgenommen. Weil NTSC 30000/1001 fps entspricht, + müssen mit diesen 24 fps Videos einige Verarbeitungen durchgeführt werden, + um sie mit der korrekten NTSC-Framerate laufen zu lassen. Der Prozess wird 3:2 + pulldown genannt, allgemein telecine zugeordnet (weil pulldown des öfteren + während des telecine-Prozesses angewandt wird), und naiv so beschrieben, + dass er durch Verlangsamung des Films auf 24000/1001 fps und dem + Wiederholen jeden vierten Frames arbeitet. + </para> + + <para> + Keine spezielle Verarbeitung ist jedoch bei einem Video für PAL-DVDs + durchzuführen, das bei 25 fps läuft. (Technisch gesehen kann PAL telecined + werden, 2:2 pulldown genannt, dies ist jedoch in der Praxis nicht von Bedeutung.) + Der 24 fps Film wird einfach mit 25 fps abgespielt. Das Resultat ist, dass + der Film ein wenig schneller abläuft, doch solange du kein Alien bist, wirst + du möglicherweise keinen Unterschied wahrnehmen. + Die meisten PAL-DVDs haben pitch-korrigiertes Audio, dadurch hören sie sich + bei 25 fps abgespielt korrekt an, obwohl der Audiotrack (und infolgedessen der + gesamte Film) eine 4% kürzere Abspielzeit hat wie NTSC-DVDs. + </para> + + <para> + Weil das Video in einer PAL-DVD nicht verändert wurde, musst du dich nicht + viel um die Framerate sorgen. Die Quelle ist 25 fps und dein Rip wird 25 + fps haben. Wenn du jedoch einen NTSC-DVD-Film rippst, musst du eventuell + umgekehrtes telecine anwenden. + </para> + + <para> + Für mit 24 fps aufgenommene Filme ist das Video auf der NTSC-DVD entweder telecined + 30000/1001 oder hat andernfalls progressive 24000/1001 fps und es ist vorgesehen, + on-the-fly vom DVD-Player telecined zu werden. Auf der anderen Seite sind TV-Serien + üblicherweise nur interlaced, nicht telecined. Dies ist keine feste Regel: Einige + TV-Serien sind interlaced (wie etwa Buffy die Vampirjägerin), wogegen andere + eine Mixtur aus progressive und interlaced sind (so wie Angel oder 24) - wers kennt :). + </para> + + <para> + Es wird strengstens empfohlen, die Sektion über + <link linkend="menc-feat-telecine">Wie mit telecine und interlacing in NTSC-DVDs umgehen</link> + durchzulesen, um den Umgang mit den verschiedenen Möglichkeiten zu lernen. + </para> + + <para> + Wenn du aber hauptsächlich nur Filme rippst, gehst du wahrscheinlich entweder + mit 24 fps progressivem oder telecined Video um, in welchem Falle du + den Filter <option>pullup</option> mittels <option>-vf pullup,softskip</option> + verwenden kannst. + </para> + + </sect2> + + <sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced"> + <title>Interlaced Video encodieren</title> + + <para> + Ist der Film, den du encodieren willst, interlaced (NTSC-Video oder + PAL-Video), wirst du wählen müssen, ob du ihn deinterlacen willst + oder nicht. + Während das Deinterlacing deinen Film zwar auf progressiven Scan-Displays + wie Computermonitoren und Projektoren verwendbar macht, wird dich dies + doch etwas kosten: Die Feldrate von 50 oder 60000/1001 Feldern pro Sekunde + wird auf 25 oder 30000/1001 Frames pro Sekunde halbiert und annähernd die + Hälfte der Informationen in deinem Film geht während Szenen mit + signifikanter Bewegung verloren. + </para> + + <para> + Deswegen wird empfohlen, wenn du aus Gründen hochqualitativer + Archivierung encodierst, kein Deinterlacing durchzuführen. + Du kannst den Film immer noch beim Playback deinterlacen, + wenn du ihn auf progressiven Scan-Geräten anzeigst. Und zukünftige + Player werden in der Lage sein, auf volle Feldrate zu + deinterlacen, mit Interpolation auf 50 oder 60000/1001 komplette + Frames pro Sekunde aus interlaced Video heraus. + </para> + + <para> + Spezielle Sorgfalt solltest du bei der Arbeit mit interlaced Video walten lassen: + </para> + + <orderedlist> + <listitem> + <para> + Ausschneidehöhe und y-Offset müssen Vielfache von 4 sein. + </para> + </listitem> + <listitem> + <para> + Jedes vertikale Skalieren muss im interlaced Modus durchgeführt werden. + </para> + </listitem> + <listitem> + <para> + Nachbearbeitungs- (postprocessing) und Rauschunterdrückungsfilter (denoising) + funktionieren eventuell nicht wie erwartet, wenn du nicht speziell darauf achtest, + dass sie zu einem Zeitpunkt nur ein Feld verarbeiten, und sie können das Video + kaputt machen, wenn sie inkorrekt angewendet werden. + </para> + </listitem> + </orderedlist> + + <para> + Mit diesen Dingen im Kopf, hier das erste Beispiel: + </para> +<screen>mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \ +vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224</screen> + <para> + Beachte die Optionen <option>ilme</option> und <option>ildct</option>. + </para> + </sect2> + + + <sect2 id="menc-feat-dvd-mpeg4-av-sync"> + <title>Anmerkungen zur Audio-/Videosynchronisation</title> + <para> + <application>MEncoder</application>s Algorithmen der Audio-/Videosynchronisation + wurden mit der Intention entwickelt, Dateien mit kaputter Sychronisation wieder herzustellen. + In einigen Fällen können unnötiges Überspringen und Duplizieren + von Frames und möglicherweise leichte A/V-Desynchronisation verursachen, auch wenn sie + mit dem richtigen Input verwendet werden + (gewiss, Probleme mit A/V-Synchronisation treffen nur zu, wenn du den Audiotrack während + der Transcodierung des Videos verarbeitest oder kopierst, wozu auch nachhaltig + ermutigt wird). + Hierfür müsstest du mit der Option <option>-mc 0</option> in die + Grundeinstellung der A/V-Synchronisation wechseln oder diese in deine + <systemitem>~/.mplayer/mencoder</systemitem> Konfigurationsdatei eintragen, + solange du ausschließlich mit guten Quellen arbeitest (DVD, TV-Capture, + hochqualitativen MPEG-4-Rips usw.) und mit nicht-kaputten ASF/RM/MOV-Dateien. + </para> + <para> + Wenn du dich überdies gegen merkwürdige Frameübersprünge und -duplikationen + absichern willst, kannst du beides verwenden, <option>-mc 0</option> + und <option>-noskip</option>. + Dies verhindert <emphasis>jede</emphasis> A/V-Synchronisation und kopiert die Frames + eins-zu-eins, somit kannst du sie nicht verwenden, falls du irgendwelche Filter + verwendest, die unvorhersagbar Frames hinzufügen oder streichen oder falls + deine Input-Datei eine variable Framerate besitzt! + Deshalb wird eine allgemeine Anwendung von <option>-noskip</option> nicht empfohlen. + </para> + <para> + Die von <application>MEncoder</application> unterstützte sogenannte + "3-pass" Audioencodierung soll laut Berichten A/V-Desynchronisation + verursachen. + Dies geschieht definitiv dann, wenn sie in Verbindung mit bestimmten Filtern + verwendet wird, daher wird <emphasis>nicht</emphasis> empfohlen, den + 3-pass-Audio-Modus anzuwenden. + Dieses Feature ist nur aus Kompatibilitätsgründen übrig geblieben und für + erfahrene Benutzer, die wissen, wann es sicher anzuwenden ist und wann nicht. + Wenn du zuvor noch nie etwas vom 3-pass-Modus gehört hast, vergiss, dass wir es je + erwähnt haben! + </para> + <para> + Es gab auch Berichte über A/V-Desynchronisation, wenn + mit <application>MEncoder</application> von stdin encodiert wurde. + Lass das bleiben! Verwende immer eine Datei oder ein CD/DVD/usw-Laufwerk + als Input. + </para> + </sect2> + + <sect2 id="menc-feat-dvd-mpeg4-codec"> + <title>Auswahl des Videocodecs</title> + + <para> + Welcher Videocodec die beste Wahl ist, hängt von mehreren Faktoren + wie Größe, Qualität, Streambarkeit, Brauchbarkeit und Popularität, manche + davon weitgehend vom persönlichen Geschmack und technischen + Randbedingungen ab. + </para> + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">Kompressionseffizienz</emphasis>: + Es ist leicht zu verstehen, dass die meisten Codecs der neueren Generation + dafür gemacht wurden, Qualität und Komprimierung zu verbessern. + Deshalb behauptet der Autor dieses Handbuches und viele andere Leute, dass + du nichts verkehrt machen kannst, + <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'> + <para>Sei trotzdem vorsichtig: MPEG-4 AVC-Videos in DVD-Auflösung zu + decodieren erfordert einen schnellen Rechner (z.B. einen Pentium 4 + über 1.5Ghz oder einen Pentium M über 1Ghz). + </para> + </footnote> + wenn du MPEG-4 AVC-Codecs wie + <systemitem class="library">x264</systemitem> anstatt MPEG-4 ASP-Codecs + wie <systemitem class="library">libavcodec</systemitem> MPEG-4 oder + <systemitem class="library">XviD</systemitem> wählst. + (Zukunftsorientierte Codec-Entwickler interessiert eventuell Michael + Niedermayers Meinung + "<ulink url="http://guru.multimedia.cx/?p=10">why MPEG4-ASP sucks</ulink>" + zu lesen.) + Ebenso solltest du mit MPEG-4 ASP eine bessere Qualität erhalten als mit + MPEG-2-Codecs. + </para> + <para> + Allerdings können neuere Codecs, die noch stark in der Entwicklung stecken, + unter unentdeckten Bugs leiden, die die Encodierung ruinieren können. + Dies nimmt man schlicht in Kauf, wenn man "bleeding edge"-Technologie + verwendet. + </para> + <para> + Außerdem erfordert der Umgang mit einem neuen Codec und sich mit dessen Optionen + vertraut zu machen eine Zeit, bis du weißt, was alles anzupassen + ist, um die erhoffte Bildqualität zu erreichen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">Hardware-Kompatibilität</emphasis>: + Gewöhnlich dauert es bei neuen standalone Video-Playern lange, bis der + Support für die neuesten Videocodecs eingebunden ist. + Als ein Ergebnis unterstützen die meisten nur MPEG-1 (wie VCD, XVCD + und KVCD), MPEG-2 (wie DVD, SVCD und KVCD) und MPEG-4 ASP (wie DivX, + LMP4 von <systemitem class="library">libavcodec</systemitem> und + <systemitem class="library">XviD</systemitem>) + (Vorsicht: Im Allgemeinen werden nicht alle MPEG-4 ASP-Features unterstützt). + Sieh bitte in den technischen Spezifikationen deines Players nach (falls + welche vorhanden sind) oder google nach mehr Informationen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">Beste Qualität pro Encodierzeit</emphasis>: + Codecs, die es schon einige Zeit gibt (wie + <systemitem class="library">libavcodec</systemitem> MPEG-4 und + <systemitem class="library">XviD</systemitem>), sind gewöhnlich heftig + mit allen möglichen intelligenten Algorithmen und SIMD Assembly-Code optimiert. + Das sind sie deshalb, weil sie darauf abzielen, das beste Verhältnis von Qualität + pro Encodierzeit zu liefern. + Jedoch haben sie oft einige sehr fortschrittliche Optionen, die, + wenn aktiviert, das Encodieren bei marginalem Gewinn wirklich langsam + machen. + </para> + <para> + Wenn du es auf die Wahnsinnsgeschwindigkeit abzielst, solltest du + in der Nähe der Standardeinstellungen des Videocodecs bleiben + (obwohl du ruhig weitere Optionen ausprobieren solltest, die in + anderen Sektionen dieses Handbuchs angesprochen werden). + </para> + <para> + Vielleicht überlegst du auch, einen Codec auszuwählen, der mit + Multi-Threading klarkommt, was nur für Benutzer von Rechnern + mit mehreren CPUs von Nutzen ist. + <systemitem class="library">libavcodec</systemitem> MPEG-4 erlaubt + dies zwar, aber die Geschwindigkeitsgewinne sind begrenzt und es gibt + einen leicht negativen Effekt in Bezug auf die Bildqualität. + Die Multi-Thread-Encodierung von <systemitem class="library">XviD</systemitem>, + durch die Option <option>threads</option> aktiviert, kann zum Ankurbeln + der Encodiergeschwindigkeit - um in typischen Fällen etwa 40-60% - + bei wenn überhaupt geringer Bildverschlechterung verwendet werden. + <systemitem class="library">x264</systemitem> erlaubt ebenfalls + Multi-Thread-Encodierung, was 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 wirken, ziehen einige Leute + <systemitem class="library">XviD</systemitem> + oder <systemitem class="library">libavcodec</systemitem> MPEG-4 dem + <systemitem class="library">x264</systemitem> vor. + </para> + <para> + Du solltest dir dein eigenes Urteil bilden; lass dich nicht von Leuten + vollquasseln, die auf den einen Codec schwören. + Nimm ein paar Beispiel-Clips von Originalquellen und vergleiche die + verschiedenen Encodier-Optionen und Codecs, um den einen zu finden, mit + dem du am besten klarkommst. + Der beste Codec ist der, den du beherrschst und der in deinen Augen + auf deinem Display am besten aussieht. + <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'> + <para>Dieselbe Encodierung kann auf dem Monitor eines anderen vollkommen + anders aussehen oder wenn sie von einem anderen Decoder abgespielt wird, + also mach deine Encodierungen zukunftssicher indem du sie unter verschiedenen + Setups ablaufen lässt.</para></footnote>! + </para> + </listitem> + </itemizedlist> + <para> + Sieh dazu bitte in der Sektion + <link linkend="menc-feat-selecting-codec">Auswahl der Codecs und Containerformate</link> + nach der Liste der unterstützten Codecs. + </para> + </sect2> + + <sect2 id="menc-feat-dvd-mpeg4-audio"> + <title>Audio</title> + + <para> + Audio ist ein leichter zu lösendes Problem: Wenn du Wert auf Qualität legst, + lass es einfach so wie es ist. + Gerade AC3 5.1 Streams sind meist 448Kbit/s und jedes Bit wert. + Möglicherweise gerätst du in Versuchung, Audio in hochwertiges Vorbis + umzuwandeln, aber nur weil du heute keinen A/V-Receiver für AC3-pass-through + besitzt, bedeutet dies nicht, dass du nicht morgen doch einen hast. + Halte deine DVD-Rips zukunftssicher, indem du den AC3-Stream beibehältst. + Du behältst den AC3-Stream entweder, indem du ihn + <link linkend="menc-feat-mpeg4">während der Encodierung</link> + direkt in den Video-Stream kopierst. + Du kannst den AC3-Stream aber auch extrahieren, um ihn in Container wie NUT + oder Matroska zu muxen. + <screen>mplayer <replaceable>source_file.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>sound.ac3</replaceable></screen> + dumpt Audiotrack Nummer 129 aus der Datei <replaceable>source_file.vob</replaceable> + (NB: DVD-VOB-Dateien verwenden gewöhnlich andere Audionummerierungen, + was bedeutet, dass der VOB-Audiotrack 129 der 2-te Audiotrack der Datei ist) + in die Datei <replaceable>sound.ac3</replaceable>. + </para> + + <para> + Aber manchmal hast du wirklich keine andere Wahl als den Sound weiter zu + komprimieren, sodass mehr Bits fürs Video aufgewendet werden können. + Die meisten Leute entscheiden sich für eine Audiokomprimierung mit MP3- oder + Vorbis-Audiocodecs. + Wobei letzterer ein sehr platzsparender Codec ist, MP3 wird von Hardware-Playern + besser unterstützt, wobei sich dieser Trend auch ändert. + </para> + + <para> + Verwende <emphasis>nicht</emphasis> <option>-nosound</option> beim Encodieren + einer Datei, die Audio enhält, sogar wenn du Audio später separat + encodierst und muxt. + Zwar kann es im Idealfall manchmal funktionieren, wenn du <option>-nosound</option> + verwendest, wahrscheinlich um einige Probleme in deinen + Encodier-Befehlszeileneinstellungen zu verbergen. + In anderen Worten, einen Soundtrack während dem Encodieren zu haben, stellt sicher, + vorausgesetzt du siehst keine Meldungen wie + <quote>Too many audio packets in the buffer</quote>, dass du in der Lage sein + wirst, eine korrekte Synchronisation zu erhalten. + </para> + + <para> + Du brauchst <application>MEncoder</application> zur Verarbeitung des Sounds. + Du kannst zum Beispiel den originalen Soundtrack während dem Encodieren mit + <option>-oac copy</option> kopieren oder ihn mittels + <option>-oac pcm -channels 1 -srate 4000</option> in eine "leichte" + 4 kHz Mono WAV-PCM konvertieren. + Anderenfalls wird er - in einigen Fällen - eine Videodatei erzeugen, die + nicht mit Audio synchron läuft. + So was kommt vor, wenn die Anzahl der Videoframes in der Quelldatei nicht + mit der Gesamtlänge der Audioframes zusammenpasst oder immer dann, wenn + Unstetigkeiten/Splices vorhanden sind, wo Audioframes oder extra Audioframes + fehlen. + Der korrekte Weg, mit dieser Art Problem umzugehen, ist Stille (silence) + einzufügen oder Audio an diesen Punkten wegzuschneiden. + Seis drum, <application>MPlayer</application> kann das nicht, also wenn du + AC3-Audio demuxt und es in einer separaten Anwendung encodierst (oder + es mit <application>MPlayer</application> in eine PCM dumpst), die Splices + bleiben inkorrekt und der einzige Weg sie zu korrigieren ist, Videoframes + an diesem Splice zu streichen bzw. zu duplizieren. + Solange <application>MEncoder</application> Audio beim Encodieren des + Videos sieht, kann er dieses Streichen/Duplizieren erledigen, was + gewöhnlich OK ist, da es bei voller Schwärze/Szenenwechsel stattfindet, + aber wenn <application>MEncoder</application> Audio nicht erkennen kann, + wird er einfach alle Frames so wie sie ankommen verarbeiten und sie werden + einfach nicht zum endgültigen Audiostream passen, wenn du beispielsweise + deinen Audio- und Videotrack in eine Matroska-Datei mergst. + </para> + + <para> + Zuallererst wirst du den DVD-Sound in eine WAV-datei konvertieren müssen, die + der Audiocodec als Input nutzen kann. + Zum Beispiel: + <screen>mplayer <replaceable>source_file.vob</replaceable> -ao pcm:file=<replaceable>destination_sound.wav</replaceable> -vc dummy -aid 1 -vo null</screen> + wird den zweiten Audiotrack aus der Datei <replaceable>source_file.vob</replaceable> + in die Datei <replaceable>destination_sound.wav</replaceable> dumpen. + Vielleicht willst du den Sound vor dem Encodieren normalisieren, da + DVD-Audiotracks gemeinhin bei niedriger Lautstärke aufgenommen sind. + Du kannst beispielsweise das Tool <application>normalize</application> verwenden, + das in den meisten Distributionen zur Verfügung steht. + Wenn du Windows nutzt, kann ein Tool wie <application>BeSweet</application> + denselben Job erledigen. + Du wirst entweder nach Vorbis oder MP3 komprimieren. + Zum Beispiel: + <screen>oggenc -q1 <replaceable>destination_sound.wav</replaceable></screen> + wird <replaceable>destination_sound.wav</replaceable> mit + der Encodierqualität 1 encodieren, was annähernd 80Kb/s ergibt und + die Minimalqualität darstellt, mit der du encodieren solltest, wenn du + Wert auf Qualität legst. + Nimm bitte zur Kenntnis, dass 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 in der Lage, + Audio und Video nativ in MPEG- und AVI-Containerformate auszugeben. + Zum Beispiel: + <screen>mencoder -oac copy -ovc copy -o <replaceable>output_movie.avi</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable></screen> + würde die Video-Datei <replaceable>input_video.avi</replaceable> + und die Audio-Datei <replaceable>input_audio.mp2</replaceable> + in die AVI-Datei <replaceable>output_movie.avi</replaceable> mergen. + Dieser Befehl funktioniert mit MPEG-1 Layer I, II und III Audio (eher + bekannt als MP3), WAV und auch mit ein paar weiteren Audioformaten. + </para> + + <para> + 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> + wird das selbe machen, wie das obere Beispiel, außer dass der + Output-Container ASF sein wird. + Bitte nimm zur Kenntnis, dass dieser Support hochexperimentell ist + (aber von Tag zu Tag besser wird) und nur funktionieren wird, wenn du + <application>MPlayer</application> mit aktiviertem Support für + <systemitem class="library">libavformat</systemitem> kompiliert + hast (was meint, dass eine Pre-Packaged Binary Version in den meisten + Fällen nicht funktionieren wird). + </para> + + + <sect3 id="menc-feat-dvd-mpeg4-muxing-filter-issues"> + <title>Verbessern der Mux- und A/V-Synchronisationszuverlässigkeit</title> + <para> + Es kann vorkommen, dass du ernsthafte A/V-Synchronisationsprobleme hast während + du versuchst, deine Video- und einige Audiotracks zu muxen, wobei es nichts + ändert, wenn du das Audiodelay anpasst, du bekommst nie eine korrekte + Synchronisation zu Stande. + Dies kann vorkommen, wenn du manche Videofilter verwendest, die einige Frames + weglassen oder duplizieren, wie etwa die inverse telecine-Filter. + ich kann dich nur dazu ermutigen, den <option>harddup</option>-Videofilter + ans Ende der Filterkette anzuhängen, um solcherlei Problemen aus dem Weg + zu gehen. + </para> + + <para> + Ohne <option>harddup</option> verlässt sich <application>MEncoder</application>, + wenn er einen Frame duplizieren will, darauf, dass der Muxer eine Marke auf den + Container setzt, sodass der letzte Frame nochmals angezeigt wird, um + während des Schreibens des aktuellen Frames synchron zu bleiben. + Mit <option>harddup</option> wird <application>MEncoder</application> + statt dessen einfach den zuletzt angezeigten Frame nochmal in die Filterkette + einschieben. + Dies bedeutet, dass der Encoder <emphasis>exakt</emphasis> denselben Frame + zweimal entgegen nimmt und komprimiert. + Dies ergibt eine etwas größere Datei, verursacht jedoch keine Probleme + beim Demuxen oder Remuxen in ein anderes Containerformat. + </para> + + <para> + Du kommst auch nicht um den Einsatz von <option>harddup</option> im + Zusammenhang mit Containerformaten herum, die nicht allzu fest mit + <application>MEncoder</application> verlinkt sind, wie etwa diejenigen, + welche von <systemitem class="library">libavformat</systemitem> unterstützt + werden, der keine Frameduplikation auf Container-Level unterstützt. + </para> + </sect3> + + + <sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations"> + <title>Limitierungen des AVI-Containers</title> + <para> + Obwohl es das am breitesten unterstützte Containerformat nach MPEG-1 ist, + besitzt AVI auch einige gravierende Nachteile. + Der vielleicht offensichtlichste ist der Overhead. + Für jeden Block der AVI-Datei werden 24 Byte auf Header und Indizes + verschwendet. + Dies heißt übersetzt etwas mehr als 5 MB pro Stunde oder 1-2.5% + Overhead für einen 700 MB Film. Das sieht nicht nach viel aus, könnte aber + die Differenz zwischen einem Video mit 700 KBit/Sek oder 714 KBit/Sek + bedeuten, und jedes bisschen mehr an Qualität zählt. + </para> + + <para> + Zu dieser schockierenden Ineffizienz kommen bei AVI noch folgende + wesentlichen Einschränkungen: + </para> + + <orderedlist> + <listitem> + <para> + Nur Inhalt mit festen fps kann gespeichert werden. Dies ist insbesondere + dann einschränkend, wenn das Originalmaterial, das du encodieren willst, + gemischter Inhalt ist, zum Beispiel ein Mix aus NTSC-Video und + Filmmaterial. + Eigentlich gibt es Hacks, die es ermöglichen, Inhalt mit gemischter + Framerate in einer AVI unterzubringen, diese vergrößern jedoch den + (ohnehin großen) Overhead fünffach oder mehr und sind somit ungeeignet. + </para> + </listitem> + <listitem> + <para> + Audio in AVI-Dateien muss entweder konstante Bitrate (CBR) oder + konstante Framegröße haben (also alle Frames decodieren zur selben Anzahl + Samples). + Unglücklicherweise erfüllt Vorbis, der effektivste Codec, keine dieser + Anforderungen. + Deshalb wirst du einen weniger effizienten Codec wie MP3 oder AC3 verwenden + müssen, wenn du planst, einen Film in AVI zu speichern. + </para> + </listitem> + </orderedlist> + + <para> + Nachdem ich nun all dies erzählt habe, muss ich anmerken, momentan + unterstützt <application>MEncoder</application> keinen Output mit + variablen fps oder Vorbis-Encodierung. + Deswegen magst du dies nicht als Einschränkung ansehen, falls + <application>MEncoder</application> das einzige Tool ist, das du + nutzt, um deine Ecodierungen zu produzieren. + Es ist dennoch möglich, <application>MEncoder</application> nur zur + Videoencodierung zu verwenden und danach externe Tools, um Audio + zu encodieren und in ein anderes Containerformat zu muxen. + </para> + </sect3> + + <sect3 id="menc-feat-dvd-mpeg4-muxing-matroska"> + <title>Muxen in den Matroska-Container</title> + <para> + Matroska ist ein freies, offenes Containerformat, das darauf abzielt, + eine Menge erweiterter Features bereitzustellen, mit denen ältere Container + wie AVI nicht umgehen können. + Zum Beispiel unterstützt Matroska Audioinhalt mit variabler Bitrate (VBR), + variable Frameraten (VFR), Kapitel, Dateianhänge, + Fehlererkennung Error Detection Code (EDC) und modern A/V-Codecs wie "Advanced Audio + Coding" (AAC), "Vorbis" oder "MPEG-4 AVC" (H.264), so gut wie nichts + womit AVI etwas anfangen kann. + </para> + + <para> + Die zum Erzeugen von Matroska-Dateien erforderlichen Tools werden + zusammen <application>mkvtoolnix</application> genannt und stehen + für die meisten Unix-Plattformen wie auch <application>Windows</application> + zur Verfügung. + Weil Matroska ein offener Standard ist, findest du vielleicht andere + Tools, die sich besser für dich eignen, aber da mkvtoolnix das am meisten + Verbreitete ist und von Matroska selbst unterstützt wird, werden wir nur + dessen Anwendung einbeziehen. + </para> + + <para> + Möglicherweise der einfachste Weg, mit Matroska anzufangen, ist + <application>MMG</application> zu verwenden, das grafische Frontend, + das mit <application>mkvtoolnix</application> daherkommt, und dem + <ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guide to mkvmerge GUI (mmg)</ulink> + zu folgen. + </para> + + <para> + Du kannst Audio und Video-Dateien auch per Befehlszeile muxen: + <screen>mkvmerge -o <replaceable>output.mkv</replaceable> <replaceable>input_video.avi</replaceable> <replaceable>input_audio1.mp3</replaceable> <replaceable>input_audio2.ac3</replaceable></screen> + würde die Video-Datei <replaceable>input_video.avi</replaceable> + und die zwei Audio-Dateien <replaceable>input_audio1.mp3</replaceable> + und <replaceable>input_audio2.ac3</replaceable> in die Matroska-Datei + <replaceable>output.mkv</replaceable> mergen. + Matroska, wie zuvor beschrieben, ist in der Lage, noch viel mehr als + das zu tun, wie etwa multiple Audiotracks (inklusive Feintuning der + Audio-/Videosynchronisation), Kapitel, Untertitel, Splitting, usw... + Sieh bitte in den Dokumentationen dieser Anwendungen nach mehr Details. + </para> + + </sect3> + + </sect2> + + </sect1> + + <sect1 id="menc-feat-telecine"> + <title>Wie mit telecine und interlacing in NTSC-DVDs umgehen</title> + + <sect2 id="menc-feat-telecine-intro"> + <title>Einführung</title> + <formalpara> + <title>Was ist telecine?</title> + <para> + Wenn du nicht viel von dem verstehst, was in diesem Dokument beschrieben wird, lies den + <ulink url="http://en.wikipedia.org/wiki/Telecine">Wikipedia-Artikel über Telecine</ulink>. + Dies ist eine verständliche und einigermaßen umfassende + Beschreibung dessen, was telecine ist. + </para> + </formalpara> + + <formalpara> + <title>Eine Anmerkung zu Zahlen</title> + <para> + Viele Dokumente, einschließlich des oben verlinkten Handbuchs, beziehen + sich auf den Wert Felder pro Sekunde von NTSC-Video als 59.94 und den + korrespondierenden Frames pro Sekunde als 29.97 (für telecined und + interlaced) und 23.976 (für progressiv). Zur Vereinfachung runden + manche dieser Dokumente sogar auf 60, 30 und 24 auf. + </para> + </formalpara> + + <para> + Streng genommen sind alle diese Zahlen Näherungswerte. Das schwarz/weiße + NTSC-Video war exakt 60 Felder pro Sekunde, später wurde jedoch 60000/1001 + gewählt, um die Farbdaten anzupassen, solange man gleichzeitig + zu Schwarz/weiß-Fernsehen kompatibel blieb. Digitales NTSC-Video + (so wie auf einer DVD) hat ebenfalls 60000/1001 Felder pro Sekunde. Hieraus + wird interlaced und telecined Video als 30000/1001 Frames pro Sekunde + enthaltend abgeleitet; progressive Video hat 24000/1001 Frames pro Sekunde. + </para> + + <para> + Ältere Versionen der <application>MEncoder</application>-Dokumentation + und viele archivierten Posts in Mailing-Listen beziehen sich auf 59.94, + 29.97 und 23.976. + Alle <application>MEncoder</application>-Dokumentationen wurden insofern + aktualisiert, dass sie fraktionale Werte verwenden, und du solltest dies + auch tun. + </para> + + <para> + <option>-ofps 23.976</option> ist inkorrekt. + <option>-ofps 24000/1001</option> sollte statt dessen benutzt werden. + </para> + + <formalpara> + <title>Wie telecine angewandt wird</title> + <para> + Jedes Video, das zur Anzeige auf einem NTSC-Fernseh-Set vorgesehen ist, + muss 60000/1001 Felder pro Sekunde haben. Für TV-Filme und Shows + hergestellt sind sie häufig direkt mit 60000/1001 Feldern pro Sekunde + aufgenommen, die Mehrheit der Kinofilme jedoch mit 24 oder 24000/1001 + Frames pro Sekunde. Wenn cinematische Movie-DVDs gemastert werden, + wird das Video danach fürs Fernsehen mittels eines telecine genannten + Prozesses konvertiert. + </para> + </formalpara> + + <para> + Auf einer DVD wird das Video eigentlich nie als 60000/1001 Felder + pro Sekunde abgelegt. Für ein Video, das ursprünglich 60000/1001 war, + wird jedes Feldpaar zu einem Frame kombiniert, was dann 30000/1001 + Frames pro Sekunde ergibt. Hardware-DVD-Player lesen dann ein im + Videostream eingebettetes Kennzeichen aus, um zu bestimmen, ob die gerade + oder ungerade nummerierten Zeilen das erste Feld formen sollen. + </para> + + <para> + Üblicherweise bleibt ein Inhalt mit 24000/1001 Frames pro Sekunde + so wie er ist, wenn er für eine DVD encodiert wird, und der DVD-Player + muss das Telecining on-the-fly bewerkstelligen. Manchmal jedoch wird das + Video telecined <emphasis>bevor</emphasis> es auf der DVD gespeichert wird; + selbst wenn es ursprünglich 24000/1001 Frames pro Sekunde war, wird es + 60000/1001 Felder pro Sekunde. Wenn es auf der DVD gespeichert wird, + werden Feldpaare zu 30000/1001 Frames pro Sekunde kombiniert. + </para> + + <para> + Wenn man das aus 60000/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 + geradzahlig nummerierten Zeilen) einen Moment zur Zeit 1/(60000/1001) Sekunden + später als das andere repräsentiert. Spielt man ein interlaced Video auf + einem Computer ab, sehen beide hässlich aus, weil der Monitor eine höhere + Auflösung besitzt und weil das Video Frame für Frame anstatt Feld für Feld + angezeigt wird. + </para> + + <itemizedlist> + <title>Anmerkungen</title> + <listitem> + <para> + Dieser Abschnitt gilt nur für NTSC-DVDs und nicht für PAL. + </para> + </listitem> + <listitem> + <para> + Die <application>MEncoder</application>-Beispielzeilen überall im + Dokument sind <emphasis role="bold">nicht</emphasis> zum + eigentlichen Gebrauch vorgesehen. Sie sind schlicht das bloße Minimum, + das zum Encodieren der betreffenden Videokategorie benötigt wird. + Wie mache ich gute DVD-Rips oder wie feintune ich + <systemitem class="library">libavcodec</systemitem> auf maximale + Qualität gehören nicht zum Umfang dieses Dokuments. + </para> + </listitem> + <listitem> + <para> + Es gibt ein paar Fußnoten speziell für dieses Handbuch, die so ähnlich + verlinkt sind: + <link linkend="menc-feat-telecine-footnotes">[1]</link> + </para> + </listitem> + </itemizedlist> + </sect2> + + <sect2 id="menc-feat-telecine-ident"> + <title>Wie kann man sagen, welchen Typ Video man hat</title> + + <sect3 id="menc-feat-telecine-ident-progressive"> + <title>Progressiv</title> + <para> + Progressive Video wurde ursprünglich mit 24000/1001 fps gefilmt und + ohne Änderung auf der DVD abgespeichert. + </para> + + <para> + Wenn du eine progressive DVD in <application>MPlayer</application> abspielst, + wird <application>MPlayer</application> folgende Zeile ausgeben, sobald + das Abspielen des Films beginnt: + + <screen> demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.</screen> + + Von diesem Punkt an vorwärts sollte demux_mpg nie erzählen, es finde + "30000/1001 fps NTSC content." + </para> + + <para> + Wenn du progressives Video ankuckst, solltest du nie irgendein + Interlacing sehen. Sei trotzdem vorsichtig, weil manchmal ein winziges + bisschen telecine dort hineingemischt wurde, wo du es nicht erwartest. + Ich bin TV-Serien-DVDs begegnet, die eine Sekunde telecine bei jedem + Szenenwechsel haben oder an extrem zufälligen Stellen. Ich hatte mir einmal + eine DVD angesehen, die eine progressive erste Hälfte besaß, und die + zweite Hälfte war telecined. Willst du<emphasis>wirklich</emphasis> + gründlich sein, kannst du den kompletten Film scannen: + + <screen>mplayer dvd://1 -nosound -vo null -benchmark</screen> + + Das Verwenden von <option>-benchmark</option> veranlasst + <application>MPlayer</application>, den Film so schnell er es nur kann + abzuspielen; dies dauert je nach Hardware trotzdem noch eine + Weile. Jedesmal wenn demux_mpg einen Frameratenwechsel meldet, wird dir + die Zeile unmittelbar darüber die Zeit zeigen, bei welcher der Wechsel + auftrat. + </para> + + <para> + Manchmal wird progressive Video auf DVDs + "soft telecine" zugeordnet, weil es dazu vorgesehen ist, + vom DVD-Player telecined zu werden. + </para> + </sect3> + + <sect3 id="menc-feat-telecine-ident-telecined"> + <title>Telecined</title> + <para> + Telecined Video war ursprünglich mit 24000/1001 aufgenommen, wurde aber + telecined, <emphasis>bevor</emphasis> es auf die DVD geschrieben wurde. + </para> + + <para> + <application>MPlayer</application> meldet keine (nie) + Frameratenwechsel, wenn er telecined Video abspielt. + </para> + + <para> + Beim Betrachten eines telecined Videos wirst du Interlacing-Artefakte + sehen, die zu "blinken" scheinen: sie erscheinen wiederholt + und verschwinden wieder. + Du kannst dir das so genauer hinschauen + <orderedlist> + <listitem> + <screen>mplayer dvd://1</screen> + </listitem> + <listitem> + <para> + Suche einen Teil mit Bewegung. + </para> + </listitem> + <listitem> + <para> + Benutze die Taste <keycap>.</keycap>, um jeweils einen Frame vorwärts zu rücken. + </para> + </listitem> + <listitem> + <para> + Schau auf das Muster der interlaced und progressive aussehenden + Frames. Ist das Muster, das du siehst PPPII,PPPII,PPPII,... dann ist das + Video telecined. Siehst du andere Muster, dann wurde das Video womöglich + mittels einiger Nicht-Standard-Methoden telecined; + <application>MEncoder</application> kann ein Nicht-Standard-telecine + nicht verlustfrei nach progressive konvertieren. Siehst du überhaupt + keine Muster, ist es höchstwahrscheinlich interlaced. + </para> + </listitem> + </orderedlist> + </para> + + <para> + Manchmal wird telecined Video auf DVDs "hard telecine" + zugeordnet. Da hard telecine bereits 60000/1001 Felder pro Sekunde hat, + spielt der DVD-Player das Video ohne irgendeine Manipulation ab. + </para> + + <para> + Ein anderer Weg, zu sagen, ob deine Quelle telecined ist oder nicht, + ist die Quelle mit den Befehlszeilenoptionen <option>-vf pullup</option> + und <option>-v</option> abzuspielen, um nachzusehen, wie + <option>pullup</option> zu den Frames passt. + Ist die Quelle telecined, solltest du in der Befehlszeile ein 3:2 Muster + mit abwechselnd <systemitem>0+.1.+2</systemitem> und <systemitem>0++1</systemitem> + anzeigen. + Diese Technik hat den Vorteil, dass du die Quelle nicht zu beobachten + brauchst, um sie zu identifizieren, was von Nutzen sein könnte, falls du + den Encodiervorgang automatisieren willst oder besagte Prozedur ferngesteuert + mittels einer langsamen Verbindung vornehmen willst. + </para> + + </sect3> + + <sect3 id="menc-feat-telecine-ident-interlaced"> + <title>Interlaced</title> + <para> + Interlaced Video wurde ursprünglich als 60000/1001 Felder pro Sekunde + aufgenommen und auf der DVD als 30000/1001 Frames pro Sekunde abgespeichert. + Der interlacing-Effekt (oft "combing" genannt) ist ein Ergebnis + von Kammpaaren von Feldern in Frames. Jedes Feld wird einzeln als + 1/(60000/1001) Sekunden angenommen, und wenn sie simultan angezeigt werden, + wird der Unterschied offensichtlich. + </para> + + <para> + Wie bei telecined Video sollte <application>MPlayer</application> niemals + einen Frameratewechsel beim Abspielen des interlaced Inhalts melden. + </para> + + <para> + Wenn du ein interlaced Video genau ansiehst, in dem du dich mit der Taste + <keycap>.</keycap> durch die Frames bewegst, wirst du sehen, dass + jeder einzelne Frame interlaced ist. + </para> + </sect3> + + <sect3 id="menc-feat-telecine-ident-mixedpt"> + <title>Gemischtes progressive und telecine</title> + <para> + Alle "gemischten progressive und telecine" Videos wurden ursprünglich + als 24000/1001 Frames pro Sekunde aufgenommen, jedoch werden einige Teile + telecined beendet. + </para> + + <para> + Spielt <application>MPlayer</application> diese Kategorie ab, wird er + (oft wiederholt) zwischen "30000/1001 fps NTSC" + und "24000/1001 fps progressive NTSC" zurück und vor wechseln. + Beobachte die untere Hälfte von <application>MPlayer</application>s Ausgabe, + um diese Meldungen anzusehen. + </para> + + <para> + Du solltest die Sektion "30000/1001 fps NTSC" überprüfen, um + sicher zu gehen, dass sie auch wirklich telecine sind und nicht einfach + interlaced. + </para> + </sect3> + + <sect3 id="menc-feat-telecine-ident-mixedpi"> + <title>Gemischtes progressive und interlaced</title> + <para> + In "gemischtem progressive und interlaced" Inhalt wurde progressive + und interlaced Video zusammengeklebt. + </para> + + <para> + Diese Kategorie sieht aus wie "gemischtes progressive und telecine", + bis du die Sektion 30000/1001 fps untersuchst und feststellst, dass + sie das telecine-Muster nicht haben. + </para> + </sect3> + + </sect2> + + <sect2 id="menc-feat-telecine-encode"> + <title>Wie jede Kategorie encodieren</title> + <para> + Wie ich anfangs angemerkt hatte, sind die + <application>MEncoder</application>-Beispielzeilen unten eigentlich + <emphasis role="bold">nicht</emphasis> zur Anwendung bestimmt; + sie demonstrieren nur die Minimalparameter zur korrekten Encodierung + jeder Kategorie. + </para> + + <sect3 id="menc-feat-telecine-encode-progressive"> + <title>Progressive</title> + <para> + Progressive Video erfordert kein spezielles Filtern, um es zu encodieren. + Der einzige Parameter, den du gewiss anwenden solltest ist + <option>-ofps 24000/1001</option>. Andernfalls wird + <application>MEncoder</application> versuchen, bei 30000/1001 fps + zu encodieren und Frames duplizieren. + </para> + + <para> + <screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen> + </para> + + <para> + Dennoch ist es öfters der Fall, dass ein Video, das progressive aussieht, + eigentlich kurze Teile telecine eingemischt hat. Solange du dir nicht + sicher bist, ist es am sichersten, das Video als + <link linkend="menc-feat-telecine-encode-mixedpt">gemischtes progressive und telecine</link>. + zu behandeln. Der Performance-Verlust ist gering + <link linkend="menc-feat-telecine-footnotes">[3]</link>. + </para> + </sect3> + + <sect3 id="menc-feat-telecine-encode-telecined"> + <title>Telecined</title> + <para> + Telecine kann umgekehrt werden, um den originalen 24000/1001-Inhalt zu erhalten, + indem man einen Prozess verwendet, der inverse-telecine genannt wird. + <application>MPlayer</application> enthält verschiedene Filter, um dies + zu erreichen; der beste Filter, <option>pullup</option> wird in der Sektion + <link linkend="menc-feat-telecine-encode-mixedpt">Gemischtes progressive und telecine</link> + beschrieben. + </para> + </sect3> + + <sect3 id="menc-feat-telecine-encode-interlaced"> + <title>Interlaced</title> + <para> + + In den meisten praktischen Fällen ist es nicht möglich, ein komplett + progressives Video aus interlaced Inhalt zu erhalten. Der einzige Weg, + dies ohne den Verlust der Hälfte der vertikalen Auflösung zu erreichen, + ist das Verdoppeln der Framerate, und man kann versuchen zu + "schätzen", wie die korrespondierenden Zeilen für jedes Feld + vervollständigt werden sollten (dies hat Nachteile - siehe Methode 3). + </para> + + <orderedlist> + <listitem> + <para> + Das Video in interlaced Form encodieren. Normalerweise richtet Interlacing + verheerenden Schaden für die Fähigkeit des Encoders an, gut zu komprimieren, + <systemitem class="library">libavcodec</systemitem> hat jedoch zwei + eigens für das ein wenig bessere Abspeichern von interlaced Video gedachte + Parameter: <option>ildct</option> und <option>ilme</option>. Auch wenn + die Verwendung von <option>mbd=2</option> dringend zu empfehlen ist + <link linkend="menc-feat-telecine-footnotes">[2]</link>, weil es + Macroblöcke wie nicht-interlaced an Stellen encodiert, an denen keine Bewegung + stattfindet. Beachte, dass <option>-ofps</option> hier NICHT notwendig ist. + + <screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen> + </para> + </listitem> + <listitem> + <para> + Nutze einen Deinterlacing-Filter vor dem Encodieren. Es stehen verschiedene + dieser Filter zur Auswahl, jeder mit seinen eigenen Vor- + und Nachteilen. Ziehe <option>mplayer -pphelp</option> zu Rate, um zu sehen, welche + verfügbar sind (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 außerdem nach dem Zuschneiden + (cropping) <link linkend="menc-feat-telecine-footnotes">[1]</link> + und vor dem Skalieren angewandt werden. + + <screen>mencoder dvd://1 -oac copy -vf pp=lb -ovc lavc</screen> + </para> + </listitem> + <listitem> + <para> + Unglücklicherweise arbeitet diese Option im Zusammenhang mit + <application>MEncoder</application> fehlerhaft; sie sollte mit + <application>MEncoder G2</application> gut funktionieren, den gibts aber + noch nicht. Du könntest Abstürze erleben. Seis drum, der Zweck von + <option> -vf tfields</option> ist es, einen vollen Frame aus jedem Feld + zu erzeugen, was eine Framerate von 60000/1001 ergibt. Der Vorteil dieses + Lösungsansatzes ist, dass nie irgendwelche Daten verloren gehen; + dennoch, da jeder Frame aus nur einem Feld kommt, müssen die fehlenden Zeilen + irgendwie interpoliert werden. Es gibt keine sehr guten Methoden, die + fehlenden Daten zu generieren, und so wird das Resultat ein bisschen aussehen, + als hätte man irgendeinen Deinterlacing-Filter verwendet. Die fehlenden Zeilen + zu generieren erzeugt auch weitere Probleme, einfach weil sich die Menge + an Daten verdoppelt. Somit sind höhere Encodier-Bitraten nötig, um + die Qualität beizubehalten und mehr CPU-Power wird für beides, + Encodieren und Decodieren, aufgewendet. Das Attribut tfields hat mehrere + verschiedene Optionen dafür, wie die fehlenden Zeilen jedes Frames erzeugt + werden. + Wenn du diese Methode nutzt, dann nimm Bezug auf das Handbuch und wähle, + welche Option auch immer am besten für dein Material aussieht. + Beachte, dass du wenn <option>tfields</option> verwendet wird, + sowohl <option>-fps</option> als auch <option>-ofps</option>spezifizieren <emphasis role="bold">musst</emphasis>, + um die doppelte Framerate der originalen Quelle zu erhalten. + + <screen>mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen> + </para> + </listitem> + <listitem> + <para> + Wenn du vorhast, dramatisch herunterzuskalieren, kannst du nur eins + der beiden Felder extrahieren und encodieren. Sicherlich, du wirst die + Hälfte der vertikalen Auflösung verlieren, aber wenn du planst, bis auf + 1/2 des Originals herunter zu skalieren, macht der Verlust so gut wie + gar nichts aus. Das Resultat wird eine progressive Datei mit 30000/1001 + Frames pro Sekunde sein. Die Prozedur ist, <option>-vf field</option> + zu verwenden, dann die Ränder abzuschneiden + <link linkend="menc-feat-telecine-footnotes">[1]</link> und angemessen + zu skalieren. Vergiss nicht, dass du die Skalierung anpassen musst, um + das Halbieren der vertikalen Auflösung zu kompensieren. + <screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen> + </para> + </listitem> + </orderedlist> + </sect3> + + <sect3 id="menc-feat-telecine-encode-mixedpt"> + <title>Gemischtes progressive und telecine</title> + <para> + Um progressive und telecine Video komplett in progressive Video + umzuwandeln, müssen die telecined Teile inverse-telecined werden. + Die drei Wege, dies zu erreichen, werden unten beschrieben. + Beachte, dass du inverse-telecine <emphasis role="bold">immer</emphasis> + vor der Reskalierung durchführen solltest; es sei denn, du weißt wirklich, + was du tust; mache inverse-telecine auch vor dem Entfernen der Ränder + <link linkend="menc-feat-telecine-footnotes">[1]</link>. + <option>-ofps 24000/1001</option> wird hier benötigt, weil das Output-Video + 24000/1001 Frames pro Sekunde werden soll. + </para> + + <itemizedlist> + <listitem> + <para> + <option>-vf pullup</option> wurde entworfen, um auf telecined Material + inverse-telecine anzuwenden, während die progressiven Daten unangetastet + bleiben. Damit dies richtig funktioniert, <emphasis role="bold">muss</emphasis> + <option>pullup</option> vom <option>softskip</option>-Filter gefolgt werden, sonst + wird <application>MEncoder</application> abstürzen. + <option>pullup</option> ist trotz allem die sauberste und akkurateste + Methode, die zum Encodieren von beidem telecine und + "gemischtem progressive und telecine" zur Verfügung steht. + + <screen>mencoder dvd://1 -oac copy -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen> + </para> + </listitem> + + <listitem> + <para> + Eine ältere Methode ist, anstatt inverse-telecine auf die telecined Teile + anzuwenden, telecine auf nicht-telecined Teile und dann inverse-telecine auf das + ganze Video anzuwenden. Hört sich verwirrend an? softpulldown ist + ein Filter, der ein Video durchgeht und die komplette Datei telecined macht. + Lassen wir auf softpulldown entweder <option>detc</option> oder <option>ivtc</option> + folgen, wird das Endergebnis vollkommen progressiv. <option>-ofps 24000/1001</option> + wird benötigt. + + <screen>mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen> + </para> + </listitem> + + <listitem> + <para> + Ich habe <option>-vf filmdint</option> selbst verwendet, aber lies hier, was + D Richard Felker III zu erzählen hat: + + <blockquote> + <para> + Es ist OK, aber IMO versucht er zu oft eher ein deinterlace + als ein inverse telecine durchzuführen (ganz wie Settop-DVD-Player + & progressive TVs), was ein hässliches Flimmern erzeugt und + andere Artefakte. Wenn du vorhast, es anzuwenden, musst du zumindest + einige Zeit darauf verwenden, die Optionen zu tunen und zuerst den Output + zu beobachten, damit du auch sicher sein kannst, dass du nichts + vermasselst. + </para> + </blockquote> + </para> + </listitem> + </itemizedlist> + </sect3> + + <sect3 id="menc-feat-telecine-encode-mixedpi"> + <title>Gemischtes progressive und interlaced</title> + <para> + Es gibt zwei Optionen für den Umgang mit dieser Kategorie, jede von + beiden stellt einen Kompromiss dar. Du solltest basierend auf + Dauer/Stelle jedes Typs entscheiden. + </para> + + <itemizedlist> + <listitem> + <para> + Behandle es wie progressive. Die interlaced Teile werden interlaced + aussehen und einige der interlaced Felder müssen weggelassen werden, + was ein wenig zu Sprüngen führt. Du kannst einen + Nachbearbeitungsfilter verwenden, wenn du willst, aber dies wird die + progressive-Anteile geringfügig verringern. + </para> + + <para> + Diese Option sollte definitiv nicht verwendet werden, wenn du eventuell + Video auf einem interlaced Gerät anzeigen willst (mit einer TV-Karte + zum Beispiel). Wenn du interlaced Frames in einem Video mit 24000/1001 + Frames pro Sekunde hast, werden diese zusammen mit den progressive + Frames telecined. Die Hälfte der interlaced "Frames" werden für die + Dauer von drei Feldern (3/(60000/1001) Sekunden) angezeigt, was + einen flimmernden "Zeitrücksprung"-Effekt zur Folge hat, der + ziemlich schlecht aussieht. Solltest du dies dennoch versuchen, + <emphasis role="bold">musst</emphasis> du einen + Deinterlacing-Filter wie <option>lb</option> oder <option>l5</option> + anwenden. + </para> + + <para> + Es wäre auch keine gute Idee für eine progressive Anzeige. Es wird + Paare aufeinander folgender interlaced Felder auslassen, was eine + Unstetigkeit zur Folge hat, die eher sichtbar ist als mit der + zweiten Methode, die einige progressive Frames zweimal anzeigt. + Ein interlaced Video mit 30000/1001 Frames pro Sekunde ist bereits + ein bisschen abgehackt, weil es wirklich mit 60000/1001 Felder pro + Sekunde angezeigt werden sollte, sodass sich die doppelten Frames + nicht zu sehr abzeichnen. + </para> + + <para> + Egal welchen Weg du wählst, es ist das beste, deinen Inhalt + zu berücksichtigen und wie du ihn anzeigen willst. Ist dein Video + zu 90% progressive und du hast nie vor, es auf einem TV-Bildschirm + anzuzeigen, solltest du einen progressive-Ansatz wählen. Ist es nur + halb-progressive, willst du es eventuell so encodieren, als sei alles + interlaced. + </para> + </listitem> + + <listitem> + <para> + Behandle es wie interlaced. Einige Frames des progressive-Anteils + müssen dupliziert werden, was zu Sprüngen führt. Nochmal, + Deinterlacing-Filter können die progressive-Anteile leicht verringern. + </para> + </listitem> + + </itemizedlist> + </sect3> + + </sect2> + + <sect2 id="menc-feat-telecine-footnotes"> + <title>Fußnoten</title> + <orderedlist> + <listitem> + <formalpara> + <title>Über das Zuschneiden (cropping):</title> + <para> + Videodaten auf DVDs werden in einem YUV 4:2:0 genannten Format abgelegt. + In einem YUV-Video, werden Helligkeit und Chrominanz separat gespeichert. + Da das menschliche Auge ein bisschen weniger empfindlich auf Farbe + reagiert als auf Helligkeit, ist in einem YUV 4:2:0 Bild nur ein + Chrominanz-Pixel für alle vier Helligkeits-Pixel vorhanden. + In einem progressive Bild, besitzt jedes Quadrat von vier luma-Pixeln (zwei + auf jeder Seite) ein gemeinsames chroma-Pixel. Du musst progressive YUV + 4:2:0 zu geradzahligen Auflösungen zurechtschneiden und geradzahlige + Offsets verwenden. Zum Beispiel ist + <option>crop=716:380:2:26</option> OK, + <option>crop=716:380:3:26 </option> aber nicht. + </para> + </formalpara> + + <para> + Wenn du es mit interlaced YUV 4:2:0 zu tun hast, ist die Situation + ein wenig komplizierter. Anstatt dass immer vier luma-Pixel im + <emphasis>Frame</emphasis> sich ein chroma-Pixel teilen, teilen sich + immer vier luma-Pixel in jedem <emphasis>Feld</emphasis> ein + chroma-Pixel. Wenn Felder zur Formung eines Frames interlaced werden, + ist jede Scanzeile ein Pixel hoch. Jetzt liegen anstatt je vier + luma-Pixel in einem Quadrat immer zwei Pixel nebeneinander und die + anderen zwei Pixel liegen zwei Scanzeilen weiter unten nebeneinander. + Die zwei luma-Pixel in der dazwischen liegenden Scanzeile sind vom + anderen Feld und teilen sich somit ein anderes chroma-Pixel mit + zwei luma-Pixeln zwei Scanzeile entfernt. All diese Konfusion macht + es notwendig, vertikale Ausschneide-Abmessungen und Offsets zu + haben, die ein Vielfaches von vier sind. Horizontal kann geradzahlig + bleiben. + </para> + + <para> + Für telecined Video empfehle ich, das Zuschneiden nach dem inverse + telecining stattfinden zu lassen. Ist das Video einmal progressive, + musst du nur noch mit geraden Zahlen zuschneiden. Wenn du wirklich die + leichte Beschleunigung haben willst, die zuerst zuzuschneiden + möglicherweise bietet, musst du vertikal mit einem Vielfachen von vier + zuschneiden, oder der inverse-telecine Filter wird keine korrekten Daten + haben. + </para> + + <para> + Für interlaced (nicht telecined) Video musst du immer + mit einem Vielfachen von vier zuschneiden, es sei denn, du verwendest + <option>-vf field</option> vor dem Schneiden. + </para> + </listitem> + + <listitem><formalpara> + <title>Über Encodier-Parameter und Qualität:</title> + <para> + Nur weil ich hier <option>mbd=2</option> vorschlage, heißt das nicht, + dass es woanders benutzt werden soll. Zusammen mit <option>trell</option> + ist <option>mbd=2</option> eine der Optionen von + <systemitem class="library">libavcodec</systemitem>, welche die + Qualität am deutlichsten heben, und du solltest stets das letzte der beiden + anwenden, außer das Abfallen der Encodiergeschwindigkeit ist abschreckend + hoch (z.B. Encodierung in Echtzeit). Es gibt eine Menge anderer Optionen für + <systemitem class="library">libavcodec</systemitem>, die die Encodierqualität + verbessern (und die Encodiergeschwindigkeit verringern), dies liegt aber jenseits + des Rahmens dieses Dokuments. + </para> + </formalpara> + </listitem> + + <listitem> + <formalpara> + <title>Über die Performance von pullup:</title> + <para> + <option>Pullup</option> kann sicher (zusammen mit <option>softskip</option>) + auf progressive Video angewandt werden und ist für gewöhnlich eine gute Idee, + es sei denn, die Quelle wurde definitiv als vollkommen progressive verifiziert. + Der Performaceverlust ist in den meisten Fällen gering. Bei einer Minimalencodierung + macht <option>pullup</option> <application>MEncoder</application> + 50% langsamer. Das Hinzufügen von Soundverarbeitung und erweiterten + <option>lavcopts</option> überschattet diesen Unterschied + und drückt den Performanceabfall, der mit dem Verwenden von <option>pullup</option> + verbunden war, runter auf 2%. + </para> + </formalpara> + </listitem> + + </orderedlist> + + </sect2> + + </sect1> + + + <sect1 id="menc-feat-enc-libavcodec"> + <title>Encodieren mit der <systemitem class="library">libavcodec</systemitem> + Codecfamilie</title> + + <para> + <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> + stellt einfache Encodierung für eine Menge interessanter Video- und Audioformate + zur Verfügung. + Du kannst folgende Codecs encodieren (mehr oder weniger aktuell): + </para> + + <sect2 id="menc-feat-enc-libavcodec-video-codecs"> + <title>Videocodecs von <systemitem class="library">libavcodec</systemitem></title> + + <para> + <informaltable frame="all"> + <tgroup cols="2"> + <thead> + <row><entry>Name des Videocodecs</entry><entry>Beschreibung</entry></row> + </thead> + <tbody> + <row><entry>mjpeg</entry><entry> + Motion-JPEG + </entry></row> + <row><entry>ljpeg</entry><entry> + Verlustfreies JPEG + </entry></row> + <row><entry>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 Codecnamen, die nach der Konfiguration + <literal>vcodec</literal> übergeben werden müssen, wie: + <option>-lavcopts vcodec=msmpeg4</option> + </para> + <informalexample> + <para> + Ein Beispiel mit MJPEG-Komprimierung: + <screen>mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen> + </para> + </informalexample> + </sect2> + + <sect2 id="menc-feat-enc-libavcodec-audio-codecs"> + <title>Audiocodecs von <systemitem class="library">libavcodec</systemitem></title> + <para> + <informaltable frame="all"> + <tgroup cols="2"> + <thead> + <row><entry>Name des Audiocodecs</entry><entry>Beschreibung</entry></row> + </thead> + <tbody> + <row> + <entry>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 Bit pro Sample, 4:1-Kompression)</entry> + </row> + <row> + <entry>sonic</entry> + <entry>experimenteller verlustbehafteter/verlustfreier Codec</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + Die erste Spalte enthält die Codecnamen, die nach der Konfiguration + <literal>acodec</literal> übergeben werden müssen, wie: + <option>-lavcopts acodec=ac3</option> + </para> + + <informalexample> + <para> + Ein Beispiel mit AC3-Kompression: + <screen>mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy</screen> + </para> + </informalexample> + + <para> + Im Gegensatz zu den Videocodecs von <systemitem class="library">libavcodec</systemitem> + machen dessen Audiocodecs keinen weisen Gebrauch von den Bits, die ihnen übergeben + werden, da es ihnen an einem minimalen psychoakustischen Modell fehlt (falls + überhaupt eins vorhanden ist), wodurch sich die meisten anderen + Codec-Implementierungen auszeichnen. + Beachte jedoch, dass all diese Audiocodecs sehr schnell sind und überall dort + hervorragend arbeiten, wo <application>MEncoder</application> mit + <systemitem class="library">libavcodec</systemitem> kompiliert wurde (was + meistens der Fall ist) und nicht von externen Programmbibliotheken abhängt. + </para> + </sect2> + + + <sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options"> + <title>Encodieroptionen von libavcodec</title> + + <para> + Idealerweise möchtest du eventuell in der Lage sein, dem Encoder einfach zu sagen, + er soll in den "hochqualitativen" Modus wechseln und weiter machen. + Das wäre vermutlich nett, aber unglücklicherweise schwer zu implementieren, da + verschiedene Encodieroptionen unterschiedliche Qualitätsresultate hervorbringen, + abhängig vom Quellmaterial. + Das liegt daran, dass die Komprimierung von den visuellen Eigenschaften des fraglichen Videos abhängt. + Zum Beispiel haben Anime und Live-Action sehr unterschiedliche Eigenschaften und + benötigen aus diesm Grund verschiedene Optionen, um optimale Encodierung zu erreichen. + Die gute Neuigkeit ist, dass einige Optionen wie <option>mbd=2</option>, + <option>trell</option> und <option>v4mv</option> nie ausgelassen werden sollten. + Siehe unten nach der detaillierten Beschreibung allgemeiner Encodieroptionen. + </para> + + + <itemizedlist> + <title>Anzupassende Optionen:</title> + <listitem> + <para> + <emphasis role="bold">vmax_b_frames</emphasis>: 1 oder 2 ist gut, abhängig vom Film. + Beachte, dass du, falls deine Encodierung von DivX5 decodierbar sein muss, den + Support für "closed GOP" aktivieren musst, indem du die + <systemitem class="library">libavcodec</systemitem>-Option <option>cgop</option> + verwendest, du musst jedoch Szenenerkennung deaktivieren, was wiederum keine gute + Idee ist, da es die Ecodierungseffizienz etwas angreift. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vb_strategy=1</emphasis>: hilft in Szenen mit viel + Bewegung (high-motion). + Bei manchen Videos wird vmax_b_frames der Qualität schaden, vmax_b_frames=2 + zusammen mit vb_strategy=1 hilft jedoch. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">dia</emphasis>: Bewegungssuchbereich. Größer ist besser + als kleiner. + Negative Werte sind ein komplett anderer Maßstab. + Gute Werte sind -1 für ein schnelle oder 2-4 für langsame Encodierung. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">predia</emphasis>: Bewegungssuche Vorabdurchlauf (pre-pass). + Nicht so wichtig wie dia. Gute Werte sind 1 (Standard) bis 4. Erfordert preme=2, um + wirklich was zu nützen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">cmp, subcmp, precmp</emphasis>: Vergleichsfunktion zur + Bewegungseinschätzung. + Experimentiere mit Werten von 0 (Standard), 2 (hadamard), 3 (dct) und + 6 (Ratenverzerrung). + 0 ist am schnellsten und ausreichend für precmp. + Für cmp und subcmp ist 2 gut bei Anime, und 3 ist gut bei Live-Action. + 6 kann leicht besser sein oder auch nicht, ist aber langsam. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">last_pred</emphasis>: Anzahl der Bewegungsvorhersagen, die + vom vorherigen Frame genommen werden sollen. + 1-3 oder so hilft bei geringer Geschwindigkeitseinbuße. + Höhere Werte sind langsam bei keinerlei Zusatzgewinn. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">cbp, mv0</emphasis>: Kontrolliert die Auswahl von Macroblöcken. + Kleine Geschwindigkeitseinbußen bei kleinem Qualitätsgewinn. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">qprd</emphasis>: adaptive Quantisierung basierend auf der + Komplexität des Macroblocks. + Kann hilfreich sein oder schaden, abhängig vom Video und anderen Optionen. + Dies kann Artefakte verursachen, es sei denn, du setzt vqmax auf einen halbwegs + kleinen Wert (6 ist gut, vielleicht so langsam wie 4); vqmin=1 sollte ebenfalls + helfen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">qns</emphasis>: sehr langsam, speziell wenn kombiniert + mit qprd. + Diese Option veranlasst den Encoder, durch Kompressionsartefakte entstandenes + Rauschen zu minimieren anstatt das encodierte Video strikt der Quelle anzupassen. + Verwende dies nicht, es sei denn du, hast bereits alles andere so weit wie möglich + optimiert und die Resultate sind immer noch nicht gut genug. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vqcomp</emphasis>: Frequenzkontrolle optimieren. + Welche Werte gut sind, hängt vom Film ab. + Du kannst dies sicher so lassen wie es ist, wenn du willst. + Wird vqcomp verringert, werden mehr Bits auf Szenen mit geringer Komlexität + gelegt, wird es erhöht, legt es diese Bits auf Szenen mit hoher Komlexität + (Standard: 0.5, Bereich: 0-1. empfohlener Bereich: 0.5-0.7). + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vlelim, vcelim</emphasis>: Setzt die Schwelle für die + Eliminierung einzelner Koeffizienten bei Helligkeits- und Farbanteilen. + Sie werden in allen MPEG-ähnlichen Algorithmen getrennt encodiert. + Die Idee hinter diesen Optionen ist, einige gute Heuristiken zu verwenden, + um zu bestimmen, wenn ein Wechsel innerhalb eines Blocks kleiner als der + der von dir festgelegte Schwellenwert ist und in solch einem Fall den + Block einfach so zu encodieren als fände "kein Wechsel" statt. + Das spart Bits und beschleunigt womöglich die Encodierunng. vlelim=-4 und vcelim=9 + scheinen gut für Live-Filme zu sein, helfen aber scheinbar nicht bei Anime; + beim Encodieren einer Animation solltest du sie womöglich unverändert lassen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">qpel</emphasis>: Bewegungsabschätzung auf ein viertel + Pixel (quarter pel). + MPEG-4 verwendet als Voreinstellung eine Halbpixel-Genauigkeit für die Bewegungssuche, + deswegen hat diese Option einen Overhead, da mehr Informationen in der + encodierte Datei untergebracht werden. + Der Kompressionsgewinn/-verlust hängt vom Film ab, ist aber in der Regel nicht + sonderlich effektiv bei Anime. + qpel zieht immer eine signifikante Erhöhung der CPU-Decodierzeit nach + sich (+25% in der Praxis). + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">psnr</emphasis>: wirkt sich eigentlich nicht auf + das Encodieren aus, schreibt jedoch eine Log-Datei mit Typ/Größe/Qualität + jedes Frames und gibt am Ende die Summe des PSNR Signal-zu-Rauschabstands + (Peak Signal to Noise Ratio) aus. + </para> + </listitem> + + </itemizedlist> + + <itemizedlist> + <title>Optionen, mit denen besser nicht herumgespielt werden sollte:</title> + <listitem> + <para> + <emphasis role="bold">vme</emphasis>: Der Standardwert ist der beste. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisuell adaptive + Quantisierung. + Du solltest nicht im Traum daran denken, mit diesen Optionen herumzuspielen, + wenn dir Qualität wichtig ist. + Vernünftige Werte mögen in deinem Fall effektiv sein, aber sei gewarnt, + dies ist sehr subjektiv. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">scplx_mask</emphasis>: Versucht, Blockartefakte + zu verhindern, Postprocessing ist aber besser. + </para> + </listitem> + </itemizedlist> + </sect2> + + <sect2 id="menc-feat-mpeg4-lavc-example-settings"> + <title>Beispiele für Encodierungseinstellungen</title> + + <para> + Die folgenden Einstellungen sind Beispiele verschiedener Kombinationen + von Encodierungsoptionen, die den Kompromiss Geschwindigkeit gegenüber + Qualität bei gleicher Zielbitrate beeinflussen. + </para> + + <para> + Alle Encodierungseinstellungen wurden auf einem Beispielvideo + mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps und + der Rechner war ein AMD-64 3400+ mit 2400 Mhz im 64bit-Modus. + Jede Encodiereinstellung zeichnet sich aus durch die gemessene + Encodiergeschwindigkeit (in Frames pro Sekunde) und den PSNR-Verlust + (in dB) im Vergleich zu Einstellungen für "sehr hohe Qualität". + Bitte habe Verständnis, dass du abhängig von deiner Quelldatei, + deinem Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche + Resultate erzielen wirst. + </para> + + <para> + <informaltable frame="all"> + <tgroup cols="4"> + <thead> + <row><entry>Beschreibung</entry><entry>Encodieroptionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> + </thead> + <tbody> + <row> + <entry>Sehr hohe Qualität</entry> + <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry> + <entry>6fps</entry> + <entry>0dB</entry> + </row> + <row> + <entry>Hohe Qualität</entry> + <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo</option></entry> + <entry>15fps</entry> + <entry>-0.5dB</entry> + </row> + <row> + <entry>Schnell</entry> + <entry><option>vcodec=mpeg4:mbd=2:trell:v4mv:turbo</option></entry> + <entry>42fps</entry> + <entry>-0.74dB</entry> + </row> + <row> + <entry>Echtzeit</entry> + <entry><option>vcodec=mpeg4:mbd=2:turbo</option></entry> + <entry>54fps</entry> + <entry>-1.21dB</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </sect2> + + <sect2 id="custommatrices"><title>Maßgeschneiderte inter/intra-Matrizen</title> + + <para> + Mit diesem Feature von <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> + bist du in der Lage, eigene inter- (I-Frames/Keyframes) und intra-Matrizen + (P-Frames/predicted Frames) zu setzen. Es wird von vielen Codecs unterstützt: + <systemitem>mpeg1video</systemitem> und <systemitem>mpeg2video</systemitem> + sollen damit funktionieren. + </para> + + <para> + Eine typische Anwendung dieses Features ist, die von den + <ulink url="http://www.kvcd.net/">KVCD</ulink>-Specifikationen + bevorzugten Matrizen zu setzen. + </para> + + <para> + Die <emphasis role="bold">KVCD "Notch" Quantisierungsmatrix:</emphasis> + </para> + + <para> + Intra: +<screen>8 9 12 22 26 27 29 34 +9 10 14 26 27 29 34 37 12 14 18 27 29 34 37 38 22 26 27 31 36 37 38 40 26 27 29 36 39 38 40 48 27 29 34 37 38 40 48 58 29 34 37 38 40 48 58 69 -34 37 38 40 48 58 69 79 -</screen> +34 37 38 40 48 58 69 79</screen> -Inter: -<screen> -16 18 20 22 24 26 28 30 + 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 +30 32 34 36 38 40 42 44</screen> + </para> + + <para> + Anwendung: + <screen>$ mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=... </screen> + </para> + + <para> +<screen>$ mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37, 12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27, 29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79 :inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26, 28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34, -36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg -</screen> -</para> -</sect2> - - -<sect2 id="menc-feat-dvd-mpeg4-example"> -<title>Beispiel</title> - -<para> - Jetzt hast du gerade eben deine brandneue Kopie von Harry Potter und die - Kammer des Schreckens gekauft (natürlich die Breitbildedition), und du - willst diese DVD so rippen, dass du sie deinem Home Theatre PC hinzufügen - kannst. Dies ist eine Region-1-DVD, also ist sie NTSC. Das unten stehende - Beispiel wird auch auf PAL zutreffen, nur dass du - <option>-ofps 24000/1001</option> weglässt (weil die Ausgabeframerate die - gleiche ist wie die Eingabeframerate), und logischerweise werden die - Ausschnittsabmessungen anders sein. -</para> - -<para> - Nach dem Start von <option>mplayer dvd://1</option>, verfolgen wir den - detailliert in der Sektion <link linkend="menc-feat-telecine">Wie mit telecine - und interlacing in NTSC-DVDs umgehen</link> beschriebenen Prozess und - entdecken, dass es progressive Video mit 24000/1001 fps ist, was bedeutet, dass - wir keinen inverse telecine-Filter wie <option>pullup</option> oder - <option>filmdint</option> anwenden müssen. -</para> - -<para> - Als Nächstes wollen wir das passende Ausschnittsrechteck bestimmen, also - verwenden wir den 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 Konsole siehst: - - <screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen> - - Wir spielen den Film dann mit diesem Filter ab, um seine Korrektheit zu testen: - - <screen>mplayer dvd://1 -vf crop=720:362:0:58</screen> - - Und wir sehen, dass er einfach perfekt aussieht. Als Nächstes vergewissern wir - uns, dass Breite und Höhe ein Vielfaches von 16 sind. Die Breite ist gut, - aber die Höhe ist es nicht. Da wir in der 7-ten Klasse in Mathe nicht gefehlt - haben, wissen wir, dass das am nähesten liegende Vielfache von 16 kleiner - als 362 der Wert 352 ist (Taschenrechner ist erlaubt). -</para> - -<para> - Wir könnten einfach <option>crop=720:352:0:58</option> verwenden, aber es wäre - nett, ein bisschen von oben und ein bisschen von unten wegzunehmen, sodass - wir zentriert bleiben. Wir haben die Höhe um 10 Pixel schrumpfen lassen, aber - wir wollen das y-Offset nicht um 5 Pixel erhöhen, da dies eine ungerade Zahl - ist und die Qualität nachteilig beeinflussen würde. Statt dessen werden wir - das y-Offset um 4 Pixel erhöhen: - - <screen>mplayer dvd://1 -vf crop=720:352:0:62</screen> - - Ein anderer Grund, Pixel von beidem - oben und unten - abzuschnipseln ist, - dass wir sicher gehen wollen, jegliches halbschwarze Pixel eliminiert zu - haben, falls welche existieren. Beachte, falls das Video telecined - ist, stelle sicher, dass der <option>pullup</option>-Filter (oder für - welchen umgekehrten telecine-Filter auch immer du dich entschieden hast) - in der Filterkette auftaucht, bevor du zuschneidest. Ist es interlaced, - deinterlace es vor dem Zuschneiden. - (Wenn du dich entscheidest, interlaced Video beizubehalten, dann vergewissere dich, dass - das vertikale crop-Offset ein Vielfaches von 4 ist.) -</para> - -<para> - Wenn du wirklich besorgt um den Verlust dieser 10 Pixel bist, ziehst du - statt dessen etwa das Herunterskalieren der Abmessungen auf das am nächsten - liegende Vielfache von 16 vor. - Die Filterkette würde dann etwa so aussehen: - - <screen>-vf crop=720:362:0:58,scale=720:352</screen> - - Das Video auf diese Art herunter zu skalieren wird bedeuten, dass eine - kleine Menge Details verloren geht, obwohl es vermutlich nicht wahrnehmbar - sein wird. Hoch zu skalieren führt zu niedrigerer Qualität (es sei denn, - du erhöhst die Bitrate). Ausschneiden sondert sämtliche dieser Pixel - aus. Es ist ein Kompromiss, den du unter allen Umständen - in Betracht ziehen solltest. Zum Beispiel, wenn das DVD-Video für das Fernsehen - hergestellt wurde, solltest du vertikales Skalieren vermeiden, da das - Zeilensampling mit der Art und Weise korrespondiert, für die der Inhalt - ursprünglich aufgenommen wurde. -</para> - -<para> - Bei der Überprüfung sehen wir, dass unser Film ordentlich Action enthält - und sehr viele Details, also wählen wir 2400Kbit für unsere Bitrate. -</para> - -<para> - Wir sind nun bereit, die 2-pass Encodierung durchzuführen. Erster Durchlauf: - - <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ --lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ --o Harry_Potter_2.avi</screen> - - Und der zweite Durchlauf ist derselbe, außer dass wir <option>vpass=2</option> - festlegen: - - <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ --lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ --o Harry_Potter_2.avi</screen> -</para> - -<para> - Die Optionen <option>v4mv:mbd=2:trell</option> werden die Qualität - außerordentlich erhöhen, auf Kosten der Encodierdauer. Es gibt - einen kleinen Grund, diese Optionen auszulassen, wenn das Primärziel - die Qualität ist. Die Optionen - <option>cmp=3:subcmp=3:mbcmp=3</option> wählen eine Vergleichsfunktion, - die eine höhere Qualität liefert als die Standardeinstellungen. - Du darfst mit diesem Parameter rumexperimentieren (ziehe die Manpage - zu möglichen Werten zu Rate) da verschiedene Funktionen abhängig vom - Quellmaterial einen starken Einfluss auf die Qualität haben. Wenn du zum Beispiel - meinst, dass <systemitem class="library">libavcodec</systemitem> zu - viele Blockartefakte produziert, könntest du ja das experimentelle - NSSE als Vergleichsfunktion via <option>*cmp=10</option> wählen. -</para> - -<para> - Für diesen Film wird das resultierende AVI 138 Minuten lang und nahezu - 3GB groß sein. Und weil du erzählt hast, dass eine große Datei nichts - ausmacht, ist dies eine perfekt akzeptierbare Größe. Wolltest du sie aber - kleiner haben, könntest du eine niedrigere Bitrate hernehmen. Erhöhte - Bitraten haben verminderte Rückgaben, während wir also deutlich eine - Verbesserung von 1800Kbit nach 2000Kbit sehen, ist es oberhalb 2000Kbit - nicht so auffällig. Fühl dich frei solange herum zu experimentieren bis - du glücklich bist. -</para> - -<para> - Weil wir das Quellvideo durch einen Denoise-Filter geschickt haben, - könntest du einige davon während des Playbacks wieder hinzufügen wollen. - Dies zusammen mit dem Nachbearbeitungsfilter <option>spp</option> - verbessert die Wahrnehmung der Qualität drastisch und hilft dabei, - blockhafte Artefakte aus dem Video zu eliminieren. - Mit <application>MPlayer</application>s Option <option>autoq</option> - kannst du den Nachbearbeitungsaufwand des spp-Filters abhängig von der - verfügbaren CPU variieren. An dieser Stelle kannst du auch Gamma- und/oder - Farbkorrektur zur besten Anpassung an dein Display verwenden, wenn du willst. - Zum Beispiel: - - <screen>mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3</screen> - -</para> -</sect2> -</sect1> - - -<sect1 id="menc-feat-xvid"> -<title>Encodieren mit dem <systemitem class="library">XviD</systemitem>-Codec</title> -<para> - <systemitem class="library">XviD</systemitem> ist eine freie - Programmbibliothek zum Encodieren von MPEG-4 ASP-Videostreams. - Bevor du mit <link linkend="xvid"> zu encodieren beginnst, musst du - <application>MEncoder</application> so einstellen, dass er es unterstützt</link>. -</para> -<para> - Dieses Handbuch beabsichtigt, sich vorwiegend durch dieselbe Art von - Informationen auszuzeichnen wie x264's Encodier-Handbuch. - Beginne deshalb damit, - <link linkend="menc-feat-x264-encoding-options-intro">den ersten Teil</link> - dieses Handbuchs zu lesen. -</para> - - -<sect2 id="menc-feat-xvid-intro"> -<title>Welche Optionen sollte ich verwenden, um die besten Resultate zu erzielen?</title> - -<para> - Bitte beginne mit der Durchsicht der - <systemitem class="library">XviD</systemitem>-Sektion von - <application>MPlayer</application>s Manpage. - Diese Sektion ist als Ergänzung zur Manpage zu verstehen. -</para> -<para> - Die Standardeinstellungen von XviD sind bereits ein guter Kompromiss zwischen - Geschwindigkeit und Qualität, deshalb kannst du ruhig bei ihnen - bleiben, wenn nachfolgender Abschnitt dich allzusehr ins Grübeln bringt. -</para> -</sect2> - -<sect2 id="menc-feat-xvid-encoding-options"> -<title>Encodieroptionen von <systemitem class="library">XviD</systemitem></title> - -<itemizedlist> -<listitem><para> - <emphasis role="bold">vhq</emphasis> - Diese Einstellung betreffen den Entscheidungsalgorithmus für - Macroblöcke, wobei gilt, je höher die Einstellung desto weiser die - Entscheidung. - Die Standardeinstellung kann für jede Encodierung sicher verwendet - werden, während höhere Einstellungen immer für PSNR hilfreich, jedoch - signifikant langsamer sind. - Nimm bitte zur Kenntnis, dass ein besserer PSNR nicht notwedigerweise - bedeutet, dass das Bild besser aussehen wird, aber er zeigt dir, dass - du näher am Original bist. - Wird er deaktiviert, beschleunigt dies die Encodierung spürbar; wenn - Geschwindigkeit ein Kriterium für dich ist, kann dieser Kompromiss es wert sein. -</para></listitem> - -<listitem><para> - <emphasis role="bold">bvhq</emphasis> - Dies erledigt dieselbe Arbeit wie vhq, macht dies jedoch bei B-Frames. - Es hat einen vernachlässigbar kleinen Einfluss auf die Geschwindigkeit, und - verbessert geringfügig die Qualität (um etwa +0.1dB PSNR). -</para></listitem> - -<listitem><para> - <emphasis role="bold">max_bframes</emphasis> - Eine höhere Anzahl von erlaubten hintereinander folgenden B-frames verbessert - gewöhnlich die Komprimierbarkeit, obwohl dies auch zu mehr Blockartefakten - führt. - Die Standardeinstellung ist ein guter Kompromiss zwischen Komprimierbarkeit - und Qualität, aber wenn du Bitraten-hungrig bist kannst du sie bis auf 3 - hochschrauben. - Du kannst sie auch auf 1 oder 0 verringern, wenn du auf perfekte Qualität - abzielst, wenngleich du in diesem Fall sicherstellen solltest, dass deine - Zielbitrate hoch genug ist, um zu gewährleisten, dass der Encoder nicht - die Quantisierer höher setzen muss, um den Wert zu erreichen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">bf_threshold</emphasis> - Dies kontrolliert die B-Frame-Empfindlichkeit des Encoders, wobei ein - höherer Wert dazu führt, dass mehr B-Frames angewendet werden (und - umgekehrt). - Diese Einstellung muss zusammen mit <option>max_bframes</option> - verwendet werden; bist du Bitraten-hungrig, solltest du beides erhöhen, - <option>max_bframes</option> und <option>bf_threshold</option>, - während du <option>max_bframes</option> erhöhen und - <option>bf_threshold</option> verringern kannst, sodass der Encoder - B-Frames nur an Stellen anwendet, die diese auch - <emphasis role="bold">wirklich</emphasis> brauchen. - Eine niedrigere Zahl an <option>max_bframes</option> und ein höherer Wert - bei <option>bf_threshold</option> ist möglicherweise keine kluge Wahl, - da dies den Encoder zwingt, B-Frames in Stellen zu setzen, die nicht - davon profitieren würden und dies daher die visuelle Qualität reduziert. - Wie auch immer, wenn du mit Standalone-Playern kompatibel bleiben musst, - die nur alte DivX-Profile unterstützen (der wiederum höchstens einen - aufeinander folgenden B-Frame unterstützt), wäre dies dein einziger Weg, - die Komprimierbarkeit mittels B-Frames zu verbessern. -</para></listitem> - -<listitem><para> - <emphasis role="bold">trellis</emphasis> - Optimiert den Quantisierungsprozess um einen optimalen Kompromiss - zwischen PSNR und Bitrate zu erhalten, was signifikant Bit-sparend - wirkt. - Diese Bits können woanders im Video wieder verwendet werden - und verbessern die visuelle Gesamtqualität. - Du solltest es immer eingeschaltet lassen, da sein Einfluss auf - die Qualität gewaltig ist. - Gerade wenn du Geschwindigkeit haben willst, darfst du es nicht - deaktivieren, solange du nicht <option>vhq</option> - und alle anderen CPU-hungrigeren Optionen auf - ein Minimum heruntergesetzt hast. -</para></listitem> - -<listitem><para> - <emphasis role="bold">hq_ac</emphasis> - Aktiviert die Vorhersagemethode für einen besseren Koeffizientenaufwand, was - die Dateigröße leicht um etwa 0.15 bis 0.19% reduziert (was mit einer - PSNR-Erhöhung um weniger als 0.01dB einhergeht), während es eine - vernachlässigbar kleine Einwirkung auf die Geschwindigkeit hat. - Es empfiehlt sich deshalb, dies immer eingeschaltet zu lassen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">cartoon</emphasis> - Entworfen, um Kartoon-Inhalt besser zu encodieren, und hat keine Auswirkung - auf die Geschwindigkeit, da es lediglich die Heuristiken zur Bestimmung des - Modus für diese Art Inhalt abstimmt. -</para></listitem> - -<listitem><para> - <emphasis role="bold">me_quality</emphasis> - Diese Einstellung ist da, um die Präzision der Bewegungseinschätzung zu - kontrollieren. - Je höher <option>me_quality</option>, desto präziser wird die Schätzung - der Originalbewegung sein, und desto besser wird der resultierende Ausschnitt - die Originalbewegung einfangen. - </para> - <para> - Die Standardeinstellung ist in jedem Fall die beste; - folglich ist es nicht empfehlenswert, sie herunter zu drehen, - es sei denn du hast es wirklich auf Geschwindigkeit abgesehen, - da alle durch eine gute Bewegungseinschätzung gesparten Bits - woanders verwendet würden, was die Gesamtqualität verbessern - würde. - Gehe deshalb nie unter 5, selbst wenn es der letzte Ausweg - sein sollte. -</para></listitem> - -<listitem><para> - <emphasis role="bold">chroma_me</emphasis> - Verbessert die Bewegungsabschätzung dadurch, dass auch die - chroma-(Farb)-Informationen einbezogen werden, wobei - <option>me_quality</option> alleine nur luma (Graustufen) - verwendet. - Dies verlangsamt die Encodierung um 5-10%, verbessert aber die - visuelle Qualität durch Reduzieren von Blockeffekten ein wenig - und reduziert die Dateigröße um rund 1.3%. - Wenn du Geschwindigkeit haben willst, solltest du diese Option - deaktivieren, bevor du anfängst zu überlegen, - <option>me_quality</option> zu reduzieren. -</para></listitem> - -<listitem><para> - <emphasis role="bold">chroma_opt</emphasis> - Ist dafür vorgesehen, die chroma-Bildqualität rund um reine - weiße/schwarze Kanten zu verbessern, eher noch als die - Kompression zu verbessern. - Dies kann dabei helfen, den "Rote Stufen"-Effekt zu reduzieren. -</para></listitem> - -<listitem><para> - <emphasis role="bold">lumi_mask</emphasis> - Versucht, weniger Bitrate auf den Teil eines Bildes zu übergeben, - der vom menschlichen Auge nicht gut zu sehen ist, was dem Encoder - erlauben sollte, die eingesparten Bits auf wichtigere Teile des - Bildes anzuwenden. - Die durch diese Option gewonnene Encodierungsqualität hängt in - hohem Maße von persönlichen Vorlieben und von Monitortyp und - dessen Einstellungen ab (typischerweise wird es nicht gut aussehen, - wenn er hell oder ein TFT-Monitor ist). -</para></listitem> - -<listitem><para> - <emphasis role="bold">qpel</emphasis> - Hebt die Anzahl Kandidaten der Bewegungsvektoren durch - Erhöhung der Präzision der Bewegungsabschätzung von einem - halben Pixel (halfpel) auf ein viertel Pixel - (quarterpel) an. - Die Idee dahinter ist, bessere Bewegungsvektoren zu finden, - was wiederum die Bitrate reduziert (deshalb wird die Qualität - verbessert). - Bewegungsvektoren mit viertel Pixel Präzision brauchen ein - paar Extrabits für die Codierung, die Bewegungsvektoren ergeben aber - nicht immer ein (viel) besseres Resultat. - Sehr oft verbraucht der Codec dennoch Bits für die Extrapräzision, - jedoch wird im Gegenzug eine geringe oder keine Extraqualität - gewonnen. - Unglücklicherweise gibt es keinen Weg, den möglichen Gewinn von - <option>qpel</option> vorzuaussagen, also musst du eigentlich - mit und ohne encodieren, um sicher zu gehen. - </para><para> - <option>qpel</option> kann fast die doppelte Encodierzeit in - Anspruch nehmen und erfordert etwa 25% mehr - Verarbeitungsleistung fürs Decodieren. - Es wird nicht von allen Standalone-Playern unterstützt. -</para></listitem> - -<listitem><para> - <emphasis role="bold">gmc</emphasis> - Versucht, Bits beim Schwenken von Szenen einzusparen, indem es einen - einzelnen Bewegungsvektor für den gesamten Frame verwendet. - Dies erhöht fast immer den PSNR, verlangsamt aber signifikant - die Encodierung (genauso wie die Decodierung). - Deshalb solltest du es nur nutzen, wenn du <option>vhq</option> - auf das Maximum gestellt hast. - <systemitem class="library">XviD</systemitem>s GMC ist höher - entwickelt als das von DivX, wird aber nur von ein paar - Standalone-Playern unterstützt. -</para></listitem> - -</itemizedlist> -</sect2> - -<sect2 id="menc-feat-xvid-encoding-profiles"> -<title>Encodierung Profile</title> -<para> - XviD unterstützt Encodierungsprofile über die Option <option>profile</option>, - die dazu verwendet werden, den Eigenschaften des XviD-Videostreams - Restriktionen so aufzuerlegen, dass es überall dort abgespielt werden kann, - wo das gewählte Profil unterstützt wird. - Die Restriktionen beziehen sich auf Auflösungen, Bitraten und - bestimmte MPEG-4-Features. - Die folgende Tabelle zeigt, was jedes Profil unterstützt. -</para> -<informaltable> -<tgroup cols="16" align="center"> -<colspec colnum="1" colname="col1"/> -<colspec colnum="2" colname="col2"/> -<colspec colnum="3" colname="col3"/> -<colspec colnum="4" colname="col4"/> -<colspec colnum="5" colname="col5"/> -<colspec colnum="6" colname="col6"/> -<colspec colnum="7" colname="col7"/> -<colspec colnum="8" colname="col8"/> -<colspec colnum="9" colname="col9"/> -<colspec colnum="10" colname="col10"/> -<colspec colnum="11" colname="col11"/> -<colspec colnum="12" colname="col12"/> -<colspec colnum="13" colname="col13"/> -<colspec colnum="14" colname="col14"/> -<colspec colnum="15" colname="col15"/> -<colspec colnum="16" colname="col16"/> -<colspec colnum="17" colname="col17"/> -<spanspec spanname="spa2-5" namest="col2" nameend="col5"/> -<spanspec spanname="spa6-11" namest="col6" nameend="col11"/> -<spanspec spanname="spa12-17" namest="col12" nameend="col17"/> - <tbody> - <row> - <entry></entry> - <entry spanname="spa2-5">Einfach</entry> - <entry spanname="spa6-11">Einfach erweitert</entry> - <entry spanname="spa12-17">DivX</entry> - </row> - <row> - <entry>Profilname</entry> - <entry>0</entry> - <entry>1</entry> - <entry>2</entry> - <entry>3</entry> - <entry>0</entry> - <entry>1</entry> - <entry>2</entry> - <entry>3</entry> - <entry>4</entry> - <entry>5</entry> - <entry>Handheld</entry> - <entry>Portable NTSC</entry> - <entry>Portable PAL</entry> - <entry>Home Theater NTSC</entry> - <entry>Home Theater PAL</entry> - <entry>HDTV</entry> - </row> - <row> - <entry>Breite [Pixel]</entry> - <entry>176</entry> - <entry>176</entry> - <entry>352</entry> - <entry>352</entry> - <entry>176</entry> - <entry>176</entry> - <entry>352</entry> - <entry>352</entry> - <entry>352</entry> - <entry>720</entry> - <entry>176</entry> - <entry>352</entry> - <entry>352</entry> - <entry>720</entry> - <entry>720</entry> - <entry>1280</entry> - </row> - <row> - <entry>Höhe [Pixel]</entry> - <entry>144</entry> - <entry>144</entry> - <entry>288</entry> - <entry>288</entry> - <entry>144</entry> - <entry>144</entry> - <entry>288</entry> - <entry>288</entry> - <entry>576</entry> - <entry>576</entry> - <entry>144</entry> - <entry>240</entry> - <entry>288</entry> - <entry>480</entry> - <entry>576</entry> - <entry>720</entry> - </row> - <row> - <entry>Framerate [fps]</entry> - <entry>15</entry> - <entry>15</entry> - <entry>15</entry> - <entry>15</entry> - <entry>30</entry> - <entry>30</entry> - <entry>15</entry> - <entry>30</entry> - <entry>30</entry> - <entry>30</entry> - <entry>15</entry> - <entry>30</entry> - <entry>25</entry> - <entry>30</entry> - <entry>25</entry> - <entry>30</entry> - </row> - <row> - <entry>Max. mittlere Bitrate [kbps]</entry> - <entry>64</entry> - <entry>64</entry> - <entry>128</entry> - <entry>384</entry> - <entry>128</entry> - <entry>128</entry> - <entry>384</entry> - <entry>768</entry> - <entry>3000</entry> - <entry>8000</entry> - <entry>537.6</entry> - <entry>4854</entry> - <entry>4854</entry> - <entry>4854</entry> - <entry>4854</entry> - <entry>9708.4</entry> - </row> - <row> - <entry>Höchstwert mittlere Bitrate über 3 Sek. [kbps]</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>800</entry> - <entry>8000</entry> - <entry>8000</entry> - <entry>8000</entry> - <entry>8000</entry> - <entry>16000</entry> - </row> - <row> - <entry>Max. B-Frames</entry> - <entry>0</entry> - <entry>0</entry> - <entry>0</entry> - <entry>0</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>0</entry> - <entry>1</entry> - <entry>1</entry> - <entry>1</entry> - <entry>1</entry> - <entry>2</entry> - </row> - <row> - <entry>MPEG-Quantisierung</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry>Adaptive Quantisierung</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - </row> - <row> - <entry>Interlaced Encodierung</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - </row> - <row> - <entry>Viertelpixel</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - <row> - <entry>Globale Bewegungskompensierung</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry>X</entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - <entry></entry> - </row> - </tbody> -</tgroup> -</informaltable> -</sect2> - -<sect2 id="menc-feat-xvid-example-settings"> -<title>Encodierungseinstellungen Beispiele</title> - -<para> - Die folgenden Einstellungen sind Beispiele unterschiedlicher - Kombinationen von Encodierungsoptionen, die den Kompromiss - zwischen Geschwindigkeit gegenüber Qualität bei gleicher - Zielbitrate betreffen. -</para> - -<para> - Alle Encodierungseinstellungen wurden auf einem Beispielvideo - mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps, - und der Rechner war ein - AMD-64 3400+ mit 2400 Mhz im 64bit-Modus. - Jede Encodierungseinstellung zeichnet sich aus durch die gemessene - Encodiergeschwindigkeit (in Frames pro Sekunde) und den PSNR-Verlust - (in dB) im Vergleich zu Einstellungen für "sehr hohe Qualität". - Bitte hab Verständnis, dass du abhängig von deiner Quelldatei, - deinem Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche - Resultate erzielen wirst. -</para> - -<para> -<informaltable frame="all"> -<tgroup cols="4"> -<thead> -<row><entry>Beschreibung</entry><entry>Encodieroptionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> -</thead> -<tbody> -<row> - <entry>Sehr hohe Qualität</entry> - <entry><option>chroma_opt:vhq=4:bvhq=1:quant_type=mpeg</option></entry> - <entry>16fps</entry> - <entry>0dB</entry> -</row> -<row> - <entry>Hohe Qualität</entry> - <entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry> - <entry>18fps</entry> - <entry>-0.1dB</entry> -</row> -<row> - <entry>Schnell</entry> - <entry><option>turbo:vhq=0</option></entry> - <entry>28fps</entry> - <entry>-0.69dB</entry> -</row> -<row> - <entry>Echtzeit</entry> - <entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry> - <entry>38fps</entry> - <entry>-1.48dB</entry> -</row> -</tbody> -</tgroup> -</informaltable> -</para> -</sect2> - -</sect1> - -<sect1 id="menc-feat-x264"> -<title>Encodieren mit dem <systemitem class="library">x264</systemitem>-Codec</title> -<para> - <systemitem class="library">x264</systemitem> ist eine freie - Programmbibliothek zum Encodieren von H.264/AVC-Videostreams. - Bevor du mit <link linkend="xvid"> zu encodieren beginnst, musst du - <application>MEncoder</application> so einstellen, dass er es unterstützt</link>. -</para> - -<sect2 id="menc-feat-x264-encoding-options"> -<title>Encodieroptionen von x264</title> - -<para> - Bitte beginne mit der Durchsicht der - <systemitem class="library">x264</systemitem>-Sektion von - <application>MPlayer</application>s Manpage. - Diese Sektion ist als Anhang zur Manpage vorgesehen. - Hier wirst du Schnellhinweise dazu finden, welche Optionen am - wahrscheinlichsten die meisten Leute interessieren. Die Manpage - ist knapper gehalten, aber auch vollständiger, und zeigt oft - viel bessere technische Details. -</para> - -<sect3 id="menc-feat-x264-encoding-options-intro"> -<title>Einführung</title> -<para>Dieses Handbuch berücksichtigt zwei Hauptkategorien der Encodieroptionen:</para> - -<orderedlist> - <listitem><para>Optionen, die hauptsächlich Encodierdauer gegenüber Qualität - abwägen - </para></listitem> - <listitem><para>Optionen, die zur Erfüllung zahlreicher persönlicher - Vorlieben und spezieller Anforderungen nützlich sind</para></listitem> -</orderedlist> - -<para> - Letztendlich kannst nur du entscheiden, welche Optionen für deine - Zwecke am besten geeignet sind. Die Entscheidung für die erste - Klasse der Optionen ist die einfachste: - Du musst nur entscheiden, ob du denkst, dass Qualitätsunterschiede - Geschwindigkeitsunterschiede rechtfertigen. Für die zweite Klasse - der Optionen sind die Vorzüge weitaus subjektiver, und mehr Faktoren - können involviert sein. Beachte, dass manche der Optionen für - "persönliche Vorlieben und spezielle Anforderungen" - noch große Auswirkungen auf Geschwindigkeit oder Qualität haben können, - das ist aber nicht, wozu sie primär benutzt werden. Ein paar der - Optionen für "persönliche Vorlieben" können sogar Änderungen - verursachen, die für manche Leute besser aussehen aber schlechter - für andere. -</para> - -<para> - Bevor du fortfährst, musst du verstehen, dass dieses Handbuch nur - eine Qualitätsmetrik verwendet: globaler PSNR. - Für eine kurze Erklärung, was PSNR ist, schau dir - <ulink url="http://en.wikipedia.org/wiki/PSNR">den Wikipedia-Artikel zu PSNR</ulink> - an. - Globaler PSNR ist die letzte gemeldete PSNR-Nummer, wenn du die - Option <option>psnr</option> in <option>x264encopts</option> - einbindest. - Jedesmal wenn du eine Forderung nach PSNR liest, ist eine der Annahmen - hinter dieser Forderung, dass gleiche Bitraten verwendet werden. -</para> - -<para> - Nahezu alle dieser Handbuchkommentare unterstellen, dass du - 2-pass anwendest. - Beim Vergleich der Optionen gibt es zwei Hauptgründe, 2-pass-Encodierung - zu nutzen. - Der erste ist, 2-pass bringt rund 1dB PSNR, was einen sehr - großen Unterschied ausmacht. - Der zweite ist, Optionen zu testen, indem man direkte Qualitätsvergleiche - zu 1-pass-Encodierung anstellt, führt einen einen wichtigen verwirrenden - Faktor ein: die Bitrate variiert bei jeder Encodierung oft signifikant. - Es ist nicht immer einfach zu sagen, ob Qualitätsänderungen vorwiegend - auf geänderte Optionen zurückzuführen sind oder ob sie meist - essentielle, zufällige Unterschiede in der erhaltenen Bitrate reflektieren. -</para> - -</sect3> - -<sect3 id="menc-feat-x264-encoding-options-speedvquality"> -<title>Optionen die primär Geschwindigkeit und Qualität betreffen</title> - -<itemizedlist> -<listitem><para> - <emphasis role="bold">subq</emphasis>: - Von den Optionen, die dir erlauben, einen Kompromiss zwischen - Geschwindigkeit und Qualität einzugehen, sind <option>subq</option> - und <option>frameref</option> (siehe unten) gewöhnlich die bei weitem - wichtigsten. - Wenn du dich für die Optimierung von entweder Geschwindigkeit oder Qualität - interessierst, sind diese die ersten, die du in Erwägung ziehen solltest. - Bei der Dimension Geschwindigkeit, interagieren die Optionen - <option>frameref</option> und <option>subq</option> ziemlich stark - miteinander. - Die Erfahrung zeigt, dass mit einem Referenzframe <option>subq=5</option> - (die Standardeinstellung) das ganze etwa 35% mehr Zeit in Anspruch nimmt als - <option>subq=1</option>. - Mit 6 Referenzframes wächst der Nachteil auf 60%. - Der Effekt, den <option>subq</option> auf den PSNR ausübt, scheint ziemlich - konstant zu sein, ungeachtet der Anzahl der Referenzframes. - Typischerweise erreicht <option>subq=5</option> einen 0.2-0.5 dB höheren globalen - PSNR im Vergleich zu <option>subq=1</option>. - Dies ist gewöhnlich ausreichend, um sichtbar zu werden. -</para> -<para> - <option>subq=6</option> ist 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 sich zwischen 25%-100% - bewegen. - Im Unterschied zu anderen Levels von <option>subq</option> hängt das - Verhalten von <option>subq=6</option> nicht sehr von <option>frameref</option> - und <option>me</option> ab. Statt dessen hängt die Effektivität von - <option>subq=6</option> größtenteils von der Anzahl der verwendeten - B-Frames ab. Im Normalgebrauch bedeutet dies, <option>subq=6</option> - hat einen großen Einfluss auf Geschwindigkeit und Qualität - in komplexen, stark bewegten Szenen, kann aber auch einen geringen Effekt - in Szenen mit wenig Bewegung haben. Beachte, dass dennoch empfohlen wird, - <option>bframes</option> immer auf etwas anderes als null - zu setzen (siehe unten). -</para></listitem> -<listitem><para> - <emphasis role="bold">frameref</emphasis>: - <option>frameref</option> ist per Voreinstellung auf 1 gesetzt, jedoch - solltest du deshalb nicht darauf schließen, dass es unbedingt - auf 1 gesetzt sein muss. - Allein die Erhöhung von <option>frameref</option> auf 2 bringt rund - 0.15dB PSNR mit einem Geschwindigkeitsnachteil von 5-10%; dies sieht nach - einem guten Kompromiss aus. - <option>frameref=3</option> bringt rund 0.25dB PSNR mehr als - <option>frameref=1</option>, was einen sichtbaren Unterschied machen - sollte. - <option>frameref=3</option> ist rund 15% langsamer als - <option>frameref=1</option>. - Leider setzen vermindernde Rückgaben schnell ein. - <option>frameref=6</option> kann erwartungsgemäß nur - 0.05-0.1 dB mehr als <option>frameref=3</option> bei zusätzlichen - 15% Geschwindigkeitsnachteil. - Oberhalb <option>frameref=6</option> sind die Qualitätsgewinne - für gewöhnlich sehr klein (obwohl du während der ganzen Diskussion - im Kopf behalten solltest, dass sie abhängig von deiner Quelle stark - variieren können). - In einem ziemlich typischen Fall wird <option>frameref=12</option> - den globalen PSNR um ein bisschen mehr als 0.02dB gegenüber - <option>frameref=6</option> verbessern, bei Geschwindigkeitseinbußen - von 15%-20%. - Bei so hohen <option>frameref</option>-Werten ist das wirklich - einzig Gute, dass man sagen kann, dass ein weiteres Anheben dieses - Wertes ziemlich sicher nie den PSNR <emphasis role="bold">schädigen</emphasis> - wird, jedoch sind zusätzliche Qualitätsvorteile sogar kaum messbar, - geschweige denn wahrnehmbar. -</para> -<note><title>Beachte:</title> -<para> - Das Erhöhen von <option>frameref</option> auf unnötig hohe Werte - <emphasis role="bold">kann</emphasis> und - <emphasis role="bold">tut dies üblicherweise auch</emphasis> - die Codiereffizienz schädigen, wenn du CABAC ausschaltest. - Mit eingeschaltetem CABAC (das Standardverhalten) scheint die - Möglichkeit, <option>frameref</option> "zu hoch" - zu setzen, gegenwärtig zu weit entfernt um sich Sorgen zu machen, - und in der Zukunft werden womöglich Optimierungen diese Möglichkeit - ganz und gar ausschließen. -</para> -</note> -<para> - Wenn du auf Geschwindigkeit abzielst, ist ein vernünftiger - Kompromiss, im ersten Durchgang niedrigere <option>subq</option>- und - <option>frameref</option>-Werte zu nehmen, und sie danach im - zweten Durchgang zu erhöhen. - Typischerweise hat dies einen vernachlässigbar negativen Effekt - auf die Encodierqualität: Du wirst womöglich unter 0.1dB PSNR - verlieren, was viel zu klein für einen sichtbaren Unterschied - sein sollte. - Trotzdem, unterschiedliche Werte für <option>frameref</option> - können auf verschiedene Weise die Frametypenbestimmung beeinflussen. - Höchstwahrscheinlich sind dies außerordentlich seltene Fälle, - willst du jedoch wirklich sicher gehen, ziehe in Betracht, ob - dein Video entweder Vollbild- respektive Einblendungsmuster - oder sehr große temporäre Überdeckungen enthält, was einen I-Frame - erzwingen könnte. - Passe <option>frameref</option> des ersten Durchgangs so an, - dass es groß genug ist, die Dauer des Einblendungszyklus - (oder der Überdeckungen) zu enthalten. - Zum Beispiel, wenn die Szene zwischen zwei Bildern über eine - Zeitspanne von drei Frames rückwärts und vorwärts springt, - setze <option>frameref</option> des ersten Durchgangs auf 3 - oder höher. - Dieser Sachverhalt kommt vermutlich extrem selten in - Videomaterial mit Live Action vor, erscheint aber manchmal - bei eingefangenen Computerspiel-Sequenzen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">me</emphasis>: - Diese Option dient der Wahl der Suchmethode der Bewegungseinschätzung. - Diese Option zu verändern stellt einen überschaubaren Kompromiss - zwischen Qualität und Geschwindigkeit dar. - <option>me=1</option> ist nur ein paar Prozent schneller als - die Standardsuche, auf Kosten von unter 0.1dB globalem PSNR. Die - Standardeinstellung (<option>me=2</option>) ist ein angemessener - Kompromiss zwischen Qualität und Geschwindigkeit. - <option>me=3</option> bringt ein wenig unter 0.1dB globalem PSNR, - mit Geschwindigkeitsnachteil, der abhängig von <option>frameref</option> - variiert. Bei hohen <option>frameref</option>-Werten (z.B. 12 oder so) - ist <option>me=3</option> etwa 40% langsamer als die Standardeinstellung - <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 die Verwendung von 8x4, 4x8 und 4x4 Unterteilungen - in den vorhergesagten Macroblöcken. Sie zu aktivieren führt zu einem - recht beständigen Geschwindigkeitsverlust von 10%-15%. Sie ist - ziemlich nutzlos bei Quellen, die nur langsame Bewegungen enthalten, - obwohl in manchen Quellen mit sehr viel Bewegung und vielen kleinen, - sich bewegenden Objekten Zugewinne von etwa 0.1dB erwartet werden können. -</para> -</listitem> - -<listitem><para> - <emphasis role="bold">bframes</emphasis>: - Wenn du gewohnt bist, mit anderen Codecs zu encodieren, hast du - womöglich empfunden, dass B-Frames nicht immer nützlich sind. - Bei H.264 wurde dies geändert: es gibt neue Techniken und Blocktypen, - die in B-Frames möglich sind. - Für gewöhnlich kann selbst ein einfältiger Algorithmus zur Wahl - der B-Frames einen signifikanten PSNR-Vorteil bringen. - Es ist interessant festzustellen, dass die Anwendung von B-Frames - normalerweise den zweiten Durchgang ein bisschen beschleunigt, - und er kann auch eine Encodierung mit einfachem Durchgang etwas - schneller machen, wenn adaptive B-Frame-Bestimmung deaktiviert - ist. -</para> -<para> - Mit deaktivierter adaptiver B-Framebestimmung - (<option>nob_adapt</option> von <option>x264encopts</option>) - ist der optimale Wert für diese Einstellung normalerweise nicht - mehr als <option>bframes=1</option>, andernfalls leiden Szenen - mit sehr viel Bewegung darunter. - Mit aktivierter adaptiver B-Framebestimmung (das Standardverhalten) - ist es sicher, höhere Werte zu verwenden; der Encoder wird die Anwendung - von B-Frames in Szenen reduzieren, in denen sie die Kompression - schädigen könnten. - Der Encoder zieht es selten vor, mehr als 3 oder 4 B-Frames zu - verwenden; diese Option höher zu setzen wird einen geringen Effekt haben. -</para></listitem> - -<listitem><para> - <emphasis role="bold">b_adapt</emphasis>: - Beachte: Dies ist standardmäßig eingeschaltet. -</para> -<para> - Ist diese Option aktiviert, wird der Encoder einen einigermaßen schnellen - Entscheidungsprozess zur Reduzierung der Anzahl B-Frames in Szenen anwenden, die - nicht viel von ihnen profitieren würden. - Du kannst <option>b_bias</option> dazu verwenden, zu optimieren wie - froh der Encoder über B-Frames sein soll. - Der Geschwindigkeitsnachteil adaptiver B-Frames ist gegenwärtig ziemlich - bescheiden, und genauso ist der potentielle Qualitätsgewinn. - Es sollte aber normalerweise nicht schaden. - Beachte, dass dies nur Geschwindigkeit und Frametypenbestimmung im ersten - Durchgang betrifft. - <option>b_adapt</option> und <option>b_bias</option> haben keinen - Effekt auf nachfolgende Durchgänge. -</para></listitem> - -<listitem><para> - <emphasis role="bold">b_pyramid</emphasis>: - Du kannst diese Option genauso gut aktivieren, falls du >=2 B-Frames - verwendest; wie die Manpage dir sagt, erreichst du eine kleine - Qualitätsverbesserung bei keinerlei Geschwindigkeitseinbuße. - Beachte, dass diese Videos von libavcodec-basierten Decodern - älter als etwa 5. März 2005 nicht gelesen werden können. -</para></listitem> - -<listitem><para> - <emphasis role="bold">weight_b</emphasis>: - In typischen Fällen gibt es nicht viel Gewinn mit dieser Option. - Trotzdem, in überblendenden oder ins Schwarze übergehenden Szenen - liefert die gewichtete Vorhersage ziemlich große Einsparungen bei der Bitrate. - In MPEG-4 ASP wird ein Übergang ins Schwarze gewöhnlich am besten - als eine Serie aufwändiger I-Frames codiert; das Verwenden einer - gewichteten Vorhersage in B-Frames macht es möglich, wenigstens - manche von diesen in viel kleinere B-Frames zu wandeln. - Der Verlust an Encodierzeit ist minimal, da keine extra Bestimmungen - vorgenommen werden müssen. - Auch werden die CPU-Anforderungen des Encoders, im Gegensatz zu den - Einschätzungen mancher Leute, von gewichteter Vorhersage nicht sonderlich - beeinflusst, ansonsten bleibt alles gleich. -</para> -<para> - Leider hat der aktuelle Algorithmus zur adaptiven B-Frame-Bestimmung - eine starke Tendenz, B-Frames während des Fadens zu verhindern. - Bis sich dies ändert, kann es eine gute Idee sein, - <option>nob_adapt</option> zu deinen x264encopts hinzuzufügen, falls - du erwartest, dass Fades einen großen Effekt in deinem jeweiligen - Videoclip erzeugen. -</para></listitem> -</itemizedlist> -</sect3> - -<sect3 id="menc-feat-x264-encoding-options-misc-preferences"> -<title>Diverse Eigenschaften betreffende Optionen</title> -<itemizedlist> -<listitem><para> - <emphasis role="bold">2-pass-Encodierung</emphasis>: - Oben wurde vorgeschlagen, immer 2-pass-Encodierung anzuwenden. - Es gibt aber durchaus Gründe, dies nicht zu tun. Beispielsweise bist du, - wenn du Live-TV aufnimmst und in Echtzeit encodierst, - gezwungen, einen einzigen Durchgang zu verwenden. - Auch ist ein Durchgang offensichtlich schneller als zwei Durchgänge; - wenn du exakt die gleichen Optionen bei beiden Durchgängen anwendest, - ist das Encodieren in zwei Durchgängen mindestens zweimal so langsam. -</para> -<para> - Noch gibt es sehr gute Gründe, in zwei Durchgängen zu encodieren. - Zum einen ist Ratenkontrolle in einem Durchgang kein Allheilmittel. - Sie trifft oft eine unvernünftige Auswahl, weil sie das große - Bild nicht sehen kann. Zum Beispiel angenommen, du hast ein zwei Minuten - langes Video bestehend aus zwei ausgeprägten Hälften. Die erste Hälfte - besitzt eine 60 Sekunden dauernde Szene mit sehr viel Bewegung, die - einzeln für sich etwa 2500kbps benötigt, um anständig auszusehen. - Direkt daruffolgend kommt eine viel weniger anspruchsvolle 60 Sekunden - lange Szene, die bei 300kbps gut aussieht. Angenommen du forderst in - der Theorie 1400kbps an, was beiden Szenen ausreichend entgegenkommen - würde. Die Ratenkontrolle in einem Durchgang wird in diesem Fall - ein paar "Fehler" machen. Zuallererst wird es in beiden Segmenten - 1400kbps anpeilen. Das erste Segment könnte schwer überquantisiert enden, - was es unakzeptabel und unangemessen blockhaft aussehen lässt. - Das zweite Segment wird schwer unterquantisiert sein; es sieht vielleicht - perfekt aus, aber der Bitratenverlust dieser Perfektion wird komplett - unangemessen sein. - Noch schwerer vermeidbar ist das Problem am Übergang beider Szenen. - Die ersten Sekunden der Hälfte mit wenig Bewegung wird enorm - überquantisiert sein, weil die Ratenkontrolle noch die Art Anforderung - an die Bitrate erwartet, der sie in der ersten Hälfte des Videos begegnet - war. Diese "Fehlerperiode" der extrem überquantisierten Szene - mit wenig Bewegung wird fürchterlich schlecht aussehen, und wird sogar - weniger als die 300kbps in Anspruch nehmen als das, was sie genommen hätte, um annehmbar - auszusehen. Es gibt Mittel und Wege, diese Fälle des Encodierens in einem - Durchgang zu mildern, diese werden allerdingst dahin tendieren, die - fehlerhaften Vorhersagen der Bitraten zu häufen. -</para> -<para> - Multipass-Ratenkontrolle kann gegenüber der eines einzigen Durchgangs - enorm große Vorteile bieten. - Indem sie die im ersten Encodierungsdurchlauf gesammelte Statistik - verwendet, kann der Encoder mit angemessener Genauigkeit den Aufwand - (in Bit) abschätzen, den das Encodieren jeden gegebenen Frames bei - jedem gegebenen Quantisierer erfordert. Dies erlaubt eine viel - rationalere, besser geplante Zuweisung von Bits zwischen den - bithungrigen Szenen mit viel Bewegung und denen bescheidenen mit - wenig Bewegung. - Siehe <option>qcomp</option> unten für einige Ideen darüber, wie man - diese Zuweisungen nach seinem Geschmack optimiert. -</para> -<para> - Darüber hinaus brauchen zwei Durchgänge zweimal so lang wie ein Durchgang. - Du kannst die Optionen im ersten Durchgang auf höhere Geschwindigkeit - und niedrigere Qualität optimieren. - Wenn du deine Optionen geschickt wählst, kannst du einen sehr schnellen - ersten Durchgang hinkriegen. - Die resultierende Qualität im zweiten Durchgang wird geringfügig niedriger - ausfallen, weil die Größenvorhersage weniger akkurat ist, jedoch - ist die Qualitätsdifferenz normalerweise viel zu klein, um sichtbar zu sein. - Versuche zum Beispiel <option>subq=1:frameref=1</option> zu - <option>x264encopts</option> des ersten Durchgangs hinzuzufügen. - Verwende dann im zweiten Durchgang langsamere, hochwertigere Optionen: - <option>subq=6:frameref=15:4x4mv:me=3</option> -</para></listitem> -<listitem><para> - <emphasis role="bold">Encodierung mit drei Durchgängen</emphasis>? - - x264 bietet die Möglichkeit, eine beliebige Anzahl aufeinander folgender - Durchgänge auszuführen. Wenn du <option>pass=1</option> im ersten Durchgang - spezifizierst, dann verwende <option>pass=3</option> im nachfolgenden - Durchgang, der nachfolgende Durchgang wird beides tun, die Statistik des - vorhergehenden Durchgangs lesen und seine eigene Statistik schreiben. - Ein zusätzlicher Durchgang, der diesem folgt, wird eine sehr gute Basis - haben, von der aus er hochpräzise Vorhersagen der Framegrößen bei - einem gewählten Quantisierer machen kann. - In der Praxis ist der damit erzielte gesamte Qualitätsgewinn - gewöhnlich nahezu null, und ziemlich wahrscheinlich resultiert ein dritter - Durchgang in einem geringfügig schlechteren globalen PSNR als der Durchgang - davor. In der typischen Anwendung helfen drei Durchgänge, wenn du entweder - eine schleche Vorhersage der Bitraten oder schlecht aussehende Szenenübergänge - beim Verwenden nur eines Durchlaufs bekommst. - Dies passiert mit ziemlicher Wahrscheinlichkeit bei extrem kurzen Clips. - Ebenso gibt es ein paar Spezialfälle, in denen drei (oder mehr) Durchgänge - erfahrenen Nutzern dienlich sind, aber um es kurz zu machen, dieses Handbuch - behandelt die Diskussion solcher speziellen Fälle nicht. -</para></listitem> -<listitem><para> - <emphasis role="bold">qcomp</emphasis>: - <option>qcomp</option> wägt die Anzahl der für "aufwändige" Frames - mit viel Bewegung vorgesehenen Bits gegen die für "weniger aufwändige" - Frames mit wenig Bewegung ab. - Bei einem Extrem zielt <option>qcomp=0</option> auf eine echte konstante - Bitrate ab. Typischerweise würde dies Szenen mit viel Bewegung vollkommen - ätzend aussehen lassen, während Szenen mit wenig Bewegung womöglich absolut - perfekt aussehen, jedoch öfter mehr Bitrate verwenden würden, als sie es für - lediglich sehr gutes Aussehen bräuchten. Beim anderen Extrem - erreicht <option>qcomp=1</option> nahezu konstante Quantisierungsparameter - (QP). Ein konstanter QP sieht nicht schlecht aus, die meisten Leute meinen - aber, es sei vernünftiger, etwas Bitrate aus den extrem aufwändigen Szenen - zu nehmen (wobei dort der Qualitätsverlust micht ganz so augenfällig ist) - und sie wieder den Szenen zuzuweisen, die bei sehr guter Qualität leichter - zu encodieren sind. - <option>qcomp</option> ist per Voreinstellung auf 0.6 gesetzt, was für den - Geschmack mancher Leute etwas zu langsam sein könnte (0.7-0.8 werden im - Allgemeinen auch verwendet). -</para></listitem> -<listitem><para> - <emphasis role="bold">keyint</emphasis>: - <option>keyint</option> ist einzig und allein zur Abwägung der - Durchsuchbarkeit der Datei gegenüber der Codiereffiziez da. - Als Standardwert ist <option>keyint</option> auf 250 gesetzt. In - Material mit 25fps garantiert dies, auf 10 Sekunden genau - suchen zu können. Wenn du meinst, es wäre wichtig und nützlich, - auf 5 Sekunden genau suchen zu können, setze es auf <option>keyint=125</option>; - dies wird der Qualität/Bitrate leicht schaden. Wenn es dir nur um Qualität - geht und nicht um die Durchsuchbarkeit, kannst du viel höhere Werte - setzen (vorausgesetzt du verstehst, daß es verringerte Resultate gibt, die verschwindend - klein werden oder sogar gegen null gehen). Der Videostream wird nach - wie vor suchbare Stellen besitzen, solange einige Szenenwechsel - vorhanden sind. -</para></listitem> -<listitem><para> - <emphasis role="bold">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 stark gefiltert, und - niedrige QP-Blöcke werden überhaupt nicht entblockt. - Die vom Standard definierten vorgegebenen Stärken sind mit - Bedacht gewählt und die Chancen stehen sehr gut, dass sie - PSNR-optimal sind, egal welches Video auch immer du zu encodieren - versuchst. - 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 viel davon wie Deblocking - standardmäßig funktioniert. -</para> -<para> - Die erste und wichtigste Sache, die man über den - in-loop-Deblocking-Filter wissen sollte, ist, dass die - Standardschwellenwerte meistens PSNR-optimal sind. - In den seltenen Fällen, in denen sie nicht optimal sind, ist das - ideale Offset plus oder minus 1. - Die Deblocking-Parameter durch einen höheren Betrag anzupassen - garantiert meist, dem PSNR zu schaden. - Das Verstärken des Filters wird mehr Details verwischen; den - Filter zu schwächen wird das Auftreten von Blockeffekten - erhöhen. -</para> -<para> - Es ist definitiv eine schlechte Idee, die Deblocking-Schwellenwerte - herabzusetzen, falls deine Quelle eine vorwiegend niedrige räumliche - Komplexität besitzt (z.B. nicht viele Details oder Rauschen). - Der in-loop-Filter macht eigentlich einen exzellenten Job durch - das Kaschieren auftretender Artefakte. - Besitzt die Quelle eine hohe räumliche Komplexität, sind Artefakte - weniger bemerkbar. - Dies ist so, weil das Schwingen (ringing) dazu neigt, wie Details - oder Rauschen auszusehen. - Die viselle Wahrnehmung des Menschen erkennt leicht, wenn Details - entfernt wurden, aber erkennt nicht so leicht, wenn Rauschen falsch - dargestellt wird. - Wird die Qualität subjektiv, sind Details und Rauschen etwas - austauschbares. - Durch das Herabsetzen der Deblocking-Filterstärke verstärkst du - höchstwahrscheinlich Fehler durch Hinzufügen von - Schwingungsartefakten, aber dem Auge fällt nichts auf, weil - es die Artefakte mit Details verwechselt. -</para> - -<para> - Dies rechtfertigt jedoch <emphasis role="bold">nach wie vor</emphasis> - nicht das Herabsetzen der Deblocking-Filterstärke. - Du kannst im Allgemeinen besseres Qualitätsrauschen im Postprocessing - erzielen. - Falls deine H.264-Encodierungen zu verschwommen oder verschmiert - aussehen, versuche, mit - <option>-vf noise</option> beim Abspielen des encodierten Films - herumzuspielen. - <option>-vf noise=8a:4a</option> sollte die meisten weichen Artefakte - kaschieren. - Es wird meist mit Sicherheit besser aussehen als die Resultate, die - du durch einfaches Herumtüfteln mit dem Deblocking-Filter bekommen - hättest. -</para></listitem> -</itemizedlist> -</sect3> -</sect2> - -<sect2 id="menc-feat-x264-example-settings"> -<title>Beispiele für Encodieroptionen</title> - -<para> - Die folgenden Einstellungen sind Beispiele unterschiedlicher - Kombinationen von Encodier-Optionen, die einen Kompromiss zwischen - Geschwindigkeit und Qualität bei gleicher Zielbitrate darstellen. -</para> - -<para> - All diese Encodier-Einstellungen wurden an einem Beispielvideo - mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps, - und der Rechner war ein - AMD-64 3400+ mit 2400 Mhz im 64bit-Modus. - Jede Encodier-Einstellung zeichnet sich durch eine gemessene - Encodiergeschwindigkeit (in Frames pro Sekunde) und dem - PSNR-Verlust (in dB) im Vergleich zu den "sehr - hochwertigen" Einstellung aus. - Bitte hab dafür Verständnis, dass du abhängig von deiner Quelle, deinem - Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche Resultate - erhalten kannst. -</para> - -<para> -<informaltable frame="all"> -<tgroup cols="4"> -<thead> -<row><entry>Beschreibung</entry><entry>Encodier-Optionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> -</thead> -<tbody> -<row> - <entry>Sehr hohe Qualität</entry> - <entry><option>subq=6: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> Codecfamilie</title> - -<para> - Video for Windows bietet einfaches Encodieren mittels binärer Video-Codecs. - Du kannst mit folgenden Codecs encodieren (solltest du mehr haben, teile es - uns bitte mit!) -</para> -<para> - Beachte, dass der Support hierfür sehr experimentell ist, und - einige Codecs arbeiten vielleicht nicht korrekt. Manche Codecs werden - nur in bestimmten Farbräumen funktionieren, versuche - <option>-vf format=bgr24</option> und <option>-vf format=yuy2</option>, - falls ein Codec versagt oder einen falschen Output liefert. -</para> - -<sect2 id="menc-feat-enc-vfw-video-codecs"> -<title>Von Video for Windows unterstützte Codecs</title> - -<para> -<informaltable frame="all"> -<tgroup cols="4"> -<thead> -<row> -<entry>Video-Codec Dateiname</entry> -<entry>Beschreibung (FourCC)</entry> -<entry>md5sum</entry> -<entry>Kommentar</entry> -</row> -</thead> -<tbody> -<row> - <entry>aslcodec_vfw.dll</entry> - <entry>Alparysoft verlustfreier (lossless) Codec vfw (ASLC)</entry> - <entry>608af234a6ea4d90cdc7246af5f3f29a</entry> - <entry></entry> -</row> -<row> - <entry>avimszh.dll</entry> - <entry>AVImszh (MSZH)</entry> - <entry>253118fe1eedea04a95ed6e5f4c28878</entry> - <entry>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>stürzt unter Linux ab</entry> -</row> -<row> - <entry>vp7vfw.dll</entry> - <entry>On2 VP7 Personal Codec (VP70)</entry> - <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry> - <entry>falscher FourCC?</entry> -</row> -<row> - <entry>ViVD2.dll</entry> - <entry>SoftMedia ViVD V2 Codec VfW (GXVE)</entry> - <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry> - <entry></entry> -</row> -</tbody> -</tgroup> -</informaltable> - -Die erste Spalte enthält die Codec-Namen, die nach dem Parameter -<literal>codec</literal> übergeben werden sollten, wie: -<option>-xvfwopts codec=divx.dll</option>. -Der FourCC-Code, der von jedem Codec verwendet wird, steht in Klammern. -</para> -<informalexample> -<para> -Ein Beispiel mit VP3-Kompression: -<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 in der Lage, MPEG-Dateien im VCD-, SCVD- - und DVD-Format durch Verwendung der - <systemitem class="library">libavcodec</systemitem>-Programmbibliothek - zu erzeugen. - Diese Dateien können danach im Zusammenhang mit - <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink> - oder - <ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink> - zum Erzeugen von Disks verwendet werden, die auf einem Standard Set-Top-Player - abgespielt werden können. -</para> - -<para> - Die Formate DVD, SVCD und VCD sind starken Beschränkungen unterworfen. - Es ist nur eine kleine Auswahl an encodierten Bildgrößen und Seitenverhältnissen - verfügbar. - Wenn dein Film nicht bereits die Anforderungen erfüllt, musst du das Bild - skalieren, zuschneiden oder schwarze Ränder hinzufügen, um es konform zu machen. -</para> - -<sect3 id="menc-feat-vcd-dvd-constraints-resolution"> -<title>Formatbeschränkungen</title> - -<informaltable frame="all"> -<tgroup cols="9"> -<thead> - <row> - <entry>Format</entry> - <entry>Auflösung</entry> - <entry>V. Codec</entry> - <entry>V. Bitrate</entry> - <entry>Samplerate</entry> - <entry>A. Codec</entry> - <entry>A. Bitrate</entry> - <entry>FPS</entry> - <entry>Seitenverhältnis</entry> - </row> -</thead> -<tbody> - <row> - <entry>NTSC DVD</entry> - <entry>720x480, 704x480, 352x480, 352x240</entry> - <entry>MPEG-2</entry> - <entry>9800 kbps</entry> - <entry>48000 Hz</entry> - <entry>AC3,PCM</entry> - <entry>1536 kbps (max)</entry> - <entry>30000/1001, 24000/1001</entry> - <entry>4:3, 16:9 (nur für 720x480)</entry> - </row> - <row> - <entry>NTSC DVD</entry> - <entry>352x240<footnote id='fn-rare-resolutions'><para> - Diese Auflösungen werden selten für DVDs verwendet, da sie von - ziemlch niedriger Qualität sind.</para></footnote></entry> - <entry>MPEG-1</entry> - <entry>1856 kbps</entry> - <entry>48000 Hz</entry> - <entry>AC3,PCM</entry> - <entry>1536 kbps (max)</entry> - <entry>30000/1001, 24000/1001</entry> - <entry>4:3, 16:9</entry> - </row> - <row> - <entry>NTSC SVCD</entry> - <entry>480x480</entry> - <entry>MPEG-2</entry> - <entry>2600 kbps</entry> - <entry>44100 Hz</entry> - <entry>MP2</entry> - <entry>384 kbps (max)</entry> - <entry>30000/1001</entry> - <entry>4:3</entry> - </row> - <row> - <entry>NTSC VCD</entry> - <entry>352x240</entry> - <entry>MPEG-1</entry> - <entry>1150 kbps</entry> - <entry>44100 Hz</entry> - <entry>MP2</entry> - <entry>224 kbps</entry> - <entry>24000/1001, 30000/1001</entry> - <entry>4:3</entry> - </row> - <row> - <entry>PAL DVD</entry> - <entry>720x576, 704x576, 352x576, 352x288</entry> - <entry>MPEG-2</entry> - <entry>9800 kbps</entry> - <entry>48000 Hz</entry> - <entry>MP2,AC3,PCM</entry> - <entry>1536 kbps (max)</entry> - <entry>25</entry> - <entry>4:3, 16:9 (nur für 720x576)</entry> - </row> - <row> - <entry>PAL DVD</entry> - <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry> - <entry>MPEG-1</entry> - <entry>1856 kbps</entry> - <entry>48000 Hz</entry> - <entry>MP2,AC3,PCM</entry> - <entry>1536 kbps (max)</entry> - <entry>25</entry> - <entry>4:3, 16:9</entry> - </row> - <row> - <entry>PAL SVCD</entry> - <entry>480x576</entry> - <entry>MPEG-2</entry> - <entry>2600 kbps</entry> - <entry>44100 Hz</entry> - <entry>MP2</entry> - <entry>384 kbps (max)</entry> - <entry>25</entry> - <entry>4:3</entry> - </row> - <row> - <entry>PAL VCD</entry> - <entry>352x288</entry> - <entry>MPEG-1</entry> - <entry>1152 kbps</entry> - <entry>44100 Hz</entry> - <entry>MP2</entry> - <entry>224 kbps</entry> - <entry>25</entry> - <entry>4:3</entry> - </row> -</tbody> -</tgroup> -</informaltable> - -<para> - Wenn ein Film ein 2.35:1 Seitenverhältnis hat (die meisten aktuellen Action-Filme), - wirst du schwarze Ränder hinzufügen oder den Film auf 16:9 zuschneiden müssen, - um eine DVD oder VCD herzustellen. - Wenn du schwarze Ränder hinzufügst, versuche diese an 16-Pixel-Rändern - auszurichten, um den Einfluß auf die Encodier-Performance zu minimieren. - Zum Glück besitzen DVDs eine ausreichend hohe Bitrate, damit du dich - nicht zu sehr um die Encodier-Effizienz sorgen musst. SVCD - und VCD jedoch sind höchst mager an Bitrate und erfordern Aufwand, um akzeptable - Qualität zu erreichen. -</para> -</sect3> - -<sect3 id="menc-feat-vcd-dvd-constraints-gop"> -<title>GOP-Größenbeschränkungen</title> -<para> - DVD, VCD und SVCD zwingen dich auch zu relativ niedrigen - GOP-Größen (Group of Pictures). - Für Material mit 30 fps ist die größte erlaubte GOP-Größe 18. - Für 25 oder 24 fps ist das Maximum 15. - Die GOP-Größe wird mittels der Option <option>keyint</option> gesetzt. -</para> -</sect3> - -<sect3 id="menc-feat-vcd-dvd-constraints-bitrate"> -<title>Bitraten-Beschränkungen</title> -<para> - VCD-Video muss bei CBR 1152 kbps sein. - Zu dieser nach oben begrenzten Einschränkung kommt auch noch eine - extrem niedrige vbv-Puffergröße von 327 Kilobit. - SVCD erlaubt das Variieren der Video-Bitraten auf bis zu 2500 kbps, - und eine etwas weniger restriktive vbv-Puffergröße von 917 Kilobit - ist erlaubt. - DVD-Video-Bitraten können sich bis auf irgendwo um die 9800 kbps - einpegeln (wenngleich typische Bitraten etwa halb so groß sind), - und die vbv-Puffergröße ist 1835 Kilobit. -</para> -</sect3> -</sect2> - -<sect2 id="menc-feat-vcd-dvd-output"> -<title>Output-Optionen</title> -<para> - <application>MEncoder</application> besitzt Optionen zur Kontrolle des - Output-Formats. - Durch das Verwenden dieser Optionen können wir ihn anweisen, den - korrekten Dateityp zu erzeugen. -</para> - -<para> - Die Optionen für VCD und SVCD werden xvcd und xsvcd genannt, weil sie - erweiterte Formate sind. - Sie sind nicht strikt Standard-konform, hauptsächlich weil der Output - keine Scan-Offsets enthält. - Wenn du ein SVCD-Image generieren musst, solltest du die Output-Datei - dem - <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink> - übergeben. -</para> - -<para> - VCD: - <screen> - -of mpeg -mpegopts format=xvcd - </screen> -</para> - -<para> - SVCD: - <screen> - -of mpeg -mpegopts format=xsvcd - </screen> -</para> - -<para> - DVD: - <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, wobei die DVD-Konformität erhalten bleibt. -</para> - -<sect3 id="menc-feat-vcd-dvd-output-aspect"> -<title>Seitenverhältnis</title> -<para> - Der Parameter für das Seitenverhältnis von <option>-lavcopts</option> wird zum Encodieren - des Seitenverhältnisses einer Datei verwendet. - Während des Playbacks wird das Seitenverhältnis dazu benutzt, die korrekte - Größe des Videos wieder herzustellen. -</para> - -<para> - 16:9 oder "Breitbild" - <screen> - -lavcopts aspect=16/9 - </screen> -</para> - -<para> - 4:3 oder "Vollbild" - <screen> - -lavcopts aspect=4/3 - </screen> -</para> - -<para> - 2.35:1 oder "Cinemascope" NTSC - <screen> - -vf scale=720:368,expand=720:480 -lavcopts aspect=16/9 - </screen> - Um die korrekte Skalierungsgröße zu berechnen, verwende die - erweiterte NTSC-Breite von 854/2.35 = 368 -</para> - -<para> - 2.35:1 oder "Cinemascope" PAL - <screen> - -vf scale="720:432,expand=720:576 -lavcopts aspect=16/9 - </screen> - Um die korrekte Skalierungsgröße zu berechnen, verwende die - erweiterte PAL-Breite von 1024/2.35 = 432 -</para> - -</sect3> - -<sect3 id="menc-feat-vcd-dvd-a-v-sync"> -<title>Aufrechterhalten der A/V-Synchronisation</title> -<para> - Um die Audio-/Video-Synchronisation während der kompletten - Encodierung aufrechtzuerhalten, muss - <application>MEncoder</application> Frames auslassen oder duplizieren. - Dies funktioniert beim Muxen in eine AVI-Datei ziemlich gut, - aber meist schlägt das Aufrechterhalten der A/V-Synchronisation mit - anderen Muxern wie etwa MPEG garantiert fehl. - Dies ist der Grund, weshalb es nötig ist, den - <option>harddup</option>-Video-Filter am Ende der Filterkette anzuhängen, - um diese Art Problem zu vermeiden. - Du findest mehr technische Informationen zu <option>harddup</option> - im Abschnitt - <link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Verbessern der Mux- und A/V-Synchronisationszuverlässigkeit</link> - oder in der Manpage. -</para> -</sect3> - -<sect3 id="menc-feat-vcd-dvd-output-srate"> -<title>Sampleraten-Konvertierung</title> -<para> - Wenn die Audio-Samplerate in der Originaldatei nicht dieselbe wie die - vom Zielformat angeforderte ist, wird eine Sampleraten-Konvertierung - erforderlich. - Dies wird erreicht, indem man die Option <option>-srate</option> und - den <option>-af lavcresample</option> Audio-Filter zusammen - anwedet. - </para> - <para> - DVD: - <screen> - -srate 48000 -af lavcresample=48000 - </screen> -</para> -<para> - VCD und SVCD: - <screen> - -srate 44100 -af lavcresample=44100 - </screen> - </para> -</sect3> -</sect2> - -<sect2 id="menc-feat-vcd-dvd-lavc"> -<title>Verwenden des libavcodec zur VCD/SVCD/DVD-Encodierung</title> - -<sect3 id="menc-feat-vcd-dvd-lavc-intro"> -<title>Einführung</title> -<para> - <systemitem class="library">libavcodec</systemitem> kann verwendet - werden, um ein VCD/SVCD/DVD-konformes Video durch die Anwendung der - passenden Optionen zu erzeugen. -</para> -</sect3> - -<sect3 id="menc-feat-vcd-dvd-lavc-options"> -<title>lavcopts</title> -<para> - Dies ist eine Liste von Feldern in <option>-lavcopts</option>, die du - möglicherweise ändern musst, um einen für VCD, SVCD - oder DVD konformen Film herzustellen: -</para> - -<itemizedlist> -<listitem><para> - <emphasis role="bold">acodec</emphasis>: - <option>mp2</option> für VCD, SVCD oder PAL DVD; - <option>ac3</option> wird am häufigsten für DVD verwendet. - PCM-Audio kann auch für DVD verwendet werden, aber dies ist meistens - eine riesen Platzverschwendung. - Beachte, dass MP3-Audio nicht konform für irgendeines dieser Formate - ist, aber Player haben oft ohnehin kein Problem, es abzuspielen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">abitrate</emphasis>: - 224 für VCD; bis zu 384 für SVCD; bis zu 1536 für DVD, aber - übliche Werte reichen von 192 kbps für Stereo bis 384 kbps für - 5.1-Kanal-Sound. -</para></listitem> - -<listitem><para> - <emphasis role="bold">vcodec</emphasis>: - <option>mpeg1video</option> für VCD; - <option>mpeg2video</option> für SVCD; - <option>mpeg2video</option> wird gewöhnlich für DVD verwendet, man kann aber auch - <option>mpeg1video</option> für CIF-Auflösungen verwenden. -</para></listitem> - -<listitem><para> - <emphasis role="bold">keyint</emphasis>: - Angewandt, um die GOP-Größe zu setzen. - 18 für Material mit 30fps oder 15 für Material mit 25/24 fps. - Kommerzielle Hersteller scheinen Keyframe-Intervalle von 12 zu bevorzugen. - Es ist möglich, dies viel größer zu machen und dennoch die Kompatibilität - zu den meisten Player zu behalten. - Ein <option>keyint</option> von 25 sollte nie irgendwelche Probleme machen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">vrc_buf_size</emphasis>: - 327 für VCD, 917 für SVCD und 1835 für DVD. -</para></listitem> - -<listitem><para> - <emphasis role="bold">vrc_minrate</emphasis>: - 1152 für VCD. kann für SVCD und DVD so gelassen werden. -</para></listitem> - -<listitem><para> - <emphasis role="bold">vrc_maxrate</emphasis>: - 1152 für VCD; 2500 für SVCD; 9800 für DVD. - Für SVCD und DVD könntest du niedrigere Werte verwenden, abhängig von - deinen persönlichen Vorlieben und Anforderungen. -</para></listitem> - -<listitem><para> - <emphasis role="bold">vbitrate</emphasis>: - 1152 für VCD; - bis zu 2500 für SVCD; - bis zu 9800 für DVD. - Für letztere zwei Formate sollte vbitrate basierend auf persönliche - Vorlieben gesetzt werden. - Zum Beispiel, wenn du darauf bestehst, 20 Stunden oder so passend auf - eine DVD zu bringen, könntest du vbitrate=400 benutzen. - Die sich daraus ergebende Video-Qualität würde womöglich äußerst mies. - Wenn du versuchst, die maximal mögliche Qualität auf eine DVD zu quetschen, - nimm vbitrate=9800, aber sei gewarnt, dass dich dies zu weniger als - einer Stunde Video auf einer Single-Layer DVD zwingen würde. -</para></listitem> -</itemizedlist> -</sect3> - -<sect3 id="menc-feat-vcd-dvd-lavc-examples"> -<title>Beispiele</title> -<para> - Dies ist eine typische Zusammenstellung von mindestens zu verwendenden - <option>-lavcopts</option>-Optionen zum Encodieren eines Videos: -</para> -<para> - VCD: - <screen> - -lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\ - vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2 - </screen> -</para> - -<para> - SVCD: - <screen> - -lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\ - keyint=15:acodec=mp2 - </screen> -</para> - -<para> - DVD: - <screen> - -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ - keyint=15:acodec=ac3 - </screen> -</para> - -</sect3> - -<sect3 id="menc-feat-vcd-dvd-lavc-advanced"> -<title>Erweiterte Optionen</title> -<para> - Für das Encodieren höherer Qualität könntest du auch qualitätssteigernde - Optionen an lavcopts anfügen, wie etwa <option>trell</option>, - <option>mbd=2</option> und weitere. - Beachte, dass <option>qpel</option> und <option>v4mv</option>, obwohl - oft bei MPEG-4 nützlich, nicht auf MPEG-1 oder MPEG-2 anwendbar sind. - Außerdem, wenn du versuchst, eine sehr hochwertige DVD-Encodierung zu - machen, kann es nützlich sein, <option>dc=10</option> an lavcopts - anzufügen. - Wobei dies helfen könnte, das Auftreten von Blöcken in fahl-farbenen - Bereichen zu reduzieren. - Zusammenfassend ist dies ein Beispiel einer Zusammenstellung von lavcopts für - für eine höherwertige DVD: -</para> - -<para> - <screen> - -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ - keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ - vqmin=1:lmin=1:dc=10 - </screen> -</para> - -</sect3> -</sect2> - -<sect2 id="menc-feat-vcd-dvd-audio"> -<title>Encodieren von Audio</title> -<para> - VCD und SVCD unterstützen MPEG-1 Layer II Audio, indem sie einen - MP2-Encoder von - <systemitem class="library">toolame</systemitem>, - <systemitem class="library">twolame</systemitem>, - oder <systemitem class="library">libavcodec</systemitem> - verwenden. - Der libavcodec MP2 ist weit davon entfernt, so gut zu sein wie die - anderen zwei Bibliotheken, dennoch sollte er immer verfügbar sein. - VCD unterstützt nur Audio mit konstanten Bitraten (CBR) wogegen SVCD - auch variable Bitraten (VBR) unterstützt. - Sei vorsichtig, wenn du VBR benutzt, weil einige schlechte - Standalone-Player diese nicht so gut unterstützen könnten. -</para> - -<para> - Für DVD-Audio wird der AC3-Codec von - <systemitem class="library">libavcodec</systemitem> - verwendet. -</para> - -<sect3 id="menc-feat-vcd-dvd-audio-toolame"> -<title>toolame</title> -<para> - Für VCD und SVCD: - <screen> - -oac toolame -toolameopts br=224 - </screen> -</para> -</sect3> - -<sect3 id="menc-feat-vcd-dvd-audio-twolame"> -<title>twolame</title> -<para> - Für VCD und SVCD: - <screen> - -oac twolame -twolameopts br=224 - </screen> -</para> -</sect3> - -<sect3 id="menc-feat-vcd-dvd-audio-lavc"> -<title>libavcodec</title> -<para> - Für DVD mit 2-Kanal-Sound: - <screen> - -oac lavc -lavcopts acodec=ac3:abitrate=192 - </screen> -</para> -<para> - Für DVD mit 5.1-Kanal-Sound: - <screen> - -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 - </screen> -</para> -<para> - Für VCD und SVCD: - <screen> - -oac lavc -lavcopts acodec=mp2:abitrate=224 - </screen> -</para> -</sect3> - -</sect2> - -<sect2 id="menc-feat-vcd-dvd-all"> -<title>Zusammenfassung</title> -<para> - Diese Sektion zeigt einige komplette Befehle zum Erzeugen von - VCD/SVCD/DVD-konformen Videos. -</para> - -<sect3 id="menc-feat-vcd-dvd-all-pal-dvd"> -<title>PAL DVD</title> -<para> - <screen> - mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -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,\ +36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg</screen> + </para> + </sect2> + + + <sect2 id="menc-feat-dvd-mpeg4-example"> + <title>Beispiel</title> + + <para> + Jetzt hast du gerade eben deine brandneue Kopie von Harry Potter und die + Kammer des Schreckens gekauft (natürlich die Breitbildedition), und du + willst diese DVD so rippen, dass du sie deinem Home Theatre PC hinzufügen + kannst. Dies ist eine Region-1-DVD, also ist sie NTSC. Das unten stehende + Beispiel wird auch auf PAL zutreffen, nur dass du + <option>-ofps 24000/1001</option> weglässt (weil die Ausgabeframerate die + gleiche ist wie die Eingabeframerate), und logischerweise werden die + Ausschnittsabmessungen anders sein. + </para> + + <para> + Nach dem Start von <option>mplayer dvd://1</option>, verfolgen wir den + detailliert in der Sektion <link linkend="menc-feat-telecine">Wie mit telecine + und interlacing in NTSC-DVDs umgehen</link> beschriebenen Prozess und + entdecken, dass es progressive Video mit 24000/1001 fps ist, was bedeutet, dass + wir keinen inverse telecine-Filter wie <option>pullup</option> oder + <option>filmdint</option> anwenden müssen. + </para> + + <para> + Als Nächstes wollen wir das passende Ausschnittsrechteck bestimmen, also + verwenden wir den 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 Konsole siehst: + + <screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen> + + Wir spielen den Film dann mit diesem Filter ab, um seine Korrektheit zu testen: + + <screen>mplayer dvd://1 -vf crop=720:362:0:58</screen> + + Und wir sehen, dass er einfach perfekt aussieht. Als Nächstes vergewissern wir + uns, dass Breite und Höhe ein Vielfaches von 16 sind. Die Breite ist gut, + aber die Höhe ist es nicht. Da wir in der 7-ten Klasse in Mathe nicht gefehlt + haben, wissen wir, dass das am nähesten liegende Vielfache von 16 kleiner + als 362 der Wert 352 ist (Taschenrechner ist erlaubt). + </para> + + <para> + Wir könnten einfach <option>crop=720:352:0:58</option> verwenden, aber es wäre + nett, ein bisschen von oben und ein bisschen von unten wegzunehmen, sodass + wir zentriert bleiben. Wir haben die Höhe um 10 Pixel schrumpfen lassen, aber + wir wollen das y-Offset nicht um 5 Pixel erhöhen, da dies eine ungerade Zahl + ist und die Qualität nachteilig beeinflussen würde. Statt dessen werden wir + das y-Offset um 4 Pixel erhöhen: + + <screen>mplayer dvd://1 -vf crop=720:352:0:62</screen> + + Ein anderer Grund, Pixel von beidem - oben und unten - abzuschnipseln ist, + dass wir sicher gehen wollen, jegliches halbschwarze Pixel eliminiert zu + haben, falls welche existieren. Beachte, falls das Video telecined + ist, stelle sicher, dass der <option>pullup</option>-Filter (oder für + welchen umgekehrten telecine-Filter auch immer du dich entschieden hast) + in der Filterkette auftaucht, bevor du zuschneidest. Ist es interlaced, + deinterlace es vor dem Zuschneiden. + (Wenn du dich entscheidest, interlaced Video beizubehalten, dann vergewissere dich, dass + das vertikale crop-Offset ein Vielfaches von 4 ist.) + </para> + + <para> + Wenn du wirklich besorgt um den Verlust dieser 10 Pixel bist, ziehst du + statt dessen etwa das Herunterskalieren der Abmessungen auf das am nächsten + liegende Vielfache von 16 vor. + Die Filterkette würde dann etwa so aussehen: + + <screen>-vf crop=720:362:0:58,scale=720:352</screen> + + Das Video auf diese Art herunter zu skalieren wird bedeuten, dass eine + kleine Menge Details verloren geht, obwohl es vermutlich nicht wahrnehmbar + sein wird. Hoch zu skalieren führt zu niedrigerer Qualität (es sei denn, + du erhöhst die Bitrate). Ausschneiden sondert sämtliche dieser Pixel + aus. Es ist ein Kompromiss, den du unter allen Umständen + in Betracht ziehen solltest. Zum Beispiel, wenn das DVD-Video für das Fernsehen + hergestellt wurde, solltest du vertikales Skalieren vermeiden, da das + Zeilensampling mit der Art und Weise korrespondiert, für die der Inhalt + ursprünglich aufgenommen wurde. + </para> + + <para> + Bei der Überprüfung sehen wir, dass unser Film ordentlich Action enthält + und sehr viele Details, also wählen wir 2400Kbit für unsere Bitrate. + </para> + + <para> + Wir sind nun bereit, die 2-pass Encodierung durchzuführen. Erster Durchlauf: + +<screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ + -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ + -o Harry_Potter_2.avi</screen> + + Und der zweite Durchlauf ist derselbe, außer dass wir <option>vpass=2</option> + festlegen: + +<screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ + -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ + -o Harry_Potter_2.avi</screen> + </para> + + <para> + Die Optionen <option>v4mv:mbd=2:trell</option> werden die Qualität + außerordentlich erhöhen, auf Kosten der Encodierdauer. Es gibt + einen kleinen Grund, diese Optionen auszulassen, wenn das Primärziel + die Qualität ist. Die Optionen + <option>cmp=3:subcmp=3:mbcmp=3</option> wählen eine Vergleichsfunktion, + die eine höhere Qualität liefert als die Standardeinstellungen. + Du darfst mit diesem Parameter rumexperimentieren (ziehe die Manpage + zu möglichen Werten zu Rate) da verschiedene Funktionen abhängig vom + Quellmaterial einen starken Einfluss auf die Qualität haben. Wenn du zum Beispiel + meinst, dass <systemitem class="library">libavcodec</systemitem> zu + viele Blockartefakte produziert, könntest du ja das experimentelle + NSSE als Vergleichsfunktion via <option>*cmp=10</option> wählen. + </para> + + <para> + Für diesen Film wird das resultierende AVI 138 Minuten lang und nahezu + 3GB groß sein. Und weil du erzählt hast, dass eine große Datei nichts + ausmacht, ist dies eine perfekt akzeptierbare Größe. Wolltest du sie aber + kleiner haben, könntest du eine niedrigere Bitrate hernehmen. Erhöhte + Bitraten haben verminderte Rückgaben, während wir also deutlich eine + Verbesserung von 1800Kbit nach 2000Kbit sehen, ist es oberhalb 2000Kbit + nicht so auffällig. Fühl dich frei solange herum zu experimentieren bis + du glücklich bist. + </para> + + <para> + Weil wir das Quellvideo durch einen Denoise-Filter geschickt haben, + könntest du einige davon während des Playbacks wieder hinzufügen wollen. + Dies zusammen mit dem Nachbearbeitungsfilter <option>spp</option> + verbessert die Wahrnehmung der Qualität drastisch und hilft dabei, + blockhafte Artefakte aus dem Video zu eliminieren. + Mit <application>MPlayer</application>s Option <option>autoq</option> + kannst du den Nachbearbeitungsaufwand des spp-Filters abhängig von der + verfügbaren CPU variieren. An dieser Stelle kannst du auch Gamma- und/oder + Farbkorrektur zur besten Anpassung an dein Display verwenden, wenn du willst. + Zum Beispiel: + + <screen>mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3</screen> + </para> + + </sect2> + </sect1> + + + <sect1 id="menc-feat-xvid"> + <title>Encodieren mit dem <systemitem class="library">XviD</systemitem>-Codec</title> + + <para> + <systemitem class="library">XviD</systemitem> ist eine freie + Programmbibliothek zum Encodieren von MPEG-4 ASP-Videostreams. + Bevor du mit <link linkend="xvid"> zu encodieren beginnst, musst du + <application>MEncoder</application> so einstellen, dass er es unterstützt</link>. + </para> + + <para> + Dieses Handbuch beabsichtigt, sich vorwiegend durch dieselbe Art von + Informationen auszuzeichnen wie x264's Encodier-Handbuch. + Beginne deshalb damit, + <link linkend="menc-feat-x264-encoding-options-intro">den ersten Teil</link> + dieses Handbuchs zu lesen. + </para> + + + <sect2 id="menc-feat-xvid-intro"> + <title>Welche Optionen sollte ich verwenden, um die besten Resultate zu erzielen?</title> + + <para> + Bitte beginne mit der Durchsicht der + <systemitem class="library">XviD</systemitem>-Sektion von + <application>MPlayer</application>s Manpage. + Diese Sektion ist als Ergänzung zur Manpage zu verstehen. + </para> + + <para> + Die Standardeinstellungen von XviD sind bereits ein guter Kompromiss zwischen + Geschwindigkeit und Qualität, deshalb kannst du ruhig bei ihnen + bleiben, wenn nachfolgender Abschnitt dich allzusehr ins Grübeln bringt. + </para> + </sect2> + + <sect2 id="menc-feat-xvid-encoding-options"> + <title>Encodieroptionen von <systemitem class="library">XviD</systemitem></title> + + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">vhq</emphasis> + Diese Einstellung betreffen den Entscheidungsalgorithmus für + Macroblöcke, wobei gilt, je höher die Einstellung desto weiser die + Entscheidung. + Die Standardeinstellung kann für jede Encodierung sicher verwendet + werden, während höhere Einstellungen immer für PSNR hilfreich, jedoch + signifikant langsamer sind. + Nimm bitte zur Kenntnis, dass ein besserer PSNR nicht notwedigerweise + bedeutet, dass das Bild besser aussehen wird, aber er zeigt dir, dass + du näher am Original bist. + Wird er deaktiviert, beschleunigt dies die Encodierung spürbar; wenn + Geschwindigkeit ein Kriterium für dich ist, kann dieser Kompromiss es wert sein. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">bvhq</emphasis> + Dies erledigt dieselbe Arbeit wie vhq, macht dies jedoch bei B-Frames. + Es hat einen vernachlässigbar kleinen Einfluss auf die Geschwindigkeit, und + verbessert geringfügig die Qualität (um etwa +0.1dB PSNR). + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">max_bframes</emphasis> + Eine höhere Anzahl von erlaubten hintereinander folgenden B-frames verbessert + gewöhnlich die Komprimierbarkeit, obwohl dies auch zu mehr Blockartefakten + führt. + Die Standardeinstellung ist ein guter Kompromiss zwischen Komprimierbarkeit + und Qualität, aber wenn du Bitraten-hungrig bist kannst du sie bis auf 3 + hochschrauben. + Du kannst sie auch auf 1 oder 0 verringern, wenn du auf perfekte Qualität + abzielst, wenngleich du in diesem Fall sicherstellen solltest, dass deine + Zielbitrate hoch genug ist, um zu gewährleisten, dass der Encoder nicht + die Quantisierer höher setzen muss, um den Wert zu erreichen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">bf_threshold</emphasis> + Dies kontrolliert die B-Frame-Empfindlichkeit des Encoders, wobei ein + höherer Wert dazu führt, dass mehr B-Frames angewendet werden (und + umgekehrt). + Diese Einstellung muss zusammen mit <option>max_bframes</option> + verwendet werden; bist du Bitraten-hungrig, solltest du beides erhöhen, + <option>max_bframes</option> und <option>bf_threshold</option>, + während du <option>max_bframes</option> erhöhen und + <option>bf_threshold</option> verringern kannst, sodass der Encoder + B-Frames nur an Stellen anwendet, die diese auch + <emphasis role="bold">wirklich</emphasis> brauchen. + Eine niedrigere Zahl an <option>max_bframes</option> und ein höherer Wert + bei <option>bf_threshold</option> ist möglicherweise keine kluge Wahl, + da dies den Encoder zwingt, B-Frames in Stellen zu setzen, die nicht + davon profitieren würden und dies daher die visuelle Qualität reduziert. + Wie auch immer, wenn du mit Standalone-Playern kompatibel bleiben musst, + die nur alte DivX-Profile unterstützen (der wiederum höchstens einen + aufeinander folgenden B-Frame unterstützt), wäre dies dein einziger Weg, + die Komprimierbarkeit mittels B-Frames zu verbessern. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">trellis</emphasis> + Optimiert den Quantisierungsprozess um einen optimalen Kompromiss + zwischen PSNR und Bitrate zu erhalten, was signifikant Bit-sparend + wirkt. + Diese Bits können woanders im Video wieder verwendet werden + und verbessern die visuelle Gesamtqualität. + Du solltest es immer eingeschaltet lassen, da sein Einfluss auf + die Qualität gewaltig ist. + Gerade wenn du Geschwindigkeit haben willst, darfst du es nicht + deaktivieren, solange du nicht <option>vhq</option> + und alle anderen CPU-hungrigeren Optionen auf + ein Minimum heruntergesetzt hast. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">hq_ac</emphasis> + Aktiviert die Vorhersagemethode für einen besseren Koeffizientenaufwand, was + die Dateigröße leicht um etwa 0.15 bis 0.19% reduziert (was mit einer + PSNR-Erhöhung um weniger als 0.01dB einhergeht), während es eine + vernachlässigbar kleine Einwirkung auf die Geschwindigkeit hat. + Es empfiehlt sich deshalb, dies immer eingeschaltet zu lassen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">cartoon</emphasis> + Entworfen, um Kartoon-Inhalt besser zu encodieren, und hat keine Auswirkung + auf die Geschwindigkeit, da es lediglich die Heuristiken zur Bestimmung des + Modus für diese Art Inhalt abstimmt. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">me_quality</emphasis> + Diese Einstellung ist da, um die Präzision der Bewegungseinschätzung zu + kontrollieren. + Je höher <option>me_quality</option>, desto präziser wird die Schätzung + der Originalbewegung sein, und desto besser wird der resultierende Ausschnitt + die Originalbewegung einfangen. + </para> + + <para> + Die Standardeinstellung ist in jedem Fall die beste; + folglich ist es nicht empfehlenswert, sie herunter zu drehen, + es sei denn du hast es wirklich auf Geschwindigkeit abgesehen, + da alle durch eine gute Bewegungseinschätzung gesparten Bits + woanders verwendet würden, was die Gesamtqualität verbessern + würde. + Gehe deshalb nie unter 5, selbst wenn es der letzte Ausweg + sein sollte. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">chroma_me</emphasis> + Verbessert die Bewegungsabschätzung dadurch, dass auch die + chroma-(Farb)-Informationen einbezogen werden, wobei + <option>me_quality</option> alleine nur luma (Graustufen) + verwendet. + Dies verlangsamt die Encodierung um 5-10%, verbessert aber die + visuelle Qualität durch Reduzieren von Blockeffekten ein wenig + und reduziert die Dateigröße um rund 1.3%. + Wenn du Geschwindigkeit haben willst, solltest du diese Option + deaktivieren, bevor du anfängst zu überlegen, + <option>me_quality</option> zu reduzieren. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">chroma_opt</emphasis> + Ist dafür vorgesehen, die chroma-Bildqualität rund um reine + weiße/schwarze Kanten zu verbessern, eher noch als die + Kompression zu verbessern. + Dies kann dabei helfen, den "Rote Stufen"-Effekt zu reduzieren. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">lumi_mask</emphasis> + Versucht, weniger Bitrate auf den Teil eines Bildes zu übergeben, + der vom menschlichen Auge nicht gut zu sehen ist, was dem Encoder + erlauben sollte, die eingesparten Bits auf wichtigere Teile des + Bildes anzuwenden. + Die durch diese Option gewonnene Encodierungsqualität hängt in + hohem Maße von persönlichen Vorlieben und von Monitortyp und + dessen Einstellungen ab (typischerweise wird es nicht gut aussehen, + wenn er hell oder ein TFT-Monitor ist). + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">qpel</emphasis> + Hebt die Anzahl Kandidaten der Bewegungsvektoren durch + Erhöhung der Präzision der Bewegungsabschätzung von einem + halben Pixel (halfpel) auf ein viertel Pixel + (quarterpel) an. + Die Idee dahinter ist, bessere Bewegungsvektoren zu finden, + was wiederum die Bitrate reduziert (deshalb wird die Qualität + verbessert). + Bewegungsvektoren mit viertel Pixel Präzision brauchen ein + paar Extrabits für die Codierung, die Bewegungsvektoren ergeben aber + nicht immer ein (viel) besseres Resultat. + Sehr oft verbraucht der Codec dennoch Bits für die Extrapräzision, + jedoch wird im Gegenzug eine geringe oder keine Extraqualität + gewonnen. + Unglücklicherweise gibt es keinen Weg, den möglichen Gewinn von + <option>qpel</option> vorzuaussagen, also musst du eigentlich + mit und ohne encodieren, um sicher zu gehen. + </para> + <para> + <option>qpel</option> kann fast die doppelte Encodierzeit in + Anspruch nehmen und erfordert etwa 25% mehr + Verarbeitungsleistung fürs Decodieren. + Es wird nicht von allen Standalone-Playern unterstützt. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">gmc</emphasis> + Versucht, Bits beim Schwenken von Szenen einzusparen, indem es einen + einzelnen Bewegungsvektor für den gesamten Frame verwendet. + Dies erhöht fast immer den PSNR, verlangsamt aber signifikant + die Encodierung (genauso wie die Decodierung). + Deshalb solltest du es nur nutzen, wenn du <option>vhq</option> + auf das Maximum gestellt hast. + <systemitem class="library">XviD</systemitem>s GMC ist höher + entwickelt als das von DivX, wird aber nur von ein paar + Standalone-Playern unterstützt. + </para> + </listitem> + + </itemizedlist> + </sect2> + + <sect2 id="menc-feat-xvid-encoding-profiles"> + <title>Encodierung Profile</title> + <para> + XviD unterstützt Encodierungsprofile über die Option <option>profile</option>, + die dazu verwendet werden, den Eigenschaften des XviD-Videostreams + Restriktionen so aufzuerlegen, dass es überall dort abgespielt werden kann, + wo das gewählte Profil unterstützt wird. + Die Restriktionen beziehen sich auf Auflösungen, Bitraten und + bestimmte MPEG-4-Features. + Die folgende Tabelle zeigt, was jedes Profil unterstützt. + </para> + <informaltable> + <tgroup cols="16" align="center"> + <colspec colnum="1" colname="col1"/> + <colspec colnum="2" colname="col2"/> + <colspec colnum="3" colname="col3"/> + <colspec colnum="4" colname="col4"/> + <colspec colnum="5" colname="col5"/> + <colspec colnum="6" colname="col6"/> + <colspec colnum="7" colname="col7"/> + <colspec colnum="8" colname="col8"/> + <colspec colnum="9" colname="col9"/> + <colspec colnum="10" colname="col10"/> + <colspec colnum="11" colname="col11"/> + <colspec colnum="12" colname="col12"/> + <colspec colnum="13" colname="col13"/> + <colspec colnum="14" colname="col14"/> + <colspec colnum="15" colname="col15"/> + <colspec colnum="16" colname="col16"/> + <colspec colnum="17" colname="col17"/> + <spanspec spanname="spa2-5" namest="col2" nameend="col5"/> + <spanspec spanname="spa6-11" namest="col6" nameend="col11"/> + <spanspec spanname="spa12-17" namest="col12" nameend="col17"/> + <tbody> + <row> + <entry></entry> + <entry spanname="spa2-5">Einfach</entry> + <entry spanname="spa6-11">Einfach erweitert</entry> + <entry spanname="spa12-17">DivX</entry> + </row> + <row> + <entry>Profilname</entry> + <entry>0</entry> + <entry>1</entry> + <entry>2</entry> + <entry>3</entry> + <entry>0</entry> + <entry>1</entry> + <entry>2</entry> + <entry>3</entry> + <entry>4</entry> + <entry>5</entry> + <entry>Handheld</entry> + <entry>Portable NTSC</entry> + <entry>Portable PAL</entry> + <entry>Home Theater NTSC</entry> + <entry>Home Theater PAL</entry> + <entry>HDTV</entry> + </row> + <row> + <entry>Breite [Pixel]</entry> + <entry>176</entry> + <entry>176</entry> + <entry>352</entry> + <entry>352</entry> + <entry>176</entry> + <entry>176</entry> + <entry>352</entry> + <entry>352</entry> + <entry>352</entry> + <entry>720</entry> + <entry>176</entry> + <entry>352</entry> + <entry>352</entry> + <entry>720</entry> + <entry>720</entry> + <entry>1280</entry> + </row> + <row> + <entry>Höhe [Pixel]</entry> + <entry>144</entry> + <entry>144</entry> + <entry>288</entry> + <entry>288</entry> + <entry>144</entry> + <entry>144</entry> + <entry>288</entry> + <entry>288</entry> + <entry>576</entry> + <entry>576</entry> + <entry>144</entry> + <entry>240</entry> + <entry>288</entry> + <entry>480</entry> + <entry>576</entry> + <entry>720</entry> + </row> + <row> + <entry>Framerate [fps]</entry> + <entry>15</entry> + <entry>15</entry> + <entry>15</entry> + <entry>15</entry> + <entry>30</entry> + <entry>30</entry> + <entry>15</entry> + <entry>30</entry> + <entry>30</entry> + <entry>30</entry> + <entry>15</entry> + <entry>30</entry> + <entry>25</entry> + <entry>30</entry> + <entry>25</entry> + <entry>30</entry> + </row> + <row> + <entry>Max. mittlere Bitrate [kbps]</entry> + <entry>64</entry> + <entry>64</entry> + <entry>128</entry> + <entry>384</entry> + <entry>128</entry> + <entry>128</entry> + <entry>384</entry> + <entry>768</entry> + <entry>3000</entry> + <entry>8000</entry> + <entry>537.6</entry> + <entry>4854</entry> + <entry>4854</entry> + <entry>4854</entry> + <entry>4854</entry> + <entry>9708.4</entry> + </row> + <row> + <entry>Höchstwert mittlere Bitrate über 3 Sek. [kbps]</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>800</entry> + <entry>8000</entry> + <entry>8000</entry> + <entry>8000</entry> + <entry>8000</entry> + <entry>16000</entry> + </row> + <row> + <entry>Max. B-Frames</entry> + <entry>0</entry> + <entry>0</entry> + <entry>0</entry> + <entry>0</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>0</entry> + <entry>1</entry> + <entry>1</entry> + <entry>1</entry> + <entry>1</entry> + <entry>2</entry> + </row> + <row> + <entry>MPEG-Quantisierung</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry>Adaptive Quantisierung</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + </row> + <row> + <entry>Interlaced Encodierung</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + </row> + <row> + <entry>Viertelpixel</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry>Globale Bewegungskompensierung</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry>X</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect2> + + <sect2 id="menc-feat-xvid-example-settings"> + <title>Encodierungseinstellungen Beispiele</title> + + <para> + Die folgenden Einstellungen sind Beispiele unterschiedlicher + Kombinationen von Encodierungsoptionen, die den Kompromiss + zwischen Geschwindigkeit gegenüber Qualität bei gleicher + Zielbitrate betreffen. + </para> + + <para> + Alle Encodierungseinstellungen wurden auf einem Beispielvideo + mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps, + und der Rechner war ein + AMD-64 3400+ mit 2400 Mhz im 64bit-Modus. + Jede Encodierungseinstellung zeichnet sich aus durch die gemessene + Encodiergeschwindigkeit (in Frames pro Sekunde) und den PSNR-Verlust + (in dB) im Vergleich zu Einstellungen für "sehr hohe Qualität". + Bitte hab Verständnis, dass du abhängig von deiner Quelldatei, + deinem Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche + Resultate erzielen wirst. + </para> + + <para> + <informaltable frame="all"> + <tgroup cols="4"> + <thead> + <row><entry>Beschreibung</entry><entry>Encodieroptionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> + </thead> + <tbody> + <row> + <entry>Sehr hohe Qualität</entry> + <entry><option>chroma_opt:vhq=4:bvhq=1:quant_type=mpeg</option></entry> + <entry>16fps</entry> + <entry>0dB</entry> + </row> + <row> + <entry>Hohe Qualität</entry> + <entry><option>vhq=2:bvhq=1:chroma_opt:quant_type=mpeg</option></entry> + <entry>18fps</entry> + <entry>-0.1dB</entry> + </row> + <row> + <entry>Schnell</entry> + <entry><option>turbo:vhq=0</option></entry> + <entry>28fps</entry> + <entry>-0.69dB</entry> + </row> + <row> + <entry>Echtzeit</entry> + <entry><option>turbo:nochroma_me:notrellis:max_bframes=0:vhq=0</option></entry> + <entry>38fps</entry> + <entry>-1.48dB</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </sect2> + + </sect1> + + <sect1 id="menc-feat-x264"> + <title>Encodieren mit dem <systemitem class="library">x264</systemitem>-Codec</title> + <para> + <systemitem class="library">x264</systemitem> ist eine freie + Programmbibliothek zum Encodieren von H.264/AVC-Videostreams. + Bevor du mit <link linkend="xvid"> zu encodieren beginnst, musst + du <application>MEncoder</application> so einstellen, dass er es unterstützt</link>. + </para> + + <sect2 id="menc-feat-x264-encoding-options"> + <title>Encodieroptionen von x264</title> + + <para> + Bitte beginne mit der Durchsicht der + <systemitem class="library">x264</systemitem>-Sektion von + <application>MPlayer</application>s Manpage. + Diese Sektion ist als Anhang zur Manpage vorgesehen. + Hier wirst du Schnellhinweise dazu finden, welche Optionen am + wahrscheinlichsten die meisten Leute interessieren. Die Manpage + ist knapper gehalten, aber auch vollständiger, und zeigt oft + viel bessere technische Details. + </para> + + <sect3 id="menc-feat-x264-encoding-options-intro"> + <title>Einführung</title> + <para>Dieses Handbuch berücksichtigt zwei Hauptkategorien der Encodieroptionen:</para> + + <orderedlist> + <listitem> + <para> + Optionen, die hauptsächlich Encodierdauer gegenüber Qualität abwägen + </para> + </listitem> + <listitem> + <para> + Optionen, die zur Erfüllung zahlreicher persönlicher Vorlieben und spezieller Anforderungen nützlich sind + </para> + </listitem> + </orderedlist> + + <para> + Letztendlich kannst nur du entscheiden, welche Optionen für deine + Zwecke am besten geeignet sind. Die Entscheidung für die erste + Klasse der Optionen ist die einfachste: + Du musst nur entscheiden, ob du denkst, dass Qualitätsunterschiede + Geschwindigkeitsunterschiede rechtfertigen. Für die zweite Klasse + der Optionen sind die Vorzüge weitaus subjektiver, und mehr Faktoren + können involviert sein. Beachte, dass manche der Optionen für + "persönliche Vorlieben und spezielle Anforderungen" + noch große Auswirkungen auf Geschwindigkeit oder Qualität haben können, + das ist aber nicht, wozu sie primär benutzt werden. Ein paar der + Optionen für "persönliche Vorlieben" können sogar Änderungen + verursachen, die für manche Leute besser aussehen aber schlechter + für andere. + </para> + + <para> + Bevor du fortfährst, musst du verstehen, dass dieses Handbuch nur + eine Qualitätsmetrik verwendet: globaler PSNR. + Für eine kurze Erklärung, was PSNR ist, schau dir + <ulink url="http://en.wikipedia.org/wiki/PSNR">den Wikipedia-Artikel zu PSNR</ulink> + an. + Globaler PSNR ist die letzte gemeldete PSNR-Nummer, wenn du die + Option <option>psnr</option> in <option>x264encopts</option> + einbindest. + Jedesmal wenn du eine Forderung nach PSNR liest, ist eine der Annahmen + hinter dieser Forderung, dass gleiche Bitraten verwendet werden. + </para> + + <para> + Nahezu alle dieser Handbuchkommentare unterstellen, dass du + 2-pass anwendest. + Beim Vergleich der Optionen gibt es zwei Hauptgründe, 2-pass-Encodierung + zu nutzen. + Der erste ist, 2-pass bringt rund 1dB PSNR, was einen sehr + großen Unterschied ausmacht. + Der zweite ist, Optionen zu testen, indem man direkte Qualitätsvergleiche + zu 1-pass-Encodierung anstellt, führt einen einen wichtigen verwirrenden + Faktor ein: die Bitrate variiert bei jeder Encodierung oft signifikant. + Es ist nicht immer einfach zu sagen, ob Qualitätsänderungen vorwiegend + auf geänderte Optionen zurückzuführen sind oder ob sie meist + essentielle, zufällige Unterschiede in der erhaltenen Bitrate reflektieren. + </para> + + </sect3> + + <sect3 id="menc-feat-x264-encoding-options-speedvquality"> + <title>Optionen die primär Geschwindigkeit und Qualität betreffen</title> + + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">subq</emphasis>: + Von den Optionen, die dir erlauben, einen Kompromiss zwischen + Geschwindigkeit und Qualität einzugehen, sind <option>subq</option> + und <option>frameref</option> (siehe unten) gewöhnlich die bei weitem + wichtigsten. + Wenn du dich für die Optimierung von entweder Geschwindigkeit oder Qualität + interessierst, sind diese die ersten, die du in Erwägung ziehen solltest. + Bei der Dimension Geschwindigkeit, interagieren die Optionen + <option>frameref</option> und <option>subq</option> ziemlich stark + miteinander. + Die Erfahrung zeigt, dass mit einem Referenzframe <option>subq=5</option> + (die Standardeinstellung) das ganze etwa 35% mehr Zeit in Anspruch nimmt als + <option>subq=1</option>. + Mit 6 Referenzframes wächst der Nachteil auf 60%. + Der Effekt, den <option>subq</option> auf den PSNR ausübt, scheint ziemlich + konstant zu sein, ungeachtet der Anzahl der Referenzframes. + Typischerweise erreicht <option>subq=5</option> einen 0.2-0.5 dB höheren globalen + PSNR im Vergleich zu <option>subq=1</option>. + Dies ist gewöhnlich ausreichend, um sichtbar zu werden. + </para> + <para> + <option>subq=6</option> ist 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 sich zwischen 25%-100% + bewegen. + Im Unterschied zu anderen Levels von <option>subq</option> hängt das + Verhalten von <option>subq=6</option> nicht sehr von <option>frameref</option> + und <option>me</option> ab. Statt dessen hängt die Effektivität von + <option>subq=6</option> größtenteils von der Anzahl der verwendeten + B-Frames ab. Im Normalgebrauch bedeutet dies, <option>subq=6</option> + hat einen großen Einfluss auf Geschwindigkeit und Qualität + in komplexen, stark bewegten Szenen, kann aber auch einen geringen Effekt + in Szenen mit wenig Bewegung haben. Beachte, dass dennoch empfohlen wird, + <option>bframes</option> immer auf etwas anderes als null + zu setzen (siehe unten). + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">frameref</emphasis>: + <option>frameref</option> ist per Voreinstellung auf 1 gesetzt, jedoch + solltest du deshalb nicht darauf schließen, dass es unbedingt + auf 1 gesetzt sein muss. + Allein die Erhöhung von <option>frameref</option> auf 2 bringt rund + 0.15dB PSNR mit einem Geschwindigkeitsnachteil von 5-10%; dies sieht nach + einem guten Kompromiss aus. + <option>frameref=3</option> bringt rund 0.25dB PSNR mehr als + <option>frameref=1</option>, was einen sichtbaren Unterschied machen + sollte. + <option>frameref=3</option> ist rund 15% langsamer als + <option>frameref=1</option>. + Leider setzen vermindernde Rückgaben schnell ein. + <option>frameref=6</option> kann erwartungsgemäß nur + 0.05-0.1 dB mehr als <option>frameref=3</option> bei zusätzlichen + 15% Geschwindigkeitsnachteil. + Oberhalb <option>frameref=6</option> sind die Qualitätsgewinne + für gewöhnlich sehr klein (obwohl du während der ganzen Diskussion + im Kopf behalten solltest, dass sie abhängig von deiner Quelle stark + variieren können). + In einem ziemlich typischen Fall wird <option>frameref=12</option> + den globalen PSNR um ein bisschen mehr als 0.02dB gegenüber + <option>frameref=6</option> verbessern, bei Geschwindigkeitseinbußen + von 15%-20%. + Bei so hohen <option>frameref</option>-Werten ist das wirklich + einzig Gute, dass man sagen kann, dass ein weiteres Anheben dieses + Wertes ziemlich sicher nie den PSNR <emphasis role="bold">schädigen</emphasis> + wird, jedoch sind zusätzliche Qualitätsvorteile sogar kaum messbar, + geschweige denn wahrnehmbar. + </para> + <note><title>Beachte:</title> + <para> + Das Erhöhen von <option>frameref</option> auf unnötig hohe Werte + <emphasis role="bold">kann</emphasis> und + <emphasis role="bold">tut dies üblicherweise auch</emphasis> + die Codiereffizienz schädigen, wenn du CABAC ausschaltest. + Mit eingeschaltetem CABAC (das Standardverhalten) scheint die + Möglichkeit, <option>frameref</option> "zu hoch" + zu setzen, gegenwärtig zu weit entfernt um sich Sorgen zu machen, + und in der Zukunft werden womöglich Optimierungen diese Möglichkeit + ganz und gar ausschließen. + </para> + </note> + <para> + Wenn du auf Geschwindigkeit abzielst, ist ein vernünftiger + Kompromiss, im ersten Durchgang niedrigere <option>subq</option>- und + <option>frameref</option>-Werte zu nehmen, und sie danach im + zweten Durchgang zu erhöhen. + Typischerweise hat dies einen vernachlässigbar negativen Effekt + auf die Encodierqualität: Du wirst womöglich unter 0.1dB PSNR + verlieren, was viel zu klein für einen sichtbaren Unterschied + sein sollte. + Trotzdem, unterschiedliche Werte für <option>frameref</option> + können auf verschiedene Weise die Frametypenbestimmung beeinflussen. + Höchstwahrscheinlich sind dies außerordentlich seltene Fälle, + willst du jedoch wirklich sicher gehen, ziehe in Betracht, ob + dein Video entweder Vollbild- respektive Einblendungsmuster + oder sehr große temporäre Überdeckungen enthält, was einen I-Frame + erzwingen könnte. + Passe <option>frameref</option> des ersten Durchgangs so an, + dass es groß genug ist, die Dauer des Einblendungszyklus + (oder der Überdeckungen) zu enthalten. + Zum Beispiel, wenn die Szene zwischen zwei Bildern über eine + Zeitspanne von drei Frames rückwärts und vorwärts springt, + setze <option>frameref</option> des ersten Durchgangs auf 3 + oder höher. + Dieser Sachverhalt kommt vermutlich extrem selten in + Videomaterial mit Live Action vor, erscheint aber manchmal + bei eingefangenen Computerspiel-Sequenzen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">me</emphasis>: + Diese Option dient der Wahl der Suchmethode der Bewegungseinschätzung. + Diese Option zu verändern stellt einen überschaubaren Kompromiss + zwischen Qualität und Geschwindigkeit dar. + <option>me=1</option> ist nur ein paar Prozent schneller als + die Standardsuche, auf Kosten von unter 0.1dB globalem PSNR. Die + Standardeinstellung (<option>me=2</option>) ist ein angemessener + Kompromiss zwischen Qualität und Geschwindigkeit. + <option>me=3</option> bringt ein wenig unter 0.1dB globalem PSNR, + mit Geschwindigkeitsnachteil, der abhängig von <option>frameref</option> + variiert. Bei hohen <option>frameref</option>-Werten (z.B. 12 oder so) + ist <option>me=3</option> etwa 40% langsamer als die Standardeinstellung + <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 die Verwendung von 8x4, 4x8 und 4x4 Unterteilungen + in den vorhergesagten Macroblöcken. Sie zu aktivieren führt zu einem + recht beständigen Geschwindigkeitsverlust von 10%-15%. Sie ist + ziemlich nutzlos bei Quellen, die nur langsame Bewegungen enthalten, + obwohl in manchen Quellen mit sehr viel Bewegung und vielen kleinen, + sich bewegenden Objekten Zugewinne von etwa 0.1dB erwartet werden können. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">bframes</emphasis>: + Wenn du gewohnt bist, mit anderen Codecs zu encodieren, hast du + womöglich empfunden, dass B-Frames nicht immer nützlich sind. + Bei H.264 wurde dies geändert: es gibt neue Techniken und Blocktypen, + die in B-Frames möglich sind. + Für gewöhnlich kann selbst ein einfältiger Algorithmus zur Wahl + der B-Frames einen signifikanten PSNR-Vorteil bringen. + Es ist interessant festzustellen, dass die Anwendung von B-Frames + normalerweise den zweiten Durchgang ein bisschen beschleunigt, + und er kann auch eine Encodierung mit einfachem Durchgang etwas + schneller machen, wenn adaptive B-Frame-Bestimmung deaktiviert + ist. + </para> + <para> + Mit deaktivierter adaptiver B-Framebestimmung + (<option>nob_adapt</option> von <option>x264encopts</option>) + ist der optimale Wert für diese Einstellung normalerweise nicht + mehr als <option>bframes=1</option>, andernfalls leiden Szenen + mit sehr viel Bewegung darunter. + Mit aktivierter adaptiver B-Framebestimmung (das Standardverhalten) + ist es sicher, höhere Werte zu verwenden; der Encoder wird die Anwendung + von B-Frames in Szenen reduzieren, in denen sie die Kompression + schädigen könnten. + Der Encoder zieht es selten vor, mehr als 3 oder 4 B-Frames zu + verwenden; diese Option höher zu setzen wird einen geringen Effekt haben. + </para></listitem> + + <listitem> + <para> + <emphasis role="bold">b_adapt</emphasis>: + Beachte: Dies ist standardmäßig eingeschaltet. + </para> + <para> + Ist diese Option aktiviert, wird der Encoder einen einigermaßen schnellen + Entscheidungsprozess zur Reduzierung der Anzahl B-Frames in Szenen anwenden, die + nicht viel von ihnen profitieren würden. + Du kannst <option>b_bias</option> dazu verwenden, zu optimieren wie + froh der Encoder über B-Frames sein soll. + Der Geschwindigkeitsnachteil adaptiver B-Frames ist gegenwärtig ziemlich + bescheiden, und genauso ist der potentielle Qualitätsgewinn. + Es sollte aber normalerweise nicht schaden. + Beachte, dass dies nur Geschwindigkeit und Frametypenbestimmung im ersten + Durchgang betrifft. + <option>b_adapt</option> und <option>b_bias</option> haben keinen + Effekt auf nachfolgende Durchgänge. + </para> + </listitem> + + <listitem><para> + <emphasis role="bold">b_pyramid</emphasis>: + Du kannst diese Option genauso gut aktivieren, falls du >=2 B-Frames + verwendest; wie die Manpage dir sagt, erreichst du eine kleine + Qualitätsverbesserung bei keinerlei Geschwindigkeitseinbuße. + Beachte, dass diese Videos von libavcodec-basierten Decodern + älter als etwa 5. März 2005 nicht gelesen werden können. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">weight_b</emphasis>: + In typischen Fällen gibt es nicht viel Gewinn mit dieser Option. + Trotzdem, in überblendenden oder ins Schwarze übergehenden Szenen + liefert die gewichtete Vorhersage ziemlich große Einsparungen bei der Bitrate. + In MPEG-4 ASP wird ein Übergang ins Schwarze gewöhnlich am besten + als eine Serie aufwändiger I-Frames codiert; das Verwenden einer + gewichteten Vorhersage in B-Frames macht es möglich, wenigstens + manche von diesen in viel kleinere B-Frames zu wandeln. + Der Verlust an Encodierzeit ist minimal, da keine extra Bestimmungen + vorgenommen werden müssen. + Auch werden die CPU-Anforderungen des Encoders, im Gegensatz zu den + Einschätzungen mancher Leute, von gewichteter Vorhersage nicht sonderlich + beeinflusst, ansonsten bleibt alles gleich. + </para> + <para> + Leider hat der aktuelle Algorithmus zur adaptiven B-Frame-Bestimmung + eine starke Tendenz, B-Frames während des Fadens zu verhindern. + Bis sich dies ändert, kann es eine gute Idee sein, + <option>nob_adapt</option> zu deinen x264encopts hinzuzufügen, falls + du erwartest, dass Fades einen großen Effekt in deinem jeweiligen + Videoclip erzeugen. + </para> + </listitem> + </itemizedlist> + </sect3> + + <sect3 id="menc-feat-x264-encoding-options-misc-preferences"> + <title>Diverse Eigenschaften betreffende Optionen</title> + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">2-pass-Encodierung</emphasis>: + Oben wurde vorgeschlagen, immer 2-pass-Encodierung anzuwenden. + Es gibt aber durchaus Gründe, dies nicht zu tun. Beispielsweise bist du, + wenn du Live-TV aufnimmst und in Echtzeit encodierst, + gezwungen, einen einzigen Durchgang zu verwenden. + Auch ist ein Durchgang offensichtlich schneller als zwei Durchgänge; + wenn du exakt die gleichen Optionen bei beiden Durchgängen anwendest, + ist das Encodieren in zwei Durchgängen mindestens zweimal so langsam. + </para> + <para> + Noch gibt es sehr gute Gründe, in zwei Durchgängen zu encodieren. + Zum einen ist Ratenkontrolle in einem Durchgang kein Allheilmittel. + Sie trifft oft eine unvernünftige Auswahl, weil sie das große + Bild nicht sehen kann. Zum Beispiel angenommen, du hast ein zwei Minuten + langes Video bestehend aus zwei ausgeprägten Hälften. Die erste Hälfte + besitzt eine 60 Sekunden dauernde Szene mit sehr viel Bewegung, die + einzeln für sich etwa 2500kbps benötigt, um anständig auszusehen. + Direkt daruffolgend kommt eine viel weniger anspruchsvolle 60 Sekunden + lange Szene, die bei 300kbps gut aussieht. Angenommen du forderst in + der Theorie 1400kbps an, was beiden Szenen ausreichend entgegenkommen + würde. Die Ratenkontrolle in einem Durchgang wird in diesem Fall + ein paar "Fehler" machen. Zuallererst wird es in beiden Segmenten + 1400kbps anpeilen. Das erste Segment könnte schwer überquantisiert enden, + was es unakzeptabel und unangemessen blockhaft aussehen lässt. + Das zweite Segment wird schwer unterquantisiert sein; es sieht vielleicht + perfekt aus, aber der Bitratenverlust dieser Perfektion wird komplett + unangemessen sein. + Noch schwerer vermeidbar ist das Problem am Übergang beider Szenen. + Die ersten Sekunden der Hälfte mit wenig Bewegung wird enorm + überquantisiert sein, weil die Ratenkontrolle noch die Art Anforderung + an die Bitrate erwartet, der sie in der ersten Hälfte des Videos begegnet + war. Diese "Fehlerperiode" der extrem überquantisierten Szene + mit wenig Bewegung wird fürchterlich schlecht aussehen, und wird sogar + weniger als die 300kbps in Anspruch nehmen als das, was sie genommen hätte, um annehmbar + auszusehen. Es gibt Mittel und Wege, diese Fälle des Encodierens in einem + Durchgang zu mildern, diese werden allerdingst dahin tendieren, die + fehlerhaften Vorhersagen der Bitraten zu häufen. + </para> + <para> + Multipass-Ratenkontrolle kann gegenüber der eines einzigen Durchgangs + enorm große Vorteile bieten. + Indem sie die im ersten Encodierungsdurchlauf gesammelte Statistik + verwendet, kann der Encoder mit angemessener Genauigkeit den Aufwand + (in Bit) abschätzen, den das Encodieren jeden gegebenen Frames bei + jedem gegebenen Quantisierer erfordert. Dies erlaubt eine viel + rationalere, besser geplante Zuweisung von Bits zwischen den + bithungrigen Szenen mit viel Bewegung und denen bescheidenen mit + wenig Bewegung. + Siehe <option>qcomp</option> unten für einige Ideen darüber, wie man + diese Zuweisungen nach seinem Geschmack optimiert. + </para> + <para> + Darüber hinaus brauchen zwei Durchgänge zweimal so lang wie ein Durchgang. + Du kannst die Optionen im ersten Durchgang auf höhere Geschwindigkeit + und niedrigere Qualität optimieren. + Wenn du deine Optionen geschickt wählst, kannst du einen sehr schnellen + ersten Durchgang hinkriegen. + Die resultierende Qualität im zweiten Durchgang wird geringfügig niedriger + ausfallen, weil die Größenvorhersage weniger akkurat ist, jedoch + ist die Qualitätsdifferenz normalerweise viel zu klein, um sichtbar zu sein. + Versuche zum Beispiel <option>subq=1:frameref=1</option> zu + <option>x264encopts</option> des ersten Durchgangs hinzuzufügen. + Verwende dann im zweiten Durchgang langsamere, hochwertigere Optionen: + <option>subq=6:frameref=15:4x4mv:me=3</option> + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Encodierung mit drei Durchgängen</emphasis>? + + x264 bietet die Möglichkeit, eine beliebige Anzahl aufeinander folgender + Durchgänge auszuführen. Wenn du <option>pass=1</option> im ersten Durchgang + spezifizierst, dann verwende <option>pass=3</option> im nachfolgenden + Durchgang, der nachfolgende Durchgang wird beides tun, die Statistik des + vorhergehenden Durchgangs lesen und seine eigene Statistik schreiben. + Ein zusätzlicher Durchgang, der diesem folgt, wird eine sehr gute Basis + haben, von der aus er hochpräzise Vorhersagen der Framegrößen bei + einem gewählten Quantisierer machen kann. + In der Praxis ist der damit erzielte gesamte Qualitätsgewinn + gewöhnlich nahezu null, und ziemlich wahrscheinlich resultiert ein dritter + Durchgang in einem geringfügig schlechteren globalen PSNR als der Durchgang + davor. In der typischen Anwendung helfen drei Durchgänge, wenn du entweder + eine schleche Vorhersage der Bitraten oder schlecht aussehende Szenenübergänge + beim Verwenden nur eines Durchlaufs bekommst. + Dies passiert mit ziemlicher Wahrscheinlichkeit bei extrem kurzen Clips. + Ebenso gibt es ein paar Spezialfälle, in denen drei (oder mehr) Durchgänge + erfahrenen Nutzern dienlich sind, aber um es kurz zu machen, dieses Handbuch + behandelt die Diskussion solcher speziellen Fälle nicht. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">qcomp</emphasis>: + <option>qcomp</option> wägt die Anzahl der für "aufwändige" Frames + mit viel Bewegung vorgesehenen Bits gegen die für "weniger aufwändige" + Frames mit wenig Bewegung ab. + Bei einem Extrem zielt <option>qcomp=0</option> auf eine echte konstante + Bitrate ab. Typischerweise würde dies Szenen mit viel Bewegung vollkommen + ätzend aussehen lassen, während Szenen mit wenig Bewegung womöglich absolut + perfekt aussehen, jedoch öfter mehr Bitrate verwenden würden, als sie es für + lediglich sehr gutes Aussehen bräuchten. Beim anderen Extrem + erreicht <option>qcomp=1</option> nahezu konstante Quantisierungsparameter + (QP). Ein konstanter QP sieht nicht schlecht aus, die meisten Leute meinen + aber, es sei vernünftiger, etwas Bitrate aus den extrem aufwändigen Szenen + zu nehmen (wobei dort der Qualitätsverlust micht ganz so augenfällig ist) + und sie wieder den Szenen zuzuweisen, die bei sehr guter Qualität leichter + zu encodieren sind. + <option>qcomp</option> ist per Voreinstellung auf 0.6 gesetzt, was für den + Geschmack mancher Leute etwas zu langsam sein könnte (0.7-0.8 werden im + Allgemeinen auch verwendet). + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">keyint</emphasis>: + <option>keyint</option> ist einzig und allein zur Abwägung der + Durchsuchbarkeit der Datei gegenüber der Codiereffiziez da. + Als Standardwert ist <option>keyint</option> auf 250 gesetzt. In + Material mit 25fps garantiert dies, auf 10 Sekunden genau + suchen zu können. Wenn du meinst, es wäre wichtig und nützlich, + auf 5 Sekunden genau suchen zu können, setze es auf <option>keyint=125</option>; + dies wird der Qualität/Bitrate leicht schaden. Wenn es dir nur um Qualität + geht und nicht um die Durchsuchbarkeit, kannst du viel höhere Werte + setzen (vorausgesetzt du verstehst, daß es verringerte Resultate gibt, die verschwindend + klein werden oder sogar gegen null gehen). Der Videostream wird nach + wie vor suchbare Stellen besitzen, solange einige Szenenwechsel + vorhanden sind. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">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 stark gefiltert, und + niedrige QP-Blöcke werden überhaupt nicht entblockt. + Die vom Standard definierten vorgegebenen Stärken sind mit + Bedacht gewählt und die Chancen stehen sehr gut, dass sie + PSNR-optimal sind, egal welches Video auch immer du zu encodieren + versuchst. + 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 viel davon wie Deblocking + standardmäßig funktioniert. + </para> + <para> + Die erste und wichtigste Sache, die man über den + in-loop-Deblocking-Filter wissen sollte, ist, dass die + Standardschwellenwerte meistens PSNR-optimal sind. + In den seltenen Fällen, in denen sie nicht optimal sind, ist das + ideale Offset plus oder minus 1. + Die Deblocking-Parameter durch einen höheren Betrag anzupassen + garantiert meist, dem PSNR zu schaden. + Das Verstärken des Filters wird mehr Details verwischen; den + Filter zu schwächen wird das Auftreten von Blockeffekten + erhöhen. + </para> + <para> + Es ist definitiv eine schlechte Idee, die Deblocking-Schwellenwerte + herabzusetzen, falls deine Quelle eine vorwiegend niedrige räumliche + Komplexität besitzt (z.B. nicht viele Details oder Rauschen). + Der in-loop-Filter macht eigentlich einen exzellenten Job durch + das Kaschieren auftretender Artefakte. + Besitzt die Quelle eine hohe räumliche Komplexität, sind Artefakte + weniger bemerkbar. + Dies ist so, weil das Schwingen (ringing) dazu neigt, wie Details + oder Rauschen auszusehen. + Die viselle Wahrnehmung des Menschen erkennt leicht, wenn Details + entfernt wurden, aber erkennt nicht so leicht, wenn Rauschen falsch + dargestellt wird. + Wird die Qualität subjektiv, sind Details und Rauschen etwas + austauschbares. + Durch das Herabsetzen der Deblocking-Filterstärke verstärkst du + höchstwahrscheinlich Fehler durch Hinzufügen von + Schwingungsartefakten, aber dem Auge fällt nichts auf, weil + es die Artefakte mit Details verwechselt. + </para> + + <para> + Dies rechtfertigt jedoch <emphasis role="bold">nach wie vor</emphasis> + nicht das Herabsetzen der Deblocking-Filterstärke. + Du kannst im Allgemeinen besseres Qualitätsrauschen im Postprocessing + erzielen. + Falls deine H.264-Encodierungen zu verschwommen oder verschmiert + aussehen, versuche, mit + <option>-vf noise</option> beim Abspielen des encodierten Films + herumzuspielen. + <option>-vf noise=8a:4a</option> sollte die meisten weichen Artefakte + kaschieren. + Es wird meist mit Sicherheit besser aussehen als die Resultate, die + du durch einfaches Herumtüfteln mit dem Deblocking-Filter bekommen + hättest. + </para></listitem> + </itemizedlist> + </sect3> + </sect2> + + <sect2 id="menc-feat-x264-example-settings"> + <title>Beispiele für Encodieroptionen</title> + + <para> + Die folgenden Einstellungen sind Beispiele unterschiedlicher + Kombinationen von Encodier-Optionen, die einen Kompromiss zwischen + Geschwindigkeit und Qualität bei gleicher Zielbitrate darstellen. + </para> + + <para> + All diese Encodier-Einstellungen wurden an einem Beispielvideo + mit 720x448 @30000/1001 fps getestet, die Zielbitrate war 900kbps, + und der Rechner war ein + AMD-64 3400+ mit 2400 Mhz im 64bit-Modus. + Jede Encodier-Einstellung zeichnet sich durch eine gemessene + Encodiergeschwindigkeit (in Frames pro Sekunde) und dem + PSNR-Verlust (in dB) im Vergleich zu den "sehr + hochwertigen" Einstellung aus. + Bitte hab dafür Verständnis, dass du abhängig von deiner Quelle, deinem + Rechnertyp und Entwicklungsfortschritten sehr unterschiedliche Resultate + erhalten kannst. + </para> + + <para> + <informaltable frame="all"> + <tgroup cols="4"> + <thead> + <row><entry>Beschreibung</entry><entry>Encodier-Optionen</entry><entry>Geschwindigkeit (in fps)</entry><entry>Relativer PSNR-Verlust (in dB)</entry></row> + </thead> + <tbody> + <row> + <entry>Sehr hohe Qualität</entry> + <entry><option>subq=6: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> Codecfamilie</title> + + <para> + Video for Windows bietet einfaches Encodieren mittels binärer Video-Codecs. + Du kannst mit folgenden Codecs encodieren (solltest du mehr haben, teile es + uns bitte mit!) + </para> + <para> + Beachte, dass der Support hierfür sehr experimentell ist, und + einige Codecs arbeiten vielleicht nicht korrekt. Manche Codecs werden + nur in bestimmten Farbräumen funktionieren, versuche + <option>-vf format=bgr24</option> und <option>-vf format=yuy2</option>, + falls ein Codec versagt oder einen falschen Output liefert. + </para> + + <sect2 id="menc-feat-enc-vfw-video-codecs"> + <title>Von Video for Windows unterstützte Codecs</title> + + <para> + <informaltable frame="all"> + <tgroup cols="4"> + <thead> + <row> + <entry>Video-Codec Dateiname</entry> + <entry>Beschreibung (FourCC)</entry> + <entry>md5sum</entry> + <entry>Kommentar</entry> + </row> + </thead> + <tbody> + <row> + <entry>aslcodec_vfw.dll</entry> + <entry>Alparysoft verlustfreier (lossless) Codec vfw (ASLC)</entry> + <entry>608af234a6ea4d90cdc7246af5f3f29a</entry> + <entry></entry> + </row> + <row> + <entry>avimszh.dll</entry> + <entry>AVImszh (MSZH)</entry> + <entry>253118fe1eedea04a95ed6e5f4c28878</entry> + <entry>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>stürzt unter Linux ab</entry> + </row> + <row> + <entry>vp7vfw.dll</entry> + <entry>On2 VP7 Personal Codec (VP70)</entry> + <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry> + <entry>falscher FourCC?</entry> + </row> + <row> + <entry>ViVD2.dll</entry> + <entry>SoftMedia ViVD V2 Codec VfW (GXVE)</entry> + <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry> + <entry></entry> + </row> + </tbody> + </tgroup> + </informaltable> + + Die erste Spalte enthält die Codec-Namen, die nach dem Parameter + <literal>codec</literal> übergeben werden sollten, wie: + <option>-xvfwopts codec=divx.dll</option>. + Der FourCC-Code, der von jedem Codec verwendet wird, steht in Klammern. + </para> + <informalexample> + <para> + Ein Beispiel mit VP3-Kompression: + <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 in der Lage, MPEG-Dateien im VCD-, SCVD- + und DVD-Format durch Verwendung der + <systemitem class="library">libavcodec</systemitem>-Programmbibliothek + zu erzeugen. + Diese Dateien können danach im Zusammenhang mit + <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink> + oder + <ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink> + zum Erzeugen von Disks verwendet werden, die auf einem Standard Set-Top-Player + abgespielt werden können. + </para> + + <para> + Die Formate DVD, SVCD und VCD sind starken Beschränkungen unterworfen. + Es ist nur eine kleine Auswahl an encodierten Bildgrößen und Seitenverhältnissen + verfügbar. + Wenn dein Film nicht bereits die Anforderungen erfüllt, musst du das Bild + skalieren, zuschneiden oder schwarze Ränder hinzufügen, um es konform zu machen. + </para> + + <sect3 id="menc-feat-vcd-dvd-constraints-resolution"> + <title>Formatbeschränkungen</title> + + <informaltable frame="all"> + <tgroup cols="9"> + <thead> + <row> + <entry>Format</entry> + <entry>Auflösung</entry> + <entry>V. Codec</entry> + <entry>V. Bitrate</entry> + <entry>Samplerate</entry> + <entry>A. Codec</entry> + <entry>A. Bitrate</entry> + <entry>FPS</entry> + <entry>Seitenverhältnis</entry> + </row> + </thead> + <tbody> + <row> + <entry>NTSC DVD</entry> + <entry>720x480, 704x480, 352x480, 352x240</entry> + <entry>MPEG-2</entry> + <entry>9800 kbps</entry> + <entry>48000 Hz</entry> + <entry>AC3,PCM</entry> + <entry>1536 kbps (max)</entry> + <entry>30000/1001, 24000/1001</entry> + <entry>4:3, 16:9 (nur für 720x480)</entry> + </row> + <row> + <entry>NTSC DVD</entry> + <entry>352x240<footnote id='fn-rare-resolutions'><para> + Diese Auflösungen werden selten für DVDs verwendet, da sie von + ziemlch niedriger Qualität sind.</para></footnote></entry> + <entry>MPEG-1</entry> + <entry>1856 kbps</entry> + <entry>48000 Hz</entry> + <entry>AC3,PCM</entry> + <entry>1536 kbps (max)</entry> + <entry>30000/1001, 24000/1001</entry> + <entry>4:3, 16:9</entry> + </row> + <row> + <entry>NTSC SVCD</entry> + <entry>480x480</entry> + <entry>MPEG-2</entry> + <entry>2600 kbps</entry> + <entry>44100 Hz</entry> + <entry>MP2</entry> + <entry>384 kbps (max)</entry> + <entry>30000/1001</entry> + <entry>4:3</entry> + </row> + <row> + <entry>NTSC VCD</entry> + <entry>352x240</entry> + <entry>MPEG-1</entry> + <entry>1150 kbps</entry> + <entry>44100 Hz</entry> + <entry>MP2</entry> + <entry>224 kbps</entry> + <entry>24000/1001, 30000/1001</entry> + <entry>4:3</entry> + </row> + <row> + <entry>PAL DVD</entry> + <entry>720x576, 704x576, 352x576, 352x288</entry> + <entry>MPEG-2</entry> + <entry>9800 kbps</entry> + <entry>48000 Hz</entry> + <entry>MP2,AC3,PCM</entry> + <entry>1536 kbps (max)</entry> + <entry>25</entry> + <entry>4:3, 16:9 (nur für 720x576)</entry> + </row> + <row> + <entry>PAL DVD</entry> + <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry> + <entry>MPEG-1</entry> + <entry>1856 kbps</entry> + <entry>48000 Hz</entry> + <entry>MP2,AC3,PCM</entry> + <entry>1536 kbps (max)</entry> + <entry>25</entry> + <entry>4:3, 16:9</entry> + </row> + <row> + <entry>PAL SVCD</entry> + <entry>480x576</entry> + <entry>MPEG-2</entry> + <entry>2600 kbps</entry> + <entry>44100 Hz</entry> + <entry>MP2</entry> + <entry>384 kbps (max)</entry> + <entry>25</entry> + <entry>4:3</entry> + </row> + <row> + <entry>PAL VCD</entry> + <entry>352x288</entry> + <entry>MPEG-1</entry> + <entry>1152 kbps</entry> + <entry>44100 Hz</entry> + <entry>MP2</entry> + <entry>224 kbps</entry> + <entry>25</entry> + <entry>4:3</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para> + Wenn ein Film ein 2.35:1 Seitenverhältnis hat (die meisten aktuellen Action-Filme), + wirst du schwarze Ränder hinzufügen oder den Film auf 16:9 zuschneiden müssen, + um eine DVD oder VCD herzustellen. + Wenn du schwarze Ränder hinzufügst, versuche diese an 16-Pixel-Rändern + auszurichten, um den Einfluß auf die Encodier-Performance zu minimieren. + Zum Glück besitzen DVDs eine ausreichend hohe Bitrate, damit du dich + nicht zu sehr um die Encodier-Effizienz sorgen musst. SVCD + und VCD jedoch sind höchst mager an Bitrate und erfordern Aufwand, um akzeptable + Qualität zu erreichen. + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-constraints-gop"> + <title>GOP-Größenbeschränkungen</title> + <para> + DVD, VCD und SVCD zwingen dich auch zu relativ niedrigen + GOP-Größen (Group of Pictures). + Für Material mit 30 fps ist die größte erlaubte GOP-Größe 18. + Für 25 oder 24 fps ist das Maximum 15. + Die GOP-Größe wird mittels der Option <option>keyint</option> gesetzt. + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-constraints-bitrate"> + <title>Bitraten-Beschränkungen</title> + <para> + VCD-Video muss bei CBR 1152 kbps sein. + Zu dieser nach oben begrenzten Einschränkung kommt auch noch eine + extrem niedrige vbv-Puffergröße von 327 Kilobit. + SVCD erlaubt das Variieren der Video-Bitraten auf bis zu 2500 kbps, + und eine etwas weniger restriktive vbv-Puffergröße von 917 Kilobit + ist erlaubt. + DVD-Video-Bitraten können sich bis auf irgendwo um die 9800 kbps + einpegeln (wenngleich typische Bitraten etwa halb so groß sind), + und die vbv-Puffergröße ist 1835 Kilobit. + </para> + </sect3> + </sect2> + + <sect2 id="menc-feat-vcd-dvd-output"> + <title>Output-Optionen</title> + <para> + <application>MEncoder</application> besitzt Optionen zur Kontrolle des + Output-Formats. + Durch das Verwenden dieser Optionen können wir ihn anweisen, den + korrekten Dateityp zu erzeugen. + </para> + + <para> + Die Optionen für VCD und SVCD werden xvcd und xsvcd genannt, weil sie + erweiterte Formate sind. + Sie sind nicht strikt Standard-konform, hauptsächlich weil der Output + keine Scan-Offsets enthält. + Wenn du ein SVCD-Image generieren musst, solltest du die Output-Datei + dem + <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink> + übergeben. + </para> + + <para> + VCD: + <screen>-of mpeg -mpegopts format=xvcd</screen> + </para> + + <para> + SVCD: + <screen>-of mpeg -mpegopts format=xsvcd</screen> + </para> + + <para> + DVD: + <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, wobei die DVD-Konformität erhalten bleibt. + </para> + + <sect3 id="menc-feat-vcd-dvd-output-aspect"> + <title>Seitenverhältnis</title> + <para> + Der Parameter für das Seitenverhältnis von <option>-lavcopts</option> wird zum Encodieren + des Seitenverhältnisses einer Datei verwendet. + Während des Playbacks wird das Seitenverhältnis dazu benutzt, die korrekte + Größe des Videos wieder herzustellen. + </para> + + <para> + 16:9 oder "Breitbild" + <screen>-lavcopts aspect=16/9</screen> + </para> + + <para> + 4:3 oder "Vollbild" + <screen>-lavcopts aspect=4/3</screen> + </para> + + <para> + 2.35:1 oder "Cinemascope" NTSC + <screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen> + Um die korrekte Skalierungsgröße zu berechnen, verwende die + erweiterte NTSC-Breite von 854/2.35 = 368 + </para> + + <para> + 2.35:1 oder "Cinemascope" PAL + <screen>-vf scale="720:432,expand=720:576 -lavcopts aspect=16/9</screen> + Um die korrekte Skalierungsgröße zu berechnen, verwende die + erweiterte PAL-Breite von 1024/2.35 = 432 + </para> + + </sect3> + + <sect3 id="menc-feat-vcd-dvd-a-v-sync"> + <title>Aufrechterhalten der A/V-Synchronisation</title> + <para> + Um die Audio-/Video-Synchronisation während der kompletten + Encodierung aufrechtzuerhalten, muss + <application>MEncoder</application> Frames auslassen oder duplizieren. + Dies funktioniert beim Muxen in eine AVI-Datei ziemlich gut, + aber meist schlägt das Aufrechterhalten der A/V-Synchronisation mit + anderen Muxern wie etwa MPEG garantiert fehl. + Dies ist der Grund, weshalb es nötig ist, den + <option>harddup</option>-Video-Filter am Ende der Filterkette anzuhängen, + um diese Art Problem zu vermeiden. + Du findest mehr technische Informationen zu <option>harddup</option> + im Abschnitt + <link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Verbessern der Mux- und A/V-Synchronisationszuverlässigkeit</link> + oder in der Manpage. + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-output-srate"> + <title>Sampleraten-Konvertierung</title> + <para> + Wenn die Audio-Samplerate in der Originaldatei nicht dieselbe wie die + vom Zielformat angeforderte ist, wird eine Sampleraten-Konvertierung + erforderlich. + Dies wird erreicht, indem man die Option <option>-srate</option> und + den <option>-af lavcresample</option> Audio-Filter zusammen + anwedet. + </para> + <para> + DVD: + <screen>-srate 48000 -af lavcresample=48000</screen> + </para> + <para> + VCD und SVCD: + <screen>-srate 44100 -af lavcresample=44100</screen> + </para> + </sect3> + </sect2> + + <sect2 id="menc-feat-vcd-dvd-lavc"> + <title>Verwenden des libavcodec zur VCD/SVCD/DVD-Encodierung</title> + + <sect3 id="menc-feat-vcd-dvd-lavc-intro"> + <title>Einführung</title> + <para> + <systemitem class="library">libavcodec</systemitem> kann verwendet + werden, um ein VCD/SVCD/DVD-konformes Video durch die Anwendung der + passenden Optionen zu erzeugen. + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-lavc-options"> + <title>lavcopts</title> + <para> + Dies ist eine Liste von Feldern in <option>-lavcopts</option>, die du + möglicherweise ändern musst, um einen für VCD, SVCD + oder DVD konformen Film herzustellen: + </para> + + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">acodec</emphasis>: + <option>mp2</option> für VCD, SVCD oder PAL DVD; + <option>ac3</option> wird am häufigsten für DVD verwendet. + PCM-Audio kann auch für DVD verwendet werden, aber dies ist meistens + eine riesen Platzverschwendung. + Beachte, dass MP3-Audio nicht konform für irgendeines dieser Formate + ist, aber Player haben oft ohnehin kein Problem, es abzuspielen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">abitrate</emphasis>: + 224 für VCD; bis zu 384 für SVCD; bis zu 1536 für DVD, aber + übliche Werte reichen von 192 kbps für Stereo bis 384 kbps für + 5.1-Kanal-Sound. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vcodec</emphasis>: + <option>mpeg1video</option> für VCD; + <option>mpeg2video</option> für SVCD; + <option>mpeg2video</option> wird gewöhnlich für DVD verwendet, man kann aber auch + <option>mpeg1video</option> für CIF-Auflösungen verwenden. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">keyint</emphasis>: + Angewandt, um die GOP-Größe zu setzen. + 18 für Material mit 30fps oder 15 für Material mit 25/24 fps. + Kommerzielle Hersteller scheinen Keyframe-Intervalle von 12 zu bevorzugen. + Es ist möglich, dies viel größer zu machen und dennoch die Kompatibilität + zu den meisten Player zu behalten. + Ein <option>keyint</option> von 25 sollte nie irgendwelche Probleme machen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vrc_buf_size</emphasis>: + 327 für VCD, 917 für SVCD und 1835 für DVD. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vrc_minrate</emphasis>: + 1152 für VCD. kann für SVCD und DVD so gelassen werden. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vrc_maxrate</emphasis>: + 1152 für VCD; 2500 für SVCD; 9800 für DVD. + Für SVCD und DVD könntest du niedrigere Werte verwenden, abhängig von + deinen persönlichen Vorlieben und Anforderungen. + </para> + </listitem> + + <listitem> + <para> + <emphasis role="bold">vbitrate</emphasis>: + 1152 für VCD; + bis zu 2500 für SVCD; + bis zu 9800 für DVD. + Für letztere zwei Formate sollte vbitrate basierend auf persönliche + Vorlieben gesetzt werden. + Zum Beispiel, wenn du darauf bestehst, 20 Stunden oder so passend auf + eine DVD zu bringen, könntest du vbitrate=400 benutzen. + Die sich daraus ergebende Video-Qualität würde womöglich äußerst mies. + Wenn du versuchst, die maximal mögliche Qualität auf eine DVD zu quetschen, + nimm vbitrate=9800, aber sei gewarnt, dass dich dies zu weniger als + einer Stunde Video auf einer Single-Layer DVD zwingen würde. + </para> + </listitem> + </itemizedlist> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-lavc-examples"> + <title>Beispiele</title> + <para> + Dies ist eine typische Zusammenstellung von mindestens zu verwendenden + <option>-lavcopts</option>-Optionen zum Encodieren eines Videos: + </para> + <para> + VCD: +<screen>-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\ +vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2</screen> + </para> + + <para> + SVCD: +<screen>-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\ +keyint=15:acodec=mp2</screen> + </para> + + <para> + DVD: +<screen>-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ +keyint=15:acodec=ac3</screen> + </para> + + </sect3> + + <sect3 id="menc-feat-vcd-dvd-lavc-advanced"> + <title>Erweiterte Optionen</title> + <para> + Für das Encodieren höherer Qualität könntest du auch qualitätssteigernde + Optionen an lavcopts anfügen, wie etwa <option>trell</option>, + <option>mbd=2</option> und weitere. + Beachte, dass <option>qpel</option> und <option>v4mv</option>, obwohl + oft bei MPEG-4 nützlich, nicht auf MPEG-1 oder MPEG-2 anwendbar sind. + Außerdem, wenn du versuchst, eine sehr hochwertige DVD-Encodierung zu + machen, kann es nützlich sein, <option>dc=10</option> an lavcopts + anzufügen. + Wobei dies helfen könnte, das Auftreten von Blöcken in fahl-farbenen + Bereichen zu reduzieren. + Zusammenfassend ist dies ein Beispiel einer Zusammenstellung von lavcopts für + für eine höherwertige DVD: + </para> + + <para> +<screen>-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ +keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ +vqmin=1:lmin=1:dc=10</screen> + </para> + + </sect3> + </sect2> + + <sect2 id="menc-feat-vcd-dvd-audio"> + <title>Encodieren von Audio</title> + <para> + VCD und SVCD unterstützen MPEG-1 Layer II Audio, indem sie einen + MP2-Encoder von + <systemitem class="library">toolame</systemitem>, + <systemitem class="library">twolame</systemitem>, + oder <systemitem class="library">libavcodec</systemitem> + verwenden. + Der libavcodec MP2 ist weit davon entfernt, so gut zu sein wie die + anderen zwei Bibliotheken, dennoch sollte er immer verfügbar sein. + VCD unterstützt nur Audio mit konstanten Bitraten (CBR) wogegen SVCD + auch variable Bitraten (VBR) unterstützt. + Sei vorsichtig, wenn du VBR benutzt, weil einige schlechte + Standalone-Player diese nicht so gut unterstützen könnten. + </para> + + <para> + Für DVD-Audio wird der AC3-Codec von + <systemitem class="library">libavcodec</systemitem> + verwendet. + </para> + + <sect3 id="menc-feat-vcd-dvd-audio-toolame"> + <title>toolame</title> + <para> + Für VCD und SVCD: + <screen>-oac toolame -toolameopts br=224</screen> + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-audio-twolame"> + <title>twolame</title> + <para> + Für VCD und SVCD: + <screen>-oac twolame -twolameopts br=224</screen> + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-audio-lavc"> + <title>libavcodec</title> + <para> + Für DVD mit 2-Kanal-Sound: + <screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen> + </para> + <para> + Für DVD mit 5.1-Kanal-Sound: + <screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen> + </para> + <para> + Für VCD und SVCD: + <screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen> + </para> + </sect3> + + </sect2> + + <sect2 id="menc-feat-vcd-dvd-all"> + <title>Zusammenfassung</title> + <para> + Diese Sektion zeigt einige komplette Befehle zum Erzeugen von + VCD/SVCD/DVD-konformen Videos. + </para> + + <sect3 id="menc-feat-vcd-dvd-all-pal-dvd"> + <title>PAL DVD</title> + <para> +<screen>mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -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 mit enthaltenem AC3 Audio nach DVD</title> -<para> - Hat die Quelle bereits AC3-Audio, nimm -oac copy anstatt es - erneut zu encodieren. - <screen> - mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\ + -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy"> + <title>PAL AVI mit enthaltenem AC3 Audio nach DVD</title> + <para> + Hat die Quelle bereits AC3-Audio, nimm -oac copy anstatt es + erneut zu encodieren. +<screen>mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -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 mit AC3-Ton nach DVD</title> -<para> - Hat die Quelle bereits AC3-Audio und ist NTSC @ 24000/1001 fps: - <screen> - mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:telecine \ + -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> + </para> + </sect3> + + <sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy"> + <title>NTSC AVI mit AC3-Ton nach DVD</title> + <para> + Hat die Quelle bereits AC3-Audio und ist NTSC @ 24000/1001 fps: +<screen>mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd: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 \ + -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 \ + -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 \ + -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 \ + -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> + -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable></screen> + </para> + </sect3> -</sect2> + </sect2> -</sect1> + </sect1> </chapter> diff --git a/DOCS/xml/de/install.xml b/DOCS/xml/de/install.xml index 645971be2b..bf6803b6dc 100644 --- a/DOCS/xml/de/install.xml +++ b/DOCS/xml/de/install.xml @@ -1,626 +1,731 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- in sync with r19829 --> + <chapter id="install"> -<title>Installation</title> - -<para> -Eine Anleitung für eine schnelle Installation steht in der Datei -<filename>README</filename>. Bitte lies diese zuerst und komm erst dann für -den Rest der mörderischen Details zurück. -</para> - -<para> -In diesem Abschnitt werde ich versuchen, dich durch den Vorgang des -Compilierens und Konfigurierens von <application>MPlayer</application> zu -leiten. Es ist nicht leicht, muss aber nicht unbedingt schwierig sein. Wenn du -andere Erfahrungen machst als das, was ich erkläre, durchsuche bitte die -Dokumentation und du wirst deine Antworten finden. Wenn du Links siehst, folge -ihnen und lies ihren Inhalt sorgfältig. Das wird etwas Zeit in Anspruch -nehmen, aber das IST es wert. -</para> - -<para> -Du brauchst ein ziemlich aktuelles System. Unter Linux werden die Kernel der -Version 2.4.x empfohlen. -</para> - -<sect1 id="softreq"> -<title>Softwareanforderungen</title> - -<itemizedlist> -<listitem><para> - <emphasis role="bold">binutils</emphasis> - empfohlene Version ist <emphasis -role="bold">2.11.x</emphasis>. - Dieses Programm ist verantwortlich für die Generierung von Instruktionen für - MMX/3DNow!/usw. und daher sehr wichtig. -</para></listitem> -<listitem><para> - <emphasis role="bold">gcc</emphasis> - empfohlene Versionen sind: - <emphasis role="bold">2.95.3</emphasis> (vielleicht <emphasis - role="bold">2.95.4</emphasis>) und <emphasis role="bold">3.2+</emphasis>. - Benutze <emphasis role="bold">niemals</emphasis> 2.96 oder 3.0.x! Diese - generieren im Falle von <application>MPlayer</application> fehlerhaften Code. - Solltest du dich dafür entscheiden, die von gcc-Version 2.96 zu wechseln, - dann entscheide dich nicht zu Gunsten von 3.x, nur weil es neuer ist. Frühe - Veröffentlichungen von 3.x waren fehlerhafter als 2.96. Downgrade also zu - 2.95.x (downgrade auch <systemitem class="library">libstdc++</systemitem>, - andere Programme könnten dies benötigen) oder wechsle die Version überhaupt - nicht (in diesem Falle sei jedoch gewarnt, dass es zur Laufzeit Probleme - geben kann). Solltest du dich für 3.x entscheiden, versuche die neueste - Version zu bekommen, frühe Versionen hatten verschiedenartige Fehler, benutze - also mindestens Version 3.1, diese ist getestet und funktioniert. - </para></listitem> -<listitem><para> - <emphasis role="bold">XFree86</emphasis> - empfohlene Version ist - <emphasis role="bold">immer die neueste</emphasis> (4.3). Normalerweise - möchte das jeder. Mit XFree86 4.0.2 beginnend enthält es die - <link linkend="xv">XVideo</link>-Erweiterung (irgendwo als - <emphasis role="bold">Xv</emphasis> bezeichnet), die bei Karten, die dies unterstützen, - für die YUV-Hardwarebeschleunigung (schnelle Bilddarstellung) benötigt wird. - Stelle auch sicher, dass das <emphasis role="bold">Entwicklerpaket</emphasis> - installiert ist, sonst wird es nicht funktionieren. - Bei manchen Grafikkarten benötigst du kein XFree86. Siehe Liste unten. - </para></listitem> -<listitem><para> - <emphasis role="bold">make</emphasis> - empfohlene Version ist - <emphasis role="bold">immer die neueste</emphasis> (mindestens 3.79.x). Dies - ist normalerweise nicht so wichtig. - </para></listitem> -<listitem><para> - <emphasis role="bold">FreeType</emphasis> in der Version 2.0.9 oder neuer wird - benötigt, um Schriften für OSD und Untertitel zu erhalten. - </para></listitem> -<listitem><para> - <emphasis role="bold">SDL</emphasis> - ist nicht zwingend notwendig, kann - in manchen Fällen aber helfen (schlechter Klang, Grafikkarten, die zusammen - mit dem xv-Treiber komischerweise hinterherhingen). - Benutze immer die neueste Version (beginnend bei 1.2.x). - </para></listitem> -<listitem><para> - <emphasis role="bold">libjpeg</emphasis> - optionaler JPEG-Decoder, der - von der Option <option>-mf</option> und für mache QT MOV-Dateien verwendet - wird. Nützlich sowohl für <application>MPlayer</application> als auch - <application>MEncoder</application>, wenn du vorhast, mit JPEG-Dateien zu - arbeiten. - </para></listitem> -<listitem><para> - <emphasis role="bold">libpng</emphasis> - empfohlen und - Standard-(M)PNG-Decoder. Wird für die GUI benötigt. - Nützlich sowohl für <application>MPlayer</application> als auch - <application>MEncoder</application>. - </para></listitem> -<listitem><para> - <emphasis role="bold">lame</emphasis> - empfohlen, erforderlich für - Audioencodierung in das MP3-Format mit <application>MEncoder</application>, - empfohlene Version ist <emphasis>immer die neueste</emphasis> (mindestens - 3.90). - </para></listitem> -<listitem><para> - <emphasis role="bold">zlib</emphasis> - empfohlen, benötigt für die - Unterstützung komprimierter MOV-Headern und PNG. - </para></listitem> -<listitem><para> - <emphasis role="bold">libogg</emphasis> - optional, erforderlich für die - Wiedergabe von Dateien im OGG-Format. - </para></listitem> -<listitem><para> - <emphasis role="bold">libvorbis</emphasis> - optional, benötigt für die - Audiowiedergabe von OGG Vorbis. - </para></listitem> -<listitem><para> - <emphasis role="bold"><ulink url="http://www.live555.com/mplayer/">LIVE555 Streaming Media</ulink></emphasis> - - optional, benötigt für die Wiedergabe von RTSP/RTP-Streams. - </para></listitem> -<listitem><para> - <emphasis role="bold">directfb</emphasis> - optional, von - <ulink url="http://www.directfb.org"/>. Version 0.9.13 ist mindestens - erforderlich. - </para></listitem> -<listitem><para> - <emphasis role="bold">cdparanoia</emphasis> - optional, für CDDA-Unterstützung - </para></listitem> -<listitem><para> - <emphasis role="bold">libxmms</emphasis> - optional, für Unterstützung des - XMMS-Input-Plugins. Version 1.2.7 ist mindestens erforderlich. - </para></listitem> -<listitem><para> - <emphasis role="bold">libsmb</emphasis> - optional, für Samba-Unterstützung - </para></listitem> -<listitem><para> - <emphasis role="bold">ALSA</emphasis> - optional, für Unterstützung der - Audioausgabe mit ALSA. Version 0.9.0rc4 ist mindestens erforderlich. - </para></listitem> -<listitem><para> - <emphasis role="bold">bio2jack</emphasis> - optional, für - Unterstützung der Audioausgabe mit JACK, wird nur zur Compilezeit benötigt. - Du kannst es von - <ulink url="http://bio2jack.sf.net/">http://bio2jack.sf.net</ulink> beziehen. - Da es keine Installationsoptionen hat, musst du die Datei - <filename>libbio2jack.a</filename> manuell in deinen Bibliothekspfad - kopieren, oder benutze die Option <option>--with-bio2jack=DIR</option>, damit - <filename>./configure</filename> weiß, wo sich die Datei befindet. - </para></listitem> -</itemizedlist> -</sect1> - - -<sect1 id="video-cards"> -<title>Grafikkarten</title> - -<para> -Es gibt allgemein zwei Arten Grafikkarten. Die eine (die neueren Karten) -unterstützen <emphasis role="bold">Hardware-Skalierung und YUV-Beschleunigung</emphasis>, -die anderen nicht. -</para> - - -<sect2 id="yuv-cards"> -<title>YUV-Karten</title> - -<para> -Diese können das Bild in jeder Größe darstellen und auf jede Größe -skalieren (zoomen), die in ihren Speicher passt, und das mit -<emphasis role="bold">geringer CPU-Last</emphasis> (sogar beim Zoom), daher ist -die Vollbildwiedergabe nett und sehr schnell. - -<itemizedlist> -<listitem><para> - <emphasis role="bold">Matrox G200/G400/G450/G550-Karten</emphasis>: Obwohl ein - <link linkend="vidix">Vidix-Treiber</link> zur Verfügung steht, wird empfohlen, - statt dessen das mga_vid-Modul zu verwenden, da es wesentlich besser funktioniert. - Siehe bitte den Abschnitt <link linkend="mga_vid">mga_vid</link> für dessen Installation - und den Umgang damit. Es ist wichtig, diese Schritte <emphasis>vor</emphasis> der Compilierung - von <application>MPlayer</application> durchzuführen, da sonst keine Unterstützung - für mga_vid eingebaut wird. Schaue dir auch den Abschnitt - <link linkend="tvout-mga-g400">Matrox TV-out</link> an. - <emphasis role="bold"> Wenn du nicht Linux benutzt</emphasis>, ist deine einzige - Möglichkeit der VIDIX-Treiber: Lies den Abschnitt <link linkend="vidix">VIDIX</link>. - </para></listitem> -<listitem><para> - <emphasis role="bold">3Dfx Voodoo3/Banshee-Karten</emphasis>: Bitte siehe den Abschnitt - <link linkend="tdfxfb">tdfxfb</link>, um große Geschwindigkeitsvorteile zu nutzen. - Es ist wichtig, diese Schritte <emphasis>vor</emphasis> der Compilierung - von <application>MPlayer</application> durchzuführen, da sonst keine Unterstützung - für 3Dfx eingebaut wird. - Wenn du X benutzt, verwende - mindestens <emphasis role="bold">4.2.0</emphasis>, da der 3dfx Xv-Treiber in der - Version 4.1.0 und davor nicht funktioniert. - </para></listitem> -<listitem><para> - <emphasis role="bold">ATI-Karten</emphasis>: Der <link linkend="vidix">VIDIX</link>-Treiber - wird für folgende Karten bereitgestellt: - <emphasis role="bold">Radeon, Rage128, Mach64</emphasis> (Rage XL/Mobility, Xpert98). - Siehe auch die Dokumentation des TV-out im Abschnitt <link linkend="tvout-ati">ATI-Karten</link>, - damit du weißt, ob das TV-out deiner Karte unter Linux mit - <application>MPlayer</application> unterstützt wird. - </para></listitem> -<listitem><para> - <emphasis role="bold">S3-Karten</emphasis>: Die Savage- und Virge/DX-Chips verfügen - über Hardwarebeschleunigung. Benutze eine XFree86-Version, die so neu wir möglich ist, - ältere Treiber sind buggy. Savage-Chips haben Probleme mit YV12-Darstellung, siehe - Abschnitt <link linkend="s3">S3 Xv</link> für Details. Ältere Trio-Karten haben keine - oder nur langsame Hardwareunterstützung. - </para></listitem> -<listitem><para> - <emphasis role="bold">nVidia-Karten</emphasis>: Können oder können keine gute Wahl sein - für die Videowiedergabe. Wenn du eine GeForce2-Karte hast (oder neuer), ist es nicht - wahrscheinlich, dass sie ohne Fehler funktioniert. - <emphasis role="bold">Der in XFree86 eingebaute nVidia-Treiber unterstützt nicht auf - allen Karten YUV-Hardwarebeschleunigung.</emphasis> Du musst die Closed-Source-Treiber von - <ulink url="http://nvidia.com">nVidia.com</ulink> herunterladen. Siehe Abschnitt - <link linkend="nvidia">nVidia Xv-Treiber</link> für Details. Bitte siehe auch Abschnitt - <link linkend="tvout-nvidia">nVidia TV-out</link>, wenn du einen Fernseher verwenden möchtest. - </para></listitem> -<listitem><para> - <emphasis role="bold">3DLabs GLINT R3 und Permedia3</emphasis>: Ein VIDIX-Treiber wird - bereitgestellt (pm3_vid). Bitte siehe Abschnitt <link linkend="vidix">VIDIX</link> für Details. - </para></listitem> -<listitem><para> - <emphasis role="bold">Andere Karten</emphasis>: keine der oben genannten? - <itemizedlist> - <listitem><simpara> - Probiere, ob der XFree86-Treiber (und deine Karte) Hardwarebeschleunigung unterstützen. - Siehe Abschnitt <link linkend="xv">Xv</link> für Details. - </simpara></listitem> - <listitem><simpara> - Sollten sie dies nicht tun, werden die Features unter deinem Betriebssystem nicht - unterstützt :( Wenn Hardwarebeschleunigung unter Windows funktioniert, bedeutet - dies nicht, dass sie unter Linux oder anderen Betriebssystemen funktioniert, das - hängt von den Treibern ab. Die meisten Hersteller stellen weder Linuxtreiber her, - noch veröffentlichen sie die Spezifikationen ihrer Chips - daher hast du Pech, - wenn du ihre Karten benutzt. - Siehe <xref linkend="non-yuv-cards"/>. - </simpara></listitem> - </itemizedlist> - </para></listitem> -</itemizedlist> -</para> -</sect2> - - -<sect2 id="non-yuv-cards" xreflabel="Non-YUV cards"> -<title>Nicht-YUV-Karten</title> - -<para> -Vollbildwiedergabe kann erreicht werden, indem entweder -<emphasis role="bold">Softwareskalierung</emphasis> aktiviert wird -(benutz die Option <option>-zoom</option> oder <option>-vf</option>, aber ich warne dich, -die ist langsam), oder durch den Wechsel zu einem kleineren Videomodus wie zum Beispiel -352x288. Hast du keine YUV-Beschleunigung, wird letztere Methode empfohlen. -Der Wechsel des Videomodus kann durch die Option <option>-vm</option> aktiviert werden -und funktioniert mit folgenden Treibern: -<itemizedlist> -<listitem><simpara> - <emphasis role="bold">Benutzung von </emphasis> XFree86: Siehe Details in den Abschnitten - <link linkend="dga">DGA-Treiber</link> und <link linkend="x11">X11-Treiber</link>. - DGA wird empfohlen! Probiere auch DGA via SDL, das funktioniert manchmal besser. - </simpara></listitem> -<listitem><simpara> - <emphasis role="bold">Nicht-Benutzung von</emphasis> XFree86: Probiere die Treiber - in folgender Reihenfolge: - <link linkend="vesa">vesa</link>, - <link linkend="fbdev">fbdev</link>, - <link linkend="svgalib">svgalib</link>, - <link linkend="aalib">aalib</link>. - </simpara></listitem> -</itemizedlist> -</para> -</sect2> - -<!-- FIXME: finde eine logisch sinnvollere Ordnung für diesen Abschnitt --> -<sect2 id="cirrus-logic-cards" xreflabel="Cirrus-Logic-Karten"> -<title>Cirrus-Logic-Karten</title> -<itemizedlist> -<listitem><para> - GD 7548: verfügbar on-board und getestet in der Compaq Armada 41xx Notebook-Serie. - <itemizedlist> - <listitem><simpara> - XFree86 3: Funktioniert in 8/16bpp-Modi. Trotzdem, der Treiber ist übel langsam in - 800x600@16bpp. <emphasis role="bold">Empfohlen: 640x480@16bpp</emphasis> - </simpara></listitem> - <listitem><simpara> - XFree86 4: Der Xserver friert kurz nach dem Start ein, wenn Beschleunigung nicht - aktiviert ist, dann jedoch laufen die Dinge noch langsamer als mit XFree86 3. - Kein XVideo. - </simpara></listitem> - <listitem><simpara> - FBdev: Framebuffer kann mit dem <systemitem>clgenfb</systemitem>-Treiber im Kernel - aktiviert werden, auch wenn er bei mir nur mit 8bpp funktioniert hat, daher - unbrauchbar. Die clgenfb-Source musste um die 7548-ID vor der Compilierung - erweitert werden. - </simpara></listitem> - <listitem><simpara> - VESA: Die Karte ist nur VBE 1.2-fähig, daher kann VESA-Ausgabe nicht benutzt - werden. Kann mit UniVBE nicht umgangen werden. - </simpara></listitem> - <listitem><simpara> - SVGAlib: erkennt einen älteren Cirrus-Chip. Langsam, aber nutzbar mit der Option - <option>-bpp 8</option>. - </simpara></listitem> -</itemizedlist> -</para></listitem> -</itemizedlist> -</sect2> -</sect1> - - -<sect1 id="sound-cards"> -<title>Soundkarten</title> - -<itemizedlist> -<listitem><simpara> - <emphasis role="bold">Soundblaster Live!</emphasis>: Mit dieser Karte kannst du - AC3-Decodierung mit 4 oder 6 (<emphasis role="bold">5.1</emphasis>) anstatt 2 Kanälen - verwenden. Lies den Abschnitt <link linkend="swac3">Software-AC3-Decodierung</link>. - Für Hardware-AC3-Passthrough <emphasis role="bold">musst</emphasis> du ALSA 0.9 mit - OSS-Emulation verwenden! - </simpara></listitem> -<listitem><simpara> - <emphasis role="bold">C-Media mit S/PDIF out</emphasis>: Hardware-AC3-Passthrough - ist mit diesen Karten möglich, siehe Abschnitt - <link linkend="hwac3">Hardware-AC3-Decodierung</link>. - </simpara></listitem> -<listitem><simpara> - Features <emphasis role="bold">anderer Karten</emphasis> werden von - <application>MPlayer</application> nicht unterstützt. - <emphasis role="bold">Es wird dringend empfohlen, die Sektion - <link linkend="audio">Soundkarte</link> zu lesen!</emphasis> - </simpara></listitem> -</itemizedlist> -</sect1> - - -<sect1 id="features"> -<title>Features</title> - -<itemizedlist> -<listitem><para> - Entscheide, ob du eine GUI benötigst. Ist dies der Fall, schau in Abschnitt - <link linkend="gui">GUI</link>, bevor du compilierst. - </para></listitem> -<listitem><para> - Wenn Du <application>MEncoder</application> (unseren super Allzweck-Encoder) - installieren möchtest, siehe Abschnitt - <link linkend="mencoder"><application>MEncoder</application></link>. - </para></listitem> -<listitem><para> - Wenn du eine V4L-kompatible <emphasis role="bold">TV-Tuner</emphasis>-Karte hast - und Filme mit <application>MPlayer</application> anschauen/grabben und encodieren - möchtest, lies den Abschnitt <link linkend="tv-input">TV-Input</link>. - </para></listitem> -<listitem><para> - Wenn du eine V4L-kompatible <emphasis role="bold">Radioempfänger</emphasis>karte hast - und mit <application>MPlayer</application> Radio hören oder aufnehmen möchtest, - lies den Abschnitt <link linkend="radio">radio</link>. - </para></listitem> -<listitem><para> - Es gibt Unterstützung für ein schickes <emphasis role="bold">OSD-Menü</emphasis>, - das benutzt werden kann. Siehe Abschnitt <link linkend="subosd">OSD-Menü</link>. - </para></listitem> -</itemizedlist> - -<para> -Baue dann <application>MPlayer</application>: -<screen> -./configure + <title>Installation</title> + + <para> + Eine Anleitung für eine schnelle Installation steht in der Datei + <filename>README</filename>. Bitte lies diese zuerst und komm erst dann für + den Rest der mörderischen Details zurück. + </para> + + <para> + In diesem Abschnitt werde ich versuchen, dich durch den Vorgang des + Compilierens und Konfigurierens von <application>MPlayer</application> zu + leiten. Es ist nicht leicht, muss aber nicht unbedingt schwierig sein. Wenn du + andere Erfahrungen machst als das, was ich erkläre, durchsuche bitte die + Dokumentation, und du wirst deine Antworten finden. Wenn du Links siehst, folge + ihnen und lies ihren Inhalt sorgfältig. Das wird etwas Zeit in Anspruch + nehmen, aber das IST es wert. + </para> + + <para> + Du brauchst ein ziemlich aktuelles System. Unter Linux werden die Kernel der + Version 2.4.x empfohlen. + </para> + + <sect1 id="softreq"> + <title>Softwareanforderungen</title> + + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">binutils</emphasis> - empfohlene Version ist <emphasis role="bold">2.11.x</emphasis>. + Dieses Programm ist verantwortlich für die Generierung von Instruktionen für + MMX/3DNow!/usw. und daher sehr wichtig. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">gcc</emphasis> - empfohlene Versionen sind: + <emphasis role="bold">2.95.3</emphasis> (vielleicht + <emphasis role="bold">2.95.4</emphasis>) und <emphasis role="bold">3.2+</emphasis>. + Benutze <emphasis role="bold">niemals</emphasis> 2.96 oder 3.0.x! Diese + generieren im Falle von <application>MPlayer</application> fehlerhaften Code. + Solltest du dich dafür entscheiden, die von gcc-Version 2.96 zu wechseln, + dann entscheide dich nicht zu Gunsten von 3.x, nur weil es neuer ist. Frühe + Veröffentlichungen von 3.x waren fehlerhafter als 2.96. Downgrade also zu + 2.95.x (downgrade auch <systemitem class="library">libstdc++</systemitem>, + andere Programme könnten dies benötigen) oder wechsle die Version überhaupt + nicht (in diesem Falle sei jedoch gewarnt, dass es zur Laufzeit Probleme + geben kann). Solltest du dich für 3.x entscheiden, versuche die neueste + Version zu bekommen, frühe Versionen hatten verschiedenartige Fehler, benutze + also mindestens Version 3.1, diese ist getestet und funktioniert. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">XFree86</emphasis> - empfohlene Version ist + <emphasis role="bold">immer die neueste</emphasis> (4.3). Normalerweise + möchte das jeder. Mit XFree86 4.0.2 beginnend enthält es die + <link linkend="xv">XVideo</link>-Erweiterung (irgendwo als + <emphasis role="bold">Xv</emphasis> bezeichnet), die bei Karten, die dies unterstützen, + für die YUV-Hardwarebeschleunigung (schnelle Bilddarstellung) benötigt wird. + Stelle auch sicher, dass das <emphasis role="bold">Entwicklerpaket</emphasis> + installiert ist, sonst wird es nicht funktionieren. + Bei manchen Grafikkarten benötigst du kein XFree86. Siehe Liste unten. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">make</emphasis> - empfohlene Version ist + <emphasis role="bold">immer die neueste</emphasis> (mindestens 3.79.x). Dies + ist normalerweise nicht so wichtig. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">FreeType</emphasis> in der Version 2.0.9 oder neuer wird + benötigt, um Schriften für OSD und Untertitel zu erhalten. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">SDL</emphasis> - ist nicht zwingend notwendig, kann + in manchen Fällen aber helfen (schlechter Klang, Grafikkarten, die zusammen + mit dem xv-Treiber komischerweise hinterherhingen). + Benutze immer die neueste Version (beginnend bei 1.2.x). + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">libjpeg</emphasis> - optionaler JPEG-Decoder, der + von der Option <option>-mf</option> und für mache QT MOV-Dateien verwendet + wird. Nützlich sowohl für <application>MPlayer</application> als auch + <application>MEncoder</application>, wenn du vorhast, mit JPEG-Dateien zu + arbeiten. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">libpng</emphasis> - empfohlen und + Standard-(M)PNG-Decoder. Wird für die GUI benötigt. + Nützlich sowohl für <application>MPlayer</application> als auch + <application>MEncoder</application>. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">lame</emphasis> - empfohlen, erforderlich für + Audioencodierung in das MP3-Format mit <application>MEncoder</application>, + empfohlene Version ist <emphasis>immer die neueste</emphasis> (mindestens + 3.90). + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">zlib</emphasis> - empfohlen, benötigt für die + Unterstützung komprimierter MOV-Headern und PNG. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">libogg</emphasis> - optional, erforderlich für die + Wiedergabe von Dateien im OGG-Format. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">libvorbis</emphasis> - optional, benötigt für die + Audiowiedergabe von OGG Vorbis. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold"><ulink url="http://www.live555.com/mplayer/">LIVE555 Streaming Media</ulink></emphasis> + - optional, benötigt für die Wiedergabe von RTSP/RTP-Streams. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">directfb</emphasis> - optional, von + <ulink url="http://www.directfb.org"/>. Version 0.9.13 ist mindestens + erforderlich. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">cdparanoia</emphasis> - optional, für CDDA-Unterstützung + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">libxmms</emphasis> - optional, für Unterstützung des + XMMS-Input-Plugins. Version 1.2.7 ist mindestens erforderlich. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">libsmb</emphasis> - optional, für Samba-Unterstützung + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">ALSA</emphasis> - optional, für Unterstützung der + Audioausgabe mit ALSA. Version 0.9.0rc4 ist mindestens erforderlich. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">bio2jack</emphasis> - optional, für + Unterstützung der Audioausgabe mit JACK, wird nur zur Compilezeit benötigt. + Du kannst es von + <ulink url="http://bio2jack.sf.net/">http://bio2jack.sf.net</ulink> beziehen. + Da es keine Installationsoptionen hat, musst du die Datei + <filename>libbio2jack.a</filename> manuell in deinen Bibliothekspfad + kopieren, oder benutze die Option <option>--with-bio2jack=DIR</option>, damit + <filename>./configure</filename> weiß, wo sich die Datei befindet. + </para> + </listitem> + </itemizedlist> + </sect1> + + + <sect1 id="video-cards"> + <title>Grafikkarten</title> + + <para> + Es gibt allgemein zwei Arten Grafikkarten. Die eine (die neueren Karten) + unterstützen <emphasis role="bold">Hardware-Skalierung und YUV-Beschleunigung</emphasis>, + die anderen nicht. + </para> + + + <sect2 id="yuv-cards"> + <title>YUV-Karten</title> + + <para> + Diese können das Bild in jeder Größe darstellen und auf jede Größe + skalieren (zoomen), die in ihren Speicher passt, und das mit + <emphasis role="bold">geringer CPU-Last</emphasis> (sogar beim Zoom), daher ist + die Vollbildwiedergabe nett und sehr schnell. + + <itemizedlist> + <listitem> + <para> + <emphasis role="bold">Matrox G200/G400/G450/G550-Karten</emphasis>: Obwohl ein + <link linkend="vidix">Vidix-Treiber</link> zur Verfügung steht, wird empfohlen, + statt dessen das mga_vid-Modul zu verwenden, da es wesentlich besser funktioniert. + Siehe bitte den Abschnitt <link linkend="mga_vid">mga_vid</link> für dessen Installation + und den Umgang damit. Es ist wichtig, diese Schritte <emphasis>vor</emphasis> der Compilierung + von <application>MPlayer</application> durchzuführen, da sonst keine Unterstützung + für mga_vid eingebaut wird. Schaue dir auch den Abschnitt + <link linkend="tvout-mga-g400">Matrox TV-out</link> an. + <emphasis role="bold"> Wenn du nicht Linux benutzt</emphasis>, ist deine einzige + Möglichkeit der VIDIX-Treiber: Lies den Abschnitt <link linkend="vidix">VIDIX</link>. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">3Dfx Voodoo3/Banshee-Karten</emphasis>: Bitte siehe den Abschnitt + <link linkend="tdfxfb">tdfxfb</link>, um große Geschwindigkeitsvorteile zu nutzen. + Es ist wichtig, diese Schritte <emphasis>vor</emphasis> der Compilierung + von <application>MPlayer</application> durchzuführen, da sonst keine Unterstützung + für 3Dfx eingebaut wird. + Wenn du X benutzt, verwende mindestens <emphasis role="bold">4.2.0</emphasis>, da der + 3dfx Xv-Treiber in der Version 4.1.0 und davor nicht funktioniert. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">ATI-Karten</emphasis>: Der <link linkend="vidix">VIDIX</link>-Treiber + wird für folgende Karten bereitgestellt: + <emphasis role="bold">Radeon, Rage128, Mach64</emphasis> (Rage XL/Mobility, Xpert98). + Siehe auch die Dokumentation des TV-out im Abschnitt <link linkend="tvout-ati">ATI-Karten</link>, + damit du weißt, ob das TV-out deiner Karte unter Linux mit + <application>MPlayer</application> unterstützt wird. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">S3-Karten</emphasis>: Die Savage- und Virge/DX-Chips verfügen + über Hardwarebeschleunigung. Benutze eine XFree86-Version, die so neu wir möglich ist, + ältere Treiber sind buggy. Savage-Chips haben Probleme mit YV12-Darstellung, siehe + Abschnitt <link linkend="s3">S3 Xv</link> für Details. Ältere Trio-Karten haben keine + oder nur langsame Hardwareunterstützung. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">nVidia-Karten</emphasis>: Können oder können keine gute Wahl sein + für die Videowiedergabe. Wenn du eine GeForce2-Karte hast (oder neuer), ist es nicht + wahrscheinlich, dass sie ohne Fehler funktioniert. + <emphasis role="bold">Der in XFree86 eingebaute nVidia-Treiber unterstützt nicht auf + allen Karten YUV-Hardwarebeschleunigung.</emphasis> Du musst die Closed-Source-Treiber von + <ulink url="http://nvidia.com">nVidia.com</ulink> herunterladen. Siehe Abschnitt + <link linkend="nvidia">nVidia Xv-Treiber</link> für Details. Bitte siehe auch Abschnitt + <link linkend="tvout-nvidia">nVidia TV-out</link>, wenn du einen Fernseher verwenden möchtest. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">3DLabs GLINT R3 und Permedia3</emphasis>: Ein VIDIX-Treiber wird + bereitgestellt (pm3_vid). Bitte siehe Abschnitt <link linkend="vidix">VIDIX</link> für Details. + </para> + </listitem> + <listitem> + <para> + <emphasis role="bold">Andere Karten</emphasis>: keine der oben genannten? + <itemizedlist> + <listitem> + <simpara> + Probiere, ob der XFree86-Treiber (und deine Karte) Hardwarebeschleunigung unterstützen. + Siehe Abschnitt <link linkend="xv">Xv</link> für Details. + </simpara> + </listitem> + <listitem> + <simpara> + Sollten sie dies nicht tun, werden die Features unter deinem Betriebssystem nicht + unterstützt :( Wenn Hardwarebeschleunigung unter Windows funktioniert, bedeutet + dies nicht, dass sie unter Linux oder anderen Betriebssystemen funktioniert, das + hängt von den Treibern ab. Die meisten Hersteller stellen weder Linuxtreiber her, + noch veröffentlichen sie die Spezifikationen ihrer Chips - daher hast du Pech, + wenn du ihre Karten benutzt. + Siehe <xref linkend="non-yuv-cards"/>. + </simpara> + </listitem> + </itemizedlist> + </para> + </listitem> + </itemizedlist> + </para> + </sect2> + + + <sect2 id="non-yuv-cards" xreflabel="Non-YUV cards"> + <title>Nicht-YUV-Karten</title> + + <para> + Vollbildwiedergabe kann erreicht werden, indem entweder + <emphasis role="bold">Softwareskalierung</emphasis> aktiviert wird + (benutz die Option <option>-zoom</option> oder <option>-vf</option>, aber ich warne dich, + die ist langsam), oder durch den Wechsel zu einem kleineren Videomodus wie zum Beispiel + 352x288. Hast du keine YUV-Beschleunigung, wird letztere Methode empfohlen. + Der Wechsel des Videomodus kann durch die Option <option>-vm</option> aktiviert werden + und funktioniert mit folgenden Treibern: + <itemizedlist> + <listitem> + <simpara> + <emphasis role="bold">Benutzung von </emphasis> XFree86: Siehe Details in den Abschnitten + <link linkend="dga">DGA-Treiber</link> und <link linkend="x11">X11-Treiber</link>. + DGA wird empfohlen! Probiere auch DGA via SDL, das funktioniert manchmal besser. + </simpara> + </listitem> + <listitem> + <simpara> + <emphasis role="bold">Nicht-Benutzung von</emphasis> XFree86: Probiere die Treiber + in folgender Reihenfolge: + <link linkend="vesa">vesa</link>, + <link linkend="fbdev">fbdev</link>, + <link linkend="svgalib">svgalib</link>, + <link linkend="aalib">aalib</link>. + </simpara> + </listitem> + </itemizedlist> + </para> + </sect2> + + <!-- FIXME: finde eine logisch sinnvollere Ordnung für diesen Abschnitt --> + <sect2 id="cirrus-logic-cards" xreflabel="Cirrus-Logic-Karten"> + <title>Cirrus-Logic-Karten</title> + <itemizedlist> + <listitem> + <para> + GD 7548: verfügbar on-board und getestet in der Compaq Armada 41xx Notebook-Serie. + <itemizedlist> + <listitem> + <simpara> + XFree86 3: Funktioniert in 8/16bpp-Modi. Trotzdem, der Treiber ist übel langsam in + 800x600@16bpp. <emphasis role="bold">Empfohlen: 640x480@16bpp</emphasis> + </simpara> + </listitem> + <listitem> + <simpara> + XFree86 4: Der Xserver friert kurz nach dem Start ein, wenn Beschleunigung nicht + aktiviert ist, dann jedoch laufen die Dinge noch langsamer als mit XFree86 3. + Kein XVideo. + </simpara> + </listitem> + <listitem> + <simpara> + FBdev: Framebuffer kann mit dem <systemitem>clgenfb</systemitem>-Treiber im Kernel + aktiviert werden, auch wenn er bei mir nur mit 8bpp funktioniert hat, daher + unbrauchbar. Die clgenfb-Source musste um die 7548-ID vor der Compilierung + erweitert werden. + </simpara> + </listitem> + <listitem> + <simpara> + VESA: Die Karte ist nur VBE 1.2-fähig, daher kann VESA-Ausgabe nicht benutzt + werden. Kann mit UniVBE nicht umgangen werden. + </simpara> + </listitem> + <listitem> + <simpara> + SVGAlib: erkennt einen älteren Cirrus-Chip. Langsam, aber nutzbar mit der Option + <option>-bpp 8</option>. + </simpara> + </listitem> + </itemizedlist> + </para> + </listitem> + </itemizedlist> + </sect2> + </sect1> + + + <sect1 id="sound-cards"> + <title>Soundkarten</title> + + <itemizedlist> + <listitem> + <simpara> + <emphasis role="bold">Soundblaster Live!</emphasis>: Mit dieser Karte kannst du + AC3-Decodierung mit 4 oder 6 (<emphasis role="bold">5.1</emphasis>) anstatt 2 Kanälen + verwenden. Lies den Abschnitt <link linkend="swac3">Software-AC3-Decodierung</link>. + Für Hardware-AC3-Passthrough <emphasis role="bold">musst</emphasis> du ALSA 0.9 mit + OSS-Emulation verwenden! + </simpara> + </listitem> + <listitem> + <simpara> + <emphasis role="bold">C-Media mit S/PDIF out</emphasis>: Hardware-AC3-Passthrough + ist mit diesen Karten möglich, siehe Abschnitt + <link linkend="hwac3">Hardware-AC3-Decodierung</link>. + </simpara> + </listitem> + <listitem> + <simpara> + Features <emphasis role="bold">anderer Karten</emphasis> werden von + <application>MPlayer</application> nicht unterstützt. + <emphasis role="bold">Es wird dringend empfohlen, die Sektion <link linkend="audio">Soundkarte</link> zu lesen!</emphasis> + </simpara> + </listitem> + </itemizedlist> + </sect1> + + + <sect1 id="features"> + <title>Features</title> + + <itemizedlist> + <listitem> + <para> + Entscheide, ob du eine GUI benötigst. Ist dies der Fall, schau in Abschnitt + <link linkend="gui">GUI</link>, bevor du compilierst. + </para> + </listitem> + <listitem> + <para> + Wenn Du <application>MEncoder</application> (unseren super Allzweck-Encoder) + installieren möchtest, siehe Abschnitt + <link linkend="mencoder"><application>MEncoder</application></link>. + </para> + </listitem> + <listitem> + <para> + Wenn du eine V4L-kompatible <emphasis role="bold">TV-Tuner</emphasis>-Karte hast + und Filme mit <application>MPlayer</application> anschauen/grabben und encodieren + möchtest, lies den Abschnitt <link linkend="tv-input">TV-Input</link>. + </para> + </listitem> + <listitem> + <para> + Wenn du eine V4L-kompatible <emphasis role="bold">Radioempfänger</emphasis>karte hast + und mit <application>MPlayer</application> Radio hören oder aufnehmen möchtest, + lies den Abschnitt <link linkend="radio">radio</link>. + </para> + </listitem> + <listitem> + <para> + Es gibt Unterstützung für ein schickes <emphasis role="bold">OSD-Menü</emphasis>, + das benutzt werden kann. Siehe Abschnitt <link linkend="subosd">OSD-Menü</link>. + </para> + </listitem> + </itemizedlist> + + <para> + Baue dann <application>MPlayer</application>: +<screen>./configure make make install</screen> -</para> - -<para> -Zu diesem Zeitpunkt ist <application>MPlayer</application> benutzbar. Das Verzeichnis -<filename class="directory">$PREFIX/share/mplayer</filename> enthält die Datei -<filename>codecs.conf</filename>, die dem Programm mitteilt, welche -Codecs verfügbar sind und was diese können. Du brauchst die Datei nur, wenn du -Eigenschaften ändern möchtest, da die ausführbare Datei intern eine eigene -Kopie enthält. Überprüfe, ob du eine Kopie von <filename>codecs.conf</filename> einer -älteren <application>MPlayer</application>-Version in deinem -Home-Verzeichnis (<filename>~/.mplayer/codecs.conf</filename>) hast, und entferne diese. -</para> - -<para> -Beachte, dass die eingebaute und vom System bereitgestellte <filename>codecs.conf</filename> -ignoriert wird, wenn du eine <filename>codecs.conf</filename> im Verzeichnis -<filename>~/.mplayer/</filename>, hast. -Benutze diese nicht, wenn du nicht an den Interna von <application>MPlayer</application> -herumbasteln möchtest, da dies viele Probleme hervorrufen kann. Wenn du die Reihenfolge -der Suche nach Codecs ändern möchtest, benutze die Optionen <option>-vc</option>, -<option>-ac</option>, <option>-vfm</option>, oder <option>-afm</option> auf der -Kommandozeile oder in deiner Konfigurationsdatei (siehe Manpage). -</para> - - -<para> -Debian-Nutzer können ihr eigenes .deb-Paket bauen, das ist sehr leicht. -Führe nur <screen>fakeroot debian/rules binary</screen> -in <application>MPlayer</application>s Wurzelverzeichnis aus. Siehe -<link linkend="debian">Debian-Packaging</link> für detaillierte Informationen. -</para> - -<para> -<emphasis role="bold">Überprüfe immer die Ausgabe von </emphasis> -<filename>./configure</filename> und die Datei <filename>configure.log</filename>, -sie enthalten Informationen darüber, was eingebaut wird und was nicht. -Du möchtest dir vielleicht auch die Dateien -<filename>config.h</filename> und <filename>config.mak</filename> anschauen. -Wenn du manche Bibliotheken installiert hast, die von -<filename>./configure</filename> aber nicht erkannt werden, überprüfe auch -die entsprechenden Header-Dateien (normalerweise die -dev-Pakete) und ob deren -Versionen passen. Die Datei <filename>configure.log</filename> gibt -normalerweise Auskunft darüber, was fehlt. -</para> - -<para> -Obwohl sie nicht notwendig sind, sollten die Fonts installiert werden, um die -Funktionalität von OSD- und Untertiteldarstellung nutzen zu können. Die -empfohlene Methode dazu ist, eine TTF-Fontdatei zu installieren und -<application>MPlayer</application> anzuweisen, diese zu benutzen. -Siehe Abschnitt <link linkend="subosd">Untertitel und OSD</link> für Details. -</para> - -</sect1> - -<!-- ********** --> - -<sect1 id="gui"> -<title>Was ist mit der GUI?</title> - -<para> -Die GUI benötigt GTK 1.2.x oder GTK 2.0 (sie ist nicht vollständig GTK, aber -die Panels). Die Skins werden im PNG-Format gespeichert, daher müssen GTK, -<systemitem class="library">libpng</systemitem> (und deren Entwicklungskram, -normalerweise <systemitem class="library">gtk-dev</systemitem> genannt), -installiert sein. Du kannst die GUI durch Angabe von <option>--enable-gui</option> -während <filename>./configure</filename> aktivieren. Dann musst du, um den -GUI-Modus zu aktivieren, die Binärdatei <command>gmplayer</command> starten. -</para> - -<para> -Aus technischen Gründen kannst du die Option <option>-gui</option> nicht auf -der Kommandozeile verwenden. -</para> - -<para> -Da <application>MPlayer</application> kein Skin enthält, musst du eins -herunterladen, um die GUI benutzen zu können. Siehe -<ulink url="http://www.mplayerhq.hu/dload.html">Download-Seite</ulink>. -Sie sollten in das normale systemweite Verzeichnis -(<filename class="directory">$PREFIX/share/mplayer/skins</filename>) oder nach - <filename class="directory">$HOME/.mplayer/skins</filename> installiert werden. -<application>MPlayer</application> schaut nach Voreinstellung in diesen Verzeichnissen -nach einem Verzeichnis mit dem Namen <filename class="directory">default</filename>, - du kannst aber die Option <option>-skin <replaceable>newskin</replaceable></option> - oder die Konfigurationsdateianweisung - <literal>skin=newskin</literal> nutzen, um ein Skin im Verzeichnis - <filename class="directory">*/skins/newskin</filename> zu benutzen. -</para> -</sect1> - -<!-- ********** --> - -<sect1 id="fonts-osd"> -<title>Schriften und OSD</title> - -<para> -Du musst <application>MPlayer</application> mitteilen, welche Schriftart verwendet -werden soll, um in den Genuß von OSD und Untertiteln zu kommen. -Jede TrueType-Schriftart oder spezielle Bitmap-Schriftarten werden funktionieren. -TrueType-Schriftarten werden jedoch empfohlen, da sie weit besser aussehen, -entsprechend der Filmgröße skaliert werden können und mit verschiedenen Zeichensätzen -besser umgehen. -</para> - - -<sect2 id="truetype-fonts"> -<title>TrueType-Schriften</title> - -<para> - Es gibt zwei Möglichkeiten, TrueType-Schriften ans Laufen zu bekommen. - Die erste besteht darin, die Option <option>-font</option> auf der Kommandozeile - anzugeben. Diese Option ist vermutlich ein guter Kandidat für die Aufnahme - in deine Konfigurationsdatei (siehe Manpage für Details). - Die zweite besteht darin, einen <filename>subfont.ttf</filename> genannten Symlink - zu der Schriftart deiner Wahl zu erstellen. Führe entweder - <screen>ln -s <replaceable>/Pfad/zur/Schrift.ttf</replaceable> ~/.mplayer/subfont.ttf</screen> - für jeden User durch, oder erstelle einen systemweiten Symlink: - <screen>ln -s <replaceable>/Pfad/zur/Schrift.ttf</replaceable> $PREFIX/share/mplayer/subfont.ttf</screen> -</para> - -<para> - Wenn <application>MPlayer</application> mit - <systemitem class="library">fontconfig</systemitem>-Unterstützung compiliert wurde, - werden die oben genannten Methoden nicht funktionieren; statt dessen erwartet - <option>-font</option> einen <systemitem class="library">fontconfig</systemitem>-Schriftnamen, - und der Standard ist die Schriftart Sans-serif. Um eine Liste der - <systemitem class="library">fontconfig</systemitem> bekannten Dateien zu erhalten, - benutze <command>fc-list</command>. Beispiel: - -<screen>mplayer -font <replaceable>'Bitstream Vera Sans'</replaceable> <replaceable>anime.mkv</replaceable></screen> -</para> - -</sect2> - - -<sect2 id="bitmap-fonts"> -<title>Bitmap-Schriften</title> - -<para> -Wenn du aus einem bestimmten Grund Bitmap-Schriftwarten verwenden möchtest, lade dir einen Satz -von unserer Homepage herunter. Du kannst zwischen verschiedenen -<ulink url="http://www.mplayerhq.hu/MPlayer/releases/fonts/">ISO-Schriftarten</ulink> -und ein paar Sätzen von Schriftarten, die -<ulink url="http://www.mplayerhq.hu/MPlayer/contrib/fonts/">von Benutzern beigetragen</ulink> wurden, -in verschiedenen Zeichensätzen wählen. -</para> - -<para> -Entpacke die Datei, die du heruntergeladen hast nach -<filename class="directory">~/.mplayer</filename> oder -<filename class="directory">$PREFIX/share/mplayer</filename>. -Benenne dann eins der extrahierten Verzeichnisse um zu -<filename class="directory">font</filename>, oder erstelle einen Symlink dorthin, zum Beispiel: -<screen>ln -s <replaceable>~/.mplayer/arial-24</replaceable> ~/.mplayer/font</screen> -<screen>ln -s <replaceable>$PREFIX/share/mplayer/arial-24</replaceable> $PREFIX/share/mplayer/font</screen> -</para> - -<para> -Schriftarten sollten eine entsprechende <filename>font.desc</filename>-Datei haben, -die Positionen von Unicode-Schriften auf die aktuelle Codeseite des Untertiteltexts abbildet. -Eine andere Möglichkeit besteht darin, in UTF-8 codierte Untertitel zu verwenden und die Option -<option>-utf8</option> zu verwenden. Noch eine Möglichkeit besteht darin, die Untertiteldatei -umzubenennen zu <filename><video_name>.utf</filename> und sie im selben Verzeichnis wie -die Videodatei abzulegen. -</para> - -</sect2> - - -<sect2 id="osdmenu"> -<title>OSD-Menü</title> - -<para> -<application>MPlayer</application> hat eine komplett benutzerdefinierbare OSD-Menü-Schnittstelle. -</para> - -<note><simpara> -Das Menü Einstellungen ist momentan NICHT IMPLEMENTIERT! -</simpara></note> - -<orderedlist> -<title>Installation</title> -<listitem><simpara> - compiliere <application>MPlayer</application> mit Übergabe von <option>--enable-menu</option> - an <filename>./configure</filename> - </simpara></listitem> -<listitem><simpara> - stelle sicher, dass du ein OSD-Font installiert hast - </simpara></listitem> -<listitem><simpara> - kopiere <filename>etc/menu.conf</filename> in dein - <filename class="directory">.mplayer</filename>-Verzeichnis - </simpara></listitem> -<listitem><simpara> - kopiere <filename>etc/input.conf</filename> in dein - <filename class="directory">.mplayer</filename>-Verzeichnis oder in das systemweite - <application>MPlayer</application>-Konfigurationsverzeichnis (Standard: - <filename class="directory">/usr/local/etc/mplayer</filename>) - </simpara></listitem> -<listitem><simpara> - überprüfe und editiere <filename>input.conf</filename>, um Menüsteuerungstasten - zu aktivieren (das ist dort beschrieben). - </simpara></listitem> -<listitem><para> - starte <application>MPlayer</application> mit folgendem Beispiel: - <screen>$ mplayer -menu <replaceable>datei.avi</replaceable></screen> - </para></listitem> -<listitem><simpara> - drücke irgendeine von dir definierte Menütaste - </simpara></listitem> -</orderedlist> - -</sect2> -</sect1> - -<!-- ********** --> - -<sect1 id="rtc"> -<title>RTC</title> -<para> -Es gibt drei Zeitgebermethoden in <application>MPlayer</application>. - -<itemizedlist> -<listitem><simpara> -<emphasis role="bold">Um die alte Methode zu verwenden</emphasis>, musst du - gar nichts machen. Diese benutzt <systemitem>usleep()</systemitem>, um - A/V-Synchronisation abzustimmen, mit +/- 10ms Genauigkeit. Trotzdem muss manchmal - die Synchronisation noch feiner abgestimmt werden. - </simpara></listitem> -<listitem><para> -<emphasis role="bold">Der neue Zeitgeber</emphasis>-Code benutzt RTC (RealTime Clock, Echtzeituhr) - für diese Aufgabe, da dieser präzise 1ms-Timer besitzt. - Die Option <option>-rtc</option> aktivert diesen, es ist jedoch ein hierfür speziell konfigurierter - Kernel erforderlich. - Wenn du Kernel 2.4.19pre8 oder neuer laufen hast, kannst du die maximale RTC-Frequenz - für normale Benutzer durch das <systemitem class="systemname">/proc</systemitem>-Dateisystem - festlegen. Benutze folgenden Befehl, um RTC für normale Benutzer zu aktivieren - <screen>echo 1024 > /proc/sys/dev/rtc/max-user-freq</screen> - Du kannst die Effizienz des neuen Zeitgebers in der Statuszeile sehen. - Die Power Management-Funktionen der BIOSse mancher Notebooks mit speedstep-CPUs - vertragen sich nicht gut mit RTC. Audio und Video könnten Synchronisation verlieren. - Die externe Stromversorgung anzuschließen, bevor du dein Notebook einschaltest, - scheint zu helfen. - Bei manchen Hardwarekombinationen (bestätigt - während des Gebrauchs eines Nicht-DMA-DVD-Laufwerks auf einem ALi1541-Board) - führt der Gebrauch des RTC-Zeitgebers zu sprunghafter Wiedergabe. Es wird empfohlen, - in solchen Fällen die dritte Methode zu verwenden. - </para></listitem> -<listitem><simpara> - <emphasis role="bold">Der Code des dritten Zeitgebers</emphasis> wird mit der Option - <option>-softsleep</option> aktiviert. Der hat die Effizienz von RTC, benutzt RTC aber nicht. - Auf der anderen Seite benötigt er mehr CPU. - </simpara></listitem> -</itemizedlist> -</para> -</sect1> + </para> + + <para> + Zu diesem Zeitpunkt ist <application>MPlayer</application> benutzbar. Das Verzeichnis + <filename class="directory">$PREFIX/share/mplayer</filename> enthält die Datei + <filename>codecs.conf</filename>, die dem Programm mitteilt, welche + Codecs verfügbar sind und was diese können. Du brauchst die Datei nur, wenn du + Eigenschaften ändern möchtest, da die ausführbare Datei intern eine eigene + Kopie enthält. Überprüfe, ob du eine Kopie von <filename>codecs.conf</filename> einer + älteren <application>MPlayer</application>-Version in deinem + Home-Verzeichnis (<filename>~/.mplayer/codecs.conf</filename>) hast, und entferne diese. + </para> + + <para> + Beachte, dass die eingebaute und vom System bereitgestellte <filename>codecs.conf</filename> + ignoriert wird, wenn du eine <filename>codecs.conf</filename> im Verzeichnis + <filename>~/.mplayer/</filename>, hast. + Benutze diese nicht, wenn du nicht an den Interna von <application>MPlayer</application> + herumbasteln möchtest, da dies viele Probleme hervorrufen kann. Wenn du die Reihenfolge + der Suche nach Codecs ändern möchtest, benutze die Optionen <option>-vc</option>, + <option>-ac</option>, <option>-vfm</option>, oder <option>-afm</option> auf der + Kommandozeile oder in deiner Konfigurationsdatei (siehe Manpage). + </para> + + <para> + Debian-Nutzer können ihr eigenes .deb-Paket bauen, das ist sehr leicht. + Führe nur <screen>fakeroot debian/rules binary</screen> + in <application>MPlayer</application>s Wurzelverzeichnis aus. Siehe + <link linkend="debian">Debian-Packaging</link> für detaillierte Informationen. + </para> + + <para> + <emphasis role="bold">Überprüfe immer die Ausgabe von </emphasis> + <filename>./configure</filename> und die Datei <filename>configure.log</filename>, + sie enthalten Informationen darüber, was eingebaut wird und was nicht. + Du möchtest dir vielleicht auch die Dateien + <filename>config.h</filename> und <filename>config.mak</filename> anschauen. + Wenn du manche Bibliotheken installiert hast, die von + <filename>./configure</filename> aber nicht erkannt werden, überprüfe auch + die entsprechenden Header-Dateien (normalerweise die -dev-Pakete) und ob deren + Versionen passen. Die Datei <filename>configure.log</filename> gibt + normalerweise Auskunft darüber, was fehlt. + </para> + + <para> + Obwohl sie nicht notwendig sind, sollten die Fonts installiert werden, um die + Funktionalität von OSD- und Untertiteldarstellung nutzen zu können. Die + empfohlene Methode dazu ist, eine TTF-Fontdatei zu installieren und + <application>MPlayer</application> anzuweisen, diese zu benutzen. + Siehe Abschnitt <link linkend="subosd">Untertitel und OSD</link> für Details. + </para> + + </sect1> + + <!-- ********** --> + + <sect1 id="gui"> + <title>Was ist mit der GUI?</title> + + <para> + Die GUI benötigt GTK 1.2.x oder GTK 2.0 (sie ist nicht vollständig GTK, aber + die Panels). Die Skins werden im PNG-Format gespeichert, daher müssen GTK, + <systemitem class="library">libpng</systemitem> (und deren Entwicklungskram, + normalerweise <systemitem class="library">gtk-dev</systemitem> genannt), + installiert sein. Du kannst die GUI durch Angabe von <option>--enable-gui</option> + während <filename>./configure</filename> aktivieren. Dann musst du, um den + GUI-Modus zu aktivieren, die Binärdatei <command>gmplayer</command> starten. + </para> + + <para> + Aus technischen Gründen kannst du die Option <option>-gui</option> nicht auf + der Kommandozeile verwenden. + </para> + + <para> + Da <application>MPlayer</application> kein Skin enthält, musst du eins + herunterladen, um die GUI benutzen zu können. Siehe + <ulink url="http://www.mplayerhq.hu/dload.html">Download-Seite</ulink>. + Sie sollten in das normale systemweite Verzeichnis + (<filename class="directory">$PREFIX/share/mplayer/skins</filename>) oder nach + <filename class="directory">$HOME/.mplayer/skins</filename> installiert werden. + <application>MPlayer</application> schaut nach Voreinstellung in diesen Verzeichnissen + nach einem Verzeichnis mit dem Namen <filename class="directory">default</filename>, + du kannst aber die Option <option>-skin <replaceable>newskin</replaceable></option> + oder die Konfigurationsdateianweisung + <literal>skin=newskin</literal> nutzen, um ein Skin im Verzeichnis + <filename class="directory">*/skins/newskin</filename> zu benutzen. + </para> + </sect1> + + <!-- ********** --> + + <sect1 id="fonts-osd"> + <title>Schriften und OSD</title> + + <para> + Du musst <application>MPlayer</application> mitteilen, welche Schriftart verwendet + werden soll, um in den Genuß von OSD und Untertiteln zu kommen. + Jede TrueType-Schriftart oder spezielle Bitmap-Schriftarten werden funktionieren. + TrueType-Schriftarten werden jedoch empfohlen, da sie weit besser aussehen, + entsprechend der Filmgröße skaliert werden können und mit verschiedenen Zeichensätzen + besser umgehen. + </para> + + + <sect2 id="truetype-fonts"> + <title>TrueType-Schriften</title> + + <para> + Es gibt zwei Möglichkeiten, TrueType-Schriften ans Laufen zu bekommen. + Die erste besteht darin, die Option <option>-font</option> auf der Kommandozeile + anzugeben. Diese Option ist vermutlich ein guter Kandidat für die Aufnahme + in deine Konfigurationsdatei (siehe Manpage für Details). + Die zweite besteht darin, einen <filename>subfont.ttf</filename> genannten Symlink + zu der Schriftart deiner Wahl zu erstellen. Führe entweder + <screen>ln -s <replaceable>/Pfad/zur/Schrift.ttf</replaceable> ~/.mplayer/subfont.ttf</screen> + für jeden User durch, oder erstelle einen systemweiten Symlink: + <screen>ln -s <replaceable>/Pfad/zur/Schrift.ttf</replaceable> $PREFIX/share/mplayer/subfont.ttf</screen> + </para> + + <para> + Wenn <application>MPlayer</application> mit + <systemitem class="library">fontconfig</systemitem>-Unterstützung compiliert wurde, + werden die oben genannten Methoden nicht funktionieren; statt dessen erwartet + <option>-font</option> einen <systemitem class="library">fontconfig</systemitem>-Schriftnamen, + und der Standard ist die Schriftart Sans-serif. Um eine Liste der + <systemitem class="library">fontconfig</systemitem> bekannten Dateien zu erhalten, + benutze <command>fc-list</command>. Beispiel: + <screen>mplayer -font <replaceable>'Bitstream Vera Sans'</replaceable> <replaceable>anime.mkv</replaceable></screen> + </para> + + </sect2> + + + <sect2 id="bitmap-fonts"> + <title>Bitmap-Schriften</title> + + <para> + Wenn du aus einem bestimmten Grund Bitmap-Schriftwarten verwenden möchtest, lade dir einen Satz + von unserer Homepage herunter. Du kannst zwischen verschiedenen + <ulink url="http://www.mplayerhq.hu/MPlayer/releases/fonts/">ISO-Schriftarten</ulink> + und ein paar Sätzen von Schriftarten, die + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/fonts/">von Benutzern beigetragen</ulink> wurden, + in verschiedenen Zeichensätzen wählen. + </para> + + <para> + Entpacke die Datei, die du heruntergeladen hast nach + <filename class="directory">~/.mplayer</filename> oder + <filename class="directory">$PREFIX/share/mplayer</filename>. + Benenne dann eins der extrahierten Verzeichnisse um zu + <filename class="directory">font</filename>, oder erstelle einen Symlink dorthin, zum Beispiel: + <screen>ln -s <replaceable>~/.mplayer/arial-24</replaceable> ~/.mplayer/font</screen> + <screen>ln -s <replaceable>$PREFIX/share/mplayer/arial-24</replaceable> $PREFIX/share/mplayer/font</screen> + </para> + + <para> + Schriftarten sollten eine entsprechende <filename>font.desc</filename>-Datei haben, + die Positionen von Unicode-Schriften auf die aktuelle Codeseite des Untertiteltexts abbildet. + Eine andere Möglichkeit besteht darin, in UTF-8 codierte Untertitel zu verwenden und die Option + <option>-utf8</option> zu verwenden. Noch eine Möglichkeit besteht darin, die Untertiteldatei + umzubenennen zu <filename><video_name>.utf</filename> und sie im selben Verzeichnis wie + die Videodatei abzulegen. + </para> + + </sect2> + + + <sect2 id="osdmenu"> + <title>OSD-Menü</title> + + <para> + <application>MPlayer</application> hat eine komplett benutzerdefinierbare OSD-Menü-Schnittstelle. + </para> + + <note> + <simpara> + Das Menü Einstellungen ist momentan NICHT IMPLEMENTIERT! + </simpara> + </note> + + <orderedlist> + <title>Installation</title> + <listitem> + <simpara> + compiliere <application>MPlayer</application> mit Übergabe von <option>--enable-menu</option> + an <filename>./configure</filename> + </simpara> + </listitem> + <listitem> + <simpara> + stelle sicher, dass du ein OSD-Font installiert hast + </simpara> + </listitem> + <listitem> + <simpara> + kopiere <filename>etc/menu.conf</filename> in dein + <filename class="directory">.mplayer</filename>-Verzeichnis + </simpara> + </listitem> + <listitem> + <simpara> + kopiere <filename>etc/input.conf</filename> in dein + <filename class="directory">.mplayer</filename>-Verzeichnis oder in das systemweite + <application>MPlayer</application>-Konfigurationsverzeichnis (Standard: + <filename class="directory">/usr/local/etc/mplayer</filename>) + </simpara> + </listitem> + <listitem> + <simpara> + überprüfe und editiere <filename>input.conf</filename>, um Menüsteuerungstasten + zu aktivieren (das ist dort beschrieben). + </simpara> + </listitem> + <listitem> + <para> + starte <application>MPlayer</application> mit folgendem Beispiel: + <screen>$ mplayer -menu <replaceable>datei.avi</replaceable></screen> + </para> + </listitem> + <listitem> + <simpara> + drücke irgendeine von dir definierte Menütaste + </simpara> + </listitem> + </orderedlist> + + </sect2> + </sect1> + + <!-- ********** --> + + <sect1 id="rtc"> + <title>RTC</title> + <para> + Es gibt drei Zeitgebermethoden in <application>MPlayer</application>. + + <itemizedlist> + <listitem> + <simpara> + <emphasis role="bold">Um die alte Methode zu verwenden</emphasis>, musst du + gar nichts machen. Diese benutzt <systemitem>usleep()</systemitem>, um + A/V-Synchronisation abzustimmen, mit +/- 10ms Genauigkeit. Trotzdem muss manchmal + die Synchronisation noch feiner abgestimmt werden. + </simpara> + </listitem> + <listitem> + <para> + <emphasis role="bold">Der neue Zeitgeber</emphasis>-Code benutzt RTC (RealTime Clock, Echtzeituhr) + für diese Aufgabe, da dieser präzise 1ms-Timer besitzt. + Die Option <option>-rtc</option> aktivert diesen, es ist jedoch ein hierfür speziell konfigurierter + Kernel erforderlich. + Wenn du Kernel 2.4.19pre8 oder neuer laufen hast, kannst du die maximale RTC-Frequenz + für normale Benutzer durch das <systemitem class="systemname">/proc</systemitem>-Dateisystem + festlegen. Benutze folgenden Befehl, um RTC für normale Benutzer zu aktivieren + <screen>echo 1024 > /proc/sys/dev/rtc/max-user-freq</screen> + Du kannst die Effizienz des neuen Zeitgebers in der Statuszeile sehen. + Die Power Management-Funktionen der BIOSse mancher Notebooks mit speedstep-CPUs + vertragen sich nicht gut mit RTC. Audio und Video könnten Synchronisation verlieren. + Die externe Stromversorgung anzuschließen, bevor du dein Notebook einschaltest, + scheint zu helfen. + Bei manchen Hardwarekombinationen (bestätigt + während des Gebrauchs eines Nicht-DMA-DVD-Laufwerks auf einem ALi1541-Board) + führt der Gebrauch des RTC-Zeitgebers zu sprunghafter Wiedergabe. Es wird empfohlen, + in solchen Fällen die dritte Methode zu verwenden. + </para> + </listitem> + <listitem> + <simpara> + <emphasis role="bold">Der Code des dritten Zeitgebers</emphasis> wird mit der Option + <option>-softsleep</option> aktiviert. Der hat die Effizienz von RTC, benutzt RTC aber nicht. + Auf der anderen Seite benötigt er mehr CPU. + </simpara> + </listitem> + </itemizedlist> + </para> + </sect1> </chapter> diff --git a/DOCS/xml/de/ports.xml b/DOCS/xml/de/ports.xml index d6edcb8f61..3b506d96b0 100644 --- a/DOCS/xml/de/ports.xml +++ b/DOCS/xml/de/ports.xml @@ -1,272 +1,265 @@ <?xml version="1.0" encoding="iso-8859-1"?> <!-- in sync with r19820 --> -<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 Sourcetree 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 Binärcodecpaketen erstellt, du kannst sie von - <ulink url="http://www.debian-multimedia.org/">seiner Homepage</ulink> - mit apt-get herunterladen. -</para> -</sect2> - -<sect2 id="rpm"> -<title>RPM-Packaging</title> -<para> - Dominik Mierzejewski entwarf und wartet die inoffiziellen RPM-Packages von - <application>MPlayer</application> für Red Hat und Fedora Core. Sie sind von - 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 von <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. - Brauchst du 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-Derivaten. - 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. Sorge dann 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, musst 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 muss - <ulink url="http://www.sun.com/sparc/vis/mediaLib.html"><systemitem class="library">mLib</systemitem></ulink> - installiert sein. -</para> - -<para><emphasis role="bold">Vorbehalt:</emphasis></para> -<itemizedlist> - <listitem><para><emphasis role="bold">mediaLib</emphasis> wird in - <application>MPlayer</application> momentan aufgrund Fehlerhaftigkeit - per Voreinstellung <emphasis role="bold">deaktiviert</emphasis>. SPARC-Benutzer, - die MPlayer mit mediaLib-Unterstützung bauen, haben große grüne Farbstiche - gemeldet bei Video, das mit libavcodec en- und decodiert wurde. - Du kannst es, wenn du möchtest, aktivieren mit: -<screen> - $ ./configure --enable-mlib -</screen> - Du tust dies auf eigenes Risiko. x86-Benutzer sollten mediaLib - <emphasis role="bold">niemals</emphasis> benutzen, da dies zu sehr schlechter - Performance von MPlayer führt. - </para></listitem> -</itemizedlist> - -<para> - Um das Package zu erstellen, brauchst du 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>Lösung für gebräuchliche Probleme:</para> -<itemizedlist> -<listitem><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 einen 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> -</listitem> -<listitem> - <para><application>MPlayer</application> kann eine Schutzverletzung auslösen, wenn - mit win32codecs decodiert und encodiert wird: -<screen> +<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 Sourcetree 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 Binärcodecpaketen erstellt, du kannst sie von + <ulink url="http://www.debian-multimedia.org/">seiner Homepage</ulink> + mit apt-get herunterladen. + </para> + </sect2> + + <sect2 id="rpm"> + <title>RPM-Packaging</title> + <para> + Dominik Mierzejewski entwarf und wartet die inoffiziellen RPM-Packages von + <application>MPlayer</application> für Red Hat und Fedora Core. Sie sind von + 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 von <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. + Brauchst du 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-Derivaten. + 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. Sorge dann 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, musst 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 muss + <ulink url="http://www.sun.com/sparc/vis/mediaLib.html"><systemitem class="library">mLib</systemitem></ulink> + installiert sein. + </para> + + <para><emphasis role="bold">Vorbehalt:</emphasis></para> + <itemizedlist> + <listitem><para><emphasis role="bold">mediaLib</emphasis> wird in + <application>MPlayer</application> momentan aufgrund Fehlerhaftigkeit + per Voreinstellung <emphasis role="bold">deaktiviert</emphasis>. SPARC-Benutzer, + die MPlayer mit mediaLib-Unterstützung bauen, haben große grüne Farbstiche + gemeldet bei Video, das mit libavcodec en- und decodiert wurde. + Du kannst es, wenn du möchtest, aktivieren mit: + <screen> $ ./configure --enable-mlib </screen> + Du tust dies auf eigenes Risiko. x86-Benutzer sollten mediaLib + <emphasis role="bold">niemals</emphasis> benutzen, da dies zu sehr schlechter + Performance von MPlayer führt. + </para></listitem> + </itemizedlist> + + <para> + Um das Package zu erstellen, brauchst du 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>Lösung für gebräuchliche Probleme:</para> + <itemizedlist> + <listitem><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 einen 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> + </listitem> + + <listitem> + <para> + <application>MPlayer</application> kann eine Schutzverletzung auslösen, wenn + mit win32codecs decodiert und encodiert wird: +<screen>... Trying to force audio codec driver family acm... Opening audio decoder: [acm] Win32/ACM decoders sysi86(SI86DSCR): Invalid argument @@ -274,686 +267,668 @@ Couldn't install fs segment, expect segfault MPlayer interrupted by signal 11 in module: init_audio_codec -... -</screen> -Das liegt an einer Änderung an sysi86() in Solaris 10 und prä-Solaris Nevada b31-Releases. -Bei Solaris Nevada b32 wurde dieser Fehler behoben; trotzdem, Sun muss diese Lösung noch immer -nach Solaris 10 rückportieren. Das MPlayer-Projekt hat Sun auf das Problem hingewiesen, und ein Patch -für Solaris 10 ist gerade in Vorbereitung. Weitere Informationen über diesen Fehler können hier gefunden werden: - <ulink - url="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413"/>. - </para> -</listitem> - -<listitem><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 präsent 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> -</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 Standard-Installation verwenden, falls - du das <filename>Makefile</filename> ein bisschen von Hand editieren willst. - Ändere folgende beiden Zeilen von: -<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> - Mache dann (vom <application>MPlayer</application>-Quellverzeichnis aus) -<screen>cp DOCS/mplayer.1 . ; cp etc/codecs.conf .</screen> - und fahre dann fort mit Compilierung und Installation. -</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 bauen - hervorragend funktionieren. Die folgende Information wurde aus diesem HOWTO übernommen. -</para> - -<para> - Du benötigst GCC 3.4.0 oder neuer, GNU make 3.80 oder neuer und SDL 1.2.7 oder neuer. - HP cc wird kein lauffähiges Programm produzieren, frühere GCC-Versionen sind fehlerhaft. - 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-Geschwindigkeit. 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 +...</screen> + Das liegt an einer Änderung an sysi86() in Solaris 10 und prä-Solaris Nevada b31-Releases. + Bei Solaris Nevada b32 wurde dieser Fehler behoben; trotzdem, Sun muss diese Lösung noch immer + nach Solaris 10 rückportieren. Das MPlayer-Projekt hat Sun auf das Problem hingewiesen, und ein Patch + für Solaris 10 ist gerade in Vorbereitung. Weitere Informationen über diesen Fehler können hier gefunden werden: + <ulink + url="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413"/>. + </para> + </listitem> + + <listitem> + <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 präsent 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> + </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 Standard-Installation verwenden, falls + du das <filename>Makefile</filename> ein bisschen von Hand editieren willst. + Ändere folgende beiden Zeilen von: +<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> + Mache dann (vom <application>MPlayer</application>-Quellverzeichnis aus) + <screen>cp DOCS/mplayer.1 . ; cp etc/codecs.conf .</screen> + und fahre dann fort mit Compilierung und Installation. + </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 bauen + hervorragend funktionieren. Die folgende Information wurde aus diesem HOWTO übernommen. + </para> + + <para> + Du benötigst GCC 3.4.0 oder neuer, GNU make 3.80 oder neuer und SDL 1.2.7 oder neuer. + HP cc wird kein lauffähiges Programm produzieren, frühere GCC-Versionen sind fehlerhaft. + 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-Geschwindigkeit. 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> +/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. +/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 bauen von - <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>POWER3</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>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 für AIX 5.1 für den nicht-kommerziellen Gebrauch - frei zur Verfügung; wie auch immer, momentan gibt es keine - Soundausgabetreiber für AIX 5.2 oder 5.3. Dies bedeutet, dass - <emphasis role="bold">AIX 5.2 und 5.3 momentan keine MPlayer-Tonausgabe beherrschen.</emphasis> -</para> - -<para>Lösung für gebräuchliche Probleme:</para> - -<itemizedlist> - <listitem> - <para> - Wenn du folgende Fehlermeldung von <filename>configure</filename> erhältst: -<screen> -$ ./configure -... -Checking for iconv program ... no -No working iconv program found, use ---charset=US-ASCII to continue anyway. -Messages in the GTK-2 interface will be broken then. -</screen> - Das liegt daran, dass AIX Namen für Zeichensätze benutzt, die nicht dem Standard entsprechen; - daher wird die Konvertierung von MPlayer-Ausgaben zu anderen Zeichensätzen momentan nicht - unterstützt. Die Lösung besteht darin, folgendes zu tun: -<screen> -$ ./configure --charset=noconv -</screen> - </para> - </listitem> -</itemizedlist> - -</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://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">MPlayer-cygwin</ulink> - Mailing-Liste für 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> - Dies lässt <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 mit dem nativen DirectX-Video-Ausgabetreiber - (<option>-vo directx</option>) erzielt. 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 der DirectX-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. Gib dann - - <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> - relativ zu deiner <filename>mplayer.exe</filename>. -</para> - -<para> - Für die besten Resultate 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, versuche - - <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/dload.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 beschreibbar sein müssen, um <application>MPlayer</application> - starten zu können, aber nur auf manchen Systemen (NT4). - Versuche, 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>-Konsole - 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, musst du ohne - CPU-Erkennung zur Laufzeit compilieren. -</para> - -<para> - Hast du einen Pentium 4 und erlebst einen Absturz bei Verwendung von - RealPlayer-Codecs, musst 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 zwar für gewöhnlich ziemlich - trickreich sein, funktioniert jetzt aber 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. - Du kannst die grundlegende Compilierumgebung schaffen, indem du - <ulink url="http://developer.apple.com/tools/download/">Xcode</ulink> - von Apple installierst. - Besitzt du Mac OS X 10.3.9 oder später und QuickTime 7 - kannst du den Videoausgabetreiber <option>macosx</option> verwenden. -</para> - -<para> - Leider ermöglicht es dir diese grundlegende Umgebung nicht, von allen netten Features - von <application>MPlayer</application> Gebrauch zu machen. - Beispielsweise müssen die Bibliotheken <systemitem class="library">fontconfig</systemitem> - und <systemitem class="library">freetype</systemitem> auf deinem System installiert sein, - damit das OSD eincompiliert werden kann. - Im Gegensatz zu anderen Unices wie den meisten Linux- und BSD-Varianten besitzt - OS X kein Paketsystem, das im System enthalten ist. -</para> - -<para> - Es stehen mindestens zwei zur Wahl: - <ulink url="http://fink.sourceforge.net/">Fink</ulink> und - <ulink url="http://www.macports.org/">DarwinPorts</ulink>. - Beide bieten in etwa denselben Funktionsumfang (z.B. eine Menge Pakete, von denen - gewählt werden kann, Auflösung von Abhängigkeiten, die Möglichkeit, einfach - Pakete hinzuzufügen/zu aktualisieren/zu entfernen, etc...). - Fink bietet sowohl vorcompilierte Binärpakete als auch das Erstellen aus den - Quelldateien, wohingegen DarwinPorts nur das Erstellen aus den Quellen anbietet. - Der Autor dieser Anleitung hat DarwinPorts gewählt aus dem Grund, dass das - grundlegende Setup etwas leichtgewichtiger war. - Folgende Beispiele werden sich auf DarwinPorts beziehen. -</para> - -<para> - Um zum Beispiel <application>MPlayer</application> mit OSD-Unterstützung zu compilieren: - <screen>sudo port install pkgconfig</screen> - Dies wird <application>pkg-config</application> installieren, was ein System für die - Handhabung von Compiler-/Link-Flags für Bibliotheken ist. - Das <systemitem>configure</systemitem>-Skript von <application>MPlayer</application> - benutzt dies, um Bibliotheken angemessen zu erkennen. - Dann kannst du <application>fontconfig</application> auf ähnliche Weise installieren: - <screen>sudo port install fontconfig</screen> - Dann kannst du fortfahren mit der Ausführung von <application>MPlayer</application>s - <systemitem>configure</systemitem>-Skript (beachte die Umgebungsvariablen - <systemitem>PKG_CONFIG_PATH</systemitem> und <systemitem>PATH</systemitem>, - so dass <systemitem>configure</systemitem> die mit DarwinPorts installierten - Bibliotheken findet): - <screen>PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure</screen> -</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 Glück wurde <application>MPlayerOSX</application> von einem Mitglied des - <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 von den Quellen - zu bauen, 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 ein Checkout der SVN-Module durchzuführen, benutze: - -<screen> -svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx -svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main -</screen> -</para> - -<para> - Um <application>MPlayerOSX</application> zu bilden, musst du - so etwas ähnliches einrichten: - -<screen> -MPlayer_source_verzeichnis - | - |--->main (MPlayer SVN-Quelldateien) - | - |--->main_noaltivec (MPlayer SVN-Quelldateien konfiguriert mit --disable-altivec) - | - |--->mplayerosx (MPlayer OS X SVN-Quelldateien) -</screen> - - Du musst zuerst main und main_noaltivec erzeugen. -</para> - -<para> - Setze als nächstes eine globale Variable: - -<screen>export MACOSX_DEPLOYMENT_TARGET=10.3</screen> -</para> - -<para> - Dann konfiguriere: -</para> - -<para> - Wenn du für eine G4 oder eine neuere CPU mit AltiVec-Support konfigurierst, - mache folgendes: -<screen> -./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11 -</screen> - Wenn du für einen G3-getriebenen Rechner mit AltiVec konfigurierst, - mache 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> auf <systemitem>G3</systemitem> ändern. -</para> - -<para> - Fahre fort mit -<screen> -make -</screen> - und gehe dann ins Verzeichnis mplayerosx, gib dort folgendes 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 plattformspezifischen Änderungen dieser Systeme wurden nicht - in den Hauptquellbaum 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 Output mit <option>-vo x11</option> 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="http://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 der 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> - +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 bauen von + <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>POWER3</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>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 für AIX 5.1 für den nicht-kommerziellen Gebrauch + frei zur Verfügung; wie auch immer, momentan gibt es keine + Soundausgabetreiber für AIX 5.2 oder 5.3. Dies bedeutet, dass + <emphasis role="bold">AIX 5.2 und 5.3 momentan keine MPlayer-Tonausgabe beherrschen.</emphasis> + </para> + + <para>Lösung für gebräuchliche Probleme:</para> + + <itemizedlist> + <listitem> + <para> + Wenn du folgende Fehlermeldung von <filename>configure</filename> erhältst: +<screen>$ ./configure + ... + Checking for iconv program ... no + No working iconv program found, use + --charset=US-ASCII to continue anyway. + Messages in the GTK-2 interface will be broken then.</screen> + + Das liegt daran, dass AIX Namen für Zeichensätze benutzt, die nicht dem Standard entsprechen; + daher wird die Konvertierung von MPlayer-Ausgaben zu anderen Zeichensätzen momentan nicht + unterstützt. Die Lösung besteht darin, folgendes zu tun: + <screen>$ ./configure --charset=noconv</screen> + </para> + </listitem> + </itemizedlist> + + </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://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">MPlayer-cygwin</ulink> + Mailing-Liste für 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> + Dies lässt <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 mit dem nativen DirectX-Video-Ausgabetreiber + (<option>-vo directx</option>) erzielt. 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 der DirectX-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ützung)</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. Gib dann + + <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> + relativ zu deiner <filename>mplayer.exe</filename>. + </para> + + <para> + Für die besten Resultate 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, versuche + + <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/dload.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 beschreibbar sein müssen, um <application>MPlayer</application> + starten zu können, aber nur auf manchen Systemen (NT4). + Versuche, 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>-Konsole + 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, musst du ohne + CPU-Erkennung zur Laufzeit compilieren. + </para> + + <para> + Hast du einen Pentium 4 und erlebst einen Absturz bei Verwendung von + RealPlayer-Codecs, musst 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 zwar für gewöhnlich ziemlich + trickreich sein, funktioniert jetzt aber 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. + Du kannst die grundlegende Compilierumgebung schaffen, indem du + <ulink url="http://developer.apple.com/tools/download/">Xcode</ulink> + von Apple installierst. + Besitzt du Mac OS X 10.3.9 oder später und QuickTime 7 + kannst du den Videoausgabetreiber <option>macosx</option> verwenden. + </para> + + <para> + Leider ermöglicht es dir diese grundlegende Umgebung nicht, von allen netten Features + von <application>MPlayer</application> Gebrauch zu machen. + Beispielsweise müssen die Bibliotheken <systemitem class="library">fontconfig</systemitem> + und <systemitem class="library">freetype</systemitem> auf deinem System installiert sein, + damit das OSD eincompiliert werden kann. + Im Gegensatz zu anderen Unices wie den meisten Linux- und BSD-Varianten besitzt + OS X kein Paketsystem, das im System enthalten ist. + </para> + + <para> + Es stehen mindestens zwei zur Wahl: + <ulink url="http://fink.sourceforge.net/">Fink</ulink> und + <ulink url="http://www.macports.org/">DarwinPorts</ulink>. + Beide bieten in etwa denselben Funktionsumfang (z.B. eine Menge Pakete, von denen + gewählt werden kann, Auflösung von Abhängigkeiten, die Möglichkeit, einfach + Pakete hinzuzufügen/zu aktualisieren/zu entfernen, etc...). + Fink bietet sowohl vorcompilierte Binärpakete als auch das Erstellen aus den + Quelldateien, wohingegen DarwinPorts nur das Erstellen aus den Quellen anbietet. + Der Autor dieser Anleitung hat DarwinPorts gewählt aus dem Grund, dass das + grundlegende Setup etwas leichtgewichtiger war. + Folgende Beispiele werden sich auf DarwinPorts beziehen. + </para> + + <para> + Um zum Beispiel <application>MPlayer</application> mit OSD-Unterstützung zu compilieren: + <screen>sudo port install pkgconfig</screen> + Dies wird <application>pkg-config</application> installieren, was ein System für die + Handhabung von Compiler-/Link-Flags für Bibliotheken ist. + Das <systemitem>configure</systemitem>-Skript von <application>MPlayer</application> + benutzt dies, um Bibliotheken angemessen zu erkennen. + Dann kannst du <application>fontconfig</application> auf ähnliche Weise installieren: + <screen>sudo port install fontconfig</screen> + Dann kannst du fortfahren mit der Ausführung von <application>MPlayer</application>s + <systemitem>configure</systemitem>-Skript (beachte die Umgebungsvariablen + <systemitem>PKG_CONFIG_PATH</systemitem> und <systemitem>PATH</systemitem>, + so dass <systemitem>configure</systemitem> die mit DarwinPorts installierten + Bibliotheken findet): + <screen>PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure</screen> + </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 Glück wurde <application>MPlayerOSX</application> von einem Mitglied des + <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 von den Quellen + zu bauen, 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 ein Checkout der SVN-Module durchzuführen, benutze: + +<screen>svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx +svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main</screen> + </para> + + <para> + Um <application>MPlayerOSX</application> zu bilden, musst du + so etwas ähnliches einrichten: + +<screen>MPlayer_source_verzeichnis +| +|--->main (MPlayer SVN-Quelldateien) +| +|--->main_noaltivec (MPlayer SVN-Quelldateien konfiguriert mit --disable-altivec) +| +|--->mplayerosx (MPlayer OS X SVN-Quelldateien)</screen> + + Du musst zuerst main und main_noaltivec erzeugen. + </para> + + <para> + Setze als nächstes eine globale Variable: + + <screen>export MACOSX_DEPLOYMENT_TARGET=10.3</screen> + </para> + + <para> + Dann konfiguriere: + </para> + + <para> + Wenn du für eine G4 oder eine neuere CPU mit AltiVec-Support konfigurierst, + mache folgendes: + + <screen>./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11</screen> + + Wenn du für einen G3-getriebenen Rechner mit AltiVec konfigurierst, + mache 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> auf <systemitem>G3</systemitem> ändern. + </para> + + <para> + Fahre fort mit + <screen>make</screen> + und gehe dann ins Verzeichnis mplayerosx, gib dort folgendes 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 plattformspezifischen Änderungen dieser Systeme wurden nicht + in den Hauptquellbaum 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 Output mit <option>-vo x11</option> 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="http://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 der 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> |