Video Capture
概述
视频采集是音视频处理流程的第一步,负责从视频设备(摄像头)获取原始视频帧数据。
主要内容
https://ixriver.com/wp-json/wp/v2
1. 视频采集
1.1 采集设备与接口
摄像头类型
- USB摄像头:最常见的PC端摄像头,通过USB接口连接,支持即插即用
- MIPI摄像头:移动设备常用接口,MIPI CSI-2标准,低功耗、高速率
- HDMI采集卡:用于采集HDMI信号,常用于游戏直播、专业录制
- 网络摄像头(IP Camera):通过网络协议(RTSP、ONVIF)采集视频流
采集参数
- 分辨率:常见分辨率包括720p、1080p、4K等,影响采集数据量
- 帧率:常见帧率有15fps、24fps、30fps、60fps,影响流畅度
- 色彩空间:采集时通常使用RGB或YUV格式
采集API
- Linux: V4L2 (Video4Linux2) – 标准视频采集接口
- macOS/iOS: AVFoundation – Apple平台的音视频框架
- Windows: DirectShow/Media Foundation – Windows平台的媒体框架
- Web: MediaDevices API – 浏览器WebRTC标准接口
- Android: Camera2 API – Android 5.0+的相机接口
1.2 色彩空间与格式
RGB色彩空间
- RGB是加色模型,通过红(Red)、绿(Green)、蓝(Blue)三原色组合表示颜色
- 每个像素用3个字节表示(RGB24),或4个字节(RGBA32,包含透明度)
- 主要用于显示和图像处理
YUV色彩空间
- YUV是亮度-色度模型,Y表示亮度(Luminance),U和V表示色度(Chrominance)
- 人眼对亮度敏感,对色度不敏感,因此可以降低色度采样率以节省带宽
- 主要用于视频编码和传输
YUV格式类型
- NV12/NV21:半平面格式,Y平面连续,UV交错存储
- NV12:U在前,V在后(Windows常用)
- NV21:V在前,U在后(Android常用)
- I420/YV12:平面格式,Y、U、V三个平面分离存储
- I420:U在前,V在后
- YV12:V在前,U在后
- YUY2/UYVY:打包格式,Y、U、V交错存储在同一平面
YUV采样方式
- 4:4:4:无下采样,Y、U、V采样率相同,质量最高,数据量最大
- 4:2:2:水平方向U、V采样率减半,垂直方向不变,质量较高
- 4:2:0:水平和垂直方向U、V采样率都减半,最常用,数据量最小
RGB到YUV转换
Y = 0.299*R + 0.587*G + 0.114*B
U = -0.169*R - 0.331*G + 0.500*B + 128
V = 0.500*R - 0.419*G - 0.081*B + 128
1.3 采集参数优化
曝光控制
- 自动曝光(AE):根据场景亮度自动调整曝光时间
- 手动曝光:固定曝光参数,适用于特殊场景
- 曝光补偿:在自动曝光基础上进行微调
白平衡
- 自动白平衡(AWB):根据环境光自动调整色温
- 手动白平衡:预设色温值(如日光、白炽灯、荧光灯)
对焦
- 自动对焦(AF):自动调整焦距使画面清晰
- 连续对焦:实时跟踪移动物体
- 手动对焦:固定焦距
帧率自适应
- 根据网络状况或性能动态调整帧率
- 低带宽时降低帧率,保证流畅度
- 高负载时降低帧率,保证稳定性
分辨率自适应
- 根据设备性能或网络状况动态调整分辨率
- 移动设备可能从1080p降至720p以节省资源
