我想知道是否可以使用“opencv”在v4l2设备上进行写操作。
我会拍照,使用opencv的功能进行一些小的更改,然后将其发送到v4l2设备上。
我在网上搜索,但是有很多关于如何从V4L2设备读取信息的示例,但是我发现关于在v4l2上编写内容一无所获。
有人能帮我吗?
最佳答案
这个问题已经有8个月了,但是如果您仍然需要答案(我想您的操作系统是Linux):
v4l2 loopback
模块1.1。加载并配置
linux: i.e. modprobe.conf: options v4l2loopback video_nr=22,23
C++/OpenCV
代码: gist
2.1。使用ioctl()调用来设置设备
2.2。将原始RGB数据写入此设备(即
/dev/video23
)2.3。将其用作常规v4l2设备(即网络摄像头或
vlc v4l2:///dev/video23
)更多:您可以将
ffmpeg
与v4l2 loopback
结合使用:ffmpeg -f x11grab -r 12 -s 1920x1080 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 -vf 'scale=800:600' /dev/video22
关于V4l2上的OpenCV输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34416189/