云贵3314 发表于 2024-2-19 17:23:54

v4l2虚拟驱动,有朋友写过吗?

始YUV420NV12格式的:
gst-launch-1.0 v4l2src device=/dev/my_device   io-mode=4 ! video/x-raw, format=NV12, width=3840, height=2160, framerate=60/1 ! omxh265enc qp-mode=auto gop-mode=basic gop-length=60 b-frames=0 target-bitrate=60000 num-slices=8 control-rate=constant prefetch-buffer=true low-bandwidth=false filler-data=true cpb-size=1000 initial-delay=500 ! queue ! mpegtsmux alignment=7 name=mux ! filesink location="/media/usb/test.ts"

最近做测试,想写一个虚拟的v4l2驱动节点,只支持一种原始格式就行,NV12 ,在ZYNQ平台上,第一次写,写了好几版都不对,有朋友写过吗?可以指导下?

云贵3314 发表于 2024-2-19 17:24:14

VIDIOC_TRY_FMT .needsuport thiscmd.done.
start my_ioctl    .
VIDIOC_TRY_FMT .needsuport thiscmd.start.
VIDIOC_TRY_FMT .needsuport thiscmd.done.
start my_ioctl    .
VIDIOC_S_FMT driverstart .
VIDIOC_S_FMT driver done .
start my_ioctl    .
VIDIOC_S_FMT driverstart .
VIDIOC_S_FMT driver done .
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/de my_release .
v/my_device' does not support interleaved interlacing
Additional debug info:
../../../git/sys/v4l2/gstv4l2object.c(3908): gst_v4l2_object_set_format_full (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Device wants interleaved interlacing
Execution ended after 0:00:00.114908122
Setting pipeline to PAUSED ...

Himem 发表于 2024-2-19 17:33:24

v4l2loopback

云贵3314 发表于 2024-2-19 17:40:21

Himem 发表于 2024-2-19 17:33
v4l2loopback
(引用自3楼)

多谢,大佬,我去研读下!

云贵3314 发表于 2024-2-19 18:15:08

Himem 发表于 2024-2-19 17:33
v4l2loopback
(引用自3楼)

大佬,还有简单点的吗?第一次写,看这个有点复杂

cuiliang1984 发表于 2024-2-19 19:19:32

gstreamer自带的videotestsrc插件不可以吗

云贵3314 发表于 2024-2-19 22:00:13

cuiliang1984 发表于 2024-2-19 19:19
gstreamer自带的videotestsrc插件不可以吗
(引用自6楼)

不行呢,写这个驱动是最后要和FPGA对接的,,,用测试插件就没有意义了

Himem 发表于 2024-2-19 23:55:50

本帖最后由 Himem 于 2024-2-19 23:59 编辑

云贵3314 发表于 2024-2-19 18:15
大佬,还有简单点的吗?第一次写,看这个有点复杂
(引用自5楼)

这个还不够简单吗,只需配置都不用开发

modprobe v4l2loopback后 ffmpeg就能直接推给这个虚拟v4l2

云贵3314 发表于 2024-2-20 18:35:41

Himem 发表于 2024-2-19 23:55
这个还不够简单吗,只需配置都不用开发

modprobe v4l2loopback后 ffmpeg就能直接推给这个虚拟v4l2 ...
(引用自8楼)

可以帮瞅一眼代码吗?我写一个就假数据驱动,就实现必须的命令VIDIOC_REQBUFS VIDIOC_QUERYBUF等,,,NV12格式的,,用v4l2-ctl --device /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap --stream-to=./output_1920.yuv --stream-count=1走到 VIDIOC_QUERYBUF 就不执行了
页: [1]
查看完整版本: v4l2虚拟驱动,有朋友写过吗?