OBS branch with AMD VCE support.

Jack0r

The Helping Squad
Maybe its worth mentioning that this is still a test version I would think. Instead of posting a video and some numbers you could post your log files so jackun has something to work with :)
 
D

Deleted member 16193

mine keeps crashing OBS while streaming csgo, ill try and get a log out to you but it looks like theyve all been deleted already so ill have to play a bit more to get one ;/

these are with all different settings

1080p downscaled to 720p @ 30fps
1080p downscaled to 720p @ 60fps
1080p @ 60fps
1080p @ 30fps
 

Attachments

  • OBSCrashLog2014-05-14_1.txt
    4 KB · Views: 28
  • OBSCrashLog2014-05-14_2.txt
    4 KB · Views: 23
  • OBSCrashLog2014-05-14_3.txt
    3.4 KB · Views: 23
  • OBSCrashLog2014-05-17_1.txt
    3.4 KB · Views: 32
Last edited by a moderator:

jackun

Developer
mine keeps crashing OBS while streaming csgo, ill try and get a log out to you but it looks like theyve all been deleted already so ill have to play a bit more to get one ;/

Can you try with x264? Because if stacktrace is correct it looks like it is crashing when deleting MMDeviceAudioSource class.
 
D

Deleted member 16193

it works with x264 for hours and hours regardless of settings
 

vbdkv

Member
Kind of true, but at least Nvidia increases clockspeeds when making new models instead of taking the exact same everything, putting a different cooler on it, and calling it a new model. AMD was particularly shameless about it.

Umm last time I checked, AMD increased core clock and memory speed.
 

jackun

Developer
Hmm, weird. If you record to file, is it in sync?
Do a 240p and 720p test stream of you playing with windows sounds or something, hehe.
My test with the sync fix, audio lagged some 1-2 seconds, but without it it seems ok.

Can't stream higher than 240p with my net :(
 

PoznanskaPyra

New Member
Hmm, weird. If you record to file, is it in sync?
Do a 240p and 720p test stream of you playing with windows sounds or something, hehe.
My test with the sync fix, audio lagged some 1-2 seconds, but without it it seems ok.

Can't stream higher than 240p with my net :(

I get a test on 360p (minimum to OBS). This test is funny: D But very good shows a sync problem.

 

Jarod

New Member
I've been fiddling with the encoder settings in an attempt to stabilize CBR bitrates. I've had some success; preview bitrate is perfect, and twitch now reports excellent stream quality. My current progress is here.

The application tends to hang when streaming is stopped. I will see these debug messages about dropped packets...
Set audio offset: -331
got keyframe: 427011
dropped b-frames at 957158, threshold is 69, total duration is 75
dropped all at 1574784, threshold is 269, total duration is 277, 19 in queue
dropped all at 10348526, threshold is 269, total duration is 3178, 242 in queue
dropped all at 3361463, threshold is 269, total duration is 1302, 97 in queue
dropped all at 1313883, threshold is 269, total duration is 662, 48 in queue
dropped all at 1512517, threshold is 269, total duration is 1280, 93 in queue
dropped all at 1423378, threshold is 269, total duration is 1387, 100 in queue
...and the app enters a loop at RTMPPublisher::FlushBufferedPackets; packet.Timestamp is less than baseTimestamp, so that half of the comparison evaluates to something near UINT_MAX.

Anyhow, log file is attached. I'll have more time to look at it this evening.
 

Attachments

  • 2014-05-21-2308-42.log
    176.2 KB · Views: 23

jackun

Developer
dropped b-frames at 957158, threshold is 69, total duration is 75

Actually had b-frames with OVE? :D

Buffered packets' timestamps are out of order for some reason with VCE. Haven't track down yet how/where they get set.
Just hacked around it for now:
} while (curTime - startTime < packet.timestamp - baseTimestamp && (packet.timestamp > baseTimestamp));

Trying to get Media Foundation aka Media SDK running. But that thing runs async.

E: Did the quality settings mess with CBR too much?
Messed with some settings. Check if still work :P
 
Last edited:

Jarod

New Member
The message says b frames, but not sure I believe it! Need to look deeper...

It seems like any setting besides the encRateControl{Target,Peak}BitRate results in VCE simply ignoring the CBR parameter. Especially encQP_* - I think that those parameters may override encRateControlMethod.
 

jackun

Developer
Especially encQP_* - I think that those parameters may override encRateControlMethod.
encRateControlPeakBitRate is "Active peak bitrate" in log and driver sets it as target bitrate either way :(

Reverted some of my changes, but yeah, it gets blurry.

test build
 
Last edited:

Jarod

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

Btw, setting encForceIntraRefresh doesn't generate IDR packets when running in CBR mode. Similarly, the mReqKeyframe check in VCEEncoder::Encode() was never getting triggered; I haven't looked far enough to understand the upper layers of that mechanism.

Todo items:
1) Figure out why packets are generated out of order and/or see about fixing the frame ordering.
2) Investigate the OVE ME and RDO options to try and squeeze out better quality during quantization.
 
Last edited:
Top