视频采集

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

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Index