Page 1 of 1

ffmpeg 使用v4l2提示Not a video capture device. 但是v4l2-ctl可以工作这是为什么

Posted: 2025-02-22 16:56
by xjxkeep@gmail.com
如题 我使用的是pico minib 的板子 rv1103的芯片
ffmpeg是用buildroot装的 从编译日志上看也是启用了--enable-libv4l2的
这是使用v4l2-ctl采集视频
[
[root@luckfox root]# v4l2-ctl --device=/dev/video15 --set-fmt-video=width=640,he
ight=480,pixelformat=NV12 --stream-mmap --stream-to=video50.yuv --stream-count=6
0
[ 59.379634] rkisp-vir0: rkisp_bypasspath_4x4sampling from rkisp_bypasspath, force to 144x81 NV12
<<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<< 25.00 fps
<<<<<<<<[ 62.311786] rkisp-vir0: rkisp_stream_stop id:9 timeout

使用ffmpeg报错[video4linux2,v4l2 @ 0x4a32d0] Not a video capture device.
/dev/video15: No such device
我是用


[root@luckfox root]# ffmpeg -f v4l2 -input_format nv12 -video_size 640x480 -i /d
ev/video15 -frames:v 60 -pix_fmt nv12 video50.yuv -loglevel debug
ffmpeg version 4.4.4 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 8.3.0 (crosstool-NG 1.24.0)
configuration: --enable-cross-compile --cross-prefix=/home/xjx/workspace/endless/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/bin/arm-rockchip830-linux-uclibcgnueabihf- --sysroot=/home/xjx/workspace/endless/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot --host-cc=/usr/bin/gcc --arch=arm --target-os=linux --disable-stripping --pkg-config=/home/xjx/workspace/endless/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/bin/pkg-config --disable-static --enable-shared --prefix=/usr --enable-avfilter --disable-version3 --enable-logging --enable-optimizations --disable-extra-warnings --enable-avdevice --enable-avcodec --enable-avformat --enable-network --disable-gray --enable-swscale-alpha --disable-small --enable-dct --enable-fft --enable-mdct --enable-rdft --disable-crystalhd --disable-dxva2 --enable-runtime-cpudetect --disable-hardcoded-tables --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-hwaccels --disable-cuda --disable-cuvid --disable-nvenc --disable-avisynth --disable-frei0r --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libdc1394 --disable-libgsm --disable-libilbc --disable-libvo-amrwbenc --disable-symver --disable-doc --enable-gpl --disable-nonfree --enable-ffmpeg --disable-ffplay --enable-libv4l2 --disable-avresample --disable-ffprobe --disable-libxcb --disable-postproc --disable-swscale --enable-indevs --disable-alsa --enable-outdevs --enable-pthreads --enable-zlib --disable-bzlib --disable-libfdk-aac --disable-libcdio --enable-gnutls --disable-openssl --enable-libdrm --disable-libopenh264 --disable-vaapi --disable-vdpau --disable-mmal --disable-omx --disable-omx-rpi --disable-libopencv --disable-libopus --disable-libvpx --disable-libass --disable-libbluray --disable-libmfx --disable-librtmp --disable-libmp3lame --disable-libmodplug --disable-libspeex --disable-libtheora --enable-iconv --disable-libfreetype --disable-fontconfig --disable-libopenjpeg --enable-libx264 --disable-libx265 --disable-libdav1d --disable-x86asm --disable-mmx --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-avx --disable-avx2 --enable-armv6 --enable-vfp --enable-neon --disable-altivec --extra-libs=-latomic --enable-pic --cpu=cortex-a7
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswresample 3. 9.100 / 3. 9.100
Splitting the commandline.
Reading option '-f' ... matched as option 'f' (force format) with argument 'v4l2'.
Reading option '-input_format' ... matched as AVOption 'input_format' with argument 'nv12'.
Reading option '-video_size' ... matched as AVOption 'video_size' with argument '640x480'.
Reading option '-i' ... matched as input url with argument '/dev/video15'.
Reading option '-frames:v' ... matched as option 'frames' (set the number of frames to output) with argument '60'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'nv12'.
Reading option 'video50.yuv' ... matched as output url.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
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 /dev/video15.
Applying option f (force format) with argument v4l2.
Successfully parsed a group of options.
Opening an input file: /dev/video15.
[video4linux2,v4l2 @ 0x5232d0] fd:3 capabilities:84201000
[video4linux2,v4l2 @ 0x5232d0] Not a video capture device.
/dev/video15: No such device

Re: ffmpeg 使用v4l2提示Not a video capture device. 但是v4l2-ctl可以工作这是为什么

Posted: 2025-02-24 2:47
by Crocodile
您好,ISP注册出的/dev/videox 节点都是Video Capture Multiplanar设备不是Video Capture 设备,目前没有找到使用 ffmpeg 命令直接获取 Video Capture Multiplanar 设备的办法