Log in

View Full Version : Matroska+mkvmerge problem


Gaia
5th June 2003, 07:44
I know i shouldn't start new treat for this but i want to gain attention.

I am trying to do my first full matroska movie rip. I just converted the video to mkv. I tried both latest offical and latest gabest filter. No problems with converting(i used vdubMod) but then i try to play the file it just eats all the memory VERY quick and obiviously can't play the file. I tried different players but no luck, every player just hangs up. It doensn't even start playing the file. This system has only 196 mb of memory and i am using Win98. Video is encoded with Xvid. Avi plays fine.

So i am asking have anyone actually tried to do full matroska movie? Is it really that 196 mb is not enough to play 600 mb matroska file without audio?

I have previously converted 300 mb files to matroska and noticed similiar problems but i managed to play the files. It this another Win98 issue, just me or do you really need somenthing like 512 mb to play the file?

Update:

I tried to use mkvmerge for converting but i get following error:

Exception: STATUS_ACCESS_VIOLATION at eip=0041E751
eax=00000000 ebx=10101470 ecx=00001484 edx=0080F828 esi=00000000 edi=004611A0
ebp=0080F9A8 esp=0080F750 program=C:\MATROSKA\MKVMERGE.EXE
cs=01AF ds=01B7 es=01B7 fs=1D9F gs=0000 ss=01B7
Stack trace:
Frame Function Args
0080F9A8 0041E751 (101014A0, 0080FAD0, 0080F9D8, 0040B25F)
0080F9D8 0041A7D6 (101014A0, 0080FAD0, 00000329, 00494B4D)
0080FB28 00404E5E (00000006, 10101430, 0080FD81, 10101430)
0080FB48 00405C6E (00000007, 10100498, BFFC9490, BFF7B796)
0080FC08 0040615A (00000007, 10100498, 10100328, 00000000)
0080FDB8 61007408 (610D1F58, FFFFFFFE, 00000014, 610D1E7C)
0080FE08 610076ED (00000000, 00000000, BFFC9490, 0080FF68)
0080FE28 00460B52 (00405F48, 037F0500, 0080FF78, BFF8B560)
0080FE38 0040103C (00000000, 81905E6C, 00600000, 6D766B4D)
0080FF78 BFF8B560 (9650D1DC, 00000008, 81905E6C, 00000000)
59864 [main] MKVMERGE 1087131 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
60073 [main] MKVMERGE 1087131 handle_exceptions: Error while dumping state (probably corrupted stack)

My file is not corrupted just scanned it with VdubMod and converted it to ogm without any problems.

ChristianHJW
5th June 2003, 08:16
You obviously have an old version of Gabest' filter, it needed a lot of memory but he fixed that. The 'official' ( ;) .. lol ) Dshow filter doesnt have this behaviour, and the stuttering playback problem for Vorbis is gone if you use the new CoreVorbis (http://forum.doom9.org/showthread.php?s=&threadid=54805) decoder filter.

BTW : make sure to get the latest VdubMod release also, it fixes the other memory problem that occured when big mkv files were read/parsed in VdubMod ...

Gaia
5th June 2003, 08:32
What is latest VdubMod? I have 1.5.1.1a. I have latest offical filter and it still eats all the memory. Just tried it! Tried latest gabest too and same thing. It looks like you need LOTS of memory to play big matroska files

gabest
5th June 2003, 09:00
The latest vdubmod fixes a few bugs, maybe you just ran into one of them. I don't know if it was officially released, don't ask me :)

Gaia
5th June 2003, 09:02
No i can't find newer build, latest i can find is 1.5.1.1a

jcsston
5th June 2003, 09:04
The latest VirtualDubMOD is a CVS exe compile.
SourceForge Download
(http://prdownloads.sourceforge.net/virtualdubmod/VirtualDubMod_CVS_20030604.zip?download)

For the memory usage on playback I only get about 40MB used with Gabest's latest DSF playing a XviD 640x480 23.976fps Mono Vorbis Matroska file created with VirtualDubMOD.

robUx4
5th June 2003, 09:04
Originally posted by ChristianHJW
You obviously have an old version of Gabest' filter, it needed a lot of memory but he fixed that. The 'official' ( ;) .. lol ) Dshow filter doesnt have this behaviour, and the stuttering playback problem for Vorbis is gone if you use the new CoreVorbis (http://forum.doom9.org/showthread.php?s=&threadid=54805) decoder filter.

No need to hurry... The new filter will only work with a new official DSF that is yet to be released (until some other problems are fixed). Maybe Gabest also integrated support for this support recently. I just don't know.

gabest
5th June 2003, 09:10
Originally posted by robUx4
Maybe Gabest also integrated support for this support recently. I just don't know. Well, I can't remember exactly, maybe I did yesterday.

Cantide
5th June 2003, 09:16
Latest VirtualDubMod: http://sourceforge.net/project/showfiles.php?group_id=65889 at the bottom of the page are bugfixes.
EDIT: A little to slow :)

I made a few full movies with matroska, no such problems here, but I have 512MB RAM WinXP SP1.
Core Media Player with Matroska file: ~80MB RAM (official 0.4.2 DSF)
Core Media Player with OGM: ~20MB RAM

Cantide

Gaia
5th June 2003, 09:23
Hey, latest cvs build seems to fix this problem :) Now i just have to mux aac audio. Mkv files created with this new cvs build uses very little memory compared to old build.

Update: I still get same error then i try to mux audio with mkvmerge. I can mux audio with VdubMod but sadly it doesn't support aac audio yet :)

I have earlier muxed audio to shorter clips with mkvmerge but no luck with this file. It's encoded with latest Koepi Xvid build.

Gaia
5th June 2003, 13:14
I finally managed to mux the audio with mkvmerge but i first had to convert the video file to ogm. Really strange.

ChristianHJW
5th June 2003, 15:20
Originally posted by Gaia I finally managed to mux the audio with mkvmerge but i first had to convert the video file to ogm. Really strange.

I bet you are using mkvmerger 0.4.1 , instead of latest version 0.4.2 .

In CLI mode type

-mkvmerge.exe --version

and it will tell you.

Gaia
5th June 2003, 15:23
No i am using latest version.

Nic
5th June 2003, 15:54
@Chris & Mosu: The mkvmerge cvs still has 0.4.1 as the VERSION definition ? Is the CVS code old compared to the release code?

I started writing a Mosu an email to change bits of code so vc6 compiles it nicely. But I stopped because maybe he doesnt want to support vc6, but if he wants the list let me know :)
(but im sure toff could tell him anyway if he wanted to know)

(the vc6 compile was a hell of a lot smaller than the cygwin one (cygwin one is huge! ;) ))

-Nic

Mosu
5th June 2003, 20:26
Originally posted by Nic
@Chris & Mosu: The mkvmerge cvs still has 0.4.1 as the VERSION definition ? Is the CVS code old compared to the release code?

Wrong. The CVS has a tag called 'release-0-4-2' which contains the source for 0.4.2, obviously. configure.in especially contains the following line:

AM_INIT_AUTOMAKE(mkvtoolnix,0.4.2)

That's the version number shown with 'mkvmerge -V'.

I started writing a Mosu an email to change bits of code so vc6 compiles it nicely. But I stopped because maybe he doesnt want to support vc6, but if he wants the list let me know :)

By all means. Toff already sent me some patches a while back that he needed to compile the former mkvmerge version with VC6, and I'm always open for such patches.

(the vc6 compile was a hell of a lot smaller than the cygwin one (cygwin one is huge! ;) ))

I know. Problem is I don't own VC6 (and I don't plan on buying it in the foreseeable future ;)) so I can neither support it 'directly' nor debug versions produced with it.

avih
5th June 2003, 21:02
mingw builds are usually small, and it's free ;)

Mosu
5th June 2003, 21:06
Originally posted by avih
mingw builds are usually small, and it's free ;)

I've tried cygwin's -dno-cygwon option once, didn't work at all, and I just don't have the time to fight such a fight at the moment. If anyone wants to implement mingw/-dno-cygwin support for libebml, libmatroska and mkvtoolnix then by all means do that! I'll be more than happy to accept patches for it.

Nic
6th June 2003, 09:18
"Wrong. The CVS has a tag called 'release-0-4-2' which contains the source for 0.4.2, obviously"

Doh! ;)

Ill compile it and send a list of the minor changes.

-Nic

Mosu
6th June 2003, 20:51
Ill compile it and send a list of the minor changes.

Great :) Looking forward to it.

Nic
7th June 2003, 00:29
Ok, before I send it, here's somethings to think about a "best" solution for.

1) VC6 doesn't allow the parsing of "..." in a #define. I.e. your
#define die(...)
won't work :( its part of the C99 spec from memory but not even VC.net 2003 supports it (I think ?). There's another #define like that in your code (but I forget which, ill send more specific detail later)

Don't know the best solution to that, at present i just make die a function and ignore using __LINE__ etc

2) VC6 doesn't allow doing:
printf("Version: " VERSION "\n");
my current solution is making version a string and doing:
printf("Version: %s\n", VERSION);

3) Somewhere there was a "long long", cant remember where (ogmtools, avilib, or mkvtoolnix). Needs changing to int64_t ;)

4) Also it will need to refer to a <stdint.h> of sorts for vc6 (as it doesn't come with one).

Those are just random late night ramblings, ill send something more concise soon :)

-Nic

gabest
7th June 2003, 01:06
Originally posted by Nic
1) VC6 doesn't allow the parsing of "..." in a #define. I.e. your
#define die(...)
won't work :( its part of the C99 spec from memory but not even VC.net 2003 supports it (I think ?). http://groups.google.co.hu/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&frame=right&th=5a6b38ddbbff08d&seekm=%23GQZPNOFDHA.4048%40tk2msftngp13.phx.gbl#link1

Nic
7th June 2003, 01:15
Good link Gabest....That reminds me when using vsnprintf in VC6 you need an underscore before it (_vsnprintf) for mkvmerge ;)

-Nic

Mosu
7th June 2003, 01:30
Originally posted by Nic
Ok, before I send it, here's somethings to think about a "best" solution for.

1) VC6 doesn't allow the parsing of "..." in a #define. I.e. your
#define die(...)
won't work :( its part of the C99 spec from memory but not even VC.net 2003 supports it (I think ?). There's another #define like that in your code (but I forget which, ill send more specific detail later)

Don't know the best solution to that, at present i just make die a function and ignore using __LINE__ etc

I know, robux already told me about it. That's no problem at all, I'll permanently change the die into a function. I've used it far more often earlier on, especially after mallocs and stuff, but since I've introduced my "safe*" functions in common.cpp I don't need die all that often - so the __LINE__ and __FILE__ is not that important. I'll simply pass it along as the text in the format string.

2) VC6 doesn't allow doing:
printf("Version: " VERSION "\n");
my current solution is making version a string and doing:
printf("Version: %s\n", VERSION);

Doh. I use it from time to time... But not THAT often. Well... I've just introduced it in mkvinfo.cpp, but that can be changed easily :)

3) Somewhere there was a "long long", cant remember where (ogmtools, avilib, or mkvtoolnix). Needs changing to int64_t ;)

Yuck, long long still present. I'll take care of it.

Gaia
7th June 2003, 18:44
Did another full movie rip and still same thing. Mkvmerge can't handle XviD avi files.I get various errors. Anyway it's not a problem to convert video file first to ogm. No problems with Divx avi's. Or maybe i am just doing somenthing wrong?

I try to do it like this: mkvmerge -o movie.mkv video.avi audio.aac

ChristianHJW
7th June 2003, 19:50
what Xvid settings are you using for your rips ??

Nic
7th June 2003, 19:56
@Gaia: Im using XviD and mkvmerge ok, please post the error that mkvmerge gives, your xvid settings and the command line you passed ot mkvmerge :)

Never post bug reports without saying your settings :)

-Nic

Gaia
7th June 2003, 19:59
Almost default settings+b-frames,croma motion,vhq 4, h.263 quantization etc. DX50 B-VOP compatibilty. No qpel, no packed bitsream, no gmc. Basicly same settings what everybody else use at the XviD forum. I am using latest Koepi XviD build.

Gaia
7th June 2003, 20:19
Here's error i get if i try to convert avi to mkv:

die r_avi.cpp/189: in safemalloc: malloc ===== NULL(805306396)

Read my first post in this tread and you see what i error i got with another rip.

If i convert avi to mkv with VdubMod and try to mux just audio with mkvmerge it acts very strange. It just keeps muxing forever and first complains about some tag or somenthing else. Can't remember right now.

Like i said i seem to get different errors with different files but no problem i can do it my way and no nothing wrong with my system.

Mosu
7th June 2003, 21:12
Originally posted by Gaia
Here's error i get if i try to convert avi to mkv:

die r_avi.cpp/189: in safemalloc: malloc ===== NULL(805306396)

I know that error, but so far I haven't reproduced it (mostly because I was told it only happens with "large AVIs created with VDub(Mod) and two-pass encoding" and I simply don't have the time only to make an encoding to find such a bug). Could you please test if you can create a small ( < 20megs) file that shows this behaviour? If yes, then please let me know and send the file to me (I'll tell you how).

If i convert avi to mkv with VdubMod and try to mux just audio with mkvmerge it acts very strange. It just keeps muxing forever and first complains about some tag or somenthing else. Can't remember right now.

Sorry, that's a totally useless bug report. What kind of files where you trying to use? I can only guess...

Gaia
7th June 2003, 21:18
Normal avi files encoded with xvid. Big files 500-600 mb.I use same xvid settings like everyone else. I am trying to mux aac audio but like i have already told i even can't converted just video avi to mkv. No audio. Only way it works is to first convert the video file to ogm with VdubMod. No problems with ogm files, just with pure xvid avi files.

Mosu
7th June 2003, 21:23
Originally posted by Gaia
Normal avi files encoded with xvid. Big files 500-600 mb.

But can you create a small file with the same problem? I'd like to help you, but I cannot without a test file for that case.

Gaia
7th June 2003, 21:29
Very strange. I just cutted very small clip but i managed to convert it. Maybe it's just problem with really big files. Anyway have to do more testing.

Gaia
7th June 2003, 21:34
Ok i just cutted 6 mb clip i can't converted but i have no place to upload it.

ChristianHJW
8th June 2003, 08:40
Originally posted by Gaia
Ok i just cutted 6 mb clip i can't converted but i have no place to upload it.
Mosu's email account is unlimited in email size, so you can send via email to moritz at bunkus dot org , or send it to me chris at wiesneronline dot net .

Mosu
8th June 2003, 08:58
Originally posted by ChristianHJW
Mosu's email account is unlimited in email size, so you can send via email to moritz at bunkus dot org , or send it to me chris at wiesneronline dot net .

He has already uploaded it to my FTP server - I just didn't post this info here but notified him via PM :)