когда я добавляю рендерер на мою удаленную видео дорожку, тогда событие onrenderFrame
запускается с RTCVideoFrame
, который содержит буфер RTCI420Buffer
.Когда я делаю то же самое на локальной видеодорожке, то нет проблем, это огонь с RTCCVPixelBuffer
.
- Как я могу преобразовать
RTCI420Buffer
в RTCCVPixelBuffer
? - Есть ли какой-нибудь способ заставить
onrenderFrame
удаленную видеодорожку срабатывать с RTCCVPixelBuffer
?
Вот как я добавляю рендерер на удаленную видеодорожку:
aTransceiver := nil;
for I := 0 to fpeerConnection.transceivers.count - 1 do begin
aTransceiver := tRTCRtpTransceiver.Wrap(fpeerConnection.transceivers.objectAtIndex(i));
if aTransceiver.mediaType <> RTCRtpMediaTypeVideo then aTransceiver := nil
else break;
end;
if aTransceiver = nil then raise Exception.Create('No remote video track founded');
fRemoteVideoTrack := TRTCVideoTrack.Wrap((aTransceiver.receiver.track as ILocalObject).GetObjectID);
fRemoteVideoTrack.retain;
fRemoteVideoTrackRenderer := TRemoteVideoTrackRenderer.create(self);
fRemoteVideoTrack.addRenderer(fRemoteVideoTrackRenderer.GetObjectID);