【问题标题】:Create a WebRTC VideoTrack with a "custom" Capturer on Android with libjingle使用 libjingle 在 Android 上使用“自定义”捕获器创建 WebRTC VideoTrack
【发布时间】:2014-07-02 11:52:55
【问题描述】:

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

创建 VideoTrack 的经典方法是:

1 - 获取 VideoCapturer 实例

VideoCapturer capturer = VideoCapturer.create(name);

2 - 创建视频源

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 camera 类进行捕获并将帧传递给本机 lib。可能是您使用的代码在 jar 内。
  • jar 文件中有一个 VideoCaptureAndroid.java 类,从该类中捕获帧并将其传递到本机库。
  • @BirajZalavadia,是的,我看到了,但我一记起所有“重要”方法都是私有的,所以看起来必须实现它
  • 主要是希望能够修改、编辑或手动添加帧到视频轨道,并最终为外部视频源(例如网络摄像头)提供帧
  • @Manza 你找到办法了吗?

标签: android webrtc libjingle


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-20
    • 2017-12-22
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多