Question / Help Capture YV24 (i444) or YV16/YUY2(i422)

Well as topic says, i am wondering if it's possible to prevent the conversion from RGB to YV12.

I am pretty sure the conversion is done before handing it over to x264, meaning OBS handles the conversion,
leaving x264 commands useless.

My thought are that this shouldn't be hard at all, but that also depends on if there is any reason YV12 is used, except simply because x264 is defaulted to it, as it's the standardized colorspace for video.

Thanks
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
We have had 444 working in the past, but due to certain issues we took it out for the time being. It'll be possible in the rewrite just because of the better design but it's still a ways off (for windows at least)
 
Mind explaining why it has issues?

I mean, isn't YV12 and YV24 pretty much the same, it's YUV and all that?
Perhaps it's stuff in OBS that works using the YV12 system, and breaks?

I am simply looking at it as a video, so for me YV12/16/24 is the same thing, except YV12 and 16 has limitations and chroma downsampling.

Thanks
 

paibox

heros in an halfshel
OBS' primary use is live streaming, and the primary playback method of live streaming is Flash. Flash only plays back YUV 4:2:0 video properly, 4:2:2 gets downsampled to 4:2:0 (badly) and 4:4:4 just doesn't display at all.

That, and the usefulness of 4:4:4 (both when it comes to live streaming and recording) would be questionable anyway, since as I mentioned before you would not be able to share your 4:4:4 content with anyone aside from sending it directly to them, since Flash does not support playback of it.
 
Ah, well that's very understandable.

My aim for it was simply local recording, which would explain why i didn't see the problem.

Would it be easy to add, i mean simply telling it to convert to YV24 instead?
As that's extremely useful when recording Pixel Games, but that being said, for Live Stream it doesn't matter the same way.

Would be nice if it could be added, more like an advanced hack, if i could program i would probably add it myself, but i am guessing it's no way as easy as i presume where i can just change YV12 to YV24 (as you probably only have YV12 implemented in the code).
 

paibox

heros in an halfshel
There is code available to allow recording/streaming using 4:2:2 and 4:4:4 in Extrems' github repository (here: https://github.com/Extrems/OBS/commit/e02290f85c59bb958d8647f7c12a7d843bdd53b9 ), but like I said, I do not see 4:4:4 recording being useful in any way, unless you want to stare at the recording yourself, or send it to your friends.

There is no way to present it to others over the Internet Just as an example YouTube will downsample it to 4:2:0, and you will have absolutely no use for all those colors. IIRC, most movie editing applications don't properly support 4:4:4 either. What I'm saying is that even though it is technically "easy", I don't see the point in doing it considering the technology currently available.
 
It's all true what you are saying, it's pretty much useless indeed, and there is only 2 occasions where it's good.

1, personal use (as you said, archival or showing to people)
2, pixel games and size.

2: any downsampling in Pixel Games causes a huge negative impact on compression efficiency, so useing RGB/YV24 will prevent this, allowing smaller sizes.
This may be good for both archival, and uploading to youtube as it's less in size.


Even i don't see much reason for it in itself, i only care for it in the rare occasion of pixel games, it's pretty much completely useless on other things, or well Monitor capture, like Desktop browsing etc will look better as texts are sometimes colored, but that is an even rarer occasion.

I am just suggesting, or rather asking, that if you can add it and have the spare time, that would be nice.
It should surely be an advanced checkbox or something.

So If you can and have the time to want to add it, please do.

Other than that, not much i can do, it's not so important i want to force you, just wanted to bring it to attention so you know that i would like it, as selfish as it's sounds:)

Thanks
 

paibox

heros in an halfshel
Well, the code for it is all there. You could just replace those files with the ones from Extrems' github and build OBS to get a version that does 4:2:2/4:4:4 output. I would recommend skipping the settings dialog one though, and just using profile=high422 or profile=high444 in the custom encoder settings.

I don't think implementing them in a public release has much of a point anymore, you will be able to choose the color space to use in the rewrite.
 
A quick question as i am well going through the code a bit.

If i am not totally wrong, the AAC encoding is very VBR like, as for example, using 320kbps can result in 120kbps.
Is it possible to use CVBR, i commonly use that in other cases.

Though i do use QAAC and not FAAC, and it would probably be complicated to change to that which is something i can't do.

EDIT:

Replacing the files from Extremis to the Master doesn't work, it fails, probably some things have happened since that build which break things if i merge them.
 
Last edited:

Boildown

Active Member
If you really want it, download an old version of OBS that still had it enabled. Do a forum search to find the right version and how to activate it. The information is here on these forums somewhere. If all you're doing is recording your desktop, the old version should work fine, just decline to automatically update when it asks.
 
Okay i succeeded in doing it manually, took years, surprised i even was able to do it.

But as far as i know it YV24 works on the latest build now (didn't try YV16, but probably the same).

I also increased the quality of FAAC, as it's extremely inefficient at lower bitrates in comparison to other AAC encoders, but it's also the only Free one i think, so i ignored the Bitrate and let it all run on the Quality Quantizer, which is set to 500 (Max), so basically just increasing the bitrate and overall quality.

Here is the Build for those who cares: http://www.sendspace.com/file/7te4ut
 
Top