OBS branch with AMD VCE support.

jackun

Developer
Blurry indeed. No where near the quality of x264. But it works, so that's something.

Ok, i commited somewhat working MFT version (aka Media SDK). Still *PeakConstrainedVBR/CBR set to 300kbps rockets to 1Mbps, ugh.

There are some unused async methods, ignore those for now.
 
Is the quality that bad from x264?
I saw a clip myself, i think it looked fine in terms of the bitrate it was.
That was about 28mbps if i am not mistaken, perhaps you are talking around 10mbps where the encoder has to work a lot harder to retain details?
 

jackun

Developer
Jarod is trying to limit CBR bitrate ceiling, but with these settings and low bitrate it gets extra blurry.

E: dat wording.
 
Last edited:

Jarod

New Member
The quality from x264 is awesome. This is just an attempt to use this H.264 encoding hardware that AMD claims to have provided for us.

That was about 28mbps if i am not mistaken...

Think 3mbps. If folk had 28mbps of upstream bandwidth, we could just use mpeg2 and call it a day. :)
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
Hardware encoders don't typically get the same quality as x264. I would recommend comparing them to the other hardware encoders if you have access to them.
 
Jarod, i have 100mbps so bitrate isn't actually a problem for me, as long as it's below 100mbps, and doesn't get above 100gb (Youtube has a limit around there per file).

I would though say, MPEG-2 look like crap even at those bitrates for HD, even x264 isn't able to make it completely transparent on normal settings, though it's very close.

Jim, yeah i know that, but i would like to know how big a difference there is.
If it's 10-20% it's completely fine, if it's like 50% then that's a major difference.
 

Jarod

New Member
VS Express 2013 doesn't include ATL. What a pita...

For the time being, I'm going to continue working with the OpenVideo interface. Still a bunch of stuff I want to try there. If I can find time to do so...
 

Jarod

New Member
Yep, trying that. It is still giving me fits. Unless you are seeing significantly improved performance, I'm not sure I want to spend much time on it anyhow.

First-chance exception at 0x768CC42D in OBS.exe: Microsoft C++ exception: _com_error at memory location 0x0041D5BC.
time left: 166666667
First-chance exception at 0x768CC42D in OBS.exe: Microsoft C++ exception: _com_error at memory location 0x0AEAEBC8.
time left: 133333335
First-chance exception at 0x768CC42D in OBS.exe: Microsoft C++ exception: _com_error at memory location 0x0AEAEBC8.
time left: 100000003
time left: 66666671
time left: 33333339
The logs were basically useless, but I attached one anyhow. The first exception occurs at MftUtils.h:1314 (???) - soon after, the connection times out.

I thought this was interesting...
'OBS.exe' (Win32): Loaded 'C:\Program Files\Common Files\ATI Technologies\Multimedia\AMDh264Enc32.dll'. Cannot find or open the PDB file.

--- All that aside... ---

I went ahead and sampled some streaming at 1280x720 and 1680x1050 resolutions using CBR video from x264 and VCE. You can find the samples here:
http://www.twitch.tv/janeuner/profile
 

Attachments

  • 2014-05-25-1905-11.log
    6.6 KB · Views: 46
Last edited:
The difference in quality is quite huge, VCE doesn't seem to be able to handle blurriness at all and just causes blockiness instead.

However, i wouldn't actually compete against "Very Fast", rather "Super Fast".

Anyhow, the performance hit was huge as well in comparison:)
 

Jarod

New Member
I tried out several things wrt motion estimation settings. I am quite happy with how it turned out. Check out these one two three twitch highlights. I'd say that is quite usable. Once jackun has a new build to play with, I would appreciate if someone with a VCE 2 card could provide us with a comparison to these samples.

Of note, very high GPU usage has a severe impact on encoder quality. I tried to capture StarSwarm while running in Mantle API mode; it was a disaster.
 

jackun

Developer
Something weird happens with MFT. At random times in BufferVideoData (i think it was) I get memory access exception 0xC00000005 when List<T> does CopyArray. But by that time it should have done enough memory copies even if IMFSample/IMFMediaBuffer/CComPtr releases memory somewhere.
 

seronx

New Member
This is with a R7 260X GPU with VCE2.

With the VCE MFT Filter, I get;

Encoder Initialization failed:
YUV444 colorspace is not supported by VCE.
--
Without the VCE MFT Filter, I get;

1+x amount of frames then stuck image.
--


Dxtory with VCE VFW to OBS x264 can cast 60 fps. While Dxtory - DXT Codec to OBS VCE can not cast at 60 fps.

30 fps is okay with Dxtory VCE + OBS VCE.
 

jackun

Developer
Encoder Initialization failed:
YUV444 colorspace is not supported by VCE.

Disable 'Use OpenCL' checkbox. But it will crash sometime anyway, heh.
CBR has some higher quality settings so that lower bitrates look a bit better but that might be too slow for 60 fps capture.
Quality (if CRF is enabled under Advanced) and VBR (if CRF is disabled under Advanced) use max speed/lower quality settings if over 720p/30fps.
 
Was just about to ask how much bitrate it could be run at, not sure how fps matters in terms of bitrate, but i am guessing 60fps takes twice the amount of time?

How does 50mbps yield at 30fps?

Of note, very high GPU usage has a severe impact on encoder quality. I tried to capture StarSwarm while running in Mantle API mode; it was a disaster.

Now this is quite bad, i thought the Hardware encoder was a chip that was maintained on it's own, making GPU usage have no effect on it.

If that's now the case, it's pretty much like the normal x264, just instead of caring for CPU Usage you need to look out for GPU (which sadly is more likely to reach higher than CPU in games).
 

quickshot101

New Member
Not sure if this is any help but here ya go.

i5 2500k and 7950. Streaming 30fps 720 using x264 was fine, but left me with little cpu to spare, 1080 was a no go. I dl your vce obs and=few crashes, kinda found ways to work that avoid them. I can stream 1080 60fps 5k bitrate, lag free. I was streaming watch dogs just the other day @ 1080/60 and my cpu was only sitting @ 80% usage, freaking fantastic. This is a sample from a stream I did recently for watch dogs. Its 720 60fps 3500 bitrate vce. Looks good imo. One issue I could not get around, the bitrate would spike randomly to like 14k then drop back down shortly after.

Im super impressed with what I have seen so far. Please keep the GREAT work up and thank you for your effort put in all ready. Im just blown away that the only thing holding me back from streaming 1080 60fps now is not my rig, but the fact twitch viewers can't handle the 5k-8k bitrate req to make the stream block free. <3 and keep up the great work

http://www.twitch.tv/quicksh0thd/b/533201303 (flickers green for 10sec at start, rest is perfect)
 

Jarod

New Member
Now this is quite bad, i thought the Hardware encoder was a chip that was maintained on it's own, making GPU usage have no effect on it...

It is too early to cast any good/bad judgement. The only factor right now is whether or not a particular thing is working. It may be that the current implementation has flaws, or it is lacking in some optimization that will make these issues disappear. Or it may be that Mantle is still in beta and the drivers need work. StarSwarm w/ Mantle is a stress test; if anything was going to break it, that test is probably it.

Its 720 60fps 3500 bitrate vce. Looks good imo. One issue I could not get around, the bitrate would spike randomly to like 14k then drop back down shortly after.

I still see this too. For me, it crops up when programs are caching textures in video ram. It may be a bottleneck in the drivers, a bottleneck on the PCI-E bus, or a defect in the OBS interface. Or something else we haven't thought of yet.

Thanks for the other feedback. I'm upstream-limited to 4Mbps, so it's good to see reports at higher bitrates.
 

vbdkv

Member
Still haven't been able to stream anything, at all, but for local recording it works great.
Twitch is complaining that it's not CBR but rather VBR, on my phone I get only audio but no picture and its impossible to watch on twitch as well.

Not sure what to do really.
 
Top