ingrese la descripción de la imagen aquí Estoy tratando de hacer que los videollamados funcionen con PJSIP. Estoy usando la aplicación Vialersiplib Demo para esto.

Aquí está el escenario que estoy intentando.

Llamando desde Phonea a phoneb. El audio está trabajando para llamadas entrantes y salientes. Pero el problema es que el video está trabajando en phoneb (Recoumside), pero no puedo obtener el video en Phonea (Callerside). Aquí está la configuración de mi cuenta para la videollamada.

Estoy usando CODEC H264 para videollamadas.

acc_cfg.vid_in_auto_show = PJ_TRUE;
acc_cfg.vid_out_auto_transmit = PJ_TRUE;

acc_cfg.vid_wnd_flags = PJMEDIA_VID_DEV_WND_BORDER | PJMEDIA_VID_DEV_WND_RESIZABLE;
acc_cfg.vid_cap_dev = PJMEDIA_VID_DEFAULT_CAPTURE_DEV;
acc_cfg.vid_rend_dev = PJMEDIA_VID_DEFAULT_RENDER_DEV;
acc_cfg.reg_retry_interval = 300;
acc_cfg.reg_first_retry_interval = 30;

Aquí es cómo estoy obteniendo la ventana de video usando CallID. Apareció una ventana negra. ¿O hay alguna forma de comprobar si la matriz CI.Media tiene un video válido?

- (void) displayWindowWithVoid: (UIView *) parent call:(VSLCall *)call {

int vid_idx;
pjsua_vid_win_id wid;

vid_idx = pjsua_call_get_vid_stream_idx((int)call.callId);
if (vid_idx >= 0) {
    pjsua_call_info ci;

    pjsua_call_get_info((int)call.callId, &ci);
    wid = ci.media[vid_idx].stream.vid.win_in;

    ci.setting.vid_cnt = 1;

    pjsua_vid_win_info wi;
    if (pjsua_vid_win_get_info(wid, &wi) == PJ_SUCCESS) {

        pjsua_vid_win_set_show(wid, true);
        UIView *view = (__bridge UIView *)wi.hwnd.info.ios.window;
         [parent addSubview:view];
    }
}   }

Si alguien puede decirme un cliente para videollamadas para que pueda probar el comportamiento. O es su problema en el lado de la aplicación o el lado del servidor. Cualquier ayuda o sugerencia será muy apreciada.

0
Ali Asad 1 jul. 2019 a las 14:14

1 respuesta

La mejor respuesta

Lo tengo trabajando. Publicar esta respuesta ya que esto podría ser útil para cualquier otra y puede ahorrar gran parte de su tiempo.

Debes estar cambiando tus formatos de video.

pjmedia_vid_codec_param param;
pjsua_vid_codec_get_param(&videoCodecInfo[i].codec_id, &param);
param.ignore_fmtp = PJ_TRUE;

param.enc_fmt.det.vid.size.w = 1280;
param.enc_fmt.det.vid.size.h = 720;
param.enc_fmt.det.vid.fps.num = 30;
param.enc_fmt.det.vid.fps.denum = 1;
param.dec_fmt.det.vid.size.w = 1280;
param.dec_fmt.det.vid.size.h = 720;

Podría ser lo que es exactamente el formato de su servidor, puede estar ayudándole. Si necesitas más ayuda. Por favor hagamelo saber

1
Ali Asad 24 jul. 2019 a las 08:08