7

我正在使用 Expression Encoder SDK 对我的网络摄像头的实时记录进行编码,将其发布到支持 IIS 7.5 和媒体服务 4 的 Web 服务器,并使用 SmoothStreamingClient 查看它。

但是,由于我的目标是实时会议解决方案,因此我需要大幅减少本地预览和远程回放之间的 20 秒延迟。

我在某些地方读到可以配置实时平滑流式传输以获得 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 应该提供的所谓的“低延迟支持”?

提前致谢!

4

1 回答 1

1

我相信 IIS 仅支持移动流的段大小更改。但是,如果您降低这些段大小,然后以某种方式模仿移动设备,我相信延迟会下降。

您还可以尝试在“实时流畅的发布点”部分的高级选项卡中降低分段前瞻。

总而言之,IIS 似乎不支持此功能。我的建议是寻找另一种会议解决方案,因为在当前状态下,HTTP 流的延迟永远不会少于约 2 秒。

于 2011-07-03T06:10:45.430 回答