Pregunta

Actualmente estoy experimentando con el SDK de Expression Encoder, pero me resulta muy confuso usarlo cuando se trata de transmisión en vivo. Estoy tratando de capturar una transmisión de video desde una cámara web, codificarla con mi programa y luego publicarla como una transmisión en vivo desde mi computadora mientras también inyecto comandos de script. He estado buscando en el SDK pero no puedo encontrar nada relacionado con transmisiones en vivo o cámaras web. Algunos ejemplos de código mencionan cómo usar la clase Job para codificar, pero todo lo que he encontrado es sobre codificar archivos localmente.

¿Fue útil?

Solución

Todavía no lo he probado, pero hay una clase llamada Microsoft.Expression.Encoder.Live.LiveJob que se supone que admite la transmisión. Probé la muestra y transmitió un archivo desde mi disco duro. Supongo que también debería ser compatible con la codificación de transmisiones de video. Aquí está el código de muestra (para Encoder 3.0)

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();
            }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top