PDA

View Full Version : Problems with remuxing MP4 to MKV


Lobuz
3rd September 2003, 02:45
I was trying to convert those files file1 (http://media.moller.com/Flight030111-320WebMovie.mp4) , file2 (http://media.moller.com/Flight030323-320WebMovie.mp4)
but there's something wrong. It's MP4 with AAC audio and MPEG4 video. First just demuxed audio and video with graphedit and 3ivx demuxer to MKV with MatroskaMuxer. It plays fine with 3ivx for video and coreaac for audio but sound is somehow pitched. So tryed separately demux audio and video to mkv,mka and mux with mkvmerge. Now it often crashes MPC and ther is no sound or the sound but with AVIdecompresor for video.
Single audio mka file with aac is pitched too.
And of cours it's hard to use something els then 3ivx to play mp4v.
And somehow I couldn't convert audio to other format with graphedit.
Any comments?

Regards
Lobuz

shitowax
3rd September 2003, 11:13
There are a few problems in the 3ivx 404 splitter that prevent you to transmux correctly to mkv. They have been fixed and it works in the next version due soon ;). Concerning the playback of mp4v with "something else than 3ivx", opening the media splitter and decreasing 3ivx decoder's priority should fix your problem.

hope that helps.

Originally posted by Lobuz
I was trying to convert those files file1 (http://media.moller.com/Flight030111-320WebMovie.mp4) , file2 (http://media.moller.com/Flight030323-320WebMovie.mp4)
but there's something wrong. It's MP4 with AAC audio and MPEG4 video. First just demuxed audio and video with graphedit and 3ivx demuxer to MKV with MatroskaMuxer. It plays fine with 3ivx for video and coreaac for audio but sound is somehow pitched. So tryed separately demux audio and video to mkv,mka and mux with mkvmerge. Now it often crashes MPC and ther is no sound or the sound but with AVIdecompresor for video.
Single audio mka file with aac is pitched too.
And of cours it's hard to use something els then 3ivx to play mp4v.
And somehow I couldn't convert audio to other format with graphedit.
Any comments?

Regards
Lobuz

[Toff]
3rd September 2003, 11:13
I have no problem with 3ivx + CoreAAC (1.0b7) to play the mp4 version.

Now when i transmux to matroska, it seems that matroska muxer (1.0.0.7) set the channel number to 2 which is wrong (probably because the 3ivx filter always report 2 channels even if there is only 1), CoreAAC don't use the waveformatex info but only the extra data (mp4AudioSpecificConfig).

The available matroska muxer is more than 1 month old, Where are you Gabest :D ? I bet he has a better version than us ;)

shitowax
3rd September 2003, 11:25
The 3ivx splitter outputs what is written in the moov structure of the mp4 files, and this can be bullshit i.e. not coresponding to the AudioDecoderConfig. Btw, it's the same for video, often the video dimension are outputted badly by the splitter cause they are fucked up in the moov structure but correct in the VideoDecoderConfig ... Even QT6.3 still produces fucked up .mp4 files ;)

Originally posted by [Toff]
I have no problem with 3ivx + CoreAAC (1.0b7) to play the mp4 version.

Now when i transmux to matroska, it seems that matroska muxer (1.0.0.7) set the channel number to 2 which is wrong (probably because the 3ivx filter always report 2 channels even if there is only 1), CoreAAC don't use the waveformatex info but only the extra data (mp4AudioSpecificConfig).

The available matroska muxer is more than 1 month old, Where are you Gabest :D ? I bet he has a better version than us ;)

Morpheus_xx
17th December 2003, 19:42
Hi,

I have similiar problems when I try to transmux MP4->MKV/AVI:

When I connect "3ivx D4 Media Splitter" to the "Matroska Muxer" or "AviMux", always the decoder filters are inserted between. So the input is decompressed...

Any help?

Thnx,
Morpheus

Atamido
17th December 2003, 19:49
"did you enabled "Allow unsupported Decoders" in the 3ivX Splitter configuration?"

Morpheus_xx
17th December 2003, 20:13
aaaahhhhh.

thank you. This solved the decoder problem.

And I'm now able to write a mkv-file :-)

Thnx

Morpheus_xx
18th December 2003, 09:25
Hmmm....

Now I have a mkv that is not able to decode audio (HE-AAC, 96kbs, NeroDigital). When I try to play it, graphedit cannot find a suitable filter.

But I have both 3ivx and CoreAAC installed. They work fine when the source is the mp4. But as soon as I demux or transmux to matroska, I'm not able to play it anymore?!


Second problem is with my standalone DivX player (Hiteker HE 940). It reads the index of an transmuxed "mp4->mkv->avi" file (without audio) but screens stays black and the time counter jumps in ~45 second-steps forward. What's going on there?


Help, please ...

Thnx&Bye

shitowax
18th December 2003, 10:21
No idea about the HE-AAC problem, but when you do mp4->mkv->avi, the video you'll get will have a fourcc "mp4v", which may not be recognized by your hardware player. Another point, why do you do mp4->mkv->avi and not mp4->avi directly ?
.
Originally posted by Morpheus_xx
Hmmm....

Now I have a mkv that is not able to decode audio (HE-AAC, 96kbs, NeroDigital). When I try to play it, graphedit cannot find a suitable filter.

But I have both 3ivx and CoreAAC installed. They work fine when the source is the mp4. But as soon as I demux or transmux to matroska, I'm not able to play it anymore?!


Second problem is with my standalone DivX player (Hiteker HE 940). It reads the index of an transmuxed "mp4->mkv->avi" file (without audio) but screens stays black and the time counter jumps in ~45 second-steps forward. What's going on there?


Help, please ...

Thnx&Bye

ChristianHJW
18th December 2003, 15:07
Yes, where is Gabest :o !

We should start writing native MPEG4 MKV files with codec ID 'V_MPEG4/ISO/ASP' if the source is a MP4 and FourCC is 'mp4v', instead of using AVI compatibility mode :( ....

BTW, is there a way to check on DirectShow what the source actually is ? If not, we cant make native files from sources with FourCC 'mp4v', because we dont know if its coming from AVI or MP4, and in case AVI was used we can have a file with packed bitstream again ? no ?

Hmmm, when writing about it .... how is this actually working out then ? The AVIs produced on DShow from a MP4 source will not have a packed bitstream for sure i guess, because they werent done with a VfW codec ? Do i get this right, that we are safe then to make native files from that ? How can these AVIs be edited in Vdub, even if we assume XviD would be set to decode 'mp4v' via VCM also :o :o ?? Is this possible at all ?

The best solution would probably be to define a new MEDIASUBTYPE for native MPEG4 ES streams, in both the 3ivX MP4 demuxer and the matroska muxer, because then we know for sure we have a native stream without packed bitstream coming in ....

shitowax
18th December 2003, 16:12
Originally posted by ChristianHJW
BTW, is there a way to check on DirectShow what the source actually is ? If not, we cant make native files from sources with FourCC 'mp4v', because we dont know if its coming from AVI or MP4, and in case AVI was used we can have a file with packed bitstream again ? no ?

Sure. There are lot's of way to know that.


Hmmm, when writing about it .... how is this actually working out then ? The AVIs produced on DShow from a MP4 source will not have a packed bitstream for sure i guess, because they werent done with a VfW codec ? Do i get this right, that we are safe then to make native files from that ? How can these AVIs be edited in Vdub, even if we assume XviD would be set to decode 'mp4v' via VCM also :o :o ?? Is this possible at all ?
The best solution would probably be to define a new MEDIASUBTYPE for native MPEG4 ES streams, in both the 3ivX MP4 demuxer and the matroska muxer, because then we know for sure we have a native stream without packed bitstream coming in ....


There is a couple of problems when remuxing .mp4 into .avi ... especially packing and VFR. The 3ivx splitter will always output what's in the .mp4 .i.e if the .mp4 has been created from an .avi by a buggy .mp4 tool that doesn't unpack b-frames then b-frames will be outputted packed... So, you cannot hope that streams will always comes out correctly from the 3ivx splitter...
The real solution is that the mkv muxer implements what we did for the 3ivx muxer : an mp4v stream parser able to unpack/clean the bitstream ...

Morpheus_xx
18th December 2003, 16:55
Originally posted by shitowax
No idea about the HE-AAC problem, but when you do mp4->mkv->avi, the video you'll get will have a fourcc "mp4v", which may not be recognized by your hardware player. Another point, why do you do mp4->mkv->avi and not mp4->avi directly ?
.

I couldn't use "File source->3ivx Splitter->AviMux->file writer" because I got an error "can't change state".

For my sa-player I changed the FourCC to "divx" but this doesn't help at all.

Atamido
18th December 2003, 18:47
I did AVI->MP4->MKV fine. The wierd thing was that I tried the MP4->MKV three times, and each time the first frame of the video was a different size. Everything else was the same. It played fine for all of them, but it is a strange thing to happen.