unfortunately not and on top of it frame skipping causes the craziest artifacting randomly.
edit: gonna try "default" tomorrow.
is it ok to steam with VBR on twitch?
Sorry for being a noob but what's the difference between this VCE encoder and the one already present in OBS Studio?
Thank you. I might try it out then.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?
- 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.
- 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.- Huge thanks to you! I only know two languages, so this is really appreciated.
- Both checkboxes would silently hard-fail occasionally, this is now no longer the case - it will silently soft-fail and continue on.
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).sad that u need a amd card to use it^^ ^^
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?
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?
sad that u need a amd card to use it^^ ^^
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
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
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.
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.
Working Really Good, thanks alot Xaymar. Haven't streamed yet, Gonna give it a test tomorrow.
Using a 7950, GCN 1.0
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.
@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.
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.