目前,我正在使用这个HLS流进行测试:
通常,VLCJ播放器播放视频的质量是144便士,这是不好的。如果在那之后再开始视频,那么质量就变成360便士。当我把屏幕切换到电视上时,它开始更频繁地播放360 p质量的视频。
此外,在此之前,我用VLC播放器在C#中创建了一个应用程序。在那里,视频以144便士的质量发布,过了一段时间,质量自动改变到720 p。
我运行VLCJ时没有参数,根据最基本的示例
如何确保最佳质量的选择?
发布于 2022-10-06 23:32:11
我刚解决了问题。我查看了在运行vlc.dotnet.forms时使用的VLC版本.VLC版本为3.0.17.4。我在vlcj中使用了VLC版本3.0.9.2。我用VLC 3.0.17.4运行vlcj,视频从144 p开始,然后改为1080 p!问题在VLC版本中。因此,这是一个真正的解决方案。
发布于 2022-10-05 14:41:55
大多数玩家从低比特率开始的原因是最初允许快速启动,然后随着进程的进行,他们将切换到更高的比特率,并且假设设备和网络条件支持较高的比特率。
您可以在大多数优质流媒体服务上看到这种行为。
Update请参见下面的讨论以及vlcj的正确方法,以及vlcj的独立答案-- track返回单个轨道,而不是单个还原子轨道的列表。
原始答案-见上面的更新:
如果你想选择轨道自己编程,你可以这样做,在大多数球员也。VLCJ的语法是:
mediaPlayer.setVideoTrack(newVideoTrack);
在以下链接中有更多的细节,包括如何查询可用的轨道:https://capricasoftware.co.uk/projects/vlcj-3/tutorials/media-info。
发布于 2022-10-05 18:11:22
没有特定的本机API来处理这个问题,但在播放媒体时可以使用媒体选项参数:
mediaPlayer.media().play(
"https://cph-p2p-msl.akamaized.net/hls/live/2000341/test/master.m3u8",
":adaptive-logic=highest"
);除了“最高”之外,还有其他选择:
使用vlc -H并搜索“适应性”以在命令行帮助中找到这些值。
如果不希望每次播放媒体时将其作为媒体选项传递,则可以在MediaPlayerFactory上设置它(语法略有不同):
MediaPlayerFactory factory = new MediaPlayerFactory("--adaptive-logic=highest");为了确认这一点,我使用了来自发布问题的流URL。
如果没有这个设置,它将在144 p开始,然后切换到1080 p。在此设置下,它立即启动1080 p回放。
请注意,以这种方式传递的选项不受支持,并且可能随着VLC的任何新版本而改变。
https://stackoverflow.com/questions/73955495
复制相似问题