C# 表达式编码器SDK的帮助

C# 表达式编码器SDK的帮助,c#,sdk,expression-encoder,expression-encoder-sdk,C#,Sdk,Expression Encoder,Expression Encoder Sdk,我目前正在试用Expression Encoder SDK,但我发现在实时流媒体中使用它非常混乱。我正在尝试从网络摄像头捕获视频流,用我的程序进行编码,然后从我的计算机将其发布为实时流,同时还注入脚本命令。我一直在查看SDK,但找不到任何与实时流或网络摄像头相关的内容。一些代码示例提到了如何使用作业类进行编码,但我发现的只是本地编码文件。还没有尝试过,但有一个名为Microsoft.Expression.Encoder.Live.LiveJob的类应该支持流化。我尝试了这个样本,它从我的硬盘上传

我目前正在试用Expression Encoder SDK,但我发现在实时流媒体中使用它非常混乱。我正在尝试从网络摄像头捕获视频流,用我的程序进行编码,然后从我的计算机将其发布为实时流,同时还注入脚本命令。我一直在查看SDK,但找不到任何与实时流或网络摄像头相关的内容。一些代码示例提到了如何使用
作业
类进行编码,但我发现的只是本地编码文件。

还没有尝试过,但有一个名为Microsoft.Expression.Encoder.Live.LiveJob的类应该支持流化。我尝试了这个样本,它从我的硬盘上传输了一个文件。我想它也应该支持视频流编码。以下是示例代码(用于编码器3.0)


我进一步研究了LiveJob课程,有多种选项可以添加实时视频和音频设备。这绝对是你要找的课程,以供进一步参考,看看这篇文章:是的,在3.0中有一个用于流媒体的课程,但当我发布这篇3.0时,它并不存在。不过你有点晚了,我用WME代替了。它不受管理,但它完成了任务。对于其他遇到此问题的人,现在有一篇很好的MSDN mag文章对此有所帮助,请参阅“实时编码”部分-
using (LiveJob job = new LiveJob())
            {
                // Create a new file source from the file name we were passed in
                LiveFileSource fileSource = job.AddFileSource(fileToEncode);

                // Set this source to Loop when finished
                fileSource.PlaybackMode = FileSourcePlaybackMode.Loop;

                // Make this source the active one
                job.ActivateSource(fileSource);

                // Create a new windows media broadcast output format so we
                // can broadcast this encoding on the current machine.
                // We are going to use the default audio and video profiles
                // that are created on this output format.
                WindowsMediaBroadcastOutputFormat outputFormat = new WindowsMediaBroadcastOutputFormat();

                // Let's broadcast on the local machine on port 8080
                outputFormat.BroadcastPort = 8080;

                // Set the output format on the job
                job.OutputFormat = outputFormat;

                // Start encoding
                Console.Out.Write("Press 'x' to stop encoding...");
                job.StartEncoding();

                // Let's listen for a keypress to know when to stop encoding
                while (Console.ReadKey(true).Key != ConsoleKey.X)
                {
                    // We are waiting for the 'x' key
                }

                // Stop our encoding
                Console.Out.WriteLine("Encoding stopped.");
                job.StopEncoding();
            }