在rtc互动直播的项目中,必然有视频互动的功能,在pc端,那就得开启电脑得摄像头,采集摄像头数据,然后通过网络发送到对端,webrtc关于视频采集的模块在modules/video_capture. 首先来看看video_capture.h文件,class VideoCaptureModule封装了设备枚举,开始采集,结束采集、打开摄像头,采集数据,编码等,webrtc都做好了,我们直接直接调用VideoCaptureModule即可完成电脑摄像头视频采集的相关操作。
注意该类的两个方法
(1)视频数据的回调
virtual void RegisterCaptureDataCallback(
rtc::VideoSinkInterface* dataCallback) = 0;
RegisterCaptureDataCallback的参数是回调,返回摄像头采集的数据,可以看看它的声明:
template
class VideoSinkInterface {
public:
virtual ~VideoSinkInterface() = default;
virtual void OnFrame(const VideoFrameT& frame) = 0;
// Should be called by the source when it discards the frame due to rate
// limiting.
virtual void OnDisc