webrtc封装sdk(八)使用webrtc desktop_capture截屏
发布网友
发布时间:2023-02-10 07:45
我来回答
共1个回答
热心网友
时间:2024-03-04 17:53
webrtc的moles中有一个模块desktop_capture,该模块负责截屏,目前只支持windows和mac平台,android,ios没有实现。
desktop_capture中有两种截屏方式,第一种是截单个窗口,叫做WindowCapturer,
第二种是截整个屏幕,叫做ScreenCapturer。
window_capture/screen_capture都继承于基类DesktopCapturer:
WindowCapture主要增加了获取窗口列表,和设置截屏窗口id的接口:
ScreenCapture主要增加了获取屏幕列表,和设置截屏屏幕id的接口:
接口都比较简单,很容易使用,大概的流程如下:
截屏后得到的数据格式是rgb,需要使用libyuv将数据从rgb转换为yuv420,然后传入编码器和进行本地渲染。
转换时注意填写正确的原始数据类型,windows下格式为webrtc::kARGB
通过VideoSendStream的input接口可以把采集到的图像投递进去,编码发送。