改变Exo Player的比特率

pri*_*rit 8 video android video-streaming exoplayer

这个问题可能已被多次询问过.我到处搜索但找不到正确的答案.我在我的项目中使用ExoPlayer来播放HLS视频.

我想为用户提供选择视频带宽的选项.像YouTube那样的东西.任何想法如何使用ExoPlayer实现这一目标?

Cha*_*apz 4

来自 ExoPlayer 问题跟踪器:

ExoPlayer 当前选择主播放列表中列出的第一个变体。如果我没记错的话,这是 Apple 建议/指定的正确客户端行为。如果您想以最低质量开始,从技术上讲,您应该让服务器生成主播放列表,并首先列出最低质量。

除了上述之外,我们确实同意客户在本地进行初始变体选择更有意义,而不是推荐的行为。我们将在 ExoPlayer V2 中将 HLS 转移到使用 FormatEvaluator,这将为初始选择(以及一般的自适应算法)提供更多控制。

作为解决方案,此评论:

看一下 AdaptiveTrackSelection.Factory。它的参数可以为您的案例提供足够的定制。

我认为这应该给你你需要的答案,或者它会引导你走向正确的方向。

请注意,您必须提供较低质量的流才能使用此功能。如果您只有高清视频,ExoPlayer 无法对视频进行下采样,这不是它的工作,也不是它的用途。ExoPlayer 仅在提供多种分辨率的视频时才能同步并实现它们之间的平滑过渡。