On Wed, 16 Oct 2024 at 00:49, Shane Warren <sha...@innovsys.com> wrote:
> > > >> > -----Original Message----- > >> > From: ffmpeg-user <ffmpeg-user-boun...@ffmpeg.org> On Behalf Of > >> > Dennis Mungai > >> > Sent: Monday, October 14, 2024 4:50 PM > >> > To: FFmpeg user questions <ffmpeg-user@ffmpeg.org> > >> > Subject: Re: [FFmpeg-user] Intel libmfx Crash with Hardware Decoding > >> > > >> > > >> > On Mon, 14 Oct 2024 at 18:57, Shane Warren <sha...@innovsys.com> > wrote: > >> > > >> > >> I have a system with Intel Flex 140 cards and use ffmpeg to > >> > >> transcode video on an Ubuntu 22.x system. Through a lot of > >> > >> testing, I have come up with a flow that handles multicast h264 > >> > >> input (decoding using > >> > >> vaapi) with > >> > >> h264/h265 output using QSV. I wanted to use QSV decoding but if I > >> > >> used QSV decoding and QSV encoding, but QSV decoding seems to > >> > >> strip > >> > >> A53 captions (which I need). > >> > >> > >> > >> I found one input stream that eventually crashes the vaapi > >> > >> decoder inside of libmfx. > >> > >> > >> > >> The call stack ends up in some function in libfmx: > >> > >> > >> > >> Program terminated with signal SIGSEGV, Segmentation fault. > >> > >> > >> > >> #0 0x00007f14b22d9f88 in ?? () from > >> > >> /usr/lib/x86_64-linux-gnu/libmfx-gen.so.1.2.10 > >> > >> > >> > >> Is there a way to get symbols for libmfx so I can get a better > >> > >> bug report, or some suggestion on how to debug this. > >> > >> > >> > >> I have switched this stream to software decoding then QSV > >> > >> encoding, and it is stable but obviously uses a bit more cpu. > >> > >> > >> > >> An extra question is: Will the QSV hardware decoder ever support > >> > >> passing through a53 captions? > >> > >> > >> > >> Thanks, > >> > >> > >> > >> Shane Warren > >> > >> > >> > > >> > > Full ffmpeg command and uncut console output would help in > >> > > understanding > >> >> what's going on in your setup. > >> >> > >> >> Full ffmpeg command and full output follows (I can upload the ts > >> >> file that makes it core dump if needed): > >> >> > >> >> root@restarttv:~# ffmpeg -y -threads 2 -nostats -loglevel verbose > >> >> -fflags > >> >> +genpts -fflags discardcorrupt -hwaccel vaapi -vaapi_device > >> >> /dev/dri/renderD130 -hwaccel_output_format vaapi -extra_hw_frames 2 > >> >> -init_hw_device qsv=hw3 -filter_hw_device hw3 -i > >> >> /tmp/crash-intel.ts > >> >> -filter:a:0 "aresample=async=10000" -c:a:0 aac -ac:a:0 2 -ar:a:0 > >> >> 48000 > >> >> -b:a:0 192k -flush_packets 0 -filter_complex > >> >> > >> > "[0:v:0]hwmap=derive_device=qsv,vpp_qsv=deinterlace=2:w=1280:h=720,fps=60000/1001,format=yuv420p[vout]" > >> >> -map "[vout]" -map "0:a:0" -map 0:d? -c:v h264_qsv -b:v 4000k > >> >> -minrate:v 4000k -maxrate:v 4000k -bufsize:v 8000k -scenario > >> >> livestreaming -strict_gop > >> >> 1 -forced_idr 1 -profile:v high -level:v 4.2 -bf:v 0 -g:v 30 -f > >> >> mpegts -muxrate 4953560 -pes_payload_size 1528 /tmp/intel-output.ts > >> >> > >> >> ffmpeg version N-112548-g48a1b7005d Copyright (c) 2000-2023 the > >> >> FFmpeg developers > >> >> built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04) > >> >> configuration: --nvcc=/usr/local/cuda/bin/nvcc --enable-debug > >> >> --disable-shared --enable-static --enable-version3 --arch=x86_64 > >> >> --target-os=linux --enable-cuda --enable-cuvid --enable-nvenc > >> >> --enable-gpl --enable-nonfree --enable-runtime-cpudetect > >> >> --enable-libnpp --extra-cflags='-I/usr/local/cuda/include --static' > >> >> --extra-ldflags=-L/usr/local/cuda/lib64 --enable-gpl > >> >> --enable-cuda-nvcc --enable-libfreetype --enable-libvpl > >> >> --enable-ffnvcodec --enable-cuda-llvm --disable-ffplay > >> >> --pkg-config-flags=--static --enable-libnpp-static --enable-opengl > >> --enable-filter=gltransition --extra-libs='-lGLEW -lEGL' > >> >> --logfile=./config.log --enable-libfreetype --enable-libharfbuzz > >> >> --enable-libsrt > >> >> libavutil 58. 37.100 / 58. 37.100 > >> >> libavcodec 60. 30.102 / 60. 30.102 > >> >> libavformat 60. 15.101 / 60. 15.101 > >> >> libavdevice 60. 2.101 / 60. 2.101 > >> >> libavfilter 9. 11.100 / 9. 11.100 > >> >> libswscale 7. 4.100 / 7. 4.100 > >> >> libswresample 4. 11.100 / 4. 11.100 > >> >> libpostproc 57. 2.100 / 57. 2.100 > >> >> [AVHWDeviceContext @ 0x55c1ddf49b40] libva: VA-API version 1.20.0 > >> >> [AVHWDeviceContext @ 0x55c1ddf49b40] libva: Trying to open > >> >> /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> [AVHWDeviceContext @ 0x55c1ddf49b40] libva: Found init function > >> >> __vaDriverInit_1_20 > >> >> [AVHWDeviceContext @ 0x55c1ddf49b40] libva: va_openDriver() returns > >> >> 0 [AVHWDeviceContext @ 0x55c1ddf49b40] Initialised VAAPI connection: > >> >> version > >> >> 1.20 > >> >> [AVHWDeviceContext @ 0x55c1ddf49b40] VAAPI driver: Intel iHD driver > >> >> for > >> >> Intel(R) Gen Graphics - 23.4.3 (). > >> >> [AVHWDeviceContext @ 0x55c1ddf49b40] Driver not found in known > >> >> nonstandard list, using standard behaviour. > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] Trying to use DRM render node > >> >> for device 0. > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] libva: VA-API version 1.20.0 > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] libva: User requested driver > 'iHD' > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] libva: Trying to open > >> >> /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] libva: Found init function > >> >> __vaDriverInit_1_20 > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] libva: va_openDriver() returns > >> >> 0 [AVHWDeviceContext @ 0x55c1ddf7b080] Initialised VAAPI connection: > >> >> version > >> >> 1.20 > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] VAAPI driver: Intel iHD driver > >> >> for > >> >> Intel(R) Gen Graphics - 23.4.3 (). > >> >> [AVHWDeviceContext @ 0x55c1ddf7b080] Driver not found in known > >> >> nonstandard list, using standard behaviour. > >> >> [AVHWDeviceContext @ 0x55c1ddf78680] Use Intel(R) oneVPL to create > >> >> MFX session, API version is 2.9, the required implementation > >> >> version is > >> >> 1.3 libva info: VA-API version 1.20.0 libva info: Trying to open > >> >> /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 [AVHWDeviceContext @ 0x55c1ddf78680] > >> >> Initialize MFX session: > >> >> implementation version is 2.10 > >> >> [Parsed_fps_2 @ 0x55c1de1e5c40] 0 frames in, 0 frames out; 0 frames > >> >> dropped, 0 frames duplicated. > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] non-existing PPS 0 referenced > >> >> Last message repeated 1 times > >> >> [h264 @ 0x55c1de19a480] decode_slice_header error > >> >> [h264 @ 0x55c1de19a480] no frame! > >> >> [h264 @ 0x55c1de19a480] Reinit context to 1280x720, pix_fmt: > >> >> yuv420p [mpegts @ 0x55c1de1f8ac0] max_analyze_duration 5000000 > >> >> reached at > >> >> 5013333 microseconds st:1 [mpegts @ 0x55c1de1f8ac0] start time for > >> >> stream 2 is not set in estimate_timings_from_pts Selecting decoder > >> >> 'h264' because of requested hwaccel method vaapi Input #0, mpegts, > >> >> from '/tmp/crash-intel.ts': > >> >> Duration: 00:00:29.14, start: 26553.922556, bitrate: 6855 kb/s > >> >> Program 1 > >> >> Metadata: > >> >> service_name : Service01 > >> >> service_provider: FFmpeg > >> >> Stream #0:0[0x100]: Video: h264 (High), 1 reference frame > >> >> ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive, left), > >> >> 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 59.94 fps, 59.94 tbr, > >> >> 90k > >> tbn > >> >> Stream #0:1[0x101](eng): Audio: aac (LC) ([15][0][0][0] / > >> >> 0x000F), > >> >> 48000 Hz, stereo, fltp, 193 kb/s > >> >> Stream #0:2[0x102]: Data: scte_35 [out#0/mpegts @ 0x55c1df079c80] > >> >> Adding streams from explicit maps... > >> >> [out#0/mpegts @ 0x55c1df079c80] Creating output stream from an > >> >> explicitly mapped complex filtergraph 0, output [vout] > >> >> [vost#0:0/h264_qsv @ 0x55c1dee9dec0] Created video stream from > >> >> complex filtergraph 0:[format:default] [vost#0:0/h264_qsv @ > >> >> 0x55c1dee9dec0] [aost#0:1/aac @ 0x55c1de151700] Created audio > >> >> stream from input stream > >> >> 0:1 [dost#0:2/copy @ 0x55c1de291840] Created data stream from input > >> >> stream 0:2 Stream mapping: > >> >> Stream #0:0 (h264) -> hwmap:default (graph 0) > >> >> format:default (graph 0) -> Stream #0:0 (h264_qsv) > >> >> Stream #0:1 -> #0:1 (aac (native) -> aac (native)) > >> >> Stream #0:2 -> #0:2 (copy) > >> >> Press [q] to stop, [?] for help > >> >> [graph_1_in_0_1 @ 0x55c1de750b40] tb:1/48000 samplefmt:fltp > >> >> samplerate:48000 chlayout:stereo > >> >> [Parsed_aresample_0 @ 0x55c1de1c4900] ch:2 chl:stereo fmt:fltp > >> >> r:48000Hz > >> >> -> ch:2 chl:stereo fmt:fltp r:48000Hz > >> >> [h264 @ 0x55c1de2513c0] Reinit context to 1280x720, pix_fmt: vaapi > >> >> [graph 0 input from stream 0:0 @ 0x55c1de20a040] w:1280 h:720 > >> >> pixfmt:vaapi > >> >> tb:1/90000 fr:60000/1001 sar:1/1 > >> >> [auto_scale_0 @ 0x55c1de1f4180] w:iw h:ih flags:'' interl:0 > >> >> [Parsed_format_3 @ 0x55c1dee0c280] auto-inserting filter > 'auto_scale_0' > >> >> between the filter 'Parsed_fps_2' and the filter 'Parsed_format_3' > >> >> [auto_scale_1 @ 0x55c1defb3240] w:iw h:ih flags:'' interl:0 [format > >> >> @ 0x55c1de1c5780] auto-inserting filter 'auto_scale_1' between the > >> >> filter 'Parsed_format_3' and the filter 'format' > >> >> [AVHWDeviceContext @ 0x55c1de113600] Use Intel(R) oneVPL to create > >> >> MFX session, API version is 2.9, the required implementation > >> >> version is > >> >> 1.3 libva info: VA-API version 1.20.0 libva info: Trying to open > >> >> /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 libva info: VA-API version 1.20.0 libva > >> >> info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so > >> >> libva info: Found init function __vaDriverInit_1_20 libva info: > >> >> va_openDriver() returns 0 [AVHWDeviceContext @ 0x55c1de113600] > >> >> Initialize MFX session: > >> >> implementation version is 2.10 > >> >> [Parsed_vpp_qsv_1 @ 0x55c1de758c00] Use Intel(R) oneVPL to create > >> >> MFX session with the specified MFX loader > >> >> [Parsed_vpp_qsv_1 @ 0x55c1de758c00] VPP: input is video memory > >> >> surface > >> >> [Parsed_vpp_qsv_1 @ 0x55c1de758c00] VPP: output is system memory > >> >> surface > >> >> [Parsed_fps_2 @ 0x55c1de1e4980] fps=60000/1001 > >> >> [auto_scale_0 @ 0x55c1de1f4180] w:1280 h:720 fmt:nv12 sar:1/1 -> > >> >> w:1280 > >> >> h:720 fmt:yuv420p sar:1/1 flags:0x00000004 > >> >> [auto_scale_1 @ 0x55c1defb3240] w:1280 h:720 fmt:yuv420p sar:1/1 -> > >> >> w:1280 > >> >> h:720 fmt:nv12 sar:1/1 flags:0x00000004 > >> >> [Parsed_fps_2 @ 0x55c1de1e4980] Set first pts to 33 > >> >> [auto_scale_0 @ 0x55c1de1f4180] w:1280 h:720 fmt:nv12 sar:1/1 -> > >> >> w:1280 > >> >> h:720 fmt:yuv420p sar:1/1 flags:0x00000004 > >> >> Last message repeated 2 times > >> >> [auto_scale_1 @ 0x55c1defb3240] w:1280 h:720 fmt:yuv420p sar:1/1 -> > >> >> w:1280 > >> >> h:720 fmt:nv12 sar:1/1 flags:0x00000004 > >> >> Last message repeated 2 times > >> >> [h264_qsv @ 0x55c1de150b00] Using device hw3 (type qsv) with > >> >> h264_qsv encoder. > >> >> [h264_qsv @ 0x55c1de150b00] Encoder: input is system memory surface > >> >> [h264_qsv @ 0x55c1de150b00] Use Intel(R) oneVPL to create MFX > >> >> session with the specified MFX loader [h264_qsv @ 0x55c1de150b00] > >> >> Using the constant bitrate (CBR) ratecontrol method [h264_qsv @ > >> >> 0x55c1de150b00] > >> >> profile: avc high; level: 32 [h264_qsv @ 0x55c1de150b00] GopPicSize: > >> >> 30; GopRefDist: 1; GopOptFlag: > >> >> closed; IdrInterval: 0 > >> >> [h264_qsv @ 0x55c1de150b00] TargetUsage: 4; RateControlMethod: CBR > >> >> [h264_qsv @ 0x55c1de150b00] BufferSizeInKB: 1000; InitialDelayInKB: > >> >> 750; > >> >> TargetKbps: 4000; MaxKbps: 4000; BRCParamMultiplier: 1 [h264_qsv @ > >> >> 0x55c1de150b00] NumSlice: 1; NumRefFrame: 2 [h264_qsv @ > >> >> 0x55c1de150b00] RateDistortionOpt: OFF [h264_qsv @ 0x55c1de150b00] > >> >> RecoveryPointSEI: OFF [h264_qsv @ 0x55c1de150b00] VDENC: ON > >> >> [h264_qsv @ 0x55c1de150b00] Entropy coding: CABAC; > >> >> MaxDecFrameBuffering: 2 [h264_qsv @ 0x55c1de150b00] > NalHrdConformance: ON; SingleSeiNalUnit: > >> >> ON; > >> >> VuiVclHrdParameters: OFF VuiNalHrdParameters: ON [h264_qsv @ > >> >> 0x55c1de150b00] FrameRateExtD: 1001; FrameRateExtN: 60000 [h264_qsv > >> >> @ 0x55c1de150b00] IntRefType: 0; IntRefCycleSize: 0; > >> >> IntRefQPDelta: 0 > >> >> [h264_qsv @ 0x55c1de150b00] MaxFrameSize: 0; MaxSliceSize: 0 > >> >> [h264_qsv @ 0x55c1de150b00] BitrateLimit: OFF; MBBRC: OFF; ExtBRC: > >> >> OFF [h264_qsv @ 0x55c1de150b00] Trellis: auto [h264_qsv @ > 0x55c1de150b00] RepeatPPS: > >> >> OFF; NumMbPerSlice: 0; LookAheadDS: > >> >> 2x > >> >> [h264_qsv @ 0x55c1de150b00] AdaptiveI: OFF; AdaptiveB: OFF; > >> >> BRefType:off [h264_qsv @ 0x55c1de150b00] MinQPI: 0; MaxQPI: 0; > MinQPP: > >> >> 0; MaxQPP: 0; > >> >> MinQPB: 0; MaxQPB: 0 > >> >> [h264_qsv @ 0x55c1de150b00] DisableDeblockingIdc: 0 [h264_qsv @ > >> >> 0x55c1de150b00] SkipFrame: no_skip [h264_qsv @ 0x55c1de150b00] > >> >> PRefType: simple [h264_qsv @ 0x55c1de150b00] TransformSkip: unknown > >> >> [h264_qsv @ 0x55c1de150b00] IntRefCycleDist: 0 [h264_qsv @ > >> >> 0x55c1de150b00] LowDelayBRC: OFF [h264_qsv @ 0x55c1de150b00] > >> >> MaxFrameSizeI: 0; MaxFrameSizeP: 0 [h264_qsv @ 0x55c1de150b00] > >> >> ScenarioInfo: 4 Automatically inserted bitstream filter > >> >> 'scte35ptsadjust'; args='' > >> >> [mpegts @ 0x55c1de167180] service 1 using PCR in pid=256, > >> >> pcr_period=20ms [mpegts @ 0x55c1de167180] muxrate 4953560, sdt > >> >> every > >> >> 500 ms, pat/pmt every > >> >> 100 ms > >> >> Output #0, mpegts, to '/tmp/intel-output.ts': > >> >> Metadata: > >> >> encoder : Lavf60.15.101 > >> >> Stream #0:0: Video: h264, 1 reference frame, nv12(tv, bt709, > >> >> progressive, left), 1280x720 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 4000 > >> >> kb/s, > >> >> 59.94 fps, 90k tbn > >> >> Metadata: > >> >> encoder : Lavc60.30.102 h264_qsv > >> >> Side data: > >> >> cpb: bitrate max/min/avg: 4000000/4000000/4000000 buffer size: > >> >> 8000000 vbv_delay: N/A > >> >> Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp, delay > >> >> 1024, > >> >> 192 kb/s > >> >> Metadata: > >> >> encoder : Lavc60.30.102 aac > >> >> Stream #0:2: Data: scte_35 > >> >> Segmentation fault (core dumped) > >> >> > >> > >> > Please upload the sample source file triggering the segfault. > >> > > >> > Also, test with these variants: > >> > > >> > 1. Initializing a QSV instance from VAAPI. > >> > > >> > ffmpeg -y -threads 2 -nostats -loglevel verbose -fflags +genpts > >> > -fflags > >> discardcorrupt -hwaccel vaapi -init_hw_device > >> vaapi=va:/dev/dri/renderD130 -hwaccel_output_format vaapi > >> -extra_hw_frames 2 -init_hw_device qsv=qs@va -filter_hw_device qs > >> -autorotate 0 -i /tmp/crash-intel.ts -autoscale 0 > >> > -filter:a:0 "aresample=async=10000" -c:a:0 aac -ac:a:0 2 -ar:a:0 > >> > 48000 > >> > -b:a:0 192k -flush_packets 0 -filter_complex > >> > "[0:v:0]vpp_qsv=deinterlace=2:w=1280:h=720,fps=60000/1001,format=yuv420p[vout]" > >> > -map "[vout]" -map "0:a:0" -map 0:d? -c:v h264_qsv -b:v 4000k > >> > -minrate:v > >> 4000k -maxrate:v 4000k -bufsize:v 8000k -scenario livestreaming > >> -strict_gop > >> > 1 -forced_idr 1 -profile:v high -level:v 4.2 -bf:v 0 -g:v 30 -f > >> > mpegts > >> -muxrate 4953560 -pes_payload_size 1528 /tmp/intel-output.ts > >> > > >> > > >> > 2. Using hwmap to derive QSV from VAAPI H/W: > >> > > >> > ffmpeg -y -threads 2 -nostats -loglevel verbose -fflags +genpts > >> > -fflags > >> discardcorrupt -hwaccel vaapi -init_hw_device > >> vaapi=va:/dev/dri/renderD130 -hwaccel_output_format vaapi > >> -extra_hw_frames 2 -filter_hw_device va -autorotate 0 -i > >> /tmp/crash-intel.ts -autoscale 0 > >> > -filter:a:0 "aresample=async=10000" -c:a:0 aac -ac:a:0 2 -ar:a:0 > >> > 48000 > >> > -b:a:0 192k -flush_packets 0 -filter_complex > >> > "[0:v:0]hwmap=derive_device=qsv,format=qsv,vpp_qsv=deinterlace=2:w=1280:h=720,fps=60000/1001,format=yuv420p[vout]" > >> > -map "[vout]" -map "0:a:0" -map 0:d? -c:v h264_qsv -b:v 4000k > >> > -minrate:v > >> 4000k -maxrate:v 4000k -bufsize:v 8000k -scenario livestreaming > >> -strict_gop > >> > 1 -forced_idr 1 -profile:v high -level:v 4.2 -bf:v 0 -g:v 30 -f > >> > mpegts > >> -muxrate 4953560 -pes_payload_size 1528 /tmp/intel-output.ts > >> > > >> > 3. Using hwupload to derive QSV from VAAPI H/W: > >> > > >> > The extra_hw_frames argument is now passed directly to hwupload's > >> derive_device option, with the value of 64. > >> > > >> > ffmpeg -y -threads 2 -nostats -loglevel verbose -fflags +genpts > >> > -fflags > >> discardcorrupt \ > >> > -hwaccel vaapi -init_hw_device vaapi=va:/dev/dri/renderD130 > >> -hwaccel_output_format vaapi -filter_hw_device va -autorotate 0 \ > >> > -i /tmp/crash-intel.ts -autoscale 0 -filter:a:0 > "aresample=async=10000" > >> -c:a:0 aac -ac:a:0 2 -ar:a:0 48000 -b:a:0 192k -flush_packets 0 \ > >> > -filter_complex > >> > "[0:v:0]hwmap=derive_device=qsv:extra_hw_frames=64,format=qsv,vpp_qsv=deinterlace=2:w=1280:h=720,fps=60000/1001,format=yuv420p[vout]" > >> \ > >> > -map "[vout]" -map "0:a:0" -map 0:d? \ -c:v h264_qsv -b:v 4000k > >> > -minrate:v 4000k -maxrate:v 4000k -bufsize:v > >> 8000k -scenario livestreaming -strict_gop 1 -forced_idr 1 -profile:v > >> high -level:v 4.2 -bf:v 0 -g:v 30 \ > >> > -f mpegts -muxrate 4953560 -pes_payload_size 1528 > >> > /tmp/intel-output.ts > >> > > >> > Extra parameters added: > >> > > >> > (a). -autororate 0 : This disables the automatic rotation of the > >> > video > >> according to file metadata. Known to make some H/W decoders to > misbehave. > >> > (b). -noautoscale : Used to prevent the automatic insertion of a > >> > scale > >> filter in the pipeline(s), ensuring better resilience against crashes > >> due to changing input resolutions with *some* encoder & decoder > combinations. > >> > > >> > Test and report back. > >> > >> Link to input ts file: > >> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdriv > >> %2F&data=05%7C02%7Cshanew%40innovsys.com%7C8b560a334e1c427677b708dced5 > >> 8cc45%7C7a48ce45ee974a95ac183390878a179b%7C0%7C0%7C638646212890216867% > >> 7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik > >> 1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=Y6oJ4c16rQ%2B37E%2BX5eaxDF4V6B > >> U8pPw%2F%2FmR6gBp%2B6Vg%3D&reserved=0 > >> e.google.com%2Ffile%2Fd%2F1Vy67szauLHemJMaVYHAQ9qZvpwO2qBnj%2Fview%3Fu > >> sp%3Dsharing&data=05%7C02%7Cshanew%40innovsys.com%7C330d8c43847847a6f4 > >> 7e08dced536136%7C7a48ce45ee974a95ac183390878a179b%7C0%7C0%7C6386461896 > >> 19449414%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL > >> CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=gLNEaeLZx%2BSBPtdU7x6 > >> 6c0b8LNK2bceM%2B8MFNtymvlM%3D&reserved=0 > >> > >> 1. Had to add this to start of the filter (or I got invalid conversion > >> errors): hwmap=derive_device=qsv, Result: Segfaults 2. Segfaults 3. > >> Had to change to this at the start of the filter (or I got invalid > >> conversion errors): hwmap=derive_device=qsv, Result: Segfaults > >> > >> I have also been testing directly decoding with QSV and encoding QSV > >> using this test stream, this works 100% no crash. The only issue with > >> QSV is the decoder strips A53 captions. > >> > >> Today I have been digging around in ffmpeg source and I think the > >> problem is the QSV decoder is not copying out the a53 captions and > >> putting them in the sideband data for the qsv endoder to use. In > >> theory this should be easy to fix. > >> > > >> Somehow, this seems to work correctly on the current ffmpeg git tip > >> (master > >> branch) and release points 7.0 and 7.1 with the command: > >> > >> ffmpeg -y -threads 2 -loglevel verbose -fflags +genpts -fflags > >> discardcorrupt \ -hwaccel vaapi -init_hw_device > >> vaapi=va:/dev/dri/renderD128 -hwaccel_output_format vaapi \ > >> -filter_hw_device va -noautorotate -i "crash-intel.ts" \ -noautoscale > >> -filter:a:0 "aresample=async=10000" -c:a:0 aac -ac:a:0 2 > >> -ar:a:0 48000 -b:a:0 192k -flush_packets 0 \ -filter_complex > "[0:v:0]hwmap=derive_device=qsv,format=qsv,vpp_qsv=deinterlace=2:w=1280:h=720:framerate=60000/1001[vout]" > >> \ > >> -map "[vout]" -map "0:a:0" -map 0:d? -c:v h264_qsv -b:v 4000k > -minrate:v 4000k -maxrate:v 4000k -bufsize:v 8000k \ -scenario > livestreaming -strict_gop 1 -forced_idr 1 -profile:v high -level:v 4.2 > -bf:v 0 -g:v 30 \ -y -f mpegts -muxrate 4953560 -pes_payload_size 1528 > "intel-output.ts" > >> > >> And the output has the A53 captions: > >> > >> mediainfo intel-output.ts > >> General > >> ID : 1 (0x1) > >> Complete name : intel-output.ts > >> Format : MPEG-TS > >> File size : 17.2 MiB > >> Duration : 29 s 179 ms > >> Overall bit rate mode : Constant > >> Overall bit rate : 4 954 kb/s > >> Frame rate : 59.940 FPS > >> Movie name : My Blue Heaven > >> Law rating : TV-PG (DL) > >> > >> Video > >> ID : 256 (0x100) > >> Menu ID : 1 (0x1) > >> Format : AVC > >> Format/Info : Advanced Video Codec > >> Format profile : High@L4 > >> Format settings : CABAC / 2 Ref Frames > >> Format settings, CABAC : Yes > >> Format settings, Reference frames : 2 frames > >> Format settings, GOP : M=1, N=30 > >> Codec ID : 27 > >> Duration : 28 s 587 ms > >> Bit rate mode : Constant > >> Nominal bit rate : 4 000 kb/s > >> Width : 1 280 pixels > >> Height : 720 pixels > >> Display aspect ratio : 16:9 > >> Frame rate : 59.940 (60000/1001) FPS > >> Standard : Component > >> Color space : YUV > >> Chroma subsampling : 4:2:0 > >> Bit depth : 8 bits > >> Scan type : Progressive > >> Bits/(Pixel*Frame) : 0.072 > >> Color range : Limited > >> Color primaries : BT.709 > >> Transfer characteristics : BT.709 > >> Matrix coefficients : BT.709 > >> > >> Audio > >> ID : 257 (0x101) > >> Menu ID : 1 (0x1) > >> Format : AAC LC > >> Format/Info : Advanced Audio Codec Low > >> Complexity > >> Format version : Version 4 > >> Muxing mode : ADTS > >> Codec ID : 15-2 > >> Duration : 29 s 141 ms > >> Bit rate mode : Variable > >> Channel(s) : 2 channels > >> Channel layout : L R > >> Sampling rate : 48.0 kHz > >> Frame rate : 46.875 FPS (1024 SPF) > >> Compression mode : Lossy > >> Delay relative to video : -572 ms > >> Language : English > >> > >> Text #1 > >> ID : 256 (0x100)-CC1 > >> Menu ID : 1 (0x1) > >> Format : EIA-608 > >> Muxing mode : SCTE 128 / DTVCC Transport > >> Muxing mode, more info : Muxed in Video #1 > >> Duration : 28 s 587 ms > >> Duration of the visible content : 25 s 592 ms > >> Start time (commands) : 2 s 522 ms > >> Start time : 2 s 623 ms > >> End time : 28 s 215 ms > >> Bit rate mode : Constant > >> Stream size : 0.00 Byte (0%) > >> Count of events : 9 > >> Count of PopOn events : 9 > >> Count of lines : 15 > >> Maximum count of lines per event : 3 > >> Count of frames before first event : 39 > >> Type of the first event : PopOn > >> > >> Text #2 > >> ID : 256 (0x100)-CC3 > >> Menu ID : 1 (0x1) > >> Format : EIA-608 > >> Muxing mode : SCTE 128 / DTVCC Transport > >> Muxing mode, more info : Muxed in Video #1 > >> Duration : 28 s 587 ms > >> Start time (commands) : 10 s 981 ms > >> Bit rate mode : Constant > >> Stream size : 0.00 Byte (0%) > >> Count of lines : 0 > >> > >> Text #3 > >> ID : 256 (0x100)-1 > >> Menu ID : 1 (0x1) > >> Format : EIA-708 > >> Muxing mode : SCTE 128 / DTVCC Transport > >> Muxing mode, more info : Muxed in Video #1 > >> Duration : 28 s 587 ms > >> Bit rate mode : Constant > >> Stream size : 0.00 Byte (0%) > >> > >> Text #4 > >> ID : 256 (0x100)-2 > >> Menu ID : 1 (0x1) > >> Format : EIA-708 > >> Muxing mode : SCTE 128 / DTVCC Transport > >> Muxing mode, more info : Muxed in Video #1 > >> Duration : 28 s 587 ms > >> Bit rate mode : Constant > >> Stream size : 0.00 Byte (0%) > >> > >> Menu > >> ID : 4096 (0x1000) > >> Menu ID : 1 (0x1) > >> Format : AVC / AAC > >> Duration : 29 s 179 ms > >> List : 256 (0x100) (AVC) / 257 > (0x101) > >> (AAC, English) > >> Title : My Blue Heaven > >> Language : / English > >> Service name : Service01 > >> Service provider : FFmpeg > >> Service type : digital television > >> Law rating : TV-PG (DL) > > > I should have mentioned that the command does not crash 100% of the > time, if you run it over and over mine crashes maybe 10-15% of the time. I > would try it a few times and see if it still works. > > I pulled the latest source, and built it, then ran my command again. It > didn't crash the first time, but it did crash the 2nd run and I can still > make it crash reliably with the latest source. > Have you ever tried building and installing the Intel Cartwheel FFmpeg release(s)? https://github.com/intel/cartwheel-ffmpeg The latest releases over there have patchsets that are yet to be merged upstream, addressing multiple bug fixes and enhancements to Intel's OneVPL stack and DNN stuff. _______________________________________________ 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".