Initially, I've filled ffmpeg bug since vaapi transcoding 10 bit > 8 bit was
just failing, someone refereed to a "separated field of surfaces bug" which I
couldn't find and offered patch which fixed the initial issue here:
https://trac.ffmpeg.org/ticket/7764
After applying patch transcoding goes through with significant speed increase
[from 2x to 7x] but the resulting output has flashing green overlay/glitch in
upper half of the video.
E.g from command"
ffmpeg -threads 4 \
-init_hw_device vaapi=amd:/dev/dri/renderD128 -hwaccel vaapi
-hwaccel_output_format vaapi -hwaccel_device amd -filter_hw_device amd \
-i trk.mkv \
-vf "scale_vaapi=format=nv12,hwupload" \
-c:v h264_vaapi -profile:v 578 \
-c:a copy -bf 0 -c:s copy \
-f mpegts -y plop.mkv
Input is any 10 bit hevc video.
Vainfo:libva info: VA-API version 1.6.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/va/drivers/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.6 (libva 2.6.0.pre1)
vainfo: Driver version: Mesa Gallium driver 19.2.0-devel for AMD RAVEN (DRM
3.32.0, 5.2.0-gentoo, LLVM 8.0.0)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
mesa git
AMD RAVEN APU 2200G