使用libjingle在Android上创build一个带有“自定义”捕获器的WebRTC VideoTrack

如何使用“自定义”video捕获器创buildVideoTrack并提供帧?

创buildVideoTrack的经典方法是:

1 – 获取一个VideoCapturer实例

VideoCapturer capturer = VideoCapturer.create(name); 

2 – 创build一个VideoSource

 VideoSource videoSource = peerconnectionFactory.createVideoSource(capturer, videoConstraints); 

3 – 使用video源创build一个VideoTrack

 VideoTrack videoTrack = peerconnectionFactory.createVideoTrack("Label", videoSource); 

4 – 将音轨添加到MediaStream


我想知道是否有办法改变第一步 。 而不是使用本机Capturer实例,使用Android之一,并使用callback将帧提供给VideoTrack:

 public void onPreviewFrame(byte[] data, Camera camera) { // provide the frames to the VideoTrack } 

有什么build议么?

最简单的方法(尽pipe有点“黑客”)做到这一点是将RTCVideoCapturer的源代码复制到本地类,并使用该本地类。 您现在可以编辑课程以适应您的需求。 即使不复制文件,但实际构build自己的文件,最好复制现有捕捉器的大部分,而不是重新创build轮子。