USB摄像头录制视频

本文记录了在Android板上使用USB摄像头进行720P+、25FPS+视频录制的开发过程。面对摄像头帧率限制和设备性能约束,作者尝试了多种方案,最终通过V4L2接口获取MJPEG数据,利用libturbojpeg库解码到YUV420P,实现了30FPS的录制。尽管存在延迟问题,但通过YUV422到YUV420P的转换优化,效率得到了显著提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做Android板上的USB摄像头录制视频的调试工作,在此记录一下开发历程和心得。

项目要求用USB摄像头录制视频,要求视频必须是720P+,25FPS+。

USB摄像头用的是海康威视摄像头,YUV只有10FPS,mjpeg可以达到30FPS。所以只能采用mjpeg方式。

开始找了网上开源的UVCCamera项目,先上连接 https://github.com/saki4510t/UVCCamera  ,结果发现录制的视频帧率都达不到要求。

后面只能使用V4L2取摄像头的原始数据。参考这篇文章 安卓系统采用v4l2接口打开YUYV和MJPEG摄像头,支持热插拔。_alterli的博客-优快云博客

取到的摄像头原始数据是一张张JPEG图片,将JPG图片编码为MP4就简单很多。先将JPEG解码为BMP数据,然后用Android自带编码器MediaMuxer,选择数据源格式为COLOR_Format32bitBGRA8888。但是有个问题,获取源数据,然后解码bmp,再然后编码到MP4,这个效率就很低了。

一方面受到摄像头制约(YUV只有10FPS),另一方面受到安卓板子性能制约,如何录制高帧率的MP4视频,真的是很

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值