embedded-linux – v4l2视频捕获示例
这是我在这里发表的第一篇文章,希望能找到一些帮助
我正在使用三星ok6410主板和ov9650 cmos相机上的嵌入式Linux 我必须捕获视频并将其保存在SD卡上 我想使用一个捕获视频的循环缓冲区,当它已满时,允许新数据覆盖旧数据. 有一个标志,当提升时,捕获持续10秒然后停止.视频保存到SD卡应该包含提升标志前10秒和提升后10秒. 我在这里阅读了v4l2 API规范官方网站上的捕获示例 http://free-electrons.com/kerneldoc/latest/video4linux/API.html 但有一点我无法理解或不知道我是否理解正确 >在此示例中,有4个帧缓冲区,每个缓冲区可以容纳一个帧.这是正确的吗? 我知道我的帖子太长了,但我是新手,找不到任何可以帮助我编写代码的教程. 提前致谢 解决方法
您要链接的页面返回404,但如果您正在查看文档,则应查看此
https://linuxtv.org/downloads/v4l-dvb-apis/,特别是检查此
example,这是一个很好的起点,可以做您想要的.
由于我认为我猜到了你所指的代码,我试着回答你的问题 > 4帧缓冲区用于进行双缓冲,即您将帧出列并对其进行操作,而其他缓冲区则由视频输入填充>如果它与我链接的示例相同,那么它只是从输入中抓取70帧然后退出.> read_frame从缓冲区中取出一个帧,以便您可以对其进行操作,并在完成后将其重新添加到队列中.>要调整fps,您需要将帧出列并重新排队到驱动程序而不做任何事情.通过跳帧来修改fps.>一般来说,这取决于您的驱动程序和编码器.您需要找到驱动程序和编码器都支持的视频格式(例如V4L2_PIX_FMT_YUYV).如果它不存在,那么您需要编写自己的颜色空间转换例程.>当然可以!我经常这样做.>我不明白这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |