Status
Not open for further replies.

kamild_

Member
Sorry for being a noob but what's the difference between this VCE encoder and the one already present in OBS Studio?
 

Xaymar

Active Member
unfortunately not and on top of it frame skipping causes the craziest artifacting randomly.

edit: gonna try "default" tomorrow.

Hmm, no idea then. If this didn't happen in 1.1.2, I'd say go back to it until 1.2.0 is fully out.

is it ok to steam with VBR on twitch?

As long as you stay under 3500kbit/s for the video stream, you should be fine.

Sorry for being a noob but what's the difference between this VCE encoder and the one already present in OBS Studio?

The one already present is through media foundation. I don't know the internal details of the MFT encoder, but for many it has had a huge CPU impact, making high resolution capture impossible.
 

kamild_

Member
The one already present is through media foundation. I don't know the internal details of the MFT encoder, but for many it has had a huge CPU impact, making high resolution capture impossible.
Thank you. I might try it out then.

Has anyone managed to find optimal settings for GCN 1st gen (R9 280X)? Or can I just use the one present in the "Tested Configurations" page?
 

Xaymar

Active Member
Thank you. I might try it out then.

Has anyone managed to find optimal settings for GCN 1st gen (R9 280X)? Or can I just use the one present in the "Tested Configurations" page?

The preset should work as is on any GCN(VCE) generation afaik.
 

Markitos

New Member
I can't encode with SVC, AVC works but it throw errors in the log.
 

Attachments

  • SVC.txt
    12.4 KB · Views: 37
  • AVC.txt
    32.4 KB · Views: 39

Xaymar

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

1.2.0pre3 - 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".
  • 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.
  • 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. [1]
  • Fixed: Quality Preset, Profile and Profile Level are now applied last.
  • Added: The following languages have been added: English, Spanish (Markitos), Danish (wazer), Hungarian (niteforce). [2]
  • Added: Quality Preset option 'None'. [Advanced]
  • Added: Checkbox to Reset to Default and replace default values with values from AMD Media Framework. [Advanced] [3]
  • Added: Capability logging at plugin start.
  1. OBS gives us PTS in frames, AMF wants it in 100 nanosecond steps. With the old code (frame->pts * 10000) that would cause insane bitrates to appear and lower quality. Also since we know what OBS wants these parameters to be in now, we can safely calculate back from the PTS time AMF gives us - as long as you don't stream/record for more than 125099.989 days at a time (that's 5212.499 days or ~173 months or ~14.28 years).
    Many thanks go to jackun for figuring out the math to go from amf_pts back to frames.
  2. Huge thanks to you! I only know two languages, so this is really appreciated.
  3. Both checkboxes would silently hard-fail occasionally, this is now no longer the case - it will silently soft-fail and continue on.

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

DracoNB

New Member
Just downloaded 1.2.0pre3 but I only see a single entry for the "Advanced" version, no "Simple" version.

Also, what would be the optimal settings for both local recording and streaming (I realize those are different) for my setup: 1440p with Fury. Does downscaling come after the hardware encoding or before? Since it can handle 1080p @ 60fps, do I need to play @ 1080 or does downscaling to 1080 work ok?
 

Attachments

  • amf.png
    amf.png
    18 KB · Views: 86

kamild_

Member
Thank you for your contribution Xayman, although I have one more question.
These settings seem to be optimal for streaming. But I want to use OBS for local recordings. Is there any parameter I can change to make it work better for this kind of usage?
 

kamild_

Member
sad that u need a amd card to use it^^ ^^
This one, yes. But other manufacturers have their own hardware encoders - NVidia has NVENC (very similar performance-wise to VCE) and Intel has QuickSync (worse performance afaik).
 

Xaymar

Active Member
Just downloaded 1.2.0pre3 but I only see a single entry for the "Advanced" version, no "Simple" version.

Also, what would be the optimal settings for both local recording and streaming (I realize those are different) for my setup: 1440p with Fury. Does downscaling come after the hardware encoding or before? Since it can handle 1080p @ 60fps, do I need to play @ 1080 or does downscaling to 1080 work ok?

The Simple encoder is not done yet - this is merely a Pre-Release so far.

Thank you for your contribution Xayman, although I have one more question.
These settings seem to be optimal for streaming. But I want to use OBS for local recordings. Is there any parameter I can change to make it work better for this kind of usage?

With 1.2.0pre3 you can use B-Frames again so you can enable those again and up the bitrate.

sad that u need a amd card to use it^^ ^^

Nvidia has NVENC (also GPU based) and Intel has QuickSync which uses the included encoder chip inside the CPU (that obviously limits the performance of the cpu though, DDR3 is not as fast as GDDR5 and PCI-E).
 

leporel

New Member
Anyone who have R9 280X (GCN 1.0) can test streaming on twitch? (local record, others stream services and browsers work fine)
In my case (Crimson 16.8.1) i have very terrible artifacts when use this encoder and watch twitch in GoogleChrome (with turned ON hardware acceleration in chrome) - https://www.twitch.tv/leporel/v/82634634
My friend (Crimson 16.3.2) has same artifacts in GoogleChrome

unknown.png
 
Last edited:

Xaymar

Active Member
Anyone who have R9 280X (GCN 1.0) can test streaming on twitch? (local record, others stream services and browsers work fine)
In my case (Crimson 16.8.1) i have very terrible artifacts when use this encoder and watch twitch in GoogleChrome (with turned ON hardware acceleration in chrome) - https://www.twitch.tv/leporel/v/82634634
My friend (Crimson 16.3.2) has same artifacts in GoogleChrome

Set Number of B-Pictures to 0 and Reference to B-Frame to Disabled
 

ball2hi

Member
Hey, sorry if this has already been answered in this thread but...

Would this be viable to use for local encoding, and would it be better or worse than the built in media-foundation for local recording? I often like to stream (x264) and recording locally using media foundation. With this I might be able to use two h264 I guess, but don't know what kind of local recording quality I'll be getting.

EDIT: Holy hell. I just installed this and the amount of settings here is crazy ridiculous... wow. Any documentation or guide for any of this?

EDIT(2): I think I'm going to hold off on using this as there is very little documentation on everything, unless you're willing to put down settings and such. I know what everything does, but even after updating values so that not everything is -1 I have no idea what to do with the rest of everything that is -1.
 
Last edited:

ball2hi

Member
2500000 = 2500 bitrate using x264... but my bitrate keeps jumping between 2200 - 3800 still when I set it to CBR.
 

Resident Stevil

New Member
Anyone who have R9 280X (GCN 1.0) can test streaming on twitch? (local record, others stream services and browsers work fine)
In my case (Crimson 16.8.1) i have very terrible artifacts when use this encoder and watch twitch in GoogleChrome (with turned ON hardware acceleration in chrome) - https://www.twitch.tv/leporel/v/82634634
My friend (Crimson 16.3.2) has same artifacts in GoogleChrome

unknown.png

Set Number of B-Pictures to 0 and Reference to B-Frame to Disabled

I'm having the same problem leporel is having, and I have it set on the "Update Values from AMF" settings, which has B-Pictures to 0 and B-Frame to Disabled, and it still occurs. Also when streaming to Twitch the video has to buffer constantly over and over again. And CBR is not working.
 
Last edited:

ball2hi

Member
@Xaymar

Do you know if CQP: Constrained QP is currently working? When I used CQP with media foundation I used "22" to get decent quality. However in your encoder, I currently have it at 28 and it doesn't seem to degrade in quality or bitrate? I have an RX 480.

This is my settings for local encoding.
Code:
06:21:45.823: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE_H264_Encoder::VCE_H264_Encoder> Initializing...
06:21:45.823: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::H264> Attempting to create AVC Encoder...
06:21:45.853: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetMemoryType> Set to Host.
06:21:45.853: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetSurfaceFormat> Set to NV12.
06:21:45.853: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetUsage> Set to Transcoding.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetFrameSize> Set to 1280x720.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetFrameRate> Set to 48/1.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetMaxOfLTRFrames> Set to 0.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetScanType> Set to Progressive.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetRateControlMethod> Set to Constrained QP.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::EnableFrameSkipping> Set to Disabled.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::EnableFillerData> Set to Enabled.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::EnableEnforceHRD> Set to Disabled.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetGOPSize> Set to 48.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetInitialVBVBufferFullness> Set to 1.000000.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetMaximumAccessUnitSize> Set to 0.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetMinimumQP> Set to 1.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetMaximumQP> Set to 51.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetIFrameQP> Set to 28.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetPFrameQP> Set to 28.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetBFrameQP> Set to 28.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetReferenceToBFrameEnabled> Set to Enabled.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetQualityPreset> Set to Speed.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetProfile> Set to High.
06:21:45.854: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SetProfile> Set to 4.2.
06:21:45.859: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE_H264_Encoder::VCE_H264_Encoder> Complete.
06:21:45.859: ---------------------------------
06:21:45.859: [FFmpeg aac encoder: 'Track1'] bitrate: 96, channels: 2
06:21:45.894: ==== Recording Start ===============================================
06:21:45.894: [ffmpeg muxer: 'adv_file_output'] Writing file 'D:/Stream Applications/Video Archive/Streamed/OBS Studio/(Saturday)August 13, 2016 - 06;21AM.flv'...
06:21:45.975: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::GetOutput> Unable to query output, error AMF_REPEAT (code 24).
06:21:45.992: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::GetOutput> Resized Packet Buffer, error AMF_OK (code 0).
06:21:46.032: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SendInput> Unable to submit input, error AMF_INPUT_FULL (code 25).
06:21:46.053: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::SendInput> Unable to submit input, error AMF_INPUT_FULL (code 25).
06:21:46.053: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::GetOutput> Unable to query output, error AMF_REPEAT (code 24).
06:21:46.081: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE::GetOutput> Unable to query output, error AMF_REPEAT (code 24).
06:21:48.396: User switched to scene 'Monitor'
06:21:51.852: User switched to scene 'Game'
06:21:53.074: [ffmpeg muxer: 'adv_file_output'] Output of file 'D:/Stream Applications/Video Archive/Streamed/OBS Studio/(Saturday)August 13, 2016 - 06;21AM.flv' stopped
06:21:53.074: Output 'adv_file_output': stopping
06:21:53.074: Output 'adv_file_output': Total encoded frames: 344
06:21:53.074: Output 'adv_file_output': Total drawn frames: 345
06:21:53.074: ==== Recording Stop ================================================
06:21:53.075: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE_H264_Encoder::~VCE_H264_Encoder> Finalizing...
06:21:53.089: [AMF Encoder 1.2.0pre2] <AMFEncoder::VCE_H264_Encoder::~VCE_H264_Encoder> Complete.
 

Xaymar

Active Member
Hey, sorry if this has already been answered in this thread but...

Would this be viable to use for local encoding, and would it be better or worse than the built in media-foundation for local recording? I often like to stream (x264) and recording locally using media foundation. With this I might be able to use two h264 I guess, but don't know what kind of local recording quality I'll be getting.

EDIT: Holy hell. I just installed this and the amount of settings here is crazy ridiculous... wow. Any documentation or guide for any of this?

EDIT(2): I think I'm going to hold off on using this as there is very little documentation on everything, unless you're willing to put down settings and such. I know what everything does, but even after updating values so that not everything is -1 I have no idea what to do with the rest of everything that is -1.
2500000 = 2500 bitrate using x264... but my bitrate keeps jumping between 2200 - 3800 still when I set it to CBR.

If you're using CBR, make sure to set "Filler Data" to Enabled.

Working Really Good, thanks alot Xaymar. Haven't streamed yet, Gonna give it a test tomorrow.
Using a 7950, GCN 1.0

Good luck, GCN 1.0 should be capable of (up to) 1080p75 according to AMDs own presentation (Sheet Nr. 34).

I'm having the same problem leporel is having, and I have it set on the "Update Values from AMF" settings, which has B-Pictures to 0 and B-Frame to Disabled, and it still occurs. Also when streaming to Twitch the video has to buffer constantly over and over again. And CBR is not working.

Clicking Update Values from AMF does nothing but pull the current values from AMF. It is recommended to leave those that you don't want to change at default or you can potentially even hurt encoding quality.

@Xaymar

Do you know if CQP: Constrained QP is currently working? When I used CQP with media foundation I used "22" to get decent quality. However in your encoder, I currently have it at 28 and it doesn't seem to degrade in quality or bitrate? I have an RX 480.

I do not know if anything works properly with the RX series as they have a new (sub-)generation of VCE chips. I do know that these chips now refuse to encode B-Frames under certain settings. Also you are changing "expected" values for QP, you want to limit minimum and maximum QP.
 
Last edited:

Resident Stevil

New Member
Clicking Update Values from AMF does nothing but pull the current values from AMF. It is recommended to leave those that you don't want to change at default or you can potentially even hurt encoding quality.

Ok, but I'm still having the same issue regardless.
 
Status
Not open for further replies.
Top