mirror of https://github.com/mpv-player/mpv
DVD docs
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@507 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
08891a6d70
commit
d32c3f7067
|
@ -0,0 +1,137 @@
|
|||
DVD support in MPlayer!
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Read file 'DVD-FAQ' as well (and try to avoid recursion by the redirector
|
||||
message there :).
|
||||
|
||||
IMPORTANT NOTE: please _DO_NOT_ require further features for DVD playback. This
|
||||
is extremly experimental hack. Maybe it won't work for you. If you're
|
||||
capable of helping us do it now! First we would like to fix existing problems.
|
||||
Then we can start implementing advanced DVD playback functions of course.
|
||||
|
||||
This means current DVD functions are mainly for developers and not for users!
|
||||
|
||||
Building MPlayer with libcss support
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
First, you must compile and install libcss on your system.
|
||||
Second, you must call ./configure script of MPlayer with these options:
|
||||
|
||||
./configure --enable-css --withcsslibdir=/usr/local/lib --withcssincidr=/usr/local/include
|
||||
|
||||
(of course you can append your favourite options as well)
|
||||
|
||||
--withcsslibdir=/usr/local/lib
|
||||
Directory contains libcss.so shared library. This directory should
|
||||
be in your /etc/ld.so.conf as well.
|
||||
|
||||
--withcssindfir=/usr/local/include
|
||||
Directory contains header file 'css.h' of libcss.
|
||||
|
||||
NOTE: There is no autodetection for libcss! You must require it with
|
||||
configure options.
|
||||
|
||||
Viewing VOB files directly from DVD
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
mplayer -dvd /dev/dvd /mnt/cdrom/video_ts/vts_01_1.vob
|
||||
|
||||
where,
|
||||
|
||||
'-dvd /dev/dvd' tells mplayer the device name of your DVD drive.
|
||||
it's used in disc authentication process
|
||||
|
||||
the filename is simply a VOB file path on the disc
|
||||
|
||||
Note that according my experiences disc authentication requires root
|
||||
privilegies so you must run mplayer as root! (see section 'Problems').
|
||||
|
||||
NOTE about the sound:
|
||||
It seems that mplayer sometimes fails to find the first audio stream.
|
||||
You can specify it with using the '-aid 128' option, for example.
|
||||
Please experience with 128,129 and similar values. See section
|
||||
'Problems'.
|
||||
|
||||
|
||||
New source files
|
||||
~~~~~~~~~~~~~~~~
|
||||
dvdauth.c
|
||||
Issues DVD disc and title authentication and fills key_disc and key_title
|
||||
arraies.
|
||||
|
||||
dvdauth.h
|
||||
header file
|
||||
|
||||
These files are embeded inside an '#ifdef ... #endif' block, so if libcss
|
||||
support was not requested, they do not produce any code and of course
|
||||
libcss is not linked against mplayer either.
|
||||
|
||||
|
||||
Modifications in the source
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
* (stream.c) STREAM_BUFFER_SIZE is set to 2048
|
||||
* (demux_mpg.c) the old message of 'encrypted VOB file is not supported'
|
||||
was changed to set a flag to 1. After parsing the header, if this
|
||||
flag is set, we call descramble function of libcss for decrypt.
|
||||
* (stream.c) on several points where the old 4096 length STREAM_BUFFER_SIZE was
|
||||
hardcoded into the source, it was replaced with 'STREAM_BUFFER_SIZE'
|
||||
* (mplayer.c) calling dvd disc and title authentication and seek to sector
|
||||
boundaries on seeking for mpegs
|
||||
|
||||
|
||||
Performance
|
||||
~~~~~~~~~~~
|
||||
On my AMD K6-2 with using hw scaling and colorspace conversion
|
||||
capability of my G400 it's possible to watch DVD with about 70%
|
||||
CPU usage with '-nosound'. Unfortunately with sound my machine is
|
||||
not enough :( Maybe it can be improved somewhat ...
|
||||
Guess, it's not so bad ... According reports from my friends
|
||||
xine uses 80-90% CPU to play DVD on much more powerfull machines
|
||||
like 1GHz Athlon systems (as far as I know, it's said that about
|
||||
300MHz celeron is the minimum to watch DVDs ... using windows
|
||||
DVD viewers).
|
||||
|
||||
Hint: I commented out downmix fountions from libac3 (of course in this way I
|
||||
can't get sound) and audio decoding CPU usage became 11% instead of 24 on
|
||||
my machine. This clearly indicates that we should optimize downmix functions
|
||||
(KNI code is no use for my k6-2).
|
||||
|
||||
|
||||
Problems (TODO)
|
||||
~~~~~~~~~~~~~~~
|
||||
* disc authentication (the FIBMAP ioctl) requires root privilegies.
|
||||
this is strange since OMS can do it as user too.
|
||||
* sound. I'm using my only DVD disc (The Matrix) to test mplayer.
|
||||
some VOB file has English sound, some has Spanish and some has
|
||||
no sound at all.
|
||||
IT SEEMS that if I give '-aid 128' everything works with English sound ...
|
||||
* strange effects but only with SOME vob
|
||||
files (it looks like some interlacing effect, eg: every 2nd line
|
||||
on the screen is from the last frame).
|
||||
|
||||
|
||||
feature TODO
|
||||
~~~~~~~~~~~~
|
||||
* chapter scanner
|
||||
* audio stream scanner and allow to select one on runtime as well
|
||||
(in stage#1 it would be enough to select one on the startup, see
|
||||
'Problems' above)
|
||||
* DVD menu
|
||||
I found (at least on disc 'The Matrix') the menu VOB but I don't
|
||||
know how can it be used.
|
||||
(after some eyeballing on the source of OMS, it seems we would have to
|
||||
parse *.ifo files)
|
||||
* subtitle support
|
||||
* OSD/GUI (?) support for select chapter, subtitle and audio stream
|
||||
* getting some documentation on DVD format, eg: which is the 'root' VOB
|
||||
file on the disc in video_ts directory, which is the menu and so on.
|
||||
* improve performance (see 'Performance' above)
|
||||
|
||||
|
||||
No sound problem (from Matrix DVD, the menu VOB)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
End of packet while searching for PCM header
|
||||
|
||||
DEMUXER: Too many (2048 in 4131540 bytes) video packets in the buffer!
|
||||
(maybe you play a non-interleaved stream/file or video codec failed)
|
||||
MPEG: No Audio stream found... ->nosound
|
||||
|
||||
However this does not occur if you specify '-aid 128'.
|
|
@ -0,0 +1,31 @@
|
|||
Q: I have some problem not mentioned here ...
|
||||
A: Read file 'DVD' as well.
|
||||
|
||||
Q: How can I actually watch DVD with mplayer?
|
||||
A: Ehh. Goes on reading this file as well as 'DVD' (hint: you must have libcss)
|
||||
|
||||
Q: Seems to work but no sound.
|
||||
A: Use '-aid 128' (or try: 128,129,...) mplayer command line switch
|
||||
|
||||
Q: I have got Spanish audio instead of English (or similar problems)
|
||||
A: See the last question/answer.
|
||||
|
||||
Q: mplayer complains about FIBMAP or something.
|
||||
A: Try to run mplayer as root.
|
||||
|
||||
Q: some strange effect (interlace like thing) mainly when fast moving objects
|
||||
are shown in the movie
|
||||
A: known problem, we try to fix it later
|
||||
|
||||
Q: DVD support in mplayer is a piece of shit!
|
||||
A: You're probably right :) However please contact us if you can improve it!
|
||||
|
||||
Q: How can I compile mplayer to be able to watch DVDs?
|
||||
A: Read file 'DVD' (as usuall).
|
||||
|
||||
Q: Where can I get libcss package from?
|
||||
A: Maybe from the source of OMS (www.livid.org).
|
||||
|
||||
Q: How can I ... (insert some expectable DVD player feature here)
|
||||
A: The current implementation is only for viewing VOB files from DVD.
|
||||
Nothing more, like subtitles, menus and so on.
|
Loading…
Reference in New Issue