[FFmpeg-user] h264_v4l2m2m unable to find output format

Andriy Gelman andriy.gelman at gmail.com
Sun May 24 18:40:32 EEST 2020


On Sun, 24. May 18:49, Anjo John wrote:
> I have tested the master branch from git. it also reports the same
> behaviour. Sorry i couldn't remove the "Disclaimer" line at the end.
> Please find the complete output with loglevel debug.
> ffmpeg -loglevel debug -c:v h264_v4l2m2m -i test.h264 -pix_fmt nv12
> /tmp/out.yuv
> ffmpeg version N-97929-g26b4509 Copyright (c) 2000-2020 the FFmpeg
> developers
>   built with gcc 6.4.0 (GCC)
>   configuration: --disable-stripping --enable-pic --enable-shared
> --enable-pthreads --cross-prefix=arm-oe-linux-gnueabi-
> --ld='arm-oe-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard
> -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack
> -Wformat -Wformat-security -Werror=format-security
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> --cc='arm-oe-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard
> -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack
> -Wformat -Wformat-security -Werror=format-security
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> --cxx='arm-oe-linux-gnueabi-g++ -march=armv7-a -mfpu=neon -mfloat-abi=hard
> -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack
> -Wformat -Wformat-security -Werror=format-security
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O2
> -fomit-frame-pointer -Wa,--noexecstack -fexpensive-optimizations
> -frename-registers -ftree-vectorize -finline-functions -finline-limit=64
> -Wno-error=maybe-uninitialized -Wno-error=unused-result -march=armv7-a
> -mfpu=neon -mfloat-abi=hard -fstack-protector-strong -pie -fPIE
> -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security
> -Werror=format-security
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
> -Wl,-z,relro,-z,now,-z,noexecstack'
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot
> --libdir=/usr/lib --shlibdir=/usr/lib --datadir=/usr/share/ffmpeg
> --disable-mipsdsp --disable-mipsdspr2 --cpu=generic --pkg-config=pkg-config
> --enable-alsa --enable-avcodec --enable-avdevice --enable-avfilter
> --enable-avformat --enable-avresample --enable-bzlib --disable-libfdk-aac
> --enable-gpl --disable-libgsm --disable-indev=jack --disable-libvorbis
> --enable-lzma --disable-libmfx --disable-libmp3lame --disable-openssl
> --enable-postproc --disable-sdl2 --disable-libspeex --enable-swresample
> --enable-swscale --enable-libtheora --disable-vaapi --disable-vdpau
> --disable-libvpx --enable-libx264 --disable-libx265 --disable-libxcb
> --disable-outdev=xv --enable-zlib
>   libavutil      56. 48.100 / 56. 48.100
>   libavcodec     58. 87.101 / 58. 87.101
>   libavformat    58. 43.100 / 58. 43.100
>   libavdevice    58.  9.103 / 58.  9.103
>   libavfilter     7. 83.100 /  7. 83.100
>   libavresample   4.  0.  0 /  4.  0.  0
>   libswscale      5.  6.101 /  5.  6.101
>   libswresample   3.  6.100 /  3.  6.100
>   libpostproc    55.  6.100 / 55.  6.100
> Splitting the commandline.
> Reading option '-loglevel' ... matched as option 'loglevel' (set logging
> level) with argument 'debug'.
> Reading option '-c:v' ... matched as option 'c' (codec name) with argument
> 'h264_v4l2m2m'.
> Reading option '-i' ... matched as input url with argument 'test.h264'.
> Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel
> format) with argument 'nv12'.
> Reading option '/tmp/out.yuv' ... matched as output url.
> Finished splitting the commandline.
> Parsing a group of options: global .
> Applying option loglevel (set logging level) with argument debug.
> Successfully parsed a group of options.
> Parsing a group of options: input url test.h264.
> Applying option c:v (codec name) with argument h264_v4l2m2m.
> Successfully parsed a group of options.
> Opening an input file: test.h264.
> [NULL @ 0xb406b310] Opening 'test.h264' for reading
> [file @ 0xb406bb50] Setting default whitelist 'file,crypto,data'
> [h264 @ 0xb406b310] Format h264 probed with size=2048 and score=51
> [h264 @ 0xb406b310] Before avformat_find_stream_info() pos: 0 bytes
> read:32768 seeks:0 nb_streams:1
> [extract_extradata @ 0xb4073c90] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [extract_extradata @ 0xb4073c90] nal_unit_type: 7(SPS), nal_ref_idc: 3
> [extract_extradata @ 0xb4073c90] nal_unit_type: 8(PPS), nal_ref_idc: 3
> [extract_extradata @ 0xb4073c90] nal_unit_type: 5(IDR), nal_ref_idc: 3
> [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0xb406c6a0] nal_unit_type: 7(SPS), nal_ref_idc: 3
> [h264 @ 0xb406c6a0] nal_unit_type: 8(PPS), nal_ref_idc: 3
> [h264 @ 0xb406c6a0] nal_unit_type: 5(IDR), nal_ref_idc: 3
> [h264 @ 0xb406c6a0] Format yuv420p chosen by get_format().
> [h264 @ 0xb406c6a0] Reinit context to 640x368, pix_fmt: yuv420p
> [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> nal_ref_idc: 2
> [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> nal_ref_idc: 2
> [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> nal_ref_idc: 2
> [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> nal_ref_idc: 2
> [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> nal_ref_idc: 2
> [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> nal_ref_idc: 2
> [h264 @ 0xb406b310] max_analyze_duration 5000000 reached at 5039938
> microseconds st:0
> [h264 @ 0xb406b310] After avformat_find_stream_info() pos: 1772544 bytes
> read:1802240 seeks:0 frames:78
> Input #0, h264, from 'test.h264':
>   Duration: N/A, bitrate: N/A
>     Stream #0:0, 78, 1/1200000: Video: h264 (High), 1 reference frame,
> yuv420p(tv, bt709, progressive, left), 640x360 (640x368), 0/1, 15.08 fps,
> 15 tbr, 1200k tbn, 30 tbc
> Successfully opened the file.
> Parsing a group of options: output url /tmp/out.yuv.
> Applying option pix_fmt (set pixel format) with argument nv12.
> Successfully parsed a group of options.
> Opening an output file: /tmp/out.yuv.
> [file @ 0xb406fb40] Setting default whitelist 'file,crypto,data'
> Successfully opened the file.
> [h264_mp4toannexb @ 0xb406dd70] The input looks like it is Annex B already
> [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video2
> [h264_v4l2m2m @ 0xb42f0730] driver 'sde_rotator' on card 'sde_rotator' in
> splane mode
> [h264_v4l2m2m @ 0xb42f0730] v4l2 output format not supported
> [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video1
> [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video0
> [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video33
> [h264_v4l2m2m @ 0xb42f0730] driver 'msm_vidc_driver' on card
> 'msm_vidc_venc' in mplane mode
> [h264_v4l2m2m @ 0xb42f0730] v4l2 output format not supported
> [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video32
> [h264_v4l2m2m @ 0xb42f0730] driver 'msm_vidc_driver' on card
> 'msm_vidc_vdec' in mplane mode
> [h264_v4l2m2m @ 0xb42f0730] v4l2 output format not supported
> [h264_v4l2m2m @ 0xb42f0730] Could not find a valid device
> [h264_v4l2m2m @ 0xb42f0730] can't configure decoder
> Stream mapping:
>   Stream #0:0 -> #0:0 (h264 (h264_v4l2m2m) -> rawvideo (native))
> Error while opening decoder for input stream #0:0 : Operation not permitted
> [AVIOContext @ 0xb406fc90] Statistics: 0 seeks, 0 writeouts
> [AVIOContext @ 0xb4073d00] Statistics: 1802240 bytes read, 0 seeks
> 
> On Sun, May 24, 2020 at 3:43 PM Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
> 
> > Am So., 24. Mai 2020 um 08:11 Uhr schrieb Anjo John <anjo.john at vvdntech.in
> > >:
> >
> > > I have been testing ffmpeg's v4l2m2m codec support in qualcomm qcs605
> > SOC.
> > > Ffmpeg isn't able to find the output format NV12 in the v4l2 m2m device.
> > > Although the format NV12 is present and is listed with v4l-utils.
> > >
> > > FFMPEG version : tested 4.1.1 and 4.2.2
> > > Below is the command i used for testing
> > > *ffmpeg -y -c:v h264_v4l2m2m -i /opt/input.h264 -pix_fmt nv12 out.yuv*
> >
> > Please test current FFmpeg git head and provide the command line
> > you tested together with the complete, uncut console output.
> >
> > > _Disclaimer: _© 2020 VVDN Technologies Pvt. Ltd. This e-mail
> > > contains PRIVILEGED AND CONFIDENTIAL INFORMATION
> >
> > Please remove this from emails sent to a public mailing list.
> >
> > Carl Eugen
> > _______________________________________________
> > ffmpeg-user mailing list
> > ffmpeg-user at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> 

Hello, 

It looks that your device doesn't have a h264 decoder. 
Could you try: v4l2-ctl --list-formats-out -d /dev/video32 

It's also possible that VIDIOC_TRY_FMT ioctl fails during initialization.
Try: v4l2-compliance -d /dev/video32
and post the output.

-- 
Andriy


More information about the ffmpeg-user mailing list