我使用LibVlcSharp播放由adaptive转换的自适应视频流(HLS),EncoderNamedPreset.AdaptiveStreaming设置在我的Xamarin.Forms应用程序中。
当我观看我的视频时,我注意到我的视频的前几秒钟(5-6秒)非常模糊。
这可能是因为播放器以“安全”的低比特率开始,并且在下载了几块数据之后,它确定带宽足以显示更高质量的视频,并且可以切换到质量。
这几秒钟的低质量困扰着我,我宁愿让它以更高的比特率开始。
如果视频能更快地切换(<2秒),我会很高兴,这可能意味着我需要一个不同的编码器设置,产生更小的“块”视频。
但是,也许更容易的解决方案是将起始比特率设置为更高的值。
我曾在其他媒体播放器上看到过这样的ams.InitialBitrate = ams.AvailableBitrates.Max<uint>();形式。
LibVlc也有类似的选择吗?
发布于 2021-02-16 02:15:59
这可能是因为播放器以“安全”的低比特率开始,并且在下载了几块数据之后,它确定带宽足以显示更高质量的视频,并且可以切换到质量。
可能吧。您可以通过在视频开始时检查比特率,以及在质量提高时再次检查比特率来验证该假设,如下所示:
await media.Parse(MediaParseOptions.ParseNetwork);
foreach(var track in media.Tracks)
{
Debug.WriteLine($"{nameof(track.Bitrate)}: {track.Bitrate}");
}LibVlc也有类似的选择吗?
尝尝这个
--adaptive-logic={,predictive,nearoptimal,rate,fixedrate,lowest,highest}
Adaptive Logic你可以像new LibVLC("--adaptive-logic=highest")一样试一试
https://stackoverflow.com/questions/66210257
复制相似问题