PDA

View Full Version : MPEG Reading Problem with Cleaner XL


makoto916
15th August 2005, 23:02
I have this MPEG-2 file (http://www.blainehelmick.com/hosted/all_the_young_dudes-FU--intro.m2v) that I'm trying to encode using Cleaner. My problem is that Cleaner gets through the file up to 99% and then dies saying the MPEG Renderer had an unknown error.

I have many other MPEG-2 files that encode perfectly through Cleaner. In fact, everything works fine except for certain MPEG-2 files similar to the one I've linked. On the other hand, other products such as VDubMod, and DGDecode/AVISynth read it and encode it without error.

So far, I've run the file through ReStream and tried changing options there. I've also tried MPEG-VCR's GOP Fixer and it reports no problems. VDubMod's Frame scanner also comes back clean. Also I have no problems playing the file on anything or authoring it to a DVD. At first glance the problem appears to be quite obviously Cleaner. However, Cleaner works fine on any MPEG-2 file that I give it that's encoded using just about any software product, from CCE to QuEnc. So it appears to be a problem where this particular file (and others like it) are making Cleaner angry.

Let me give some additional background on where the linked file came from. I'm part of a music video production company and we produce a number of regular DVD series featuring various music video genres. The DVDs we produce are authored and encoded on a Sonic DVD Studio system. Part of my job is to extract the encoded MPEG video from the disc images and slice them by chapter point (which I do with VStrip) then repurpose these MPEG files for various other projects.

ONLY the files that have come from this disc extraction have the problem with Cleaner. This leads me to believe that there's something in this extraction process that's causing my problem. I just can't put my finger on what it is.

My gut tells me that it has something to do with the GOP structure, perhaps the file isn't closed GOP? By the way my version of Cleaner XL is 6.0.3.401 SP2.

Does anyone have a suggestion on where I should start looking for the problem? This has me stumped.

hank315
16th August 2005, 00:11
This m2v is a field based video, GOP IPPPBBBBPPBBBB etc.
All GOPS are open, GOP size 26 (field based)
Seems there's nothing wrong with it.

Just one small thing, the end is not very nice, it ends with one field (B-frame), so the last frame is not complete.
In fact this B-frame isn't the last frame, it ends with a P-frame (temporal order) but the B-frame (2 fields) which comes first in display order just misses one field.
Maybe Cleaner can't handle that.

makoto916
16th August 2005, 00:25
Based on what you said I did a cropped encode to include everything but the last second. It encoded fine. I then cropped to only encode the last 10 seconds and it failed. So you may be exactly right and Cleaner can't handle an incomplete frame at the end.

I'll try truncating the file at the last good I-Frame and see what happens.
Thanks!

makoto916
16th August 2005, 17:23
Yup, that's it.

I sliced out the incomplete GOP with Cutterman and Cleaner works perfectly. I'll report that as a bug to Discrete since it really should be able to handle this more gracefully.

Out of curiosity, what did you use to analyize the MPEG file?

Thanks for your help.

hank315
16th August 2005, 21:34
I used MPEG Stream Eye, Bitrate viewer and one of my own programs.
The last one gave this output at the end of your file:
P picture header start at byte: 5631470 (hex 55EDEE) 9
B picture header start at byte: 5644304 (hex 562010) 7
B picture header start at byte: 5652530 (hex 564032) 7
B picture header start at byte: 5661496 (hex 566338) 8
B picture header start at byte: 5670604 (hex 5686CC) 8
P picture header start at byte: 5678268 (hex 56A4BC) 12
P picture header start at byte: 5694656 (hex 56E4C0) 12
B picture header start at byte: 5710420 (hex 572254) 10
B picture header start at byte: 5720782 (hex 574ACE) 10
B picture header start at byte: 5729494 (hex 576CD6) 11
B picture header start at byte: 5737672 (hex 578CC8) 11
I picture header start at byte: 5745602 (hex 57ABC2) 0
P picture header start at byte: 5782598 (hex 583C46) 0
P picture header start at byte: 5798770 (hex 587B72) 3
P picture header start at byte: 5813546 (hex 58B52A) 3
B picture header start at byte: 5824112 (hex 58DE70) 1
B picture header start at byte: 5831860 (hex 58FCB4) 1
B picture header start at byte: 5840180 (hex 591D34) 2
B picture header start at byte: 5848394 (hex 593D4A) 2
P picture header start at byte: 5856540 (hex 595D1C) 6
P picture header start at byte: 5875562 (hex 59A76A) 6
B picture header start at byte: 5889428 (hex 59DD94) 4
B picture header start at byte: 5897162 (hex 59FBCA) 4
B picture header start at byte: 5905580 (hex 5A1CAC) 5
B picture header start at byte: 5914342 (hex 5A3EE6) 5
P picture header start at byte: 5921842 (hex 5A5C32) 9
P picture header start at byte: 5937202 (hex 5A9832) 9
B picture header start at byte: 5951704 (hex 5AD0D8) 7
B picture header start at byte: 5958998 (hex 5AED56) 7
B picture header start at byte: 5965696 (hex 5B0780) 8
B picture header start at byte: 5974308 (hex 5B2924) 8
P picture header start at byte: 5982288 (hex 5B4850) 12
P picture header start at byte: 5998216 (hex 5B8688) 12
B picture header start at byte: 6012740 (hex 5BBF44) 10
B picture header start at byte: 6021136 (hex 5BE010) 10
B picture header start at byte: 6030902 (hex 5C0636) 11The last column shows the temporal reference and there's only one 11, the first B field.
This output shows the GOPS are closed, Bitrate Viewer reported open GOPS, weird...

makoto916
17th August 2005, 16:57
I see. There should have been two consequetive 11s.

Excellent. Thank you so much for your insight. If you like music PM me and I'll send you one of our discs. :)