使用C ++创建一个带有“自定义”Capturer的WebRTC VideoTrack

时间:2017-10-11 08:53:40

标签: c++ video-streaming webrtc

有没有办法(或黑客)让我使用“自定义”视频捕获器来创建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流......)并且非常灵活。

对此有何建议?

这个问题是对Create a WebRTC VideoTrack with a “custom” Capturer on Android with libjingle

的C ++参考

1 个答案:

答案 0 :(得分:1)

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