Domanda

Attualmente sto sperimentando Expression Encoder SDK, ma trovo molto confuso l'uso quando si tratta di streaming live. Sto provando a catturare un flusso video da una webcam, codificare con il mio programma e quindi pubblicarlo come flusso dal vivo dal mio computer iniettando anche comandi di script. Ho esaminato l'SDK ma non riesco a trovare nulla di pertinente a streaming live o webcam. Alcuni esempi di codice menzionano come utilizzare la classe Job per codificare, ma tutto quello che ho trovato riguarda la codifica dei file localmente.

È stato utile?

Soluzione

Non l'ho ancora provato ma esiste una classe chiamata Microsoft.Expression.Encoder.Live.LiveJob che dovrebbe supportare lo streaming. Ho provato l'esempio e ha trasmesso in streaming un file dal mio disco fisso. Immagino che dovrebbe supportare anche la codifica dei flussi video. Ecco il codice di esempio (per 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();
            }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top