LibVLCSharp 在 WPF 中播放 H264 视频流

LibVLCSharp Play H264 video stream in WPF

我正在开发一个基于ADB的项目,传输手机phone画面,通过socket传输H264视频流到PC,但是LibVLCSharp播放后出现卡屏情况,画面一直保持在第一帧,屏幕没有更新

        TCSocketServer.GetObject().streamReceiver += (byte[] buffer) =>
        {

            var media = new Media(_libvlc, new StreamMediaInput(new MemoryStream(buffer)));
            Dispatcher.Invoke(new Action(() =>
            {
                this.VideoView.MediaPlayer.Play(media);

            }));

        };

LibVLC 初始化

LibVLC _libvlc = new LibVLC("--demux=H264", "--rawvid-fps=24");

图片一直是第一帧的状态,无法更新图片 Freeze screen

希望我的问题能得到解决,因为我急于开发这个项目

你不能那样做:你会收到一个字节数组,并且只会读取这个字节数组。

您是否有代表您可以直接使用的套接字的 Stream?中间 MemoryStream 无济于事,因为它会将流的大小声明为当前内部的大小。仅当您在播放之前下载了整个视频时才有效。

您可以使用管道 in-between,如此(付费)示例所示:

https://github.com/jeremyVignelles/libvlcsharp-nonfree-samples/blob/main/Common/PipeMediaInput.cs