Конвертировать RTMP в RTP в приложении iOS для отправки на Kurento Media Server - PullRequest
0 голосов
/ 07 декабря 2018

Работа над реализацией совместного использования экрана (Replay Kit) в приложении для iOS с использованием Kurento Media Server.Я получаю CMSampleBuffer, который следует протоколу RTMP.Но Куренто не поддерживает RTMP.Это действительно поддерживает RTP.Есть ли способ конвертировать из RTMP в RTP.Я читал о ffmpeg, но, похоже, его необходимо реализовать на стороне сервера, что требует значительных изменений в текущем потоке, как показано ниже [Браузер] -> RTMP -> [Node_Media_Server (srs)] -> RTMP ->

[FFmpeg] -> RtpEndpoint -> [Kurento] -> WebrtcEndpoint -> [Browser]

Будет ли этот поток достаточно эффективным?

Есть ли способ конвертировать его со стороны клиента, т.е. приложение для iOS?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Проблема была в том, что videoCapturer, VideoSource и видеодорожка снова и снова инициализировались в processSampleBuffer.Нам нужно создать VideoCapturer, VideoSource, MediaStream, VideoTrack только один раз в broadcastStartedWithSetupInfo.

Теперь я могу видеть видео пакеты на wireshark, но на стороне приемника появляется зеленый экран.Я думаю, что проблема заключается в конфигурации носителя, как показано ниже.

NBMMediaConfiguration *config = [[NBMMediaConfiguration alloc] init];
config.rendererType = NBMRendererTypeOpenGLES;
config.audioBandwidth = 0;
config.videoBandwidth = 0;
config.audioCodec = NBMAudioCodecOpus;
config.videoCodec = NBMVideoCodecVP8;

NBMVideoFormat format;
format.dimensions = (CMVideoDimensions){720, 480};
format.frameRate = 30;
format.pixelFormat = NBMPixelFormat420f;
config.receiverVideoFormat = format;

config.cameraPosition = NBMCameraPositionAny;

Пожалуйста, предложите, если это кажется правильным

0 голосов
/ 31 декабря 2018

Использование WebRTC для отправки снимка экрана устройств iOS с использованием ReplayKit Похоже, что ответ на этот вопрос может указать вам верное направление.Куренто поддерживает Webrtc.Вы можете взять пиксельный буфер из cmsamplebuffer и превратить его в RTCFrame, направить его в локальный видеоисточник и транслировать его с помощью webrtc

...