我已经试过了
FileCaching = 0
、NetworkCaching = 0
,但是播放延迟还是显得很高(几秒)。我正在使用 LibVLCSharp.Avalonia
NuGet 包中的 Avalonia 视图,但这应该无关紧要。
代码如下:
var mediaPlayer = new MediaPlayer(this.vlc) {
FileCaching = 0,
NetworkCaching = 0,
EnableHardwareDecoding = true,
};
var input = new StreamMediaInput(new VideoStream(source));
using var media = new Media(this.vlc, input);
media.AddOption(":demux=h264");
mediaPlayer.Play(media);
附言经过一番研究,我发现 h264 分路器并不真正了解视频 FPS,因此延迟的原因可能是 VLC 仅以每秒 24-30 帧的速度显示帧。我尝试添加
media.AddOption(":h264-fps=60")
来指示真实视频 FPS,但问题并没有消失。此参数似乎被忽略(格式错误?损坏?)。
P.P.S.可悲的是,LibVLCSharp 不会抱怨无法识别的选项。
根据我的经验,VLC 有一个额外的延迟,您不能低于某个点。请参阅:https://code.videolan.org/videolan/vlc/-/issues/21859
根据您的“PPS”,Libvlcsharp 无法检测选项是否有效,它全部由核心处理。