在Android上使用libjingle创建具有“自定义”捕获器的WebRTC VideoTrack

58
如何使用“自定义”视频捕获器创建VideoTrack并提供帧?
创建VideoTrack的经典方法是: 1 - 获取VideoCapturer实例
VideoCapturer capturer = VideoCapturer.create(name);

2 - 创建VideoSource

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

3 - 使用视频源创建VideoTrack

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

4-将轨道添加到MediaStream中


我想知道是否有一种方法可以更改第一步。而不是使用本地的Capturer实例,使用Android实例,并使用回调向VideoTrack提供帧:

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

有什么建议吗?


不知道你想要实现什么。实际上它并不是本地捕获器。它使用Android相机类来捕获,并将帧传递给本地库。也许你正在使用的代码在jar包中。 - Biraj Zalavadia
在jar文件中有一个名为VideoCaptureAndroid.java的类,它捕获帧并将其传递给本地库。 - Biraj Zalavadia
是的,你说得对。但如果你使用的是源代码而不是JAR文件,你可以随意更改它。 - Biraj Zalavadia
2
主要我想能够修改、编辑或手动添加视频轨道的帧,并最终为外部视频源(例如网络摄像头)提供帧。 - Manza
1
@Manza,你找到解决方法了吗? - Andro
显示剩余5条评论
1个回答

2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接