Feature request: Allow immediate use of hard disk dump

The place to discuss linux version of MakeMKV
Post Reply
dreadmotors
Posts: 1
Joined: Mon Oct 10, 2011 4:16 pm

Feature request: Allow immediate use of hard disk dump

Post by dreadmotors »

Dear MakeMKV developers,
I appreciate your efforts to obtain a player for Linux, and especially something that allows to open the disk on the fly.
This is important, because pre-decrypting BDs and keeping all of them ready (for parties with friends) on the HDD is illegal in most countries and if you get catched you get a big fine for every movie.
Decrypting them on the fly is also theoretically illegal in many countries but at least you can't get catched... big difference!

There are a few problems with streaming though:
- MakeMKV (1.6.15 x64) crashes after a certain point (My Super Ex Girlfriend region 2, the only BD I have)
- Playing is jittery with streaming, and this does not happen when reading from HDD *even if* I am simultaneously dumping a BD with makemkv! (on a well configured linux)
- I foresee in the future there can be problems with seeking on some BDs. Because even with DVDs now in 2011 seeking does not work correctly with some DVDs for ALL software (linux) players, e.g. try Disney protected DVDs such as "Toy Story 3"
For all these problems I don't expect the streaming feature to be really working with no jitter, good seeking, and be rock solid on all BD disks in a reasonable time.

So the best approach IMHO would be to start dumping the BD on the HDD, and immediately run a player on the .mkv file which is being created. This would take the best parts of all approaches, with the only drawback that you need 25 GB free on the HDD.

I would really be OK in dumping the BD to the HDD if I could play the .mkv file *while it is being created*.

Unfortunately this doesn't currently work: until the .mkv file is finished (which takes 1 hour and this is unacceptable), it is not possible to play it.

At the bottom of this post I attach the mplayer error dump when playing a partial .mkv file. Please note the resolution detected: 19x3687 this is the same error VLC gives.

I don't know much about .mkv format but this appears to me that some metadata are missing from the file being created.
I guess such metadata are at the end of the file, because once the dumping process is finished the .mkv file is perfectly playable.

So this is my first feature request: please write the metadata part of the .mkv file as soon as possible, instead of waiting till the end. So we can play the .mkv file while it is being dumped.

Even if the mkv format requires that the metadata be at the end of the file, that's no problem: seek to the end, write the last part, then seek to the beginning and go ahead dumping. If you don't know how far you should seek in order to seek to the end, just seek very very far, 80GB ahead should be plenty (a "sparse file" will result, 80GB won't be really allocated on the filesystem).

Then if you want to clean up things at the end: after writing the real ending of the .mkv file, call ftruncate() and truncate away all the temporary dirt you had created 80GB away.

After you add this feature, we still might have to run mplayer with -forceidx (if we want seeking to work), but, hey, that's MUCH better than nothing!

A further improvement would be (2nd feature request) if you can periodically rewrite the index of the mkv file (which I suppose it's also at the end of the file) while you add data to the mkv file, so that we can play and seek without need of -forceidx (at most we need to relaunch the player to reload the new updated index). You can probably move the end of the file further away each time you rewrite the ending, so you don't risk crashing a mplayer which is reading the ending of the file at the same time you are updating it.

Thanks for your efforts.

If these 2 features I'm asking get implemented in a reasonable time, i.e. before free or cheaper alternatives, I will buy the software right now and even if streaming does not work.

With just the first feature I asked I might already buy it... that depends on the time -forceidx takes to regenerate the index on a movie, which I don't recall.


---------------------------------------------------------------------------------------

me@localhost:~/Audio_Video/bddump/temp$ mplayer title00.mkv
mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking
MPlayer SVN-r33713-4.6.1 (C) 2000-2011 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing title00.mkv.
MPEG-ES file format detected.
VIDEO: MPEG2 1920x1080 (aspect 3) 23.976 fps 39000.0 kbps (4875.0 kbyte/s)
Load subtitles in ./
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
[VO_TDFXFB] Can't open /dev/fb0: Permission denied.
[VO_3DFX] Unable to open /dev/3dfx.
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
Audio: no sound
Starting playback...
Unsupported PixelFormat 61
Unsupported PixelFormat 53
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1920x1080 => 1920x1080 Planar YV12
V: 1.3 30/ 30 26% 10% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]ac-tex damaged at 9 53
[mpeg2video @ 0x7f5a306a35e0]Warning MVs not available
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.3 31/ 31 32% 9% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.3 32/ 32 32% 9% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.4 33/ 33 32% 9% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.4 34/ 34 31% 9% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.5 35/ 35 31% 8% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.5 36/ 36 30% 8% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.5 37/ 37 30% 8% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.6 38/ 38 30% 8% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 1.7 41/ 41 28% 7% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]Warning MVs not available
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 1.8 42/ 42 28% 7% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 1.8 43/ 43 28% 7% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 1.8 44/ 44 27% 7% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 1.9 45/ 45 27% 6% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 1.9 46/ 46 27% 6% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 2.0 49/ 49 26% 6% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]invalid mb type in B Frame at 70 49
[mpeg2video @ 0x7f5a306a35e0]ac-tex damaged at 58 49
[mpeg2video @ 0x7f5a306a35e0]ac-tex damaged at 26 53
[mpeg2video @ 0x7f5a306a35e0]Warning MVs not available
[mpeg2video @ 0x7f5a306a35e0]concealing 240 DC, 240 AC, 240 MV errors
V: 2.1 50/ 50 26% 6% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 240 DC, 240 AC, 240 MV errors
V: 2.1 51/ 51 26% 6% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 240 DC, 240 AC, 240 MV errors
V: 2.2 52/ 52 26% 6% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 240 DC, 240 AC, 240 MV errors
V: 2.3 54/ 54 25% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 2.3 55/ 55 25% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 2.3 56/ 56 25% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 2.4 57/ 57 25% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 2.4 58/ 58 25% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 0 DC, 0 AC, 0 MV errors
V: 2.5 59/ 59 25% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]ac-tex damaged at 31 49
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.5 60/ 60 25% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.5 61/ 61 24% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]Missing picture start code
[mpeg2video @ 0x7f5a306a35e0]Missing picture start code
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.6 62/ 62 24% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.6 63/ 63 24% 5% 0.0% 0 0
Warning! FPS changed 23.976 -> 15.000 (8.976025) [13]
[mpeg2video @ 0x7f5a306a35e0]intra matrix invalid, ignoring
[mpeg2video @ 0x7f5a306a35e0]matrix damaged
[mpeg2video @ 0x7f5a306a35e0]sequence header damaged
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.7 64/ 64 24% 5% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.7 65/ 65 24% 4% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.8 66/ 66 23% 4% 0.0% 0 0
[mpeg2video @ 0x7f5a306a35e0]concealing 120 DC, 120 AC, 120 MV errors
V: 2.9 67/ 67 23% 4% 0.0% 0 0
Unsupported PixelFormat 61
Unsupported PixelFormat 53
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 19x3687 => 19x3687 Planar YV12
Source image dimensions are too high: 19x3687 (maximum is 2048x2048)
FATAL: Cannot initialize video driver.
[mpeg2video @ 0x7f5a306a35e0]warning: first frame is no keyframe


MPlayer interrupted by signal 11 in module: decode_video
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. Details in DOCS/HTML/en/bugreports_what.html#bugreports_crash.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
gcc version. If you think it's MPlayer's fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and
won't help unless you provide this information when reporting a possible bug.
[ This binary of MPlayer in Debian is currently compiled with
'--enable-debug'; the debugging symbols are in the package
'mplayer-dbg'.]

---------------------------------------------------------------------------------------
mike admin
Posts: 4075
Joined: Wed Nov 26, 2008 2:26 am
Contact:

Re: Feature request: Allow immediate use of hard disk dump

Post by mike admin »

MKV files are finalized only at end, that's the way they are. You could do the following hack - start streaming , navigate to a needed title with a web browser and "save" it to hdd from there. Wait a few seconds and now you have growing m2ts file that you can play as it's written.
Post Reply