Zend certified PHP/Magento developer

Can QuckSync h264_qsv do 4.2.2 (p010le) encoding?

I’ve run into an odd situation that I can’t resolve.

When I retrieve the encoder characteristics of the ffmpeg build I’m using, it shows that the h264_qsv codec supports three pixel formats:

”’
I:Downloads>ffmpeg -hide_banner -h encoder=h264_qsv
Encoder h264_qsv [H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration)]:
General capabilities: delay hybrid
Threading capabilities: none
Supported hardware devices: qsv qsv qsv
Supported pixel formats: nv12 p010le qsv
h264_qsv encoder AVOptions:
-async_depth E..V……. Maximum processing parallelism (from 1 to INT_MAX) (default 4)
-avbr_accuracy E..V……. Accuracy of the AVBR ratecontrol (from 0 to INT_MAX) (default 0)
-avbr_convergence E..V……. Convergence of the AVBR ratecontrol (from 0 to INT_MAX) (default 0)
-preset E..V……. (from 1 to 7) (default medium)
veryfast 7 E..V…….

[and so on.]

”’

But when I copy the pixel format “p010le” and paste it into my batch file that I used for trans-coding, and which works if I let it use the default nv12 format, I get an error:

”’
I:Capture>ffmpeg -hide_banner -err_detect ignore_err -loglevel info -stats -benchmark -init_hw_device qsv:hw,child_device_type=qsv -hwaccel qsv -hwaccel_output_format qsv -vsync vfr -ec deblock -ss 00:01:32.432 -to 00:10:53.064 -i “Little Cheeser 1936 raw.avi” -strict normal -fflags +igndts+genpts -c:a aac -q:a 0.9 -ac 1 -af dynaudnorm -g 60 -async_depth 128 -vf “hwupload=extra_hw_frames=128,format=p010le,vpp_qsv=cw=948:ch=720:cx=0:cy=0” -q:v 28 -c:v h264_qsv -preset veryslow -rdo 1 -extbrc 1 -look_ahead_depth 100 -look_ahead_downsampling auto -avbr_accuracy 500 -mbd rd -refs 4 -me_range 1024 -trellis 2 -idct auto -subq 8 -adaptive_i 1 -adaptive_b 1 -flags +aic+mv4+qpel+ilme+loop -movflags +faststart “Little Cheeser 1936.mp4”
Input #0, avi, from ‘Little Cheeser 1936 raw.avi’:
Duration: 00:11:06.16, start: 0.000000, bitrate: 4157 kb/s
Stream #0:0: Video: h264 (High 4:2:2) (H264 / 0x34363248), yuv422p(progressive), 1280×720 [SAR 1:1 DAR 16:9], 3943 kb/s, 60 fps, 60 tbr, 60 tbn, 120 tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 192 kb/s
File ‘Little Cheeser 1936.mp4’ already exists. Overwrite? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_qsv))
Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help

Impossible to convert between the formats supported by the filter ‘Parsed_hwupload_0’ and the filter ‘auto_scaler_0′
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0
bench: maxrss=60096kB
Conversion failed!
”’
(I’ve inserted a blank line before the error to make it easier to find.)

I have tried simplifying the video filter stream to just “format=p0101le”, but I get the same failure. I’ve also tried doing it separately with -pix_fmt p010le” in the command outside of the video filter, and also get an error. I’ve tried stripping the command down to the basics, but that also does not fix the error.

I don’t understand why ffmpeg would extract information about the codec and say that it supports p0101le if it doesn’t. Could someone please clarify this?