On Wed, Aug 14, 2024, 15:15 Terje J. Hanssen <terjejhans...@gmail.com> wrote:
> > > Den 14.08.2024 02:05, skrev Dennis Mungai: > > On Wed, 14 Aug 2024, 02:59 Dennis Mungai, <dmng...@gmail.com> wrote: > >> On Wed, 14 Aug 2024, 02:45 Terje J. Hanssen, <terjejhans...@gmail.com> >> wrote: >> >>> >>> >>> Den 13.08.2024 19:40, skrev Dennis Mungai: >>> >>> On Tue, 13 Aug 2024 at 19:49, Andrew Randrianasulu >>> <randrianas...@gmail.com> <randrianas...@gmail.com> >>> wrote: >>> >>> >>> вт, 13 авг. 2024 г., 19:46 Terje J. Hanssen <terjejhans...@gmail.com> >>> <terjejhans...@gmail.com>: >>> >>> >>> Hi, >>> >>> I try to test Vulkan h264 or h265 decoding according to test command >>> athttps://trac.ffmpeg.org/wiki/HWAccelIntro#Vulkan >>> ffmpeg -init_hw_device "vulkan=vk:0" -hwaccel vulkan >>> -hwaccel_output_format vulkan -i INPUT -f null - -benchmark >>> >>> but get the following output error: >>> [h264 @ 0x55952760cf40] Failed setup for format vulkan: hwaccel >>> initialisation returned error. >>> or >>> [hevc @ 0x5580e96e8c80] Failed setup for format vulkan: hwaccel >>> initialisation returned error. >>> >>> Any suggestion how to solve it? >>> >>> >>> Honestly, no idea .. try ffmpeg matrix/irc channel or ffmpeg-user? >>> >>> >>> This has to do with your input file. Your log indicates that you're >>> attempting to decode 10-bit H.264, and from my suspicion, almost zero GPUs >>> implement 10-bit H.264 decode. >>> You can verify via vainfo's output to see the decoder limitation(s) for >>> H.264 levels, etc. >>> Try decoding any of the sample file from Kodi's H.264 sample >>> collection:https://kodi.wiki/view/Samples#Codecs,_Framerates,_Black-levels_and_Subtitles >>> And report back. >>> _______________________________________________ >>> >>> >>> >>> 1) Thank you for your suspicion regarding almost zero GPUs implement >>> 10-bit H.264 decode. >>> This is obviously true in my case, because when I tested a h264 8-bit >>> yuv420p file, the hwaccel >>> initialisation error was away. Full ffmpeg output report below using my >>> own encoded input file. >>> (Even with a h264 8-bit yuv422p input file ffmpeg did output the hwaccel >>> initialisation error) >>> >>> 2) However Intel Arc A-series should support HEVC (H.265) 10-bit 4:2:0 >>> and 10-bit 4:2:2 decode and encode formats according to this page: >>> >>> https://www.intel.com/content/www/us/en/support/articles/000098345/graphics.html >>> Also testing the corresponding input file in this format get the hwaccel >>> initialisation error, see the full ffmpeg output below. >>> >>> >>> .......snip > > ------------- >>> >>> vainfo | egrep 'H264|422_10' >>> >>> libva info: VA-API version 1.22.0 >>> libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so >>> libva info: Found init function __vaDriverInit_1_21 >>> libva info: va_openDriver() returns 0 >>> VAProfileH264Main : VAEntrypointVLD >>> VAProfileH264Main : VAEntrypointEncSliceLP >>> VAProfileH264High : VAEntrypointVLD >>> VAProfileH264High : VAEntrypointEncSliceLP >>> VAProfileH264ConstrainedBaseline: VAEntrypointVLD >>> VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP >>> VAProfileHEVCMain422_10 : VAEntrypointVLD >>> VAProfileHEVCMain422_10 : VAEntrypointEncSliceLP >>> >>> ---------- >>> >>> vulkaninfo | egrep 'H264|H265|HEVC' >>> VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR >>> VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR >>> >>> ------------- >>> >>> >>> ....snip > > -------------- >>> >>> 2) 23M h265_yuv422p10le_SR.mp4 >>> >>> ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan >>> -hwaccel_output_format vulkan -i h265_yuv422p10le_SR.mp4 -f null - >>> -benchmark >>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'h265_yuv422p10le_SR.mp4': >>> Metadata: >>> major_brand : isom >>> minor_version : 512 >>> compatible_brands: isomiso2mp41 >>> encoder : Lavf61.1.100 >>> Duration: 00:01:11.16, start: 0.000000, bitrate: 2703 kb/s >>> Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 / 0x31766568), >>> yuv422p10le(pc, smpte170m/unknown/unknown, top coded first (swapped)), >>> 1920x1080 [SAR 1:1 DAR 16:9], 2700 kb/s, 25 fps, 25 tbr, 12800 tbn (default) >>> Metadata: >>> handler_name : VideoHandler >>> vendor_id : [0][0][0][0] >>> Stream mapping: >>> Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native)) >>> Press [q] to stop, [?] for help >>> ** [hevc @ 0x55edf209fa40] Failed setup for format vulkan: hwaccel >>> initialisation returned error. >>> ** [hevc @ 0x55edf209fa40] Unsupported film grain parameters. Ignoring >>> film grain. >>> Output #0, null, to 'pipe:': >>> Metadata: >>> major_brand : isom >>> minor_version : 512 >>> compatible_brands: isomiso2mp41 >>> encoder : Lavf61.1.100 >>> Stream #0:0(und): Video: wrapped_avframe, yuv422p10le(pc, >>> smpte170m/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], >>> q=2-31, 200 kb/s, 25 fps, 25 tbn (default) >>> Metadata: >>> handler_name : VideoHandler >>> vendor_id : [0][0][0][0] >>> encoder : Lavc61.3.100 wrapped_avframe >>> [out#0/null @ 0x55edf207ff40] video:764KiB audio:0KiB subtitle:0KiB >>> other streams:0KiB global headers:0KiB muxing overhead: unknown >>> frame= 1779 fps=750 q=-0.0 Lsize=N/A time=00:01:11.16 bitrate=N/A >>> speed= 30x >>> bench: utime=15.892s stime=0.188s rtime=2.371s >>> bench: maxrss=411104KiB >>> >> >> >> It seems that as implemented, Vulkan decoding is definitely failing with >> interlaced HEVC video, regardless of the underlying pixel format. >> >> The file failing on your end is interlaced HEVC, see >> h265_yuv422p10le_SR.mp4 >> > > This ticket may also be relevant, interlaced HEVC encodes are quite rare > out here and may be non-spec compliant. > > ====================== > > Good points. > > My original ProRes422 HQ source input file before encoding to HEVC using > CinelerraGG/FFmpeg, was a in a valid HD 1920x1080i25 format. > I also had a look at the available ffmpeg pixel formats: > > ffmpeg -hide_banner -h encoder=hevc | grep yuv422p10 > Supported pixel formats: yuv420p yuvj420p yuv422p yuvj422p yuv444p > yuvj444p gbrp yuv420p10le yuv422p10le yuv444p10le gbrp10le yuv420p12le > yuv422p12le yuv444p12le gbrp12le gray gray10le gray12le > > ffmpeg -hide_banner -h full codecs=hevc | grep yuv422p10 > yuv422p10 64 ..FV....... > yuv422p10 3 ..FV....... > > So now in a third attempt, I've tried to simply deinterlace the H.265 > file, but still get the ffmpeg Vulkan hwaccel initialisation error. > I'm wondering if my deinterlace code line is correct, because the > deinterlaced output is smaller (halph the size) of the input file. > I would have expected it larger(?) > > -------------- > > ffmpeg -hide_banner -i h265_yuv422p10le_SR.mp4 -vf yadif=parity=auto -c:v > libx265 -c:a copy h265_yuv422p10le_SR_deinterlaced.mp4 > Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'h265_yuv422p10le_SR.mp4': > Metadata: > major_brand : isom > minor_version : 512 > compatible_brands: isomiso2mp41 > encoder : Lavf61.1.100 > Duration: 00:01:11.16, start: 0.000000, bitrate: 2703 kb/s > Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 / 0x31766568), > yuv422p10le(pc, smpte170m/unknown/unknown, top coded first (swapped)), > 1920x1080 [SAR 1:1 DAR 16:9], 2700 kb/s, 25 fps, 25 tbr, 12800 tbn (default) > Metadata: > handler_name : VideoHandler > vendor_id : [0][0][0][0] > File 'h265_yuv422p10le_SR_deinterlaced.mp4' already exists. Overwrite? > [y/N] y > Stream mapping: > Stream #0:0 -> #0:0 (hevc (native) -> hevc (libx265)) > Press [q] to stop, [?] for help > x265 [info]: HEVC encoder version > x265 [info]: build info [Linux][GCC 13.3.0][64 bit] 10bit > x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX > FMA3 BMI2 AVX2 > x265 [info]: Main 4:2:2 10 profile, Level-4 (Main tier) > x265 [info]: Thread pool created using 20 threads > x265 [info]: Slices : 1 > x265 [info]: frame threads / pool features : 4 / wpp(17 rows) > x265 [info]: Coding QT: max CU size, min CU size : 64 / 8 > x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra > x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 3 > x265 [info]: Keyframe min / max / scenecut / bias : 25 / 250 / 40 / 5.00 > x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2 > x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0 > x265 [info]: References / ref-limit cu / depth : 3 / off / on > x265 [info]: AQ: mode / str / qg-size / cu-tree : 2 / 1.0 / 32 / 1 > x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60 > x265 [info]: tools: rd=3 psy-rd=2.00 early-skip rskip mode=1 signhide tmvp > x265 [info]: tools: b-intra strong-intra-smoothing lslices=6 deblock sao > Output #0, mp4, to 'h265_yuv422p10le_SR_deinterlaced.mp4': > Metadata: > major_brand : isom > minor_version : 512 > compatible_brands: isomiso2mp41 > encoder : Lavf61.1.100 > Stream #0:0(und): Video: hevc (hev1 / 0x31766568), yuv422p10le(pc, > smpte170m/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], > q=2-31, 25 fps, 12800 tbn (default) > Metadata: > handler_name : VideoHandler > vendor_id : [0][0][0][0] > encoder : Lavc61.3.100 libx265 > Side data: > cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A > [out#0/mp4 @ 0x5623a778e940] video:11443KiB audio:0KiB subtitle:0KiB other > streams:0KiB global headers:2KiB muxing overhead: 0.213827% > frame= 1779 fps= 48 q=32.7 Lsize= 11468KiB time=00:01:11.08 > bitrate=1321.7kbits/s speed=1.92x > x265 [info]: frame I: 9, Avg QP:26.34 kb/s: 10966.00 > x265 [info]: frame P: 452, Avg QP:27.25 kb/s: 3883.36 > x265 [info]: frame B: 1318, Avg QP:34.22 kb/s: 370.40 > x265 [info]: Weighted P-Frames: Y:10.2% UV:0.0% > > encoded 1779 frames in 36.97s (48.12 fps), 1316.56 kb/s, Avg QP:32.41 > > ---------------- > > 3) 12M h265_yuv422p10le_SR_deinterlaced.mp4 > > > ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan > -hwaccel_output_format vulkan -i h265_yuv422p10le_SR_deinterlaced.mp4 -f > null - -benchmark > Input #0, mov,mp4,m4a,3gp,3g2,mj2, from > 'h265_yuv422p10le_SR_deinterlaced.mp4': > Metadata: > major_brand : isom > minor_version : 512 > compatible_brands: isomiso2mp41 > encoder : Lavf61.1.100 > Duration: 00:01:11.16, start: 0.000000, bitrate: 1320 kb/s > Stream #0:0[0x1](und): Video: hevc (Rext) (hev1 / 0x31766568), > yuv422p10le(pc, smpte170m/unknown/unknown, progressive), 1920x1080 [SAR 1:1 > DAR 16:9], 1317 kb/s, 25 fps, 25 tbr, 12800 tbn (default) > Metadata: > handler_name : VideoHandler > vendor_id : [0][0][0][0] > encoder : Lavc61.3.100 libx265 > Stream mapping: > Stream #0:0 -> #0:0 (hevc (native) -> wrapped_avframe (native)) > Press [q] to stop, [?] for help > [hevc @ 0x56422043e480] Failed setup for format vulkan: hwaccel > initialisation returned error. > Output #0, null, to 'pipe:': > Metadata: > major_brand : isom > minor_version : 512 > compatible_brands: isomiso2mp41 > encoder : Lavf61.1.100 > Stream #0:0(und): Video: wrapped_avframe, yuv422p10le(pc, > smpte170m/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], > q=2-31, 200 kb/s, 25 fps, 25 tbn (default) > Metadata: > handler_name : VideoHandler > vendor_id : [0][0][0][0] > encoder : Lavc61.3.100 wrapped_avframe > [out#0/null @ 0x564220459f40] video:764KiB audio:0KiB subtitle:0KiB other > streams:0KiB global headers:0KiB muxing overhead: unknown > frame= 1779 fps=790 q=-0.0 Lsize=N/A time=00:01:11.16 bitrate=N/A > speed=31.6x > bench: utime=13.717s stime=0.122s rtime=2.251s > bench: maxrss=418956KiB > > =================================== > Can I see a full dump from vainfo? Want to confirm something > _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".