Grundlegende Verwendung von <application>MEncoder</application> Eine komplette Liste der MEncoder-Optionen und Beispielen findest du in der Man Page. Eine Reihe praktischer Beispiele und detaillierter Anleitungen zur Anwendung verschiedener Encodier-Parameter findet du in den Encodier-Tipps (im Moment nur engl.), die aus verschiedenen Mailing-Listen-Threads von MPlayer-Nutzern zusammengestellt wurden. Durchsuche die Archive nach einer Fülle von Diskussionen über alle Aspekte der und Problemen mit der Encodierung mittels MEncoder. Auswahl der Codecs und Containerformate Audio- und Video-Codecs für die Encodierung werden mit den Optionen und respective gewählt. Gib zum Beispiel folgendes ein mencoder -ovc help um alle von der MEncoder-Version auf deinem Rechner unterstützten Video-Codecs aufzulisten. Die folgenden Wahlmöglichkeit stehen zur Verfügung: Audio-Codecs: Audio-CodecnameBeschreibung mp3lame Encodiere nach VBR, ABR oder CBR MP3 mittels LAME lavc Verwende einen der Audio-Codecs von libavcodec faac FAAC AAC Audio-Encoder toolame MPEG Audio Layer 2 Encoder twolame MPEG Audio Layer 2 Encoder basierend auf tooLAME pcm Unkomprimierter PCM-Audio copy Nicht neu codieren, kopiere einfach nur komprimierte Frames Video-Codecs: Video-CodecnameBeschreibung lavc Verwende einen der Video-Codecs von libavcodec xvid XviD, MPEG-4 Advanced Simple Profile (ASP) Codec x264 x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 Codec nuv NuppelVideo, von Echtzeit-Anwendungen verwendet raw Unkomprimierte Video-Frames copy Nicht neu codieren, kopiere einfach nur komprimierte Frames frameno Verwendet zur 3-pass-Encodierung (nicht empfohlen) Ausgabe-Containerformate werde mittel der Option gewählt. Gib folgendes ein mencoder -of help um alle von der MEncoder-Version auf deinem Rechner unterstützten Video-Codecs aufzulisten. Die folgenden Wahlmöglichkeit stehen zur Verfügung: Containerformate: Name des ContainerformatsBeschreibung lavf Einer der von libavformat unterstützten Contaliner avi Audio-Video Interleaved mpeg MPEG-1 und MPEG-2 PS rawvideo raw-Video-Stream (kein Muxen - nur ein Video-Stream) rawaudio raw-Audio-Stream (kein Muxen - nur ein Audio-Stream) Der AVI-Container ist das ursprüngliche Containerformat für MEncoder, was bedeutet, dass es der am besten gehandhabte ist und derjenige für welchen MEncoder entworfen wurde. wie oben angemerkt können weitere Containerformate angewandt werden, jedoch kann es bei deren Gebrauch zu Problemen kommen. libavformat-Container: Wenn du für das Muxen der Ausgabedatei libavformat verwendest (mittels ), wird das passende Containerformat nach der Erweiterung der Ausgabedatei ermittelt. Du kannst besonderes Containerformat mit Hilfe der Option von libavformat erzwingen. libavformat ContainernameBeschreibung mpg MPEG-1 und MPEG-2 PS asf Advanced Streaming Format avi Audio-Video Interleaved wav Waveform Audio swf Macromedia Flash flv Macromedia Flash Video rm RealMedia au SUN AU nut NUT offener Container (experimentell und noch nicht Spec-konform) mov QuickTime mp4 MPEG-4 Format dv Sony Digital Video Container Wie du siehst, erlaubt libavformat MEncoder, in eine beachtliche Vielfalt an Containern zu muxen. Leider solltest du wirklich Paranoia angesichts der resultierenden Datei schieben, da MEncoder nicht von Anfang an für die Unterstützung anderer Containerformate als AVI entworfen wurde. Überprüfe bitte sicherheishalber, ob die Audio-/Video-Synchronisierung OK ist und ob die Datei von anderen Playern als MPlayer wiedergegeben werden kann. Beispiel: Erzeugen eines Macromedia Flash Video, das in einem Web-Browser mit dem Macromedia Flash Plugin abgespielt werden kann: mencoder input.avi -o output.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ -srate 22050 Auswahl von Eingabedatei oder -gerät MEncoder kann aus Dateien oder direkt von einer DVD- oder VCD-Disk encodieren. Schließe einfach den Dateinamen in der Befehlszeile mit ein, um von einer Datei, oder Titelnummer bzw. Tracknummer, um von einem DVD-Titel oder VCD-Track zu ecodieren. Wenn du bereits einmal eine DVD auf deine Festplatte kopiert hast (du kannst ein Tool wie etwa dvdbackup verwenden, auf den meisten Systemen verfügbar), und willst von der Kopie encodieren, solltest du nach wie vor die Syntax benutzen, zusammen mit gefolgt vom Pfad zur kopierten DVD-Root. Die Optionen und können auch dazu genutzt werden, die Pfade zu den Geräte-Nodes zu überschreiben, um direkt von der Disk zu lesen, falls die Standardoptionen /dev/dvd und /dev/cdrom auf deinem System nicht funktionieren. Wenn du von einer DVD encodierst, ist es oft wünschenswert, ein zu encodierendes Kapitel oder einen Bereich von Kapiteln auszuwählen. Du kannst zu diesem Zweck die Option nutzen. Zum Beispiel wird 1-4 nur die Kapitel 1 bis 4 der DVD encodieren. Dies ist besonders nützlich, wenn du eine für zwei CDs bestimmte Encodierung mit 1400 MB durchführen willst, da du sicherstellen kannst, dass der Split exakt an den Kapitelgrenzen stattfindet, anstatt mitten in einer Szene. Besitzt du eine unterstützte TV-Capture-Karte, kannst du auch von einem TV-In-Gerät encodieren. Verwende Kanalnummer als Dateinamen und zur Konfiguration der zahlreichen Aufnahmeeinstellungen. Der DVB-Input funktioniert ähnlich. Encodieren von 2-pass-MPEG4 ("DivX") Der Name kommt daher, dass diese Methode die Datei zweimal encodiert. Die erste Encodierung (synchronisierter Durchgang) erzeugt einige temporäre Dateien (*.log) mit einer Größe von ein paar Megabyte, lösche diese noch nicht (du kannst dabei die AVI löschen oder vielmehr einfach kein Video erstllen, indem du sie nach /dev/null umadressierst). Im zweiten Durchgang, wird die 2-pass-Ausgabedatei erzeugt, indem die Biitraten-Daten der temporären Dateien genutzt werden. Die sich daraus ergebende Datei wird eine viel bessere Bildqualität besitzen. Wenn du das erste Mal davon gehört hast, solltest du einige im Netz verfügbare Handbücher zu Rate ziehen. Kopieren eines Audio-Tracks 2-pass-Encodierung des zweiten Tracks einer DVD nach einer MPEG4 ("DivX") AVI-Datei während des gleichzeitigen Kopierens des Audio-Tracks. mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac copy -o output.avi Encodieren eines Audio-Tracks 2-pass-Encodierung einer DVD nach einer MPEG4 ("DivX") AVI-Datei während des gleichzeitigen Encodierens des Audio-Tracks nach MP3. Sei bei der Anwendung dieser Methode vorsichtig, da sie in einigen Fällen zur Audio-/Video-Desynchronisierung führen kann. mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac mp3lame -lameopts vbr=3 -o output.avi Encodieren ins MPEG-Format MEncoder kann Ausgabedateien im Format MPEG (MPEG-PS) erzeugen. Gewöhnlich, wenn du MPEG1- oder MPEG2-Videos benutzt, tust du dies, weil du in ein erzwungenes Format wie SVCD, VCD oder DVD encodierst. die spezifischen Anforderungen an diese Formate werden im Abschnitt Verwenden des MEncoder zum Erzeugen VCD/SVCD/DVD-konformer Dateien beschrieben. Um das Format der Ausgabedatei von MEncoder zu ändern, nimm die Option . Beispiel: mencoder input.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy other_options -o output.mpg Erzeugen einer für das Abspielen auf Systemen mit minimalem Multimedia-Support geeigneten MPEG1-Datei, wie etwa auf Standard-Windows-Installationen: mencoder input.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -o output.mpg -oac lavc -ovc lavc \ -lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 Hinweis: Wenn dich die Video-Qualität des zweiten Durchgangs aus irgend einem Grund nicht zufrieden gestellt hat, kannst du deine Encodierung mit einer anderen Ziel-Bitrate erneut durchlaufen lassen, vorausgesetzt du hast die Statistikdateien des vorherigen Durchgangs gessichert. Dies ist möglich, weil das Primärziel der Statistikdateien die Aufzeichnung der Komplexität jedes Frames ist, was nicht allzusehr von der Bitrate abhängt. Du solltest daher beachten, dass du die besten Ergebnissebekommst, wenn alle Durchgänge mit nicht zu sehr voneinander abweichenden Ziel-Bitraten durchlaufen werden. Reskalierung von Filmen Oft taucht die Notwendigkeit auf, die Größe der Bilder eines Films zu ändern. Das kann viele Gründe haben: das Wachsen der Dateigröße, Netzwerkbandbreite etc. Die meisten Leute reskalieren gerade beim Konvertieren von DVDs oder SVCDs nach DivX AVI. Wenn du reskalieren willst, lies den Abschnitt Beibehalten des Seitenverhältnisses. Der Skalierungsprozess wird vom scale-Video-Filter verarbeitet: . Seine Qualität kann mit der Option gesetzt werden. Ist sie nicht angegeben, wird MEncoder 2: bikubisch verwenden. Anwendung: mencoder input.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=640:480 -o output.avi Kopieren von Streams MEncoder kann Input-Streams auf zwei Arten verarbeiten: encodiere oder kopiere sie. Dieser Abschnitt handelt über das Kopieren. Video-Stream (option ): damit kann man nette Sachen machen :) Wie FLI oder VIVO oder MPEG1-Video in eine AVI-Datei legen (nicht konvertieren!)! Sicherlich kann nur MPlayer solche Dateien abspielen :) Und es hat tatsächlich keine wirkliche Daseinsberechtigung. Rational: Das Kopieren eines Video-Stream copying kann zum Beispiel dann nützlich sein, wenn nur der Audio-Stream encodiert werden muß (wie unkomprimiertes PCM nach MP3). Audio-Stream (Option ): unkompliziert. Es ist möglich, eine exterene Audio-Datei (MP3, WAV) herzunehmen und sie in einen Ausgabe-Stream zu muxen. Nimm dazu die Option . das Anwenden von , um von einem Containerformat zum anderen zu kopieren, kann erfordern, um das Audio-Format-Tag der Originaldatei beizubehalten. Zum Beispiel, du eine NSV-Datei mit AAC-Audio in einen AVI-Container konvertierst, wird der Audio-Format-Tag fehlerhaft und er muß geändert werden. codecs.conf enthält eine Liste von Audio-Format-Tags. Beispiel: mencoder input.nsv -oac copy -fafmttag 0x706D -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o output.avi Encodieren von mehreren Input-Bilddateien (JPEG, PNG, TGA, SGI) MEncoder ist in der Lage, Filme aus einer oder mehreren JPEG-, PNG- oder TGA-Dateien zu erzeugen. Mit einem einfachen framecopy kann es MJPEG (Motion JPEG), MPNG (Motion PNG) oder MTGA (Motion TGA) Dateien generieren. Erläuterung des Prozesses: MEncoder decodiert das/die Input-Bild(er) mitttels libjpeg (beim Decodieren von PNGs nimmt er libpng). MEncoder führt dann das decodierte Bild dem gewählten Video-Kompressor zu (DivX4, XviD, FFmpeg msmpeg4, etc). Beispiele Die Erklärung der Option steht in der Man Page. Erzeugen einer MPEG4-Datei aus allen im aktuellen Verzeichnis liegenden JPEG-Dateien: mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi Erzeugen einer MPEG4-Datei aus einigen im aktuellen Verzeichnis liegenden JPEG-Dateien: mencoder mf://frame001.jpg,frame002.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi Erzeugen einer MPEG4-Datei aus einer eindeutig Liste von JPEG-Dateien (list.txt in aktuellem Verzeichnis enthält die Liste von Dateien, die als Quelle genutzt werden sollen, eine pro Zeile): mencoder mf://@list.txt -mf w=800:h=600:fps=25:type=jpg \ -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi Erzeugen einer Motion JPEG (MJPEG) Datei aus allen im aktuellen Verzeichnis liegenden JPEG-Dateien: mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o output.avi Erzeugen einer unkomprimierten Datei aus allen PNG-Dateien im aktuellen Verzeichnis: mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi Die Breite muß ein mehrfacher Integerwert von 4 sein, es ist eine Einschränkung des RAW RGB AVI Formats. Erzeugen einer Motion PNG (MPNG) Datei aus allen PNG-Dateien im aktuellen Verzeichnis: mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi Erzeugen einer Motion TGA (MTGA) Datei aus allen TGA-Dateien im aktuellen Verzeichnis: mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.avi Extraieren von DVD-Untertiteln in eine VOBsub-Datei MEncoder kann Untertitel aus einer DVD in VOBsub-formatierte Dateien extrahieren. Diese bestehen aus einem Paar Dateien mit den Endungen .idx und .sub und sind für gewöhnlich in ein einzelnes .rar-Archiv gepackt. MPlayer kann diese mit den Optionen und abspielen. Du legst den Basisnamen der Ausgabedateien (z.B ohne die Erweiterung .idx oder .sub) mittels fest und den Index für diesen Untertitel der resultierenden Dateien mit . Stammt der Input nicht von einer DVD, solltest du verwenden, um die zur Konstruktion der resultierenden .idx-Datei benötigten .ifo-Datei anzugeben. Stammt der Input nicht von einer DVD und du besitzt die .ifo-Datei nicht, muß du die Option anwenden, um ihn wissen zu lassen, welche Sprach-ID in die .idx-Datei eingefügt werden soll. Jeder Start wird den laufenden Untertitel anhängen, falls die .idx- und .sub-Dateien bereits existieren.Also solltest du jede von beiden vor dem Start entfernen. Kopieren zweier Untertitel aus einer DVD während einer 2-pass-Encodierung rm subtitles.idx subtitles.sub mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5 Kopieren eines französichen Untertitel aus einer MPEG-Datei rm subtitles.idx subtitles.sub mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 -vobsuboutid fr -sid 1 -nosound -ovc copy Beibehalten des Seitenverhältnisses Dateien von DVDs und SVCDs (z.B. MPEG1/2) enthalten einen Wert für das Seitenverhältnis, welcher beschreibt, wie der Player den Video_Stream skalieren soll, damit Menschen keine Eierköpfe kriegen (Bsp.: 480x480 + 4:3 = 640x480). Beim Encodieren nach AVI-(DivX)-Dateien musst du dir bewusst sein, dass AVI-Header diesen Wert nicht abspeichern. Das Reskalieren des Films ist ätzend und zeitaufwändig, da muß es doch einen besseren Weg geben! Es gibt ihn MPEG4 besitzt ein einzigartiges Feature: der Video-Stream kann sein benötigtes Seitenverhältnis enthalten. ja, genau wie MPEG1/2 (DVD, SVCD) und H.263 Dateien. Bedauerlicherweise gibt es abgesehen von MPlayer wenige Video-Player, die dieses MPEG4-Attribut unterstützen. Dieses Feature kann nur mit dem mpeg4-Codec von libavcodec verwendet werden. Vergiss nicht: obwohl MPlayer die erzeugte Datei korrekt abspielen wird, könnten andere Player das verkehrte Seitenverhältnis benutzen. Du solltest auf jeden Fall die schwarzen Bänder oberhalb und unterhalb des Filmbildes abschneiden. In der Man Page steht mehr zur Verwendung der cropdetect- und crop-Filter. Anwendung mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -vf crop=714:548:0:14 -oac copy -o output.avi