Leider wird der MPlayer/MEncoder seit ein paar Jahren nicht mehr aktiv weiter entwickelt, weil es zu wenig Leute im Team gibt. Zur Zeit wird von ihnen nur der FFmpeg aktiv gepflegt. Allerdings hat der FFmpeg in meinen Tests einige Dinge nicht so ordentlich gemacht wie der MPlayer, deshalb verwende ich den FFmpeg praktisch garnicht mehr.
Hier meine alte Seite zum MPlayer: os4_software_mplayer
Damit der GMplayer auch ein Bild zeigt,
wenn man eine 3D-Grafikkarte mit entsprechendem Treiber installiert hat,
muß die Video-Ausgabe auf "gl" eingestellt werden
und sinnvollerweise tragen wir auch gleich noch die
richtigen Gerätedateinamen für unser CD/DVD-Laufwerk ein.
sollte noch keine Datei dort liegen, genügt es auch, wenn man eine neue Datei anlegt und nur diese drei Zeilen einträgt:
vi ~/.mplayer/gui.conf cdrom_device=/dev/cd0 dvd_device=/dev/cd0 vo_driver=gl
Möchte man den Film erst ab einer bestimmten Stelle ansehen,
dann ist die Option -ss sehr nützlich.
Mit ihr wird angegeben, welche Zeitspanne übersprungen werden soll,
allerdings funktioniert sie nur dann, wenn MPlayer seine Video-Daten
aus eine Datei liest!
Werden die Video-Daten durch eine Pipe an MPlayer übergeben,
dann funktioniert diese Option nicht!
Möchte man nur eine bestimmte Zeitspanne sehen,
dann ist die Option -endpos sehr nützlich.
Diese Option funktioniert auch bei Verwendung einer Pipe.
Infos über einen Film auslesen:
# mplayer Film.mpg -identify -frames 0 -nocache
# mplayer [Optionen] [Pfad/]Dateiname
# mplayer [standard Optionen] [Pfad/]Dateiname datei1 [Optionen für datei1] datei2 datei3 [Optionen für datei3]
# mplayer [Optionen] vcd://Tracknr [-cdrom-device /dev/cdrom]
# mplayer [Optionen] dvd://Titelnr [-dvd-device /dev/dvd]
# mplayer [Optionen] http://site.com/datei.asf (playlist kann auch benutzt werden)
# mplayer Playlist http://www.lds.org/broadcast/file/build/0,16929,2062,00.asx
# mplayer [Optionen] mms://stream.lds.org/genconf2004octGerman16
# mplayer [Optionen] udp://192.168.1.20:2008
Die neusten Versionen von MPlayer akzeptieren auch VCD- und DVD-Tracks im URL-Format, so wie z.B. auch Xine.
# mplayer dvd://1 [Optionen] # mplayer vcd://1 [Optionen]
Diese Methode funktioniert, nach meiner Erfahrung, auch mit "Blickwinkel"-Aufnahmen sehr gut.
-idx - Index, wenn der Index kaputt ist, dann kann man nicht vor- oder zurückspulen -aid - Tonspur -sid - Untertietel-ID
Infos über die Filme auf der DVD anzeigen:
# mplayer dvd:// -identify -frames 0 -nocache Playing dvd://. ID_DVD_TITLES=11 ID_DVD_TITLE_1_CHAPTERS=2 ID_DVD_TITLE_1_ANGLES=1 ID_DVD_TITLE_2_CHAPTERS=2 ID_DVD_TITLE_2_ANGLES=1 ID_DVD_TITLE_3_CHAPTERS=1 ID_DVD_TITLE_3_ANGLES=1 ID_DVD_TITLE_4_CHAPTERS=21 ID_DVD_TITLE_4_ANGLES=1 ID_DVD_TITLE_5_CHAPTERS=2 ID_DVD_TITLE_5_ANGLES=1 ID_DVD_TITLE_6_CHAPTERS=2 ID_DVD_TITLE_6_ANGLES=1 ID_DVD_TITLE_7_CHAPTERS=2 ID_DVD_TITLE_7_ANGLES=1 ID_DVD_TITLE_8_CHAPTERS=2 ID_DVD_TITLE_8_ANGLES=1 ID_DVD_TITLE_9_CHAPTERS=2 ID_DVD_TITLE_9_ANGLES=1 ID_DVD_TITLE_10_CHAPTERS=2 ID_DVD_TITLE_10_ANGLES=1 ID_DVD_TITLE_11_CHAPTERS=2 ID_DVD_TITLE_11_ANGLES=1 ID_DVD_TITLE_1_LENGTH=25.360 ID_DVD_TITLE_2_LENGTH=14.400 ID_DVD_TITLE_3_LENGTH=0.600 ID_DVD_TITLE_4_LENGTH=7172.080 ID_DVD_TITLE_5_LENGTH=61.400 ID_DVD_TITLE_6_LENGTH=144.360 ID_DVD_TITLE_7_LENGTH=98.600 ID_DVD_TITLE_8_LENGTH=61.120 ID_DVD_TITLE_9_LENGTH=8.480 ID_DVD_TITLE_10_LENGTH=8.560 ID_DVD_TITLE_11_LENGTH=8.600 ID_DVD_DISC_ID=B34AC12EF4BECE6D45D5E41D23431C39 ID_DVD_VOLUME_ID=OBLIVION There are 11 titles on this DVD. ID_DVD_CURRENT_TITLE=1 There are 1 angles in this DVD title. ...
hier wählt man den Titel mit der längsten Spielzeit oder mehrere Titel…
Wenn die libdvdcss2 installiert ist, können auch CSS-verschlüsselte DVD's verwendet werden.
# mplayer dvd://4 -dumpstream -dumpfile title4.mpg
zum Beispiel so:
# mplayer dvd://3-4 -dvd-device /dev/cd0 -dumpstream -dumpfile /var/tmp/film.mpg -dvdangle 2 ... audio stream: 0 format: ac3 (5.1) language: en aid: 128. audio stream: 1 format: ac3 (5.1) language: de aid: 129. audio stream: 2 format: ac3 (5.1) language: tr aid: 130. number of audio channels on disk: 3. subtitle ( sid ): 1 language: en subtitle ( sid ): 3 language: en subtitle ( sid ): 5 language: de subtitle ( sid ): 7 language: tr subtitle ( sid ): 9 language: en subtitle ( sid ): 11 language: de subtitle ( sid ): 13 language: tr number of subtitles on disk: 7
# mplayer /var/tmp/film.mpg -idx -aid 129 -sid 4
oder
# mplayer dvd://1 -dvd-device /dev/dvd -dumpstream -dumpfile title1.mpg # mplayer title1.mpg -idx -aid 129 -sid 5
Benötigt wird libdvdread + libdvdcss;
Weil FFmpeg leider libdvdread nicht unterstützt, muss MPlayer eingesetzt werden.
Es muss MPlayer2 + libdvdread + libdvdcss installiert werden:
> cd /usr/ports/multimedia/libdvdread && make clean ; make config-recursive ; make && make install && make clean
oder das Binärpaket aus dem Repository:
> pkg install multimedia/mplayer2
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 2 packages will be affected (of 0 checked):
New packages to be INSTALLED:
mplayer2: 2.0.20130428_11
Installed packages to be REINSTALLED:
libdvdread-5.0.2 (options changed)
The process will require 2 MiB more space.
823 KiB to be downloaded.
Proceed with this action? [y/N]: y
Fetching mplayer2-2.0.20130428_11.txz: 100% 715 KiB 732.5kB/s 00:01
Fetching libdvdread-5.0.2.txz: 100% 108 KiB 110.8kB/s 00:01
Checking integrity... done (0 conflicting)
[1/2] Reinstalling libdvdread-5.0.2...
[1/2] Extracting libdvdread-5.0.2: 100%
[2/2] Installing mplayer2-2.0.20130428_11...
[2/2] Extracting mplayer2-2.0.20130428_11: 100%
Message for mplayer2-2.0.20130428_11:
==================================================================
MPlayer's system-wide configuration dir is
/usr/local/etc/mplayer
===================================================================
If seeking in streams causes the playback volume to be reset to
the previous setting (on 8.x or newer system with VPC enabled),
you and you dislike this behaviour, you have two options:
- Use mplayer's -softvol command line option
- Set the sysctl hw.snd.vpc_autoreset to 0
===================================================================
und dann klappt es auch:
> mplayer --identify --frames=0 dvd:// > mplayer dvd://1 -mc 0 -forceidx -aspect 16:9 -dvdangle 1 -dumpstream --dumpfile=Film.mpg > mplayer --identify --frames=0 Film.mpg > mplayer -aid 1 Film.mpg
wenn nicht, dann kann man es noch so versuchen:
> mplayer dvd://1//dev/cd0 -mc 0 -forceidx -aspect 16:9 -dvdangle 1 -dumpstream --dumpfile=Film.mpg --no-autosub --autosync=0
Audio und Video getrennt abspeichern:
> mplayer dvd://1//dev/cd0 -forceidx --dumpaudio --dumpfile=Audio.mpg > mplayer dvd://1//dev/cd0 -forceidx -aspect 16:9 -dvdangle 1 --no-autosub --dumpvideo --dumpfile=Video.mpg
weil MPlayer recht tollerant ist und defekte Stellen (im Gegensatz zu FFmpeg) überspringen kann, ist es möglich eine beschädigte Film-Datei mit MPlayer in gewisser Weise zu reparieren:
> mplayer Originalfilm_bricht_mitten_drin_ab.mp4 -dumpstream -dumpfile Film_abspielbar.mp4
… aber, es klappt nicht immer!
so schneidet man aus einem Film von der 419. Sekunde bis zur 1885. Sekunde ein Stück raus:
> mplayer -ss 419 --endpos 1885 Film.avi -dumpstream -dumpfile Film.cut.avi
neuere Versionen (Stand 2018) verwenden diese Parameter:
> mplayer -sstep 419 -endpos 1885 Film.avi -dumpstream -dumpfile Film.cut.avi
Einen Film kann man auch mit folgenden Programmen zuschneiden:
Folgende Aufgaben sollen erfüllt werden.
Die ersten beiden Punkte können vom MPlayer und MEncoder erfüllt werden, der dritte Punkt kann nur vom MEncoder erfüllt werden. Allerdings unter Missachtung von Punkt vier, denn MEncoder schreibt noch Video-Frames mit dem Namen "noframes" in den Container. Damit kommt mkvmerge (mkvtoolnix) nicht richtig klar, so das die Videos nicht mehr auf allen Geräten abgespielt werden können.
FFmpeg kann die ersten vier Punkte komplett abarbeiten, allerdings versagt es kläglich beim Punkt fünf. Denn leider kann man ihm nicht die Audio-ID mitgeben. Weiterhin besitzt FFmpeg ein Memory-Leak und kann deshalb nicht bei großen Filmen eingesetzt werden.
Der Punkt fünf wird sowohl von MPlayer als auch vom MEncoder erfüllt.
Unter Verwendung von MPlayer braucht man für Punkt drei ein separates Programm (z.B.: faac), leider wird die Tonspur dann aber zwei mal transcodiert. Erst von MPlayer ins WAVE-Format und dann von faac ins AAC-Format. Die Umsetzung ins WAVE-Format durch MPlayer ist recht Verlustarm (vielleicht sogar Verlustfrei) und so kann man mit diesem Zwischenschritt leben.
Also bleibt als einzige Lösung nur die Kombination von mplayer und faac um mkvmerge (mkvtoolnix) eine ordentliche Tonspur im gewünschten Format mit gewünschter Qualität bereit zu stellen.
MPlayer kann nur die Originaltonspur dumpen oder eine WAVE-Datei ordentlich schreiben. Allerdings kann er die Tonspur beim dumpen nicht in ein anderes Format umwandeln!
Hinweis:
Es kann zu deutlichem Geschwindigkeitszuwachs kommen,
wenn MPlayer die Option -vc dummy zusätzlich mit übergeben wird.
Diese schaltet das Decodieren der Video Daten ab. Dies führt aber ggf. zu Problemen.
# mplayer Film.vob -aid 128 -vo null -dumpaudio -dumpfile Film.ac3
# mplayer -ao help
MPlayer SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
Available audio output drivers:
oss OSS/ioctl audio output
alsa ALSA-0.9.x-1.x audio output
esd EsounD audio output
pulse PulseAudio audio output
jack JACK audio output
nas NAS audio output
sdl SDLlib audio output
openal OpenAL audio output
mpegpes DVB audio output
v4l2 V4L2 MPEG Audio Decoder output
null Null audio output
pcm RAW PCM/WAVE file writer audio output
Hier kann man sehen, das MPlayer die Tonspur leider nur ins "pcm"-Format (WAVE) aber nicht ins "AAC"-Format zum Beispiel transcodieren kann! Dafür braucht man dann ein weiteres Programm (zum Beispiel faac).
# mplayer -vo null -ao pcm Film.mpeg & # faac -r -b 192 --tns -o Film.aac audiodump.wav # rm audiodump.wav
Um sich die temporäre WAVE-Datei zu sparen, kann man auch mkfifo verwenden.
# mkfifo Film.wav # mplayer -vo null -ao pcm:waveheader:file=Film.wav Film.mpeg & # faac -r -b 192 --tns -o Film.aac Film.wav # rm Film.wav
Die pcm-Option "fast" versucht schneller als mit der eigentlichen Abspielgeschwindigkeit auszugeben. Wenn die Ausgabe abgeschnitten wird (normalerweise mit der Nachricht "Zu viele Videopakete im Puffer"), dann sollte diese Option wieder entfernt werden. Es ist normal, dass du die Nachricht "Your system is too SLOW to play this!" bekommst.
# mkfifo Film.wav # mplayer -vo null -ao pcm:fast:waveheader:file=Film.wav Film.mpeg & # faac -r -b 192 --tns -o Film.aac Film.wav # rm Film.wav
# mplayer Film.mpeg -benchmark -vo yuv4mpeg:file=Film.y4m -ao null
Die Videospur kann unverändert mit dem MEncoder extrahiert werden.