Подтвердить что ты не робот

Создайте WebRTC VideoTrack с помощью "настраиваемого" Capturer на Android с libjingle

Как использовать "пользовательский" захватчик видео для создания видеодрайвера и предоставления фреймов?

Классический подход к созданию 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


Мне было интересно, есть ли способ изменить шаг один. Вместо использования экземпляра native Capturer используйте Android one и предоставите кадры VideoTrack с помощью обратного вызова:

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

Любые предложения?

4b9b3361

Ответ 1

Самый простой способ (хотя и немного "взломанный" ) сделать это - скопировать источник RTCVideoCapturer в локальный класс с вашим проектом и просто использовать этот локальный класс. Теперь вы можете редактировать класс в соответствии с вашими потребностями. Даже если вы не копируете файл, а создаете его самостоятельно, вероятно, лучше скопировать большие части существующего захватчика, чем повторно изобрести колесо.