[Cin] AMD's amf in ffmpeg

Andrew Randrianasulu randrianasulu at gmail.com
Thu Dec 12 02:38:13 CET 2024


чт, 12 дек. 2024 г., 04:09 Andrew Randrianasulu <randrianasulu at gmail.com>:

>
>
> чт, 12 дек. 2024 г., 03:11 Terje J. Hanssen <terjejhanssen at 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
>> >
>>
>
> https://gpuopen.com/advanced-media-framework/
>
> 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.
>
> ======
>
>
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki/Driver%20Linux

this page says you can install just AMF component by using


sudo amdgpu-install -y --usecase=amf

thankfully, there is also uninstall script ;)

but you still need copy of amd headers manually placed in correct location,
and also ffmpeg compiled with--enable-amf

notably,  ffmpeg 7.1 also  gives high bitrate in this case according to

https://github.com/GPUOpen-LibrariesAndSDKs/AMF/issues/514

ah, it was just changed default ... in ffmpeg 7.1

but 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).
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241212/c41efee0/attachment-0001.htm>


More information about the Cin mailing list