如何实现流畅的流媒体?

时间:2013-04-05 10:11:22

标签: video-streaming google-tv

我读过https://developers.google.com/tv/android/articles/hls?hl=en并且没有清楚地理解“自适应流 - 自动适应拥塞或带宽可用性的含义。”?它只适用于玩家开始游戏或者玩游戏吗?

在我的练习中,视频根据当前带宽以质量开始;例如,.m3u8文件包​​含链接和带宽列表:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1950000
http://link1.M3U8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1500000
http://link2.M3U8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1200000
http://link3.M3U8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=950000
http://link4.M3U8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=800000
http://link5.M3U8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=700000
http://link6.M3U8

例如我当前的带宽1600000,播放器(VideoView)开始播放来自链接2的视频。播放时,我的带宽变为900000,但播放器仍然继续播放来自链接2的视频,并带有缓冲延迟。

播放器是否正常工作,或者他应该切换到链接5?

如果它是正确的,我可以在不重新启动视频的情况下以某种方式切换视频链接吗?

谢谢!

更新 测试设备Logitech Reveue,android 3.2。视频播放器 - VideoView。

1 个答案:

答案 0 :(得分:1)

首先关闭 - 您显示的清单是HLS又名HTTP Live Streaming而不是Microsoft的SmoothStreaming

HLS中的每个细分通常为10秒。

你没有提到你的播放器是什么,但我认为这是一个GoogleTV,因为那是你用这个问题标记出来的。不同的球员表现不同,但基本想法是相同的。播放器测量获取每个片段所需的时间,如果它及时,它往往保持相同,如果花费太长时间,它将尝试选择一个带宽,它可以在需要之前获得一个或两个片段发挥它。如果你看到的缓冲延迟是一个错误。您应该能够查看日志文件,了解播放内容时播放器正在做什么,以及为什么它不会切换到不同的带宽。