Den 26.10.2024 02:12, skrev Andrew
Randrianasulu:
An overview over the system FFmpeg
7.1 supported QSV pixel formats and
profiles:
ffmpeg
-hide_banner -encoders | grep qsv
V..... av1_qsv AV1
(Intel Quick Sync Video acceleration)
(codec av1)
V..... h264_qsv H.264 /
AVC / MPEG-4 AVC / MPEG-4 part 10
(Intel Quick Sync Video acceleration)
(codec h264)
V..... hevc_qsv HEVC
(Intel Quick Sync Video acceleration)
(codec hevc)
V..... mjpeg_qsv MJPEG
(Intel Quick Sync Video acceleration)
(codec mjpeg)
V..... mpeg2_qsv MPEG-2
video (Intel Quick Sync Video
acceleration) (codec mpeg2video)
V..... vp9_qsv VP9 video
(Intel Quick Sync Video acceleration)
(codec vp9)
ffmpeg -hide_banner -h encoder=av1_qsv
| egrep
'Supported|profile|main|high|professional'
Supported hardware devices: qsv
qsv qsv
Supported pixel formats: nv12
p010le qsv
-profile
<int> E..V....... (from 0
to INT_MAX) (default unknown)
main 1
E..V.......
ffmpeg -hide_banner -h
encoder=hevc_qsv | egrep
'Supported|profile|main|high|professional'
Supported hardware devices: qsv
qsv qsv
Supported pixel formats: nv12
p010le p012le yuyv422 y210le qsv bgra
x2rgb10le vuyx xv30le
-profile
<int> E..V....... (from 0
to INT_MAX) (default unknown)
main 1
E..V.......
main10 2
E..V.......
mainsp 3
E..V.......
-tier
<int> E..V....... Set the
encoding tier (only level >= 4 can
support high tier) (from 0 to 256)
(default high)
main 0
E..V.......
high 256
E..V.......
ffmpeg -hide_banner -h
encoder=h264_qsv | egrep
'Supported|profile|main|high|professional'
Supported hardware devices: qsv
qsv qsv
Supported pixel formats: nv12 qsv
-profile
<int> E..V....... (from 0
to INT_MAX) (default unknown)
main 77
E..V.......
high 100
E..V.......
from this we can conclude
av1/hevc should have 10bit option ...
probably writing down numerical
values for profiles (high, main...) for each
codec is also good idea.
A reference and overview table for QSV capabilties
for each iGPU and dGPU generation is here
https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding
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
.
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):
-pix_fmt
y210le
or
-v
format=yuv422p010le