webrtc视频采集
视频采集相关类图
-
DeviceInfo接口提供了设备枚举相关功能。
-
NumberOfDevices枚举设备个数。
-
GetDeviceName获取某个设备名称。
-
GetCapability枚举某个设备所支持的所有能力(VideoCaptureCapability: 分辨率,最大帧率,颜色类型)
-
VideoCaptureModule视频采集模块的基类:
-
Start/StopCapture用来开始/结束视频采集;
-
CaptureStarted用来判断当前capture运行状态;
-
Register/DeCaptureDataCallback用来注册/注销数据回调模块;
-
Set/GetApplyRotation用来设置视频旋转角度。
VideoCaptureDS和VideoCaptureModuleV4L2是VideoCaptureImpl类和VideoCaptureModule子类:
声明静态Ctreate方法,用于创建平台相关的VideoCaptureImpl子类vcm_,在Windows平台上为VideoCaptureDS(modules\video_capture\linux\device_info_ds.cc),在Linux平台上实现的子类是VideoCaptureV4L2(modules\video_capture\linux\device_info_linux.cc)。
调用vcm_实际上是调用VideoCaptureDS(windows)或VideoCaptureModuleV4L2(linux)。
视频采集相关用例图
-
1.Conductor类调用CapturerTrackSource的静态方法Ceate.
-
调CapturerTrackSource::CreateDeviceInfo–>VideoCaptureImpl::CreateDeviceInfo创建info(DeviceInfoDS)对象
-
windows实现是在video_capture_factory_windows.cc
-
linux实现是在device_info_linux.cc
-
3.调用info(DeviceInfoDS)对象对象的NumberOfDevices获取设备数量。
-
4.调用VcmCapturer的静态方法Create创建VcmCapturer对象capturer.
1)实例化VcmCapturer对象vcm_capturer。
2)调用vcm_capturer的Init.
3)Init函数首先调用CreateDeviceInfo创寻device_info(DeviceInfoDS)对象.
4)device_info调用GetDeviceName获取设备名。
5)调用VideoCaptureFactory的静态方法Create创建VideoCaptureDS对象vcm_
6)调用RegisterCaptureDataCallback设置回调。
7)调用device_info的GetCapability获取采集设备的VideoCaptureCapability参数并且设备视频宽、高、最大帧率、图片类型。
8)调用vcm_的StartCapture方法开始采集。