Printable Version of Topic
Click here to view this topic in its original format
Unofficial VirtualDub Support Forums > Testing / Bug Reports > Mjpg Issue Running Vdub V1.9.4 And Later


Posted by: Robastro Feb 14 2010, 12:52 AM
Hi,
I'm trying to convert an AVI from a Microsoft LifeCam Cinema HD,
which is in 1280x720 MJPG format, to another compression codec.
This works great on the 32-bit 1.8.8 release of vdub running under
XP Pro (32 bit), but when I try the same AVI on vdub 1.9.4 and higher
(including 1.9.8), the input file is rendered in green.
I'm trying to move everything over to a Windows 7x64 box, but the
1.8.8 x64 version wont decode mjpg input files (reports needing a VFW
codec.)

I can run vdub 1.8.8 (32-bit version) on the Win7x64 box, so have a
workaround, but thought I'd report this green rendering issue as I'd
prefer to run a 64 bit version of vdub if possible.
I can upload a test AVI if it would help.

Cheers and thanks for a superb program which I've been using for many
years in amateur astronomy - I would be "lost in space" without it! smile.gif
--
Rob



Posted by: Placio74 Feb 14 2010, 04:24 PM
What codec is used to decode?
Look at File information.

What about internal decoding (DV & MJPEG)?
Options > Preferences... > AVI > Prefer internal video decoders over installed third-party codecs (MJPEG and DV)

Posted by: phaeron Feb 14 2010, 09:16 PM
Are you running 1.9.4+ 32-bit or 64-bit? If you're running 64-bit, it may be having to use the internal codec when the 32-bit version doesn't, causing a difference. I received a bug report on the green decoding (perhaps from you) and need to look into it. Ordinarily I'd suspect a non-compliant MJPEG stream, but this one's a bit unusual as all of the general shapes appear to decode correctly.

Updated:
Found and fixed one possible cause. Please try this version:

http://www.virtualdub.org/beta/VirtualDub-1.9.9-test10.zip
http://www.virtualdub.org/beta/VirtualDub-1.9.9-test10-AMD64.zip
http://www.virtualdub.org/beta/VirtualDub-1.9.9-test10-src.7z

Posted by: jbellies Aug 17 2010, 06:39 PM
I'd like to confirm that I had the same green display (and render) problem with MJPG video from a Pentax K-x camera using 1.9.8 stable, under XP SP3. There was a tiny corner of full colour in the upper left hand corner. Upgrading to 1.9.9 stable solved the problem. Thank you for Virtual Dub and for this forum.

Posted by: oreillymj Dec 21 2011, 01:04 PM
Phaeron,

I e-mailed you about the problem with the green MJPEG video from Pentax cameras. That is now fixed, but I have another problem which I think I mailed you about also.
1080p MJPEG video cannot be opened in Virtualdub because it gives the following error.

Virtualdub cannot decode 4:2:2 Motion JPEG frames with image widths or heights that are not multiples of 16.

Both 1920 and 1080 are divisible by 16.



Posted by: fccHandler Dec 21 2011, 06:49 PM
1080 is not a multiple of 16. I know at least with MPEG-2, hi-def videos are encoded at 1920 x 1088 but the bottom 8 lines are not displayed. If I remember correctly though, JPEG macroblocks are 8 x 8 so I'm not sure why VirtualDub would require height and width to be multiples of 16...

Posted by: phaeron Dec 22 2011, 12:03 AM
This is a hold-over from an older version of the internal MJPEG codec. It used to do color conversion per macroblock, which prevented it from reasonably handling odd-size blocks. The current implementation uses the blitter library and so doesn't have this problem, but the size check is still there and is probably unnecessary. If you can post a short sample clip, I should be able to fix this problem.

Posted by: ale5000 Dec 22 2011, 11:19 PM
Sample file (MJPEG.avi - 1.23 MB): http://www.multiupload.com/NC0V9PEHV5

Another thing, it say "VirtualDub cannot decode 4:2:2 Motion JPEG frames with image widths or heights that are not multiples of 16"
but according to MediaInfo it should be "4:4:4".

Posted by: fccHandler Dec 23 2011, 04:58 AM
I've been studying the .avi posted by ale5000, and as far as I can tell it is neither 4:4:4 nor 4:2:2. I say it is 4:2:0. It has Horizontal and Vertical sampling factors of 2 for the Y component, and Horizontal and Vertical sampling factors of 1 for the Cb and Cr components. As I understand JPEG, this means that the Y is sampled twice (in both directions) for each Cb/Cr sample.

Just for fun, I used VirtualDub's hex editor to extract a single frame starting from offset 0x9136A with a length of 0x568F bytes, and uploaded it here:
http://fcchandler.home.comcast.net/boxxy.jpg

Posted by: phaeron Dec 23 2011, 07:42 AM
Typo in error message, will fix.

Posted by: oreillymj Dec 25 2011, 11:48 PM
Yes, I had divided 1080 by 16 before and got 67.5.
For some reason Calc.exe decided round the result.

I've uploaded a 1080p clip from a Pentax K5

http://www.multiupload.com/MCH2GWZT3H

Powered by Invision Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)