1

I built FFMPEG with AMD AMF enabled. Everything seems to be compiled properly with the AMD AMF headers.

Now I have never executed FFMPEG commands over Ubuntu terminal.

I did some googling and couldn't find any proper guide on how to make FFMPEG to do some video H.264 encoding or converting using the AMD AMF hardware acceleration.

I only found guides for VAAPI but not for AMD AMF.

What are some of the FFMPEG basic syntax for using the AMD AMF hardware acceleration?

This is what I get output from Ubuntu 22.04 terminal when I enter:

$ ffmpeg -h encoder=hevc_amf

ffmpeg version N-107316-gf9dd8fcf9b Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/home/user/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/user/ffmpeg_build/include --extra-ldflags=-L/home/user/ffmpeg_build/lib --extra-libs='-lpthread -lm' --ld=g++ --bindir=/home/user/bin --enable-gpl --enable-gnutls --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libaom --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-shared --disable-static --enable-amf --enable-nonfree
  libavutil      57. 27.100 / 57. 27.100
  libavcodec     59. 36.100 / 59. 36.100
  libavformat    59. 26.100 / 59. 26.100
  libavdevice    59.  6.100 / 59.  6.100
  libavfilter     8. 41.100 /  8. 41.100
  libswscale      6.  6.100 /  6.  6.100
  libswresample   4.  6.100 /  4.  6.100
  libpostproc    56.  5.100 / 56.  5.100
Encoder hevc_amf [AMD AMF HEVC encoder]:
    General capabilities: dr1 delay hardware 
    Threading capabilities: none
    Supported pixel formats: nv12 yuv420p
hevc_amf AVOptions:
  -usage             <int>        E..V....... Set the encoding usage (from 0 to 3) (default transcoding)
     transcoding     0            E..V....... 
     ultralowlatency 1            E..V....... 
     lowlatency      2            E..V....... 
     webcam          3            E..V....... 
  -profile           <int>        E..V....... Set the profile (default main) (from 1 to 1) (default main)
     main            1            E..V....... 
  -profile_tier      <int>        E..V....... Set the profile tier (default main) (from 0 to 1) (default main)
     main            0            E..V....... 
     high            1            E..V....... 
  -level             <int>        E..V....... Set the encoding level (default auto) (from 0 to 186) (default auto)
     auto            0            E..V....... 
     1.0             30           E..V....... 
     2.0             60           E..V....... 
     2.1             63           E..V....... 
     3.0             90           E..V....... 
     3.1             93           E..V....... 
     4.0             120          E..V....... 
     4.1             123          E..V....... 
     5.0             150          E..V....... 
     5.1             153          E..V....... 
     5.2             156          E..V....... 
     6.0             180          E..V....... 
     6.1             183          E..V....... 
     6.2             186          E..V....... 
  -quality           <int>        E..V....... Set the encoding quality (from 0 to 10) (default speed)
     balanced        5            E..V....... 
     speed           10           E..V....... 
     quality         0            E..V....... 
  -rc                <int>        E..V....... Set the rate control mode (from -1 to 3) (default -1)
     cqp             0            E..V....... Constant Quantization Parameter
     cbr             3            E..V....... Constant Bitrate
     vbr_peak        2            E..V....... Peak Contrained Variable Bitrate
     vbr_latency     1            E..V....... Latency Constrained Variable Bitrate
  -header_insertion_mode <int>        E..V....... Set header insertion mode (from 0 to 2) (default none)
     none            0            E..V....... 
     gop             1            E..V....... 
     idr             2            E..V....... 
  -gops_per_idr      <int>        E..V....... GOPs per IDR 0-no IDR will be inserted (from 0 to INT_MAX) (default 1)
  -preanalysis       <boolean>    E..V....... Enable preanalysis (default false)
  -vbaq              <boolean>    E..V....... Enable VBAQ (default false)
  -enforce_hrd       <boolean>    E..V....... Enforce HRD (default false)
  -filler_data       <boolean>    E..V....... Filler Data Enable (default false)
  -max_au_size       <int>        E..V....... Maximum Access Unit Size for rate control (in bits) (from 0 to INT_MAX) (default 0)
  -min_qp_i          <int>        E..V....... min quantization parameter for I-frame (from -1 to 51) (default -1)
  -max_qp_i          <int>        E..V....... max quantization parameter for I-frame (from -1 to 51) (default -1)
  -min_qp_p          <int>        E..V....... min quantization parameter for P-frame (from -1 to 51) (default -1)
  -max_qp_p          <int>        E..V....... max quantization parameter for P-frame (from -1 to 51) (default -1)
  -qp_p              <int>        E..V....... quantization parameter for P-frame (from -1 to 51) (default -1)
  -qp_i              <int>        E..V....... quantization parameter for I-frame (from -1 to 51) (default -1)
  -skip_frame        <boolean>    E..V....... Rate Control Based Frame Skip (default false)
  -me_half_pel       <boolean>    E..V....... Enable ME Half Pixel (default true)
  -me_quarter_pel    <boolean>    E..V....... Enable ME Quarter Pixel  (default true)
  -aud               <boolean>    E..V....... Inserts AU Delimiter NAL unit (default false)
  -log_to_dbg        <boolean>    E..V....... Enable AMF logging to debug output (default false)

Thanks.

1
  • Check the following post. The syntax is the same for Windows and Linux. Just to see if it's working, try: ffmpeg -y -f lavfi -i testsrc=size=192x108:rate=1:duration=10 -vcodec h264_amf output_pattern.mp4.
    – Rotem
    Commented Jul 6, 2022 at 16:51

0

You must log in to answer this question.