Как уменьшить задержку в решении для конференц-связи Live Smooth Streaming?
Я использую Expression Encoder SDK для кодирования живой записи своей веб-камеры, публикую ее на веб-сервере, поддерживающем IIS 7.5 и Media Services 4, и просматриваю ее с помощью SmoothStreamingClient.
Однако, поскольку я стремлюсь к решению для конференц-связи в режиме реального времени, мне необходимо резко сократить задержку в 20 секунд между локальным предварительным просмотром и удаленным воспроизведением.
В некоторых местах я читал, что можно настроить Live Smooth Streaming для получения задержки в 2 секунды, однако я не нашел ни одного учебного пособия, объясняющего, как настроить такое решение, как по кодированию, предоставлению и потребляющие стороны.
Это код, который я использую для кодирования захваченного видео:
// 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();
Есть ли что-то, что я могу добавить к этому коду, что приведет к снижению задержки? Если нет, то где я могу настроить так называемую "поддержку с низкой задержкой", которую должна обеспечивать Smooth Streaming?
Заранее спасибо!
1 ответ
Я считаю, что IIS поддерживает только изменения размера сегмента для мобильных потоков. Однако, если вы уменьшите эти размеры сегментов, а затем каким-то образом имитируете мобильное устройство, я уверен, что задержка уменьшится.
Вы также можете попробовать опустить сегмент сегмента на вкладке "Дополнительно" в разделе "Точные точки публикации".
В общем, не похоже, что эта функция поддерживается IIS. Я бы посоветовал искать другое решение для конференц-связи, так как вы никогда не получите задержку менее чем на ~2 секунды при потоковой передаче HTTP в ее текущем состоянии.