Estoy utilizando Expression Encoder SDK para codificar una grabación en vivo de mi cámara web, publicarla en un servidor web compatible con IIS 7.5 y Media Services 4 y verla con el SmoothStreamingClient.¿Cómo puedo reducir la latencia en una solución de conferencia Live Smooth Streaming?
Sin embargo, como estoy buscando una solución de conferencia en tiempo real, necesito reducir drásticamente mi latencia de 20 segundos entre la vista previa local y la reproducción remota.
He leído en algunos lugares que es posible configurar Live Smooth Streaming para obtener una latencia de 2 segundos, sin embargo, no he encontrado ningún tutorial que explique cómo configurar tal solución, tanto en la codificación, el lado proveedor y el consumidor.
Este es el código que estoy usando para codificar el vídeo capturado:
// Aquires audio and video devices
EncoderDevice video = EncoderDevices.FindDevices(EncoderDeviceType.Video).Count > 0 ? EncoderDevices.FindDevices(EncoderDeviceType.Video)[0] : null;
EncoderDevice audio = EncoderDevices.FindDevices(EncoderDeviceType.Audio).Count > 0 ? EncoderDevices.FindDevices(EncoderDeviceType.Audio)[0] : null;
// Create a new device source. We use the first audio and video devices on the system
job = new LiveJob();
LiveDeviceSource deviceSource = job.AddDeviceSource(video, audio);
// sets preview window to winform panel hosted by xaml window
deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(prevWindow, prevWindow.GetHandle));
// Make this source the active one
job.ActivateSource(deviceSource);
job.ApplyPreset(LivePresets.VC1IISSmoothStreamingLowBandwidthStandard);
PushBroadcastPublishFormat format = new PushBroadcastPublishFormat();
format.PublishingPoint = new Uri(path);
// Adds the publishing format to the job
job.PublishFormats.Add(format);
job.StartEncoding();
¿Hay algo que puedo añadir a este código que producirá una menor latencia? Si no, ¿dónde puedo configurar el llamado "soporte de baja latencia" que se supone que proporciona Smooth Streaming?
¡Gracias de antemano!