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. >> >> >> What surprised me somewhat is relative little speed variation range >> between these expected GPU and CPU tests: >> 8-bit h264: frame= 1780 fps=913 q=-0.0 Lsize=N/A time=00:01:11.20 >> bitrate=N/A speed=36.5x >> 10-bit hevc: frame= 1779 fps=750 q=-0.0 Lsize=N/A time=00:01:11.16 >> bitrate=N/A speed= 30x >> >> Possibly because a relative powerful CPU(?) >> >> inxi -CGz >> CPU: >> Info: 12-core (8-mt/4-st) model: 12th Gen Intel Core i7-12700KF bits: 64 >> type: MST AMCP cache: L2: 12 MiB >> Speed (MHz): avg: 800 min/max: 800/4900:5000:3800 cores: 1: 800 2: 800 >> 3: 800 4: 800 5: 800 6: 800 7: 800 8: 800 9: 800 10: 800 11: 800 12: >> 800 >> 13: 800 14: 800 15: 800 16: 800 17: 800 18: 800 19: 800 20: 800 >> Graphics: >> Device-1: Intel DG2 [Arc A750] driver: i915 v: kernel >> Device-2: Microdia Camera driver: snd-usb-audio,uvcvideo type: USB >> Display: x11 server: X.org v: 1.21.1.12 with: Xwayland v: 24.1.1 driver: >> X: loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915 >> resolution: 2560x1440~60Hz >> API: OpenGL v: 4.6 vendor: intel mesa v: 24.1.2 renderer: Mesa Intel Arc >> A750 Graphics (DG2) >> API: Vulkan v: 1.3.290 drivers: N/A surfaces: xcb,xlib >> API: EGL Message: EGL data requires eglinfo. Check --recommends. >> >> ------------- >> >> 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 >> >> ------------- >> >> 1) 72M h264_8bit_yuv420p.mp4 >> >> ffmpeg -hide_banner -init_hw_device "vulkan=vk:0" -hwaccel vulkan >> -hwaccel_output_format vulkan -i h264_8bit_yuv420p.mp4 -f null - -benchmark >> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'h264_8bit_yuv420p.mp4': >> Metadata: >> major_brand : isom >> minor_version : 512 >> compatible_brands: isomiso2avc1mp41 >> encoder : Lavf61.1.100 >> Duration: 00:01:11.20, start: 0.000000, bitrate: 8464 kb/s >> Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), >> yuvj420p(pc, smpte170m/unknown/unknown, top first), 1920x1080 [SAR 1:1 DAR >> 16:9], 8462 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 (h264 (native) -> wrapped_avframe (native)) >> Press [q] to stop, [?] for help >> Output #0, null, to 'pipe:': >> Metadata: >> major_brand : isom >> minor_version : 512 >> compatible_brands: isomiso2avc1mp41 >> encoder : Lavf61.1.100 >> Stream #0:0(und): Video: wrapped_avframe, vulkan(pc, >> smpte170m/unknown/unknown, top coded first (swapped)), 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 @ 0x55e45d48af40] video:765KiB audio:0KiB subtitle:0KiB other >> streams:0KiB global headers:0KiB muxing overhead: unknown >> frame= 1780 fps=913 q=-0.0 Lsize=N/A time=00:01:11.20 bitrate=N/A >> speed=36.5x >> bench: utime=0.589s stime=0.522s rtime=1.950s >> bench: maxrss=217780KiB >> >> -------------- >> >> 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. See https://trac.ffmpeg.org/ticket/5514 > _______________________________________________ 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".