Duisburger Linux User Group - http://www.dulug.de
Stammtisch 16.07.2004: Video-aufnahme/-bearbeitung mit mencoder
Anm: Dieses Dokument ist keine vollständige Referenz zu mplayer und mencoder sondern stellt
beide Programme im groben vor und einige mehr oder wenige wichtige Techniken um Filme
abspielen, zu kopieren und aufzunehmen!
Keine Garantie auf Vollständigkeit und/oder Funktionalität!!!
Autor: M. Franke

Allgemein mplayer:
mplayer ist ein Videoplayer für Linux. Er bietet sehr viele Funktionen und Codecs, was seine
Anwendung nicht immer leicht macht. Das folgende Dokument soll einige Beispiel liefern wie man
mit mplayer umgeht.
Aufruf: mplayer <Datei/Gerät> [Option]

Allgemein mencoder:
Mit mencoder lassen sich Videodatein umwandeln. Somit ist es unter anderem möglich
Videocodecs auszutauschen, Filme zu skalieren, die Tonspur eines Filmes in einem MP3 auszulesen
und zu speichern usw.
Aufruf: mencoder <Datei/Gerät> [Option] <Ausgabedatei>

Sonstiges:
mplayer selbst kommt schon mit sehr vielen Audio und Video Codecs. Dazu gibt es auch noch
zusätzliche Pakete die spezielle bzw. properitäre Codecs enthalten.
Sehr empfehlenswert sind an dieser Stelle die beiden Pakete für die Windows Media Codecs und für
die Real Player Codecs.
Zusätzlich sollte man sicher gehen das man die mp3lame Bibliothek installiert hat.

DVD:
Eine DVD kann mehrere Titel haben. Jeder Titel kann in mehrere Kapitel unterteilt sein. Zudem
bieten die meissten DVD's verschiedene Sprachen und evtl sogar noch verschiedene Untertitel für
Hörgeschädigte an. Dies muss man mplayer mitteilen, ansonsten startet mplayer immer mit den
Standardeinstellungen (z.B. als Sprache englisch, falls möglich).
Um eine DVD abspielen, muss man immer den Titel angeben, alle weiteren Optionen können später
auch wegfallen. Es ist z.B. nicht nötig immer die Kapitelwahl mit anzugeben, wenn einen ganzen
Film gucken möchte!
Spiele 1. Titel:
$ mplayer dvd://1
Spiele 1. Titel, ab 5. Kapitel:
$ mplayer dvd://1 -chapter 5
Spiele 1. Titel, nur 5. Kapitel:
$ mplayer dvd://1 -chapter 5-5
Spiele 1. Titel, ab 5. Kapitel, Audiosprache englisch:
$ mplayer dvd://1 -chapter 5 -alang en
Spiele 1. Titel, ab 5. Kapitel, Audiosprache englisch, Untertitel englisch:
$ mplayer dvd://1 -chapter 5 -alang en -slang en
Audiosprache und Untertitel können auch unterschiedlich sein, so ist es auch möglich als
Audiosprache englisch und als Untertitel deutsch zu wählen:
$ mplayer dvd://1 -chapter 5 -alang en -slang de

Eine DVD umwandeln und auf Festplatte speichern:
Um eine DVD mittels mencoder zu rippen muss man noch den Videocodec und den Audiocodec für
die neue Ausgabedatei angeben. Dies geschieht mit den beiden Optionen -ovc und -oac, wobei -ovc
für Output Video Codec steht und -oac für Output Audio Codec. Um eine DVD in DivX
abzuspeichern muss man als Videocodec die AVI-Biblieothek benutzen und später den MPEG4-
Codec wählen (lavc steht für Lib Avi Video Codec):
-ovc lavc -lavcopts vcodec=mpeg4
Zusätzlich ist es typisch für DivX MP3 als Audiocodec zu wählen:
-oac mp3lame
Eine neue Datei gibt die Option -o für Output an:
-o film.avi
Rippe 1. Titel:
$ mencoder dvd://1 -ovc lavc -lavcopts vcodec=mpeg4 -oac mp3lame -o film.avi
Natürlich können auch wieder die speziellen Angaben von oben wie bei mplayer übernommen
werden. Um z.B. den 1. Titel, ab 5. Kapitel, Audiosprache englisch, Untertitel deutsch und Audio-/
Video-codec Divx zu nutzen, muss man folgendes eingeben:
$ mencoder dvd://1 -chapter 5 -alang en -slang de -ovc lavc -lavcopts
vcodec=mpeg4 -oac mp3lame -o film.avi

TV:
Ähnlich wie das Abspielen von DVD's funktioniert das Anzeigen des TV-Signal auf dem Monitor.
Anstelle der Option -dvd hat man hier die Option -tv, der man aber noch einige Parameter mitgeben
muss.
Einfaches Anzeigen des TV-Bildes:
$ mplayer tv://on:driver=v4l:input=1:width=320:height=240:outfmt=i420
-vc rawi420 -vo xv
Die Parameter von -tv im einzelnen:
on?
driver=v4lDer Linuxtreiber für die TV-Karte
input=1Der Eingang der genutzt wird
Z.B. kann 0 für den Antennen-Eingang,
1 für den Composite-Eingang und
2 für den S-Video-Eingang stehen
width=320Breite des anzuzeigenden Bildes
height=240Höhe des anzuzeigenden Bildes
outfmt=i420Output-Format
Die anderen Optionen:
-vc rawi420vc = Video Codec: der Codec zum dekodieren des TV-Signals
-vo xvvo = Video Output: der Videotreiber zum Anzeigen des Bildes
Speichern des Fernsehbildes auf Festplatte:
Prinzipiell können die Optionen wie oben beim DVD rippen benutzt werden, man muss natürlich
nur das TV-Signal als 'Eingabedatei' nutzen.
Speichern des Fernsehbildes als DivX auf Festplatte:
$ mencoder tv://on:driver=v4l:input=1:width=320:height=240:outfmt=i420
-vc rawi420 -ovc lavc -lavcopts vcodec=mpeg4 -oac mp3lame -o tvfilm.avi

Anhang A - Erweiterte Optionen:
Als Videocodec MPEG1 und als Audioscodec PCM (wav) verwenden:
$ mencoder <Eingabe> -ovc lavc -lavcopts vcodec=mpeg1video -oac pcm <-
o Ausgabe>

Als Videocodec MPEG4 verwenden und zusätzlich das Bild auf 320x240 Pixel skalieren:
mencoder <Eingabe> -ovc lavc -lavcopts vcodec=mpeg4 -vop
scale=320x240 <-oac> <-o Ausgabe>

Bild skalieren, wobei eine Seitenweite von 320 Pixeln nicht überschritten werden soll aber das
Seitenverhältniss des Originalbildes erhalten bleiben soll:
$ mencoder <Eingabe> <-ovc Videocodec> -vop scale -zoom -xy 320 <-oac>
<-o Ausgabe>

Ähnlich wie bei MP3, Ogg Vorbis usw. kann man auch bei DivX innerhalb des Video Codecs die
Bitrate einstellen:
$ mencoder <Eingabe> -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=649 <-
oac> <-o Ausgabe>
Dadurch verändert sich die Grösse eines Filmes und natürlich auch die Qualität!

Um von einer Musik-DVD ein Lied als MP3 zu speichern, muss man als Videocodec keinen
Videocodec wählen:
$ mencoder <Eingabe> -ovc frameno -oac mp3lame -o Lied.mp3

Erweiterte Audiooptionen durch lameopts:
Man kann z.B. noch die Bitrate (br=128) und die Lautstärke (vol=9) einstellen:
-oac mp3lame -lameopts br=128:vol=9
Bei der Lautstärke sollte man vorsichtig sein, es kann sehr schnell dazu führen das die Aufnahme
übersteuert.

Anzeigen des TV-Signal's vom Antenneneingang und zappen:
mplayer tv://on:driver=v4l:input=0:chanlist=europe-west:
width=768:height=576:channel=s35:norm=PAL
Die Parameter:
chanlistDie Kanalliste (europe-west, europe-east....)
channelDie Kanäle
normdie Fernesehnorm (PAL/NTSC)
Währende des Anzeigen des TV-Signal's kann man auch regulär mit den Tasten 'k' und 'h' rauf und
runter zappen. Zudem ändert die Taste 'n' die Norm während des Betriebes.

Anhang B - Hardware:
DVD-Laufwerk:
Zum Rippen von DVD's sollte eigentlich jedes Standard-DVD-Laufwerk funktionieren. Zudem
sollte man sicher gehen das man unter /dev/ einen Link namens dvd hat der auf die Gerätedatei des
DVD-Laufwerks verweist. Hat man diesen nicht, so sollte man sich mittels su auf einer Konsole als
ruth anmelden und folgenden Befehl ausführen:
ln /dev/scsi/host1/bus0/target0/lun0/cd /dev/dvd -s
Im markierten Bereich muss natürlich evtl. ein andere Gerätedatei stehen, falls diese nicht mit Eurer
Gerätedatei für's DVD-Laufwerk übereinstimmt.
TV-Karte:
Die Auswahl einer TV-Karte fällt da schon schwerer. Prinzipiell sollte jede PCI-TV-Karte mit
einem BT848- bzw. BT878-Chip funktionieren. Zudem sollte man möglichst darauf achten das man
sich eine Stereo-TV-Karte besorgt oder als Audio-Eingang den Stereo-Eingang der Soundkarte
nutzt. Hat man ein TV-Karte in seinem Rechner so sollte man als 1. den bttv-Treiber laden. Dazu
loggt man sich am besten mittels su als ruth ein und lädt den Treiber: modprobe bttv. Nach
erfolgreichen Laden des Treibers sollte man ein paar neue Gerätedateien unter /dev/v4l/ vorfinden.
Danch kann man auch schon direkt mit den oben genannten Methoden loslegen.
Sonstige Hardware:
Desweiteren sollte man darauf achten nicht allzu schwache Hardware zu nutzen. Bei zu schwacher
Hardware wird das Rippen einer DVD ansonsten zu einem nächtelangem Akt und das
aufgenommen TV-Bild ruckelt nur. Unter 1GHz CPU-Geschwindigkeit sollte man sich auf oben
genannte Effekte einstellen!

Anhang C - Sonstige Software:
lsdvdZeigt den sämtliche Informationen einer DVD an
ogleDVD-Player für Linux der im Gegensatz zu mplayer auch DVD-Menüs versteht
bttvgrabSpeichert Bilder von einer TV-Karte auf die Festplatte

Anhang D - Tipps:
Da es durch die vielen Optionen von mencoder schnell dazu führen kann dass man evtl. mehrzeilige
Eingaben tippen muss, empfiehlt es sich die wichtigsten Befehle in einer Textdatei
zusammenzufassen und bei Bedarf via Copy & Paste in die Konsole einzufügen.

Wenn man Videos capturen will, ist manchmal hilfreich wenn man das Bild Zeitglich zur
Aufnahme sehen kann. Dazu sollte man 2 Konsolen starten und in der ersten Konsole erst mplayer
starten und in der zweiten Konsolen zum richtigen Zeitpunkt mencoder zu starten.