чт, 12 дек. 2024 г., 04:09 Andrew Randrianasulu <randrianasulu@gmail.com>:чт, 12 дек. 2024 г., 03:11 Terje J. Hanssen <terjejhanssen@gmail.com>:
Den 12.12.2024 00:46, skrev Andrew Randrianasulu via Cin:
> As Terje requested I looked up into amf compilation, _it seems_ it
> just require headers at compilation stage BUT amdgpu-pro runtime for
> any real use, and it goes via vulkan anyway ?
>
>
> https://ffmpeg.org/general.html#AMD-AMF_002fVCE
>according to this (official?) site amf encoder component how can be used with mesa's radv driver, so may be less proprietary components can be installed? If whole thing granular enough ....=====Version 1.4.34.0
- Added Linux support for DVR sample.
- New HEVC header insertion mode.
- Stable support for RADV drivers for AMF on Linux in VideoConverter/HQScaler/VideoEncoder and experimental for decoder.
======this page says you can install just AMF component by usingsudo amdgpu-install -y --usecase=amfthankfully, there is also uninstall script ;)but you still need copy of amd headers manually placed in correct location, and also ffmpeg compiled with--enable-amfnotably, ffmpeg 7.1 also gives high bitrate in this case according toah, it was just changed default ... in ffmpeg 7.1but hopefully someone can try this manual install script route and report how it behaves ...
Some related sections I have extracted and collected, but not neccessary
up to date:
AMD / Mesa
The Mesa VAAPI driver uses the UVD (Unified Video Decoder) and VCE
(Video Coding Engine) hardware found in all recent AMD graphics cards
and APUs.
https://trac.ffmpeg.org/wiki/Hardware/VAAPI#AMDMesa
And this reminded me about our interlace problematic:
Encoding and interlacing support in Mesa are incompatible because of the
data layout in GPU memory. By default, frames are separated into fields
and interlaced video is supported but encoding is not. Set the
environment variable VAAPI_DISABLE_INTERLACE to 1 to be able to use the
encoder (but without any interlaced video support).
AMD/VAAPI
https://trac.ffmpeg.org/wiki/HWAccelIntro#PlatformAPIAvailability
P Partial support (some devices / some features).
VAAPI
https://trac.ffmpeg.org/wiki/HWAccelIntro#VAAPI
Video Acceleration API (VAAPI) is a non-proprietary and royalty-free
open source software library ("libva") and API specification, initially
developed by Intel but can be used in combination with other devices.
It can be used to access the Quick Sync hardware in Intel GPUs (!?)and
the UVD/VCE hardware in AMD GPUs. See VAAPI.
AMD UVD/VCE ¶
https://trac.ffmpeg.org/wiki/HWAccelIntro#AMDUVDVCE
AMD UVD is usable for decode via VDPAU and VAAPI in Mesa on Linux. VCE
also has some initial support for encode via VAAPI, but should be
considered experimental.
AMF is effectively supported by FFmpeg to significantly speed up video
encoding, decoding, and transcoding via AMD GPUs.
AMD / Mesa
https://trac.ffmpeg.org/wiki/Hardware/VAAPI#AMDMesa
The Mesa VAAPI driver uses the UVD (Unified Video Decoder) and VCE
(Video Coding Engine) hardware found in all recent AMD graphics cards
and APUs.
i965 Driver
https://trac.ffmpeg.org/wiki/Hardware/QuickSync#i965vs.iHDDrivervs.libvpllibmfx
Supports VAAPI
i965 is packaged as standard in most Linux distributions.
Runs on older and cheaper devices.
Common API for applications which may also use AMD hardware with Mesa.
Interoperable with standard APIs (EGL/OpenGL, OpenCL).