这是我在这里的第一篇文章,我希望我能找到一些帮助
我正在三星 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 吗?我找到了一些可以播放这种格式视频的软件。
是否可以使用循环缓冲区而不是线性缓冲区来保存捕获的视频?
我知道我的帖子太长了,但我是新手,找不到任何可以帮助我编写代码的教程。
提前致谢