Jump to content
feedzapper

ffmpeg AMD Hardware transcoding (AMF) für H.264 und HEVC

Recommended Posts

feedzapper

Seit kurzem wird von ffmpeg auch das hardware transcoding von H.264 und HEVC Streams für AMD Grafikeinheiten unterstüzt.

Unterstützt werden auch ältere GPU und APU unter Windows. Voraus gesetzt es sind die aktuellen Treiber installiert.

Bei älteren GPU/APU unter dem Schlagwort "RE-LIVE" Treiber herunterzuladen.

Da ich in meinem zweiten Rechner einen AMD A10-7850 mit integrierter R7 Radeon Grafik verwende, war ich dort natürlich neugierig.

Ein aktueller ffmpeg trunk mit AMF support war schnell compiliert und mein erstaunen war wirklich groß.

Zu meiner Überraschung muss ich sagen, dass es auf Anhieb ohne Probleme funktionierte.

Die CPU Last sank von so um die 80-99% (je nach PRESET mit libx264) auf 20% (HD mit 1280x720)  mit dem h264_amf Codec.

Vielleicht könnte man einen entsprechenden Eintrag zukünftig in die ffmpegprefs.ini einpflegen ?

 

hier meine presets für die ffmpegprefs.ini (Beispielhaft) :

 

[Flash High 5160 kbit AMF]
Cmd=-analyzeduration 1500k {offset} {realtime} -i "{infile}" -f flv -c:v h264_amf -bufsize 10000k -b:v 5000k -maxrate 5000k -g 50 {framerate} -map 0:0 -map 0:1 -vf "yadif=0:-1:1, scale={scalex}:{scaley}" -quality quality -rc vbr_peak -tune film -vprofile high -level 4.2 -c:a aac -ab 160k -ar 48000 -ac 2 -async 1 -y "{outfile}"
maxWidth=1280
maxHeight=720
MimeType=video/x-flv
Ext=.flv

 

hier noch die möglichen Encoder Einstellungen in der ffmpeg commandline :

 

Encoder h264_amf [AMD AMF H.264 Encoder]:
    General capabilities: delay 
    Threading capabilities: none
    Supported pixel formats: nv12 yuv420p d3d11
h264_amf AVOptions:
  -usage             <int>        E..V.... Encoder Usage (from 0 to 3) (default transcoding)
     transcoding                  E..V.... Generic Transcoding
     ultralowlatency              E..V.... 
     lowlatency                   E..V.... 
     webcam                       E..V.... Webcam
  -profile           <int>        E..V.... Profile (from 66 to 257) (default main)
     main                         E..V.... 
     high                         E..V.... 
     constrained_baseline              E..V.... 
     constrained_high              E..V.... 
  -level             <int>        E..V.... Profile Level (from 0 to 62) (default auto)
     auto                         E..V.... 
     1.0                          E..V.... 
     1.1                          E..V.... 
     1.2                          E..V.... 
     1.3                          E..V.... 
     2.0                          E..V.... 
     2.1                          E..V.... 
     2.2                          E..V.... 
     3.0                          E..V.... 
     3.1                          E..V.... 
     3.2                          E..V.... 
     4.0                          E..V.... 
     4.1                          E..V.... 
     4.2                          E..V.... 
     5.0                          E..V.... 
     5.1                          E..V.... 
     5.2                          E..V.... 
     6.0                          E..V.... 
     6.1                          E..V.... 
     6.2                          E..V.... 
  -quality           <int>        E..V.... Quality Preference (from 0 to 2) (default speed)
     speed                        E..V.... Prefer Speed
     balanced                     E..V.... Balanced
     quality                      E..V.... Prefer Quality
  -rc                <int>        E..V.... Rate Control Method (from -1 to 3) (default -1)
     cqp                          E..V.... Constant Quantization Parameter
     cbr                          E..V.... Constant Bitrate
     vbr_peak                     E..V.... Peak Contrained Variable Bitrate
     vbr_latency                  E..V.... Latency Constrained Variable Bitrate
  -enforce_hrd       <boolean>    E..V.... Enforce HRD (default false)
  -filler_data       <boolean>    E..V.... Filler Data Enable (default false)
  -vbaq              <boolean>    E..V.... Enable VBAQ (default false)
  -frame_skipping    <boolean>    E..V.... Rate Control Based Frame Skip (default false)
  -qp_i              <int>        E..V.... Quantization Parameter for I-Frame (from -1 to 51) (default -1)
  -qp_p              <int>        E..V.... Quantization Parameter for P-Frame (from -1 to 51) (default -1)
  -qp_b              <int>        E..V.... Quantization Parameter for B-Frame (from -1 to 51) (default -1)
  -preanalysis       <boolean>    E..V.... Pre-Analysis Mode (default false)
  -max_au_size       <int>        E..V.... Maximum Access Unit Size for rate control (in bits) (from 0 to INT_MAX) (default 0)
  -header_spacing    <int>        E..V.... Header Insertion Spacing (from -1 to 1000) (default -1)
  -bf_delta_qp       <int>        E..V.... B-Picture Delta QP (from -10 to 10) (default 4)
  -bf_ref            <boolean>    E..V.... Enable Reference to B-Frames (default true)
  -bf_ref_delta_qp   <int>        E..V.... Reference B-Picture Delta QP (from -10 to 10) (default 4)
  -intra_refresh_mb  <int>        E..V.... Intra Refresh MBs Number Per Slot in Macroblocks (from 0 to INT_MAX) (default 0)
  -coder             <int>        E..V.... Coding Type (from 0 to 2) (default auto)
     auto                         E..V.... Automatic
     cavlc                        E..V.... Context Adaptive Variable-Length Coding
     cabac                        E..V.... Context Adaptive Binary Arithmetic Coding
  -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)

 

 

viel spass beim Testen ...

  • Thanks 1

Share this post


Link to post
feedzapper

Noch eine kurze Anmerkung ..

die aktuellen ZERANO ffmpeg builds haben "KEINEN" AMD AMF support ! (--enable amf) in der ffmpeg config !

Share this post


Link to post
sir drake

Hallo feedzapper
die 32bit version von ffmpeg liefert mir leider einen fehler.

ffmpeg.exe -c:v h264_amf -i org.mpg z:\test.h264

unknown decoder 'h264_amf'

AMD Radeon HD 5450

 

was meinst du ?

 

vg

Share this post


Link to post
feedzapper
vor 30 Minuten schrieb sir drake:

Hallo feedzapper
die 32bit version von ffmpeg liefert mir leider einen fehler.

ffmpeg.exe -c:v h264_amf -i org.mpg z:\test.h264

unknown decoder 'h264_amf'

AMD Radeon HD 5450

Deine Grafikarte ist zu alt, sie erfüllt nicht die Mindestanforderungen der Treiberversion  -> AMD Radeon Software Crimson Edition 16.7.3 und neuer ..

vor 30 Minuten schrieb sir drake:

 

 

Share this post


Link to post
sir drake

Danke dir !

Share this post


Link to post
feedzapper

im übrigen war der commandline syntax nicht richtig.

Er müsste lauten :

ffmpeg.exe  -i org.mpg -c:v h264_amf z:\test.h264

Share this post


Link to post
feedzapper

Ab sofort unterstützen die aktuellen ZERANO ffmpeg builds auch "AMD AMF" 

Aktuelle Versionen bitte von dort herunterladen !!

 

Share this post


Link to post
Goggo16

Hi,

 

interessante Sache. Gibts da irgendwo ne Liste mit Graphikkarten?

 

LG, Goggo

Share this post


Link to post
feedzapper
vor 8 Stunden schrieb Goggo16:

Hi,

 

interessante Sache. Gibts da irgendwo ne Liste mit Graphikkarten?

 

LG, Goggo

 

Auszug aus dem AMF SDK :

 

The AMF framework is compatible with most recent Radeon GPUs starting with the Southern Islands family and APUs of the Kabini, Kaveri, Carrizo families and newer.

 

Alle ab RADEON HD7000 / R7 "Southern Island" aufwärts incl. den APU im A10 mit integrierter R7 Grafikeinheit.

Halt alle Grafikarten die einen südlichen Inselnamen als Codenamen haben. e.g. CapeVerde, Turks, Bonaire...

Kann man ja nachschlagen bei Wikipedia. 

 

 

Edited by feedzapper

Share this post


Link to post
Goggo16

Ah, danke.

 

A10? Dann wär ja (auch) ein iPhone 7 geeignet. ;)

Share this post


Link to post
deekey777
On ‎13‎.‎12‎.‎2017 at 9:19 AM, Goggo16 said:

Hi,

 

interessante Sache. Gibts da irgendwo ne Liste mit Graphikkarten?

 

LG, Goggo

Ich weiß, das Posting ist etwas älter, aber hier ist die Liste: https://en.wikipedia.org/wiki/Video_Coding_Engine#Overview

Es gibt zwar bessere, aber für den einfachen Überblick ausreichend. 

 

Overkill: https://www.x.org/wiki/RadeonFeature/

Edited by deekey777

Share this post


Link to post
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...