2011-08-17 142 views
6

有沒有辦法逐幀逐幀瀏覽視頻文件?我嘗試過使用VideoView,並且取得了輕微的成功。我可以通過關鍵幀獲取視頻,但不是單個幀。我想這是默認設置,尤其是視頻壓縮的方式。有沒有辦法來覆蓋這種默認行爲或我可以更改的配置?視頻幀逐幀查找

回答

5

stagefright媒體框架中的默認行爲總是尋求關鍵幀。 (與之前的框架相反 - opencore的默認搜索行爲是尋求時間)。

您無法使用Android提供的MediaPlayer API進行逐幀搜索。

如果你真的想實現逐幀尋找,那麼你將不得不使用像FFMPEG第三方多媒體框架,否則你將需要實現自己的。

+0

我想我會實現我自己的,並分享它。 – Spidy

+0

是的,我用攝像機也遇到過這個問題,並且在處理screan上的對象時顯示和顯示幀,最後我們去了MJPG,因爲我們對時間和幀速率有更嚴格的控制。 – JPM

+0

如果我以這種方式錄製視頻,那麼每一幀都是關鍵幀? ;) – Moonlit

0

你看過MediaMetadataRetriever?您可以使用getFrameAtTime(long timeUs, int option)並返回Bitmap

根據使用情況,也許這是你所需要的。

+0

我得試試看。只適用於本地媒體(不是基於網址的媒體),但它只是一個正確的方向,如果它的工作。 – Spidy

+0

如果您還不知道[MediaPlayer Sourcecode](http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/java/android/media /MediaPlayer.java;hb=HEAD)。 'getFrameAt'未被使用並被棄用。 這是觀看MediaPlayer實現的好資源。正如拉維所說:你可以實現你自己的。 – proxylittle