-
-
Notifications
You must be signed in to change notification settings - Fork 85
Frequently Asked Questions
Ever wondered if the question you bugged someone with has already been answered? Wonder no longer! This page is the page for questions that have been asked over and over again!
- What does this plugin do and why do I need it?
- Is this free? Can I use this in commercial environments?
- I have the plugin, how do I use it now?
- There's too many options, what do they all do?
- Is it possible to achieve x264 quality with this?
- Are other color formats than NV12 supported?
- Why are older Drivers no longer supported?
- Why is OBS Studio crashing when i click Stream/Record?
- What is causing my settings to be changed?
- Why does my stream/recording look darker or wrong?
- The output isn't in the same Framerate I set OBS Studio to!
- My stream/recording doesn't start!
- I only have green blocks in my stream/recording!
- FFMPEG shows an error that avcodec, avutil and avformat are missing after enabling OpenCL features!
- OpenCL does not work!
- My stream/recording is pixelated!
- The quality doesn't match the bitrate set!
- The encoder isn't using my settings!
- I can't seek in the recorded file!
- The output doesn't play back properly!
- The message 'Encoding overloaded!' shows up even though it used to work correctly!
- (Deprecated) I have an APU, how do I use the latest Runtime?
The AMF Encoder Plugin is meant as a replacement for the Media Foundation based AMD Encoder that often under-performed and didn't reach peak performance levels at all times. Since OBS Studio 0.16.x it has been merged into OBS Studio and has replaced the Media Foundation encoder entirely, and updates to the plugin are often merged into the next OBS Studio hotfix while also being released separately.
With this plugin you will be able to use your AMD GPU or APU to encode Video using H264 or H265, thus reducing your CPU usage drastically while also sacrificing some video quality. It is very flexible in terms of configuration and exposes all options available to developers as user-friendly and documented options to you.
Yes, it is completely free as it is licensed under the GPLv2. You are free to modify and redistribute the software to others including commercial partners. If you're using this plugin, feel free to send me a message about what you're using it for. I'd love to see what you are using this plugin for!
The plugin is integrated with both Output Modes in OBS Studio, which means that for 'Simple' mode you have to select 'Hardware (AMD)', while in advanced mode you have to select 'H264 Encoder (AMD Advanced Media Framework)' for Streaming. There is also a H265 Encoder if your GPU or APU supports it. Configuring is fairly simple and the H264 Encoder even comes with presets to base your configuration on.
The plugin has help tool-tips for all options for the Encoder, which explain the very basics of what an option does. For a deeper understanding, please consider reading the H264 or H265 specification and the plugins Source Code.
For users that are for some reason stuck on 1.4.x or earlier, you can find information on this wiki page. Please be aware that those plugin versions are not supported.
It is not possible to be exactly identical to x264, but the AMD Encoder usually has similar quality to x264 superfast. Nvidia's H264 encoder is equal or often beats x264 veryfast, and Intels QSV H264 Encoder is also equal to x264 superfast on Haswell, but may have improved since then. As hardware vendors usually keep this feature locked down we are unlikely to see any improvements from strict open source implemented in their hardware.
The Hardware encoder only supports NV12 at the moment, any other color format will have to be converted which usually results in less performance or outright broken experiences.
Due to an increase in crash reports usually from users with old or even ancient (>1 year out of date) drivers, the decision was made to no longer load the plugin on those systems. This also reduced the amount of code necessary to maintain as backwards compatability is only necessary for the UI instead of both the UI and the encoder.
There are various reasons for crashes, most of them are from the system itself:
- The Intel GPU Driver is known to crash, to solve this you have to uninstall the Intel GPU Driver completely using Display Driver Uninstaller.
- Sometimes AMD optional Drivers introduce crashes, in these cases it is recommended to go back to the latest stable driver and report these crashes to AMD using their Driver tool.
- Overclocking, hardware or software modding and other unstable configuration changes are also known to cause crashes.
- It might actually be a bug in the plugin or the software using the plugin.
If you have a Preset selected in the H264 Encoder, the Preset will constantly try to keep the new value within certain limits. The exact limits of the presets can be found in code, but if you want to get rid of these limits you will have to clear the Preset option. Once you cleared the Preset option you should be free to put in whatever you wish.
If this happens without a Preset selected, it is possible that the value is outside of the valid range for your GPU. In this case the Plugin itself and OBS Studio is trying to prevent you from putting in a wrong value.
The plugin itself only supports what your currently installed driver also supports, which most often means NV12 in terms of Color Format. Color Conversion for Color Space and Color Range is done automatically, however depending on what your target is this can look different than expected:
- For streaming, most sites do not support anything else than NV12 601 Partial. Streaming in a different color format, space or range will result in wrongly displayed colors, clipped bright and dark colors or even outright being dropped from the platform. Additionally the different color format, space and range might look worse for streaming.
- For recording, some playback software ignores the color information written to the file (VLC, Windows Media Player, Video Player, ...).
Make sure that you have disabled 'Frame Skipping' and that you don't get any 'Encoding overloaded!' messages, otherwise you might end up with a Variable Framerate file. The steps to solving the 'Encoding overloaded!' message usually include reducing the load on the encoder.
You should no longer do this, instead install the latest stable driver from AMD and use it. Do not rely on the find driver for my hardware function, as it is often outdated and not actively maintained by AMD.
That means that one or more settings you have configured aren't supported on your system. The log file OBS Studio creates should give you an idea which option it is.
Set Coding Type to 'Default'.
Q: FFMPEG shows an error that avcodec, avutil and avformat are missing after enabling OpenCL features!
The OpenCL support in the Plugin and AMF rely on your Systems OpenCL.dll, which is usually provided by the AMD Driver but there are rare exceptions. A known cause of these errors are the Intel GPU Drivers, which replace the AMD and Nvidia libraries with its own version that is extremely broken and causes all applications using it to experience very strange bugs. The only known fix is to run Display Driver Uninstaller and have it completely remove all traces of the Intel GPU Driver.
If you are using an APU with the stable (16.9.2 at the time of writing) drivers, make sure to set B-Pictures to 0, there is a bug with them which has been fixed in the latest drivers. Select View Mode 'Advanced' and then set B-Pictures Pattern to 0, then your stream/recording should be fine again.
You most likely have a VBV Buffer Strictness set too high or a VBV Buffer Size set too low, ideal values are around 70-85% or Bitrate/(FrameRate/4) kbits.
If you don't have a preset selected, you might have a broken AMD Driver install. These can happen and the simplest solution is to do a full clean uninstall. See the entry for this in Other Stuff.
Depending on what codec you chose to encode with there are different reasons for this. With H264/AVC encoded content it means that for some reason OBS failed to mux the output properly and it needs to be remuxed for it to work. With H265/HEVC content it is due to AMD not providing VUI headers which would contain the necessary timestamps for proper seeking.
The primary reason for this is an unstable overclock which you will have to remove. Other reasons for this are that the system bus is overloaded (too many devices, for example capture cards love doing this), an application is currently using 100% of the GPU leaving no room for other applications or a broken card that you should have sent in for replacement way earlier.
- Download and Install Display Driver Uninstaller from here.
- Download all GPU and Chipset drivers that you will need for your system to work from the manufacturers (AMD, Intel, Nvidia).
- Reboot into safe mode, see here for a guide for Windows 10.
- Once in safe mode, launch Display Driver Uninstaller.
- Run the cleaning for Intel without restarting.
- Run the cleaning for Nvidia without restarting.
- Run the cleaning for AMD with restarting.
- Once back in Windows, first install any chipset drivers, then install the AMD GPU Driver.
- Reboot again.
- (Optional) Install any Nvidia GPU Driver that is needed.
- Test out the AMD Encoder without the Intel GPU Driver installed.
Then continue on with the Troubleshooting guide!
Copyright (c) 2016 Michael Fabian Dirks
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.