【问题标题】:Are there any better alternatives to our current video buffering algorithm?我们当前的视频缓冲算法有更好的替代方案吗?
【发布时间】:2014-01-20 08:32:29
【问题描述】:

根据我在线观看流媒体视频的经验,似乎只要您的连接速度足够快,视频就可以播放。

但是,如果您和视频服务器之间有任何东西减慢了您的连接速度,那么无处不在的视频缓冲算法就会变得显而易见:

while(user is trying to enjoy video)
{
    if(at least 2 seconds of video has buffered)
    {
        play()
    }
    else
    {
        pause()
        //hope network conditions improve
    }
}

根据您的心情,忍受这可能会非常令人沮丧,或者看到视频播放器认为播放几秒钟并一遍又一遍地暂停是正确的做法是完全可笑的。

是否有可能以一种可以让观看视频时卡顿最少的方式缓冲视频?

在上述算法中,合乎逻辑的下一步似乎是做这样的事情:

buffer number = 2
annoyance count = 0
while(user is trying to enjoy video)
{

    if(at least buffer number of seconds of video has buffered)
    {
        play()
    }
    else
    {
        annoyance count++
        pause()

        if(annoyance count > 1)
        {
            buffer number++
        }
    }
}

是否有一个巨大的技术因素需要克服才能让视频在慢速连接下也能观看?

是否有更好的算法因某种原因(难以实现、处理能力、不为人知等)而被避免?

似乎人类能够轻松计算出在任何给定的连接速度下您需要暂停视频多长时间才能获得流畅的播放体验。为什么电脑不能?这只是数学不是吗?

【问题讨论】:

    标签: algorithm video buffer


    【解决方案1】:

    是否有一个巨大的技术因素需要克服才能让视频在慢速连接下也能观看?

    这是一个缓慢的连接,视频质量有一个较低的限制,因此流式传输它所需的带宽量(尽管某些视频的质量肯定比观看所需的质量要高得多,尽管“可观看”的定义' 当然不同,也许格式不是最佳的,但我对这方面不太了解)。

    因此,要么您要等待很长时间才能观看视频,要么无法流畅播放。

    是否有更好的算法因某种原因(难以实现、处理能力、不为人知等)而被避免?

    似乎人类能够轻松计算出在任何给定的连接速度下您需要暂停视频多长时间才能获得流畅的播放体验。为什么电脑不能?这只是数学不是吗?

    这些东西没有实现的原因可能是懒惰和/或无知,你也许可以争论简单。

    这只是简单的数学。计算一段时间内的下载速度 - 这将允许您计算下载剩余视频所需的估计时间,然后您只需将其与剩余的视频播放时间进行比较,让您知道是否应该暂停更长或继续,当你继续时,你应该一直流畅地播放到最后(除非线速度不一致,但只是在播放时间上增加一点时间应该可以在合理的范围内解释这一点)。

    这种流畅播放的代价当然是可能需要等待相当长的一段时间才能开始观看视频,这在所有情况下肯定都不可取。

    以上就是我所做的 - 我尽量让它暂停,直到我认为视频会顺利播放到最后(好吧,当我想等待的时候)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-17
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2011-05-13
      • 2019-11-18
      相关资源
      最近更新 更多