Den 13.11.2024 14:31, skrev Andrew Randrianasulu:
After finishing the three hevc_qsv
presets for _8b420, _10b420 and _10b422 mp4
https://lists.cinelerra-gg.org/pipermail/cin/2024-November/009039.html
I thought to do the corresponding for
hevc_vaapi
However I am struggling to get 10bit 422
output rendered from Cingg, which so far
falls back to 10bit 420 chroma subsampling
fprobe
-hide_banner hd01_hevc_vaapi_10b422.mp4
Duration: 00:01:11.20, start: 0.000000,
bitrate: 11082 kb/s
Stream #0:0[0x1](und): Video: hevc (Main
10) (hev1 / 0x31766568), yuv420p10le(tv,
bt709/unknown/unknown, top coded first
(swapped)), 1920x1080 [SAR 1:1 DAR 16:9],
11080 kb/s, 25 fps, 25 tbr, 12800 tbn
(default)
In a previous thread I proved that ffmpeg
hevc_vaapi encoding has this 10bit-422
capability
3) 10-bit yuv422p10le hevc_vaapi encoding
using -vf 'format=y210,hwupload'
https://lists.cinelerra-gg.org/pipermail/cin/2024-November/008982.html
And yes, there was also issues before
hevc_qsv_10b422.mp4 combinations Pixel
format/profile finally succeeded.
But here are some differences, yet. While
hevc_qsv provided a Pixels drop down menu
with pixel formats,
hevc_vaapi just has a single "vaapi" pixel
format.
Any idea why, and what can fulfill the
vaapi 10bit 422 encoding here?
I have some idea (hack add some
pixel formats to hevc_vaapi, will only be usable
with internal ffmpeg)
Just to clarify: my tests vaapi tests and qsv tests are
run on Cingg with the onevpl patch and internal ffmpeg
but for now you can try to modify
same place my 10bit encoding patch modified, just
with yuv422p10 instead of 420p10.
Exactly how and where?
there should be line (after you patch cingg with
10bit patch) in cinelerra/ffmpeg.C
if (tenbit_enc) frames_ctx->sw_format =
AV_PIX_FMT_P010LE;
you need to replace AV_PX_FMT part...
with AV_PIX_FMT_Y210LE ?
recompile cingg
now when you set
export CIN_10BIT_ENC=1
before launching cin
it *may be* will give you y422 10bit encoding
for hevc_vaapi.