n00mkrad / nmkoder

Media encoding, muxing, analysis toolkit for Windows
GNU General Public License v3.0
433 stars 21 forks source link

Changing ffmpeg #45

Open primoitt83 opened 1 year ago

primoitt83 commented 1 year ago

Hi,

Great tool you made here, thx!

I wanna get support for AMD and Intel GPU acceleration on it..

Is possible to change ffmpeg version?

For example, the version below:

ffmpeg

And there AMD and Intel GPU encoder works good..

ffmpeg.exe -h encoder=h264_amf

Encoder h264_amf [AMD AMF H.264 Encoder]:
    General capabilities: dr1 delay hardware
    Threading capabilities: none
    Supported hardware devices: d3d11va d3d11va dxva2 dxva2
    Supported pixel formats: nv12 yuv420p d3d11 dxva2_vld
h264_amf AVOptions:
  -usage             <int>        E..V....... Encoder Usage (from 0 to 3) (default transcoding)
     transcoding     0            E..V....... Generic Transcoding
     ultralowlatency 1            E..V.......
     lowlatency      2            E..V.......
     webcam          3            E..V....... Webcam
  -profile           <int>        E..V....... Profile (from 66 to 257) (default main)
     main            77           E..V.......
     high            100          E..V.......
     constrained_baseline 256          E..V.......
     constrained_high 257          E..V.......
ffmpeg.exe -h encoder=h264_qsv

Encoder h264_qsv [H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration)]:
    General capabilities: delay hybrid
    Threading capabilities: none
    Supported hardware devices: qsv qsv qsv
    Supported pixel formats: nv12 p010le qsv
h264_qsv encoder AVOptions:
  -async_depth       <int>        E..V....... Maximum processing parallelism (from 1 to INT_MAX) (default 4)
  -avbr_accuracy     <int>        E..V....... Accuracy of the AVBR ratecontrol (unit of tenth of percent) (from 1 to 65535) (default 1)
  -avbr_convergence  <int>        E..V....... Convergence of the AVBR ratecontrol (unit of 100 frames) (from 1 to 65535) (default 1)
  -preset            <int>        E..V....... (from 1 to 7) (default medium)
     veryfast        7            E..V.......
     faster          6            E..V.......
     fast            5            E..V.......
     medium          4            E..V.......
     slow            3            E..V.......
     slower          2            E..V.......
     veryslow        1            E..V.......

Maybe if we could save ffmpeg configuration to use on another version.... should be a workaround.. something like this:

"C:\ffmpeg\ffmpeg.exe" -ss 00:03:39.416 -i "C:\ffmpeg\BBB.mp4" -strict experimental -f mp4 -map_chapters -1 -map 0:1 -map 0:0 -sn -c:a:0 aac -b:a:0 64k -ar:a:0 44100 -ac:a:0 2 -c:v:0 h264_amf -usage ultralowlatency -profile main -quality speed -b:v:0 1000k -mbd:v:0 rd -mbcmp:v:0 rd -cmp:v:0 rd -precmp:v:0 rd -subcmp:v:0 rd -trellis:v:0 1 -filter:v:0 "crop=1080:620:100:50,scale=640:360" -ss 00:00:15.000 -t 00:00:41.542 -y "C:\ffmpeg\BBB1.mp4"