Mencoder kann z.B. zum Umkodieren von Videos, zum Rippen von DVDs oder zur TV-Aufnahme verwendet werden. Das Programm steckt im Paket
mencoder
- Repository http://www.debian-multimedia.org/ wird benötigt
Ausführliche Dokumentation erhält man mit der Doku des Mplayer. Mencoder wird in der Kommandozeile bedient. Ein Befehl setzt sich aus vielen Optionen zusammen, von denen unten einige wichtige genannt werden.
Videoquelle angeben
- datei.mpg
- datei.mpg steht für eine bestehende Videodatei, die umcodiert werden soll
- dvd://01 -dvd-device /dev/hdb
- dvd:// steht für eine Aufnahme von DVD. Hinter dvd:// wird die Nummer des aufzunehmenden Titels auf der DVD eingetragen. -dvd-device gibt das DVD-Laufwerk an, in diesem Beispiel /dev/hdb.
- tv:// -tv driver=v4l2:width=768:height=576:norm=pal
- tv:// steht für eine Aufnahme von der TV-Karte. Als driver wird je nach TV-Karte v4l oder v4l2 eingetragen. width und height bestimmen die gewünschte Auflösung der zu speichernden Videodatei in Pixeln, z.B. 768*576, 640*480 oder 512*384 (alle im Breite/Höhe-Verhältnis 4:3). pal ist der TV-Standard in Deutschland mit dem Breite/Höhe-Verhältnis 4:3.
Tonspur und Untertitel einer DVD
- -aid 128
- -aid gibt die Tonspur einer DVD an (s.u.)
- -sid 0
- -sid gibt -falls benötigt- den Untertitel einer DVD an (s.u.)
neuen Videocodec wählen
- -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=5000
- -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000
- -ovc wählt in diesem Beispiel mit lavc die Codecs der libavcodec-Familie
- -lavcopts bestimmt lavc-Optionen und -Einstellungen
- vcodec: wählt einen Codec aus der libavcodec-Familie, z.B. mpeg2video oder den DivX-kompatiblen mpeg4
- vbitrate: Bitrate. Höhere Bitraten führen zu eine besseren Qualität, produzieren jedoch deutlich größere Dateien.
- -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vpass=1
- -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vpass=2
- vpass: für 2-Pass-Kodierung einer DivX-Datei. vpass=1 analysiert die Ursprungsdatei und speichert das Ergebnis in divx2pass.log, vpass=2 codiert dann im zweiten Schritt als DivX. Bei zwei Kodierdurchgängen wird die verfügbare durchschnittliche Bitrate auf den gesamten Film variabel verteilt. Das führt zu einer besseren Qualität.
interne Dateikennung
- -ffourcc DX50
- der lavc-Codec mpeg4 benennt seine Dateien intern als FMP4, was von vielen Playern nicht verstanden wird. Zur besseren Kompatibilität wird diese Kennung in die typische DivX-Kennung DX50 geändert, man kann auch DIVX eingeben.
Videofilter
- -vf pp=lb,scale=640:480,crop=496:272:8:48
- -vf leitet eine Filterliste ein, die kommagetrennt angegeben wird und in der eingegebenen Reihenfolge abgearbeitet wird; in diesem Fall also scale vor crop
- -vf pp=lb
- lb ist ein einfacher Deinterlacing-Filter, er wird zur TV-Aufnahme und zum Rippen von DVDs benötigt
- -vf scale=640:480
- scale skaliert den Film auf eine neue Größe, z.B. 640*480 oder 512*384 Pixel. Das Anzeigeformat des Films (in diesem Beispiel 4:3) muss man dabei genau beachten, sonst wird die Aufnahme verzerrt.
- -vf scale -zoom -xy 640
- Alternative zum Beispiel oben. Hier wird nur die neue Filmbreite angeben, die Höhe wird unter Beibehaltung des ursprünglichen Anzeigeformats angepasst.
- -vf crop=496:272:8:48
- Schneidet z.B. schwarze Ränder von einem Film ab. In diesem Beispiel werden links und rechts je 8 Pixel abgeschnitten, oben und unten je 48. Der resultierende Film hat dann 496*272 Pixel. Daraus ergibt sich, dass er mit schwarzen Rändern 512*368 Pixel groß war. Die 4 Werte bedeuten NeueBreite:NeueHöhe:abgeschnittenerRandLinks:abgeschnittenerRandOben, so können die abgeschnittenen Ränder oben/unten bzw. links/rechts auch unterschiedlich gross sein. Die Zahlenwerte für crop= können automatisch herausgefunden und dann getestet werden mit
mplayer film.avi -vf cropdetect mplayer film.avi -vf crop=496:272:8:48
neuen Audiocodec wählen
- -oac wählt in diesen Beispielen mit mp3lame den verbreiteten mp3-Encoder Lame bzw. mit lavc die Codecs der libavcodec-Familie
- -oac mp3lame -lameopts cbr:br=128
- -lameopts bestimmt Einstellungen des mp3lame-Codecs
- cbr: bestimmt eine konstante Audio-Bitrate
- br: bestimmt die Audio-Bitrate, z.B. 192 oder 128
- -oac lavc -lavcopts acodec=ac3:abitrate=192
- -lavcopts bestimmt Einstellungen des lavc-Codecs
- acodec: wählt einen Codec aus der libavcodec-Familie, z.B. den Dolby-Digital-Codec ac3, der in Film-DVD's verwendet wird
- abitrate: bestimmt die Audio-Bitrate, z.B. 192
Audiofilter
- -af volnorm
- -af definiert wie oben -vf eine Filterliste, diesmal für Audiofilter
- volnorm normalisiert die Lautstärke der Tonspur des Videos. Laute Passagen werden etwas gedämpft, zu leise Stellen in ihrer Lautstärke angehoben.
Aufnahme-Ausschnitt
- -ss 20:50
- -ss startet eine Testaufnahme z.B. ab der Filmposition 20min50sec
- -endpos 0:20
- -endpos beendet die Testaufnahme z.B. nach 0min20sec
Ausgabedatei wählen
- -of avi -o out.avi
- -of mpeg -o out.mpg
- -o /dev/null
- -of gibt das Ausgabeformat an, z.B. avi oder mpeg
- -o gibt den Namen der Ausgabedatei an, z.B. out.avi oder out.mpg
- /dev/null wird für eine 2-Pass-Kodierung benötigt
Beispiel: einfache Kodierung mit dem mpeg2-Codec
mencoder film.avi -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=5000 -oac mp3lame -lameopts cbr:br=128 -of avi -o out.avi
Beispiel: Kodieren und schwarze Ränder abschneiden
Zuerst wird der Ursprungsfilm eine Weile durch verschiedene Szenen laufen gelassen mit
mplayer film.avi -vf cropdetect
Das Ergebis wie z.B.
[CROP] Crop area: X: 2..510 Y: 45..321 (-vf crop=496:272:8:48).% 0 0
- entscheidend ist eine Angabe wie 496:272:8:48
kann dann noch getestet werden mit
mplayer film.avi -vf crop=496:272:8:48
Endgültige Kodierung z.B.
mencoder film.avi -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=5000 -vf crop=496:272:8:48 -oac mp3lame -lameopts cbr:br=128 -af volnorm -of avi -o out.avi
Beispiel: ein Ausschnitt als Testaufnahme
mencoder film.avi -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=5000 -oac mp3lame -lameopts cbr:br=128 -ss 20:50 -endpos 0:20 -of avi -o out.avi
Beispiel: 2-Pass DivX-Kodierung
mencoder film.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts cbr:br=128 -o /dev/null mencoder film.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vpass=2 -ffourcc DX50 -oac mp3lame -lameopts cbr:br=128 -of avi -o out.avi
Beispiel: TV-Aufnahme
Vor der Aufnahme wird der Sender mit einem TV-Viewer eingestellt. Dann muss der Viewer wieder geschlossen werden. Mit kmix den roten Punkt zur Aufname markieren
Reiter Eingang, Regler Line Reiter Eingang, Regler Capture Reiter Eingang, Regler AC97
Ton aussteuern mit kmix
Reiter Eingang, Regler Line Reiter Eingang, Regler AC97
Aufnahme:
mencoder tv:// -tv driver=v4l2:width=768:height=576:norm=pal -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=5000 -oac mp3lame -lameopts cbr:br=128 -of avi -o out.avi
- beendet wird die Aufnahme mit Strg-c
- Die Möglichkeit zur TV-Aufnahme und direkten Kodierung des Videos ist abhängig von der Rechenleistung des Computers. Dies Beispiel einer Aufnahme funktioniert mit einem AMD Athlon XP 1800+ und 512 MB RAM. Eine Videobitrate von 9800 mit mpeg2-Codec führte auch auf einem Athlon 2900+ mit 3 GB RAM noch zu einer hakeligen Aufnahme.
Beispiel: DVD rippen
zusätzlich benötigte Pakete:
libdvdcss2 lsdvd
- Repository http://www.debian-multimedia.org/ wird benötigt
lsdvd zeigt alle Titel und Kapitel der DVD an. Den Hauptfilm erkennt man gewöhnlich an seiner Länge.
lsdvd /dev/hdb
- liegt ein Link von der DVD-Gerätedatei auf die Datei /dev/dvd, dann reicht das Kommando lsdvd
- die Nummer des längsten Titels wird auch am Ende der Ausgabe angezeigt
Mplayer zeigt die vorhandenen Tonspuren an:
mplayer dvd://02 -dvd-device /dev/hdb -v | grep "audio stream"
- hinter dvd:// wird die oben herausgefundene Titelnummer des Hauptfilms eingetragen
- -v zeigt eine ausführlichere Ausgabe
- grep "audio stream" filtert die Ausgaben zur Tonspur heraus
- beenden mit Strg-c
- Eine Beispielausgabe einer deutschen Tonspur (hier 128) ist z.B.
audio stream: 0 format: (stereo) language: de aid: 128.
Genauso zeigt Mplayer zeigt die vorhandenen Untertitel an:
mplayer dvd://02 -dvd-device /dev/hdb -v | grep "subtitle"
- grep "subtitle" filtert die Ausgaben zu Untertiteln heraus
- beenden mit Strg-c
- Eine Beispielausgabe eines deutschen Untertitels (hier 0) ist z.B.
subtitle ( sid ): 0 language: de
Beispiel einer kompletten Aufnahme als mpeg2:
mencoder dvd://01 -dvd-device /dev/hdb -aid 128 -sid 0 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=9800 -vf scale=1024:576 -oac mp3lame -lameopts cbr:br=192 -af volnorm -of avi -o dvdfilm.avi mencoder dvd://01 -dvd-device /dev/hdb -aid 128 -sid 0 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=9800 -vf scale -zoom -xy 1024 -oac mp3lame -lameopts cbr:br=192 -af volnorm -of avi -o dvdfilm.avi
- scale: Es muss das korrekte Anzeigeformat des Films angegeben werden.
- Dieses Beispiel zeigt keine 2-Pass-Kodierung, sondern zwei Varianten zur Größenskalierung. Zur Anpassung an 2-Pass-Kodierung s.o.
alternative Programme
Andere Programme sind z.B.
transcode acidrip
- Repository http://www.debian-multimedia.org/ wird benötigt
- Transcode ist ein Terminalprogramm ähnlich dem Mencoder
- acidrip ist eine graphische Oberfläche für Mencoder

Artikel RSS


Kommentar hinzufügen