Reh*_*b11 4 mpeg yuv codec embedded-linux v4l2
这是我在这里发表的第一篇文章,希望能找到一些帮助
我正在使用三星ok6410主板和ov9650 cmos相机上的嵌入式Linux
我必须捕获视频并将其保存在SD卡上
我想使用一个捕获视频的循环缓冲区,当它已满时,允许新数据覆盖旧数据.
有一个标志,当提升时,捕获持续10秒然后停止.视频保存到SD卡应该包含提升标志前10秒和提升后10秒.
我在这里阅读了v4l2 API规范官方网站上的捕获示例
http://free-electrons.com/kerneldoc/latest/video4linux/API.html
但有一点我无法理解或不知道我是否理解正确
在这个例子中,有4个帧缓冲区,每个缓冲区可以容纳一个帧.这是正确的吗?
有一个变量(frame_count)被初始化为70,这是否意味着通过完成这个程序,我将有一个包含70帧的视频?
fns(主循环)和(读框)有什么作用?我知道他们应该做什么,但无法理解书面代码,循环......等等
如何在此代码中调整fps?或者我应该在相机寄存器中写入值?
捕获视频后,我将有一个填充原始数据的缓冲区,我想压缩它或使用编解码器将其保存为MPEG,我可以更改要压缩的像素格式(例如MPEG)而不是YUYV吗?或者我该怎么做才能压缩视频?编解码器还是什么?
我可以将缓冲区中的这些原始数据写入文件.yuv吗?我找到了一些可以播放这种格式视频的软件.
是否可以使用循环缓冲区而不是线性缓冲区来保存捕获的视频?
我知道我的帖子太长了,但我是新手,找不到任何可以帮助我编写代码的教程.
提前致谢
您要链接的页面返回404,但如果您正在查看文档,则应查看此https://linuxtv.org/downloads/v4l-dvb-apis/,特别检查此示例,这是一个很好的起点做你想做的事.
由于我认为我猜到了你所指的代码,我试着回答你的问题
| 归档时间: |
|
| 查看次数: |
11466 次 |
| 最近记录: |