使用libjingle在Android上创建一个带有"自定义"Capturer的WebRTC VideoTrack

Man*_*nza 53 android libjingle webrtc

如何使用"自定义"视频捕获器来创建VideoTrack并提供帧?

创建VideoTrack的经典方法是:

1 - 获取VideoCapturer实例

VideoCapturer capturer = VideoCapturer.create(name);
Run Code Online (Sandbox Code Playgroud)

2 - 创建一个VideoSource

VideoSource videoSource = peerconnectionFactory.createVideoSource(capturer, videoConstraints);
Run Code Online (Sandbox Code Playgroud)

3 - 使用视频源创建VideoTrack

VideoTrack videoTrack = peerconnectionFactory.createVideoTrack("Label", videoSource);
Run Code Online (Sandbox Code Playgroud)

4 - 将轨道添加到MediaStream


我想知道是否有办法改变第一步.不使用本机Capturer实例,而是使用Android版本,并使用回调为VideoTrack提供框架:

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

有什么建议?

lor*_*373 2

最简单的方法(虽然有点“hacky”)是将源代码复制RTCVideoCapturer到项目中的本地类,然后使用该本地类。您现在可以编辑课程以满足您的需要。即使不复制文件而是实际构建自己的文件,复制现有捕获器的大部分内容也可能比重新发明轮子更好。