<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">Den 26.10.2024 17:10, skrev Andrew
      Randrianasulu:<br>
    </div>
    <blockquote type="cite"
cite="mid:CA+rFky6cae+biZMUdh_8dkPYpapAW5OCtiNsgDxgbFPW9u+y4A@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">
        <div><br>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">сб, 26 окт. 2024 г., 17:39
              Terje J. Hanssen <<a
                href="mailto:terjejhanssen@gmail.com"
                moz-do-not-send="true" class="moz-txt-link-freetext">terjejhanssen@gmail.com</a>>:<br>
            </div>
            <blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div> <br>
                <br>
                <br>
                <div>Den 26.10.2024 02:12, skrev Andrew Randrianasulu:<br>
                </div>
                <blockquote type="cite">
                  <div dir="auto">
                    <div><br>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr" class="gmail_attr">сб, 26 окт.
                          2024 г., 03:06 Terje J. Hanssen via Cin <<a
                            href="mailto:cin@lists.cinelerra-gg.org"
                            target="_blank" rel="noreferrer"
                            moz-do-not-send="true"
                            class="moz-txt-link-freetext">cin@lists.cinelerra-gg.org</a>>:<br>
                        </div>
                        <blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                          <div>   An overview over the system FFmpeg 7.1
                            supported QSV pixel formats and profiles:<br>
                            <br>
                            <br>
                            <font face="Courier New, Courier, monospace">ffmpeg
                              -hide_banner -encoders | grep qsv<br>
                               V..... av1_qsv              AV1 (Intel
                              Quick Sync Video acceleration) (codec av1)<br>
                               V..... h264_qsv             H.264 / AVC /
                              MPEG-4 AVC / MPEG-4 part 10 (Intel Quick
                              Sync Video acceleration) (codec h264)<br>
                               V..... hevc_qsv             HEVC (Intel
                              Quick Sync Video acceleration) (codec
                              hevc)<br>
                               V..... mjpeg_qsv            MJPEG (Intel
                              Quick Sync Video acceleration) (codec
                              mjpeg)<br>
                               V..... mpeg2_qsv            MPEG-2 video
                              (Intel Quick Sync Video acceleration)
                              (codec mpeg2video)<br>
                               V..... vp9_qsv              VP9 video
                              (Intel Quick Sync Video acceleration)
                              (codec vp9)<br>
                              <br>
                              <br>
                              ffmpeg -hide_banner -h encoder=av1_qsv |
                              egrep
                              'Supported|profile|main|high|professional'<br>
                                  Supported hardware devices: qsv qsv
                              qsv <br>
                                  Supported pixel formats: nv12 p010le
                              qsv<br>
                                -profile           <int>       
                              E..V....... (from 0 to INT_MAX) (default
                              unknown)<br>
                                   main            1           
                              E..V.......<br>
                              <br>
                              <br>
                              ffmpeg -hide_banner -h encoder=hevc_qsv |
                              egrep
                              'Supported|profile|main|high|professional'<br>
                                  Supported hardware devices: qsv qsv
                              qsv <br>
                                  Supported pixel formats: nv12 p010le
                              p012le yuyv422 y210le qsv bgra x2rgb10le
                              vuyx xv30le<br>
                                -profile           <int>       
                              E..V....... (from 0 to INT_MAX) (default
                              unknown)<br>
                                   main            1           
                              E..V.......<br>
                                   main10          2           
                              E..V.......<br>
                                   mainsp          3           
                              E..V.......<br>
                                -tier              <int>       
                              E..V....... Set the encoding tier (only
                              level >= 4 can support high tier) (from
                              0 to 256) (default high)<br>
                                   main            0           
                              E..V.......<br>
                                   high            256         
                              E..V.......<br>
                              <br>
                              <br>
                              ffmpeg -hide_banner -h encoder=h264_qsv |
                              egrep
                              'Supported|profile|main|high|professional'<br>
                                  Supported hardware devices: qsv qsv
                              qsv <br>
                                  Supported pixel formats: nv12 qsv<br>
                                -profile           <int>       
                              E..V....... (from 0 to INT_MAX) (default
                              unknown)<br>
                                   main            77          
                              E..V.......<br>
                                   high            100         
                              E..V.......<br>
                            </font></div>
                        </blockquote>
                      </div>
                    </div>
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto">from this we can conclude av1/hevc
                      should have 10bit option  ...</div>
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto">probably writing down numerical
                      values for profiles (high, main...) for each codec
                      is also good idea.</div>
                    <br>
                  </div>
                </blockquote>
                <br>
                A reference and overview table for QSV capabilties for
                each iGPU and dGPU generation is here<br>
                <a
href="https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding"
                  target="_blank" rel="noreferrer"
                  moz-do-not-send="true" class="moz-txt-link-freetext">https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding</a><br>
                <br>
                And finally, after much trying and failing, I was able
                to prove that true 10bit 422 color depth hevc_qsv
                encoding is possible with my system ffmpeg 7.1<br>
                .<br>
                While pixel format p010le results in "just" 10bit
                yuv420p, the clue is to to use either (trying this for
                av1_qsv, auto- switch to 8bit nv12):<br>
                <blockquote><font face="Courier New, Courier, monospace">-pix_fmt
                    y210le</font><br>
                  <font face="Courier New, Courier, monospace">or</font><br>
                  <font face="Courier New, Courier, monospace">-v
                    format=yuv422p010le<br>
                  </font></blockquote>
                <font face="Courier New, Courier, monospace">Code
                  example:<br>
                  <br>
                  ffmpeg -hide_banner -hwaccel_output_format qsv -i
                  cfhd01.mkv -c:v hevc_qsv -pix_fmt y210le
                  cfhd01_hevc_qsv_pxfmt_y210le.mp4<br>
                  <br>
                  Input file:<br>
                  <br>
                  ffprobe -hide_banner cfhd01.mkv<br>
                  Input #0, matroska,webm, from 'cfhd01.mkv':<br>
                    Metadata:<br>
                      ENCODER         : Lavf61.1.100<br>
                    Duration: 00:01:11.24, start: 0.000000, bitrate:
                  393480 kb/s<br>
                    Stream #0:0(eng): Video: cfhd (CFHD / 0x44484643),
                  yuv422p10le(tv, bt709, top coded first (swapped)),
                  1920x1080, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn
                  (default)<br>
                        Metadata:<br>
                          HANDLER_NAME    : Apple Video Media Handler<br>
                          VENDOR_ID       : appl<br>
                          ENCODER         : Lavc61.3.100 cfhd<br>
                          DURATION        : 00:01:11.240000000<br>
                  <br>
                  Output file:<br>
                  <br>
                  ffprobe -hide_banner cfhd01_hevc_qsv_pxfmt_y210le.mp4<br>
                  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
                  'cfhd01_hevc_qsv_pxfmt_y210le.mp4':<br>
                    Metadata:<br>
                      major_brand     : isom<br>
                      minor_version   : 512<br>
                      compatible_brands: isomiso2mp41<br>
                      encoder         : Lavf61.7.100<br>
                    Duration: 00:01:11.24, start: 0.000000, bitrate:
                  31770 kb/s<br>
                    Stream #0:0[0x1](eng): Video: hevc (Rext) (hev1 /
                  0x31766568), yuv422p10le(tv, bt709, progressive),
                  1920x1080 [SAR 1:1 DAR 16:9], 31767 kb/s, 25 fps, 25
                  tbr, 12800 tbn (default)<br>
                        Metadata:<br>
                          handler_name    : Apple Video Media Handler<br>
                          vendor_id       : [0][0][0][0]<br>
                          encoder         : Lavc61.19.100 hevc_qsv<br>
                </font></div>
            </blockquote>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Good to know.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Hopefully if we on the right track with "just"
          10bit yuv420 encoding we will find way to stuff more complex
          cases in there too ....</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Does it work with vaapi encoder (system ffmpeg
          as cli application) too?</div>
      </div>
    </blockquote>
    <br>
    I am testing similar now with vaapi and will report on that thread
    soon.<br>
    The above i/o files and simple code line are video only, to avoid
    confusing from 16ch audio in the prores_hq.mov <br>
    <blockquote type="cite"
cite="mid:CA+rFky6cae+biZMUdh_8dkPYpapAW5OCtiNsgDxgbFPW9u+y4A@mail.gmail.com">
      <div dir="auto">
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_quote">
            <blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div><font face="Courier New, Courier, monospace"> <br>
                </font>
                <blockquote><font face="Courier New, Courier, monospace"><br>
                  </font></blockquote>
                <br>
                <br>
              </div>
            </blockquote>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>