Question

J'expérimente actuellement avec le SDK Expression Encoder, mais je trouve très difficile à utiliser en ce qui concerne la diffusion en direct. J'essaie de capturer un flux vidéo à partir d'une webcam, de l'encoder avec mon programme, puis de le publier en tant que flux en direct à partir de mon ordinateur tout en injectant des commandes de script. J'ai parcouru le SDK, mais je ne trouve rien concernant les flux en direct ou les webcams. Quelques exemples de code indiquent comment utiliser la classe Job pour coder, mais tout ce que j'ai trouvé concerne le codage local des fichiers.

Était-ce utile?

La solution

Havent a déjà essayé, mais il existe une classe appelée Microsoft.Expression.Encoder.Live.LiveJob qui est supposée prendre en charge la diffusion en continu. J'ai essayé l'échantillon et il a diffusé un fichier en streaming à partir de mon disque dur. Je suppose que cela devrait également prendre en charge le codage des flux vidéo. Voici l'exemple de code (pour 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();
            }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top