【问题标题】:Create a WebRTC VideoTrack with a “custom” Capturer using C++使用 C++ 创建带有“自定义”捕获器的 WebRTC VideoTrack
【发布时间】:2017-10-11 08:53:40
【问题描述】:

有没有办法(或破解)让我使用“自定义”视频捕获器来创建 VideoTrack 并为其提供帧?

构建 VideoTrack 的经典方法是:

获取 VideoCapturer 实例:

std::unique_ptr<cricket::VideoCapturer> capturer;

使用提供的捕获器创建一个 VideoSource :

 rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> videoSource = peer_connection_factory_->CreateVideoSource(std::move(capturer), NULL);

使用 VideoSource 创建一个 VideoTrack :

rtc::scoped_refptr<webrtc::VideoTrackInterface> video_track;

video_track = peer_connection_factory_->CreateVideoTrack(kVideoLabel, videoSource);

我想知道是否有一种方法可以覆盖第一步,而不是使用本机,使用自定义捕获器,以便我可以使用回调将帧提供给视频轨道。这将让我使用任何视频源(文件、yuv 流......)并且非常灵活。

对这个有什么建议吗?

这个问题是一个 C++ 参考:Create a WebRTC VideoTrack with a “custom” Capturer on Android with libjingle

【问题讨论】:

  • 另一个 Java 参考:Converting Motion JPEG to WebRTC
  • 有相关问题完全OK。很高兴将它们明确列出。
  • 啊,好吧,我的错,我不明白,我马上编辑。

标签: c++ video-streaming webrtc


【解决方案1】:

我终于找到了一种方法来制作我自己的原生 C++ Video Capture。基本上你必须重写 webrtc::I420BufferInterface 和 cricket::VideoCapturer 的一些函数。 如果有人想要任何进一步的解释,请随时询问。

【讨论】:

  • 您能否进一步解释如何使其发挥作用?我不限于实现 C++ 捕获器,Java 也可以。
  • 嗨哈基姆,你能分享一个例子吗?我正在尝试使用 RTSP 流来创建 VideoCapture 源。有一个名为 JavaCV 的库可以为我提供 RTSP 流到片段。现在我需要找到一种将帧/片段集成到 WebRTC 中的方法
  • 嗨 Hakeem,我也在尝试在 C++ 中实现相同的目标。能否请您指导我查看一些文档或示例?
  • 您好,您能提供更多详细信息吗?谢谢!
猜你喜欢
  • 2014-07-02
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
相关资源
最近更新 更多