2014-01-19 16 views
0

從我在網上觀看流媒體視頻的經驗來看,只要你有足夠快的連接,視頻就可以播放。有沒有更好的替代我們目前的視頻緩衝算法?

但是,如果你和視頻服務器減慢您的連接之間的任何東西,無處不在的視頻緩衝算法變得很明顯:

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

取決於你的心情,這可能是hellishly無奈忍受,或看到視頻播放器認爲播放幾秒鐘並一遍又一遍地停頓是一件正確的事情。

是否有可能以某種方式緩衝視頻,以便以最小的口吃來觀看視頻?

好像在上述算法合乎邏輯的下一步是做一些像這樣:

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++ 
     } 
    } 
} 

是否有尚待克服,使影片可看性上連接速度慢了巨大的技術因素?

是否有更好的算法可以避免出於某種原因(難以實現,處理能力,不是衆所周知的等)?

看起來人類似乎能夠輕鬆地計算出在任何給定的連接速度下需要暫停視頻的時間長度,才能獲得流暢的播放體驗。爲什麼不能使用電腦?這只是數學不是嗎?

回答

1

是否有一個巨大的技術因素尚未克服,使視頻在慢速連接上可見?

這是一個緩慢的連接,也有一個下限的視頻質量,從而帶寬來流呢(儘管某些視頻肯定是高了很多質量比需要的是悅目所需的量,雖然定義的'watchable'當然是不同的,也許格式不是最優的,但我不太瞭解這方面)。

所以要麼等待很長時間才能觀看視頻,要麼你不會流暢播放。

是否有更好的算法可以避免出於某種原因(難以實現,處理能力,不是衆所周知的等)?

看起來人類似乎能夠輕鬆地計算出在任何給定的連接速度下需要暫停視頻的時間長度,才能獲得流暢的播放體驗。爲什麼不能使用電腦?這只是數學不是嗎?

這些事情沒有實現的原因可能是懶惰和/或無知,你也可以爭論簡單。

這只是簡單的數學。計算一段時間的下載速度 - 這將允許您計算下載視頻剩餘部分所需的預計時間,然後您只需將其與剩餘視頻播放時間進行比較,從而讓您知道是否應該暫停更長或恢復,當你恢復時,應該一直流暢播放到最後(除非線速度不一致,但在播放時間中添加一點時間應該在合理範圍內考慮到這一點)。

這種流暢播放的成本當然可能需要等很長時間才能開始觀看視頻,這在所有情況下都是不可取的。

上面幾乎是我所做的 - 我試圖保持它暫停,直到我認爲視頻將一直播放到最後(當然,我想等待)。

相關問題