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 abzuspielen, 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 Beispiele liefern wie man mit mplayer umgeht.

Aufruf: mplayer <Datei/Gerät> [Option(en)]

Allgemein mencoder:

Mit mencoder lassen sich Videodateien 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(en)] <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 meisten 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 man einen ganzen Film (Titel) 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 dcd://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's 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=v4l	Der Linuxtreiber für die TV-Karte

input=1	Der 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=320	Breite des anzuzeigenden Bildes

height=240	Höhe des anzuzeigenden Bildes

outfmt=i420	Output-Format

Die anderen Optionen:

-vc rawi420	vc = Video Codec: der Codec zum dekodieren des TV-Signals

-vo xv	vo = 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=320:240 <-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:

chanlist	Die Kanalliste (europe-west, europe-east....)

channel	Die Kanäle

norm	die 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.

Danach kann man auch schon direkt mit den oben genannten Methoden loslegen.

Sonstige Hardware:

Des weiteren 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:

lsdvd	Zeigt sämtliche Informationen einer DVD an

ogle	DVD-Player für Linux der im Gegensatz zu mplayer auch DVD-Menüs	versteht

bttvgrab	Speichert Bilder von einer TV-Karte auf die Festplatte auch ohne X

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 es 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 gewünschten Zeitpunkt mencoder zu starten.

Marek Franke

2004-07-01T12:36:37