有没有办法(或黑客)让我使用“自定义”视频捕获器来创建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 ++参考答案 0 :(得分:1)
我终于找到了制作自己的原生C ++视频捕捉的方法。基本上你必须覆盖webrtc :: I420BufferInterface和cricket :: VideoCapturer中的一些函数。 如果有人想要任何进一步的解释,请随时询问。