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以节省资源
