<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">terjejhanssen@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>

  
    
  
  <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">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">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 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>