obs-ffmpeg: Add texture-based hardware AMD encoder

Adds support for texture-based AMD encoding, with both H264, HEVC, and
HDR support. Falls back to FFmpeg when texture-based encoding cannot be
used for whatever reason.

(Jim note: This is based upon obsproject/obs-studio#4538 by AMD/Luxoft
with fewer files, FFmpeg fallback for software encoding, and HDR
support. I also went to lengths to ensure that FFmpeg command line
parameters also works with it)

Co-authored-by: Jim <obs.jim@gmail.com>
This commit is contained in:
OvchinnikovDmitrii
2022-07-21 15:29:25 -07:00
committed by Jim
co-authored by Jim
parent 4e206896b2
commit 4e140d2ffe
56 changed files with 11835 additions and 2 deletions
+10
View File
@@ -12,6 +12,9 @@ KeyframeIntervalSec="Keyframe Interval (seconds, 0=auto)"
Lossless="Lossless"
Level="Level"
AMFOpts="AMF/FFmpeg Options"
AMFOpts.ToolTip="Use to specify custom AMF or FFmpeg options. For example, \"level=5.2 profile=main BPicturesPattern=3\""
BFrames="Max B-frames"
VAAPI.Codec="VAAPI Codec"
@@ -33,6 +36,10 @@ NVENC.CQLevel="CQ Level"
NVENC.10bitUnsupported="Cannot perform 10-bit encode on this encoder."
NVENC.TooManyBFrames="Max B-frames setting (%d) is more than encoder supports (%d)."
AMF.Preset.speed="Speed"
AMF.Preset.balanced="Balanced"
AMF.Preset.quality="Quality"
FFmpegSource="Media Source"
LocalFile="Local File"
Looping="Loop"
@@ -72,6 +79,9 @@ WarnWindowsDefender="If Windows 10 Ransomware Protection is enabled it can also
Encoder.Error="Failed to open %1: %2"
Encoder.Timeout="Encoder %1 is taking too long to encode (timeout: %2 seconds)"
AMF.Error="Failed to open AMF codec: %1"
AMF.GenericError="Check your video drivers are up to date. Try closing other recording software which might be using the AMD encoder such as the Radeon Software or Windows 10 Game DVR."
NVENC.Error="Failed to open NVENC codec: %1"
NVENC.GenericError="Check your video drivers are up to date. Try closing other recording software which might be using NVENC such as NVIDIA Shadowplay or Windows 10 Game DVR."
NVENC.BadGPUIndex="You have selected GPU %1 in your output encoder settings. Set this back to 0 and try again."