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
我正在开发一个基于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