請問android視頻加速播放是如何實現的!例如以1.5倍速播放視頻。求教原理
視頻是由連續的幀形成的,一個幀對應一個畫面,就像膠片電影。通過每秒切換多少幀形成連續的畫面,當切換速度大於眼睛所能接受的速度時(貌似人眼每秒能接受24幀),那麼我們就無法察覺這些變化了,我們大腦所接受的圖像便是一段視頻圖像。這便是幀率。假如一個視頻的默認幀率為60幀每秒,當我們在播放時采用120幀每秒的幀速率。那麼我們看到的視頻就以原來的2倍速度播放。聲音也是如此。硬件是有運算極限的,當速率過大時,如果沒有設置幀同步的情況下,硬件會忽略一些幀,如果設置了幀同步,那麼硬件可能無法達到我們所設置的速率。
上面是通過gpu運算
另外一種通過cpu來控制,視頻是有一定長度的,那麼自然我們能通過控制時間線來控制播放速度,這樣gpu只需要知道要繪制哪一幀就行了,但是這給cpu帶來了承重的負擔,他需要不斷的讀取文件,而且形成的畫面也不再是連續的,通常這種方法是不可取的。
更多信息可以查詢計算機圖形,動畫等資料