Потоковое изображение или экран рабочего стола с VL C (LibVLCSharp для WPF) - PullRequest
0 голосов
/ 18 февраля 2020

Не могли бы вы подсказать мне, как я могу непрерывно выполнять потоковую передачу моего экрана?

Я использую библиотеки: LibVLCSharp, LibVLCSharp.WPF, VideoLAN.LibVL C. Windows на NuGet

Я не знаю, как обновлять поток непрерывно, и второй videoView не может отобразить изображение экрана

Это мой код, но он не работает.

             Core.Initialize();                // instantiate the main libvlc object
            _libvlc = new LibVLC();

            // Stream screen
            var mediaPlayer = new MediaPlayer(_libvlc);
            vv.MediaPlayer = mediaPlayer;
            string[] options = { ":sout=#duplicate{dst=display{noaudio},dst=rtp{mux=ts,dst=10.0.100.114,port=8080,sdp=rtsp://10.0.100.114:8080/screen.sdp}" };
            var stream = new MemoryStream();
            var media = new Media(_libvlc, stream, options);
            mediaPlayer.Play(media);

            await Task.Run(() =>
            {
                while (true)
                {
                    vv.Dispatcher.Invoke(() =>
                   {
                       // HOW CAN I UPDATE THE STREAM ????
                       //stream.Dispose();
                       //stream.Close();
                       //var bytes = CaptureScreen();
                       //stream = new MemoryStream(bytes);

                       //media = new Media(_libvlc, stream, options);
                       //mediaPlayer.Media.Dispose();
                       //mediaPlayer.Media = media;
                       //mediaPlayer.Play();
                   });

                    Thread.Sleep(100);
                }
            });


            // Display from stream
            vv1.MediaPlayer = new MediaPlayer(_libvlc);
            var media = new Media(_libvlc, "rtsp://10.0.100.114/screen.sdp", FromType.FromLocation);
            vv1.MediaPlayer.Play(media);

Спасибо.

P / S: Мой первый пост здесь: https://forum.videolan.org/viewtopic.php?f=4&t=152462

1 Ответ

0 голосов
/ 25 февраля 2020

Запись экрана может быть выполнена в C# с использованием API VL C. Я создал пример программы, чтобы продемонстрировать это.

Пожалуйста, посмотрите мой ответ Stackoverflow здесь: { ссылка }

...