Status
Not open for further replies.

Xaymar

Active Member
Xaymar updated VCE-based Encoder (AMD Media Framework) with a new update entry:

1.2.0pre4 - The Remaking

  • Changed: Encoders are now based on a shared class that interfaces with AMF to reduce duplicate code and be future proof.
  • Changed: Advanced Encoder is now called "H264 VCE Encoder [Advanced] (AMD Media Framework)".
  • Changed: Encoder Type and Profile are now separate fields. [Advanced]
  • Changed: Motion Estimation is now a drop down instead of checkboxes. [Advanced]
  • Changed: IDR Period limit is now 1000. [Advanced]
  • Changed: B-Picture Delta QPs are now in the range -11 to 10, with -11 being 'Default'. [Advanced]
  • Changed: Bitrates are limited to the value returned by AMD Media Framework.
  • Changed: Shared Encoder Interface now uses a 180 frame queue to produce higher final image quality.
  • Changed: Shared Encoder Interface will now use two additional threads to handle frame submission and packet querying.
  • Fixed: Plugin will correctly show when it is overloaded.
  • Fixed: PTS Timestamp is now correct for both AMD Media Framework and OBS. Fixes both B-Frame issues as well as insane bitrates.
  • Fixed: Quality Preset, Profile and Profile Level are now applied last.
  • Added: The following languages have been added or updated: English, Spanish (Markitos), Danish (wazer), Hungarian (niteforce), Vietnamese (max20091), Russian (leporel).
  • Added: Advanced Encoder now has a Quality Preset option 'None'. [Advanced]
  • Added: Checkbox to Reset to Default and replace default values with values from AMD Media Framework. [Advanced]
  • Added: Capability logging at plugin start.

Read the rest of this update entry...
 
Last edited:

ball2hi

Member
@Xaymar

The new version 1.2.0pre4 seems to not be working when using the simple interface. You hit "start streaming" or "start recording" and it never actually starts or end. You have to close OBS to get it to stop.
 

Xaymar

Active Member
I don't know how often I have to repeat the word Pre-Release and phrase "Simple Encoder is not done yet". Edit: 1.2.0rc1 now has it implemented.
 
Last edited:

Xaymar

Active Member
Xaymar updated VCE-based Encoder (AMD Media Framework) with a new update entry:

1.2.0rc1 - The Remaking (Release Candidate)

  • Changed: Encoders are now based on a shared class that interfaces with AMF to reduce duplicate code and be future proof.
  • Changed: Advanced Encoder is now called "H264 VCE Encoder [Advanced] (AMD Media Framework)".
  • Changed: Encoder Type and Profile are now separate fields. [Advanced]
  • Changed: Motion Estimation is now a drop down instead of checkboxes. [Advanced]
  • Changed: IDR Period limit is now 1000. [Advanced]
  • Changed: B-Picture Delta QPs are now in the range -11 to 10, with -11 being 'Default'. [Advanced]
  • Changed: Bitrates are limited to the value returned by AMD Media Framework.
  • Changed: Shared Encoder Interface now uses a 180 frame queue to produce higher final image quality.
  • Changed: Shared Encoder Interface will now use two additional threads to handle frame submission and packet querying.
  • Fixed: Plugin will correctly show when it is overloaded.
  • Fixed: PTS Timestamp is now correct for both AMD Media Framework and OBS. Fixes both B-Frame issues as well as insane bitrates.
  • Fixed: Quality Preset, Profile and Profile Level are now applied last.
  • Fixed: Random settings would stop working starting with driver version 16.7.1, this has been partially fixed. [1]
  • Added: Simple Encoder named "H264 VCE Encoder (AMD Media Framework)" [2]
  • Added: The following languages have been added or updated: English, Spanish (Markitos), Danish (wazer), Hungarian (niteforce), Vietnamese (max20091), Russian (leporel). [3]
  • Added: Advanced Encoder now has a Quality Preset option 'None'. [Advanced]
  • Added: Checkbox to Reset to Default and replace default values with values from AMD Media Framework. [Advanced]
  • Added: Capability logging at plugin start.
  1. AMF expected the plugin to deliver 32-Bit Integers, but with the optimized build that no longer happened - the compiler straight up sent 64-Bit Integers to AMF unlike in the Debug build where things actually worked. The fix was to simply explicitly cast to a 32-Bit Integer type.
  2. A really dumbed down and simplified version of the encoder with minimal customization options. Similar to x264 in terms of UI.
  3. en-US has been updated with strings for the Simple encoder, other languages are waiting on the contributors to update them.

Read the rest of this update entry...
 
Last edited:

vapeahoy

Member
Seems to work quite fine now, tested with casual CBR 2800/2 keyframe/high/Balanced.. However, when viewing the stream in browser, while streaming, it halts the video in browser, but not audio.That's with hardware acceleration checked enabled in browser.
 

vapeahoy

Member
maybe not overclock the cpu you're streaming with to as close to max it can possibly go? Have pretty much same hardware on streaming pc, and run it underclocked actually. No crash.
 

sneaky4oe

Member
I doubt that it's an issue. OBS studio crashes for me right when I close it even when I'm using native cpu clock.
And now it seems like some elements weren't closed correctly and OBS can't access them because of that.

Also, my CPU can work @ 4.9 ghz without any errors - I did all the stress testing. So it's fine.
 

Xaymar

Active Member
Seems to work quite fine now, tested with casual CBR 2800/2 keyframe/high/Balanced.. However, when viewing the stream in browser, while streaming, it halts the video in browser, but not audio.That's with hardware acceleration checked enabled in browser.

Can't really do much about that - it does work fine here. Tested it on Twitch and YouTube

So, I've tested it and closed OBS. OBS crashed. Than I restarted and started streaming again. Instant crash.
https://gist.github.com/9f6cc7835eaafc8b96922f6ade98ef73 - instant crash here.

But I like the simplified quality high preset - works like a charm at least in record. While watching stream replay, it lagged...
https://www.twitch.tv/sneaky4oe1080/v/83510184

I doubt that it's an issue. OBS studio crashes for me right when I close it even when I'm using native cpu clock.
And now it seems like some elements weren't closed correctly and OBS can't access them because of that.

Also, my CPU can work @ 4.9 ghz without any errors - I did all the stress testing. So it's fine.

Both Simple and Advanced encoder are internally identical, so a crash in the Advanced one should happen in the Simple one. If it doesn't, make sure that your system has no issues with multithreading and synchronization. I've tested extensively and had no crashes over 4 hours of usage.
 

sodawipe1

New Member
hi , I have this problem on twitch , i'm using tested configurations . my specs i7 3770k 4.5 , 8gb 1600mhz , r9 280x pci 3.0 16x , hd 2tb 7200 64mb , driver video 16.8.2 , win 10 64 , obs studio 0.15.4.
 

Attachments

  • vce test 1.jpg
    vce test 1.jpg
    251 KB · Views: 98

Xaymar

Active Member
hi , I have this problem on twitch , i'm using tested configurations . my specs i7 3770k 4.5 , 8gb 1600mhz , r9 280x pci 3.0 16x , hd 2tb 7200 64mb , driver video 16.8.2 , win 10 64 , obs studio 0.15.4.

Try using the Simple Encoder instead, it sets everything up for you. I can't provide help with encoding settings.
 

leporel

New Member
hi , I have this problem on twitch , i'm using tested configurations . my specs i7 3770k 4.5 , 8gb 1600mhz , r9 280x pci 3.0 16x , hd 2tb 7200 64mb , driver video 16.8.2 , win 10 64 , obs studio 0.15.4.

disable hardware acceleration in Google Chrome
 

ball2hi

Member
@Xaymar

What should:

(IDR (Keyframe) Period (In Frames) be set to? If I stream at 60 fps, would I set it to 30 so that it's a keyframe interval of 2(?) for twitch or something?

Also, for some reason CQP just doesn't seem to make an impact in quality. I got it to work properly once but now I have no clue how to get it back to actually use CQP:

Code:
16:52:09.359: [rtmp stream: 'adv_stream'] Connecting to RTMP URL rtmp://live.twitch.tv/app...
16:52:09.361: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE_H264_Encoder::VCE_H264_Encoder> Initializing...
16:52:09.361: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::H264> Attempting to create AVC Encoder...
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetMemoryType> Set to Host.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetSurfaceFormat> Set to NV12.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetUsage> Set to Transcoding.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetQualityPreset> Set to Speed.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetProfile> Set to High.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetProfileLevel> Set to 4.2.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetFrameSize> Set to 1280x720.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetFrameRate> Set to 48/1.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetMaxOfLTRFrames> Set to 0.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetScanType> Set to Progressive.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetRateControlMethod> Set to Constrained QP.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::EnableFrameSkipping> Set to Enabled.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::EnableFillerData> Set to Disabled.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::EnableEnforceHRD> Set to Disabled.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetGOPSize> Set to 48.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetInitialVBVBufferFullness> Set to 1.000000.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetMaximumAccessUnitSize> Set to 0.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetMinimumQP> Set to 25.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetMaximumQP> Set to 51.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetIFrameQP> Set to 25.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetPFrameQP> Set to 25.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetBFrameQP> Set to 25.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetHeaderInsertionSpacing> Set to 0.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetNumberOfBPictures> Set to 0.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetDeblockingFilterEnabled> Set to Enabled.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetReferenceToBFrameEnabled> Set to Disabled.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetIDRPeriod> Set to 24.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetInfraRefreshMBsPerSlotInMacroblocks> Set to 0.
16:52:09.400: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetNumberOfSlicesPerFrame> Set to 1.
16:52:09.401: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetHalfPixelMotionEstimationEnabled> Set to Disabled.
16:52:09.401: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::SetQuarterPixelMotionEstimationEnabled> Set to Disabled.
16:52:09.401: [AMF Encoder v1.2.0rc1] Verify Settings:
16:52:09.401: [AMF Encoder v1.2.0rc1]     Memory Type: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Surface Format: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Usage: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Quality Preset: 1
16:52:09.401: [AMF Encoder v1.2.0rc1]     Profile: 2
16:52:09.401: [AMF Encoder v1.2.0rc1]     Profile Level: 12
16:52:09.401: [AMF Encoder v1.2.0rc1]     Max LTR Frames: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Scan Type: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Frame Size: 1280x720
16:52:09.401: [AMF Encoder v1.2.0rc1]     Frame Rate: 48/1
16:52:09.401: [AMF Encoder v1.2.0rc1]     Rate Control Method: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Frame Skipping: Enabled
16:52:09.401: [AMF Encoder v1.2.0rc1]     Filler Data: Disabled
16:52:09.401: [AMF Encoder v1.2.0rc1]     Enforce HRD: Disabled
16:52:09.401: [AMF Encoder v1.2.0rc1]     GOP Size: 48
16:52:09.401: [AMF Encoder v1.2.0rc1]     VBV Buffer Size: 20000000
16:52:09.401: [AMF Encoder v1.2.0rc1]     VBV Buffer Fullness: 1.000000
16:52:09.401: [AMF Encoder v1.2.0rc1]     Max AU Size: 0
16:52:09.401: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::GetBPictureDeltaQP> Failed to retrieve, error AMF_ACCESS_DENIED (code 3).
16:52:09.401: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::GetReferenceBPictureDeltaQP> Failed to retrieve, error AMF_ACCESS_DENIED (code 3).
16:52:09.401: [AMF Encoder v1.2.0rc1]     Min QP: 25
16:52:09.401: [AMF Encoder v1.2.0rc1]     Max QP: 51
16:52:09.401: [AMF Encoder v1.2.0rc1]     I-QP: 25
16:52:09.401: [AMF Encoder v1.2.0rc1]     P-QP: 25
16:52:09.401: [AMF Encoder v1.2.0rc1]     B-QP: 25
16:52:09.401: [AMF Encoder v1.2.0rc1]     Target Bitrate: 20000000
16:52:09.401: [AMF Encoder v1.2.0rc1]     Peak Bitrate: 20000000
16:52:09.401: [AMF Encoder v1.2.0rc1]     Header Insertion Spacing: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     BPic Count: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Deblocking: Enabled
16:52:09.401: [AMF Encoder v1.2.0rc1]     B-Frame Reference: Disabled
16:52:09.401: [AMF Encoder v1.2.0rc1]     IDR Period: 24
16:52:09.401: [AMF Encoder v1.2.0rc1]     Intra-REfresh MBs: 0
16:52:09.401: [AMF Encoder v1.2.0rc1]     Slices per Frame: 1
16:52:09.401: [AMF Encoder v1.2.0rc1]     Half-Pixel Motion: Disabled
16:52:09.401: [AMF Encoder v1.2.0rc1]     Quarter-Pixel Motion: Disabled
16:52:09.401: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE::GetNumberOfTemporalEnhancementLayers> Failed to retrieve, error AMF_ACCESS_DENIED (code 3).
16:52:09.406: [AMF Encoder v1.2.0rc1] <AMFEncoder::VCE_H264_Encoder::VCE_H264_Encoder> Complete.

Should I set target bitrate, peak bitrate, and VBV to 0 (or 1) to force it to use CQP?

EDIT: Setting it to 0 for CQP broke it.
 
Last edited:

Xaymar

Active Member
AMD AMF SDK (the replacement for Media SDK) is out. 1.2.0 is the last release on the Media SDK 1.1 version, future versions will use the new SDK.
 

Xaymar

Active Member
Looks like they rewrote it from the ground up and included actual documentation this time. It'll probably be sunday before I can get out a new pre-release.
 
So I test streamed to twitch , 1280x720@30fps, for the most part it worked great ! In Google chrome with hardware acceleration its very blocky and unwatchable but with hardware acceleration turned off its fine, Works great in firefox and waterfox whether hw acceleration is on or off. Odd
Thats with VBR peak constrained.

I tried CBR but the bitrate kept going upto 38000 and buffering.

Keep up the good work Xaymar.
 
Status
Not open for further replies.
Top