Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 18th November 2014, 13:24   #1  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
Best MJPEG VFW Option?

Hi there,

I'm looking to acquire 1080p at 60fps in real-time into a high-quality loss codec that has VFW support and offers genuine efficiency compared to the lossless alternatives.

CineForm is the obvious choice, but its VFW codec is single-threaded and it has nowhere near the performance of its DirectShow counterpart, and I've had issues actually getting the CineForm DS codec to work with capture tools that support DirectShow compressors.

I downloaded the Morgan MJPEG VFW codec and was so impressed with it that I bought it. It has multi-core support, 4:2:2 support, and at 90-92% quality level I get excellent quality and around 30-40% of the file-size of the UT codec. Happy days. Unfortunately, it compresses the colour range of Rec601 sources presented in the YUY2 format, and its RGB transformation is horribly slow, meaning no real-time capture.

Are there any other options? I have attempted to contact the Morgan codec's developer but despite having fronted up my money, there is literally no reply from support whatsoever. That's annoying because a simple fix could make this perfect for my needs, and I'd be buying at least five more licenses for my colleagues.

I've tried Blackmagic MJPEG (waaaay too slow) in both VFW and DS flavours, and also FFDShow's MJPEG codec, which didn't seem to work at all for real-time capture. Are there any other options - either with MJPEG or with fast, lossy codecs with VFW support and excellent quality? Ideally I need 4:2:2 support and capture capable on an Intel quad core system.
easy2Bcheesy is offline   Reply With Quote
Old 18th November 2014, 13:31   #2  |  Link
Nevilne
Registered User
 
Join Date: Aug 2010
Posts: 134
Check out picvideo mjpeg, also magicyuv (lossless). x264 vfw supports most colorspaces now as well.
Nevilne is offline   Reply With Quote
Old 20th November 2014, 22:25   #3  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
Hi there,

Thanks for that. PicVideo is fast, but it's single-threaded, so nowhere near fast enough. Morgan MJPEG blows it out of the water. MagicYUV is - as you say - lossless. It's based on the same type of formula as UT codec, and produces equivalent filesizes.

x264 VFW is an interesting option, but I have a pretty specific set of requirements. The codec's got to be intra-frame (I know I can configure that) but not only that I need duplicate frames in any given video to decode identically. In my tests, if I feed x264 the same frame in sequence, the encode is very, very slightly different on each frame. Again, Morgan MJPEG does that. ProRes does too, but it's Mac only. So annoying that I cannot contact the Morgan developer...
easy2Bcheesy is offline   Reply With Quote
Old 20th November 2014, 22:41   #4  |  Link
MasterNobody
Registered User
 
Join Date: Jul 2007
Posts: 552
Quote:
Originally Posted by easy2Bcheesy View Post
x264 VFW is an interesting option, but I have a pretty specific set of requirements. The codec's got to be intra-frame (I know I can configure that) but not only that I need duplicate frames in any given video to decode identically. In my tests, if I feed x264 the same frame in sequence, the encode is very, very slightly different on each frame.
IMHO using of "--keyint 1 --qcomp 1" configuration with CRF (without VBV) or QP ratecontrol should give identical output for identical input frames.
MasterNobody is offline   Reply With Quote
Old 20th November 2014, 22:43   #5  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
Oooh, I'll give that a go, thanks.
easy2Bcheesy is offline   Reply With Quote
Old 21st November 2014, 13:12   #6  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
Those settings still produce variances in identical consecutive frames, I'm afraid. Which is a shame because speed and quality are there and I daresay we get much better efficiency than MJPEG.

Might it be a decoder issue?
easy2Bcheesy is offline   Reply With Quote
Old 21st November 2014, 18:59   #7  |  Link
MasterNobody
Registered User
 
Join Date: Jul 2007
Posts: 552
How have you tested this? Do you make any colorspace conversion during decoding (may be this random dither during colorspace conversion)? btw I am curious why you make such restriction for them to be identical?
MasterNobody is offline   Reply With Quote
Old 21st November 2014, 19:04   #8  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
Video games running at 30fps, but captured at 60fps will display consecutive identical frames. Games that have a variable frame-rate can have two, three, four or even more consecutive identical frames at any given point depending on how badly they are coded!

I tested this by capturing from a PS4 at QP 16 with the switches you specify. It may well be the case that there is a conversion to RGB24, I'll check it when I'm back in the office.

EDIT: Actually, I managed to do a test on my laptop and I can confirm that colour-space conversion is the culprit. I forced through YUY2 from start to finish and everything worked fine - thanks!

Last edited by easy2Bcheesy; 21st November 2014 at 19:10.
easy2Bcheesy is offline   Reply With Quote
Old 21st November 2014, 20:09   #9  |  Link
HulkHoganRules
Registered User
 
Join Date: Aug 2012
Posts: 28
Just wanted to add that I've done lots of testing for video games at true 1080p60 and the only one that ever impressed me was x264vfw. The only thing that ever destroyed x264vfw in CPU usage was MagicYuv but then the data rates of MagicYuv were much higher. Additionally, the config you can do in x264vfw is just too strong. Don't need perfect frame seeking during editing? Turn down --keyint to something like 10 and enjoy 35-40% data rate reductions! It's monstrous.

More info: http://www.thethrillness.com/2014/10...s-x264vfw.html

Last edited by HulkHoganRules; 23rd November 2014 at 00:14.
HulkHoganRules is offline   Reply With Quote
Old 2nd December 2017, 13:37   #10  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
So three years on and I'm still looking for a really good VFW lossy codec that can encode at 1080p60 using AmaRecTV.

I'd still like to see identical encoding of identical content per frame, and being able to smoothly edit in Premiere would be very useful.

UT, Magic etc... they suck up more HDD space than ProRes 422 at 4K! I'm sure there is a better solution out there, even if VFW seems to be disappearing into the background.
easy2Bcheesy is offline   Reply With Quote
Old 2nd December 2017, 19:11   #11  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,750
Quote:
Originally Posted by easy2Bcheesy View Post
So three years on and I'm still looking for a really good VFW lossy codec...
I think the lesson at this point is to look for tools that can use a better API than VFW. DirectShow was announced in the 90's (as ActiveMedia and with a promised Mac version).

It was amazing how long it took to get computer media frameworks to support B-frames. QuickTime didn't get it until QT7, IIRC. And I am SO amazed that any apps still don't do DirectShow 20 years after it was released. I guess in-order frames linearly is an essential After Effects foundational assumption or something.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 3rd December 2017, 17:45   #12  |  Link
easy2Bcheesy
Moderator
 
easy2Bcheesy's Avatar
 
Join Date: Feb 2002
Posts: 643
I agree, Ben.

Then we can easily plug into CineForm's stupidly fast DirectShow encoder.

But the issue is that I've yet to find a decent DirectShow-based capture tool with the kind of flexibility on input devices and compression formats as AmaRecTV or VirtualDub.

I'm open to ideas here!
easy2Bcheesy is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 10:10.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.