Android基于v4L2的虚拟摄像头方案

admin 2024年9月17日16:39:34评论15 views字数 1350阅读4分30秒阅读模式
Android基于v4L2的虚拟摄像头方案
感兴趣的可以关注公众号、视频号、添加微信
Android基于v4L2的虚拟摄像头方案Android基于v4L2的虚拟摄像头方案Android基于v4L2的虚拟摄像头方案
基于v4L2的虚拟摄像头方案
在V4L2框架中,结合media-framework框架的思路,将camera sensor,MIPI DPHY,CSI HOST,VICAP,ISP等模块虚拟成video或者v4l-subdev的节点,以pipeline的链路形式链接在一起,形成数据流,因此使用v4l2-ctl的时候,如果是需要对数据输出的如VICAP或者ISP执行的话,则需要对应相应的video节点,如果是想控制sensor端或者获取sensor驱动的信息的话,则需要对sensor对应的v4l-subdev节点进行执行。
查看v4L2虚拟摄像头支持的输入和输出
v4l2-ctl -D -d /dev/video20
读取subdev帧率信息
v4l2-ctl -d /dev/v4l-subdev2 --get-subdev-fps
获取分辨率格式等信息
v4l2-ctl -d /dev/v4l-subdev2 --get-subdev-fmt
枚举支持的格式
v4l2-ctl -d /dev/v4l-subdev2 --list-subdev-mbus-codes
查看视频方法
ffplay -f rawvideo -video_size 640x480 -pix_fmt yuv420p cif_dvp.yuv
枚举所有的ctrls
v4l2-ctl -d /dev/v4l-subdev10 --list-ctrls
设置驱动格式
v4l2-ctl -d /dev/v4l-subdev2 --set-subdev-fmt=width=1920,height=10>
设置曝光增益
v4l2-ctl -d /dev/v4l-subdev2 --set-ctrl 'exposure=1216,analogue_gain=10'
设置马达
v4l2-ctl -d /dev/v4l-subdev3 --set-ctrl 'focus_absolute=64'
查询timing(针对HDMI转MIPI类型)
v4l2-ctl -d /dev/v4l-subdev0 --query-dv-timingsv4l2-ctl -d /dev/v4l-subdev1 --query-dv-timingsv4l2-ctl -d /dev/v4l-subdev2 --query-dv-timingsv4l2-ctl -d /dev/v4l-subdev3 --query-dv-timingsv4l2-ctl -d /dev/v4l-subdev4 --query-dv-timingsv4l2-ctl -d /dev/v4l-subdev5 --query-dv-timings
虚拟摄像头
创建虚拟设备video10 video11
sudo modprobe v4l2loopback video_nr=10,11
使用ffmpeg 将video0视频流copy到新建的虚拟设备上
ffmpeg -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -vcodec copy -f v4l2 /dev/video10 -vcodec copy -f v4l2 /dev/video11
可以同时使用video10和video11

原文始发于微信公众号(哆啦安全):Android基于v4L2的虚拟摄像头方案

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月17日16:39:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Android基于v4L2的虚拟摄像头方案http://cn-sec.com/archives/3172238.html

发表评论

匿名网友 填写信息