2013-10-29 86 views
3

我試圖找到一種方法來將視頻提取到幀中。 主要目標是使用openGl更改圖像並再次構建視頻。從視頻獲取幀,而不是MediaMetadataRetriever

問題是,我找不到一種不滿意的方式來提取視頻。我看到很多熟悉的問題都是使用MediaMetadataRetriever回答的,但我不想使用它,因爲它的工作非常慢。

我對像jcodec,ffmpeg,openCV和mp4parser這樣的庫做了一些研究。

jcodec - 工作正常,但真的很慢,每個getFrame()花費1秒。

ffmpeg - 根據GPL許可證,這意味着你將不得不公佈你的代碼。

openCV - 複雜。也許我可以完成我需要的東西,但它看起來太複雜了,我正在尋找一個更簡單的解決方案。

mp4parser - 提取解碼的幀,但不支持將它們編碼爲jpg/png。

對於獲得一些幫助將是美好的。 tnx

回答

0

不,ffmpeg庫是與LGPL授權的,並且不需要打開所有的代碼。 avcodec的android構建包括libstagefright的接口,它提供了h264(avc)的硬件編解碼器。這與您在Android上獲得的速度一樣快。

+0

ffmpeg的庫的一部分在GPL下,這些是我需要的,以便將幀解碼回png(libx256)。關於libstagefright - 聽起來很有趣,你是否可能有一個源代碼,博客文章或其他資源,其中包含更多'如何'信息與讀者分享? Tnx – Nativ

+0

libx256適用於編碼器,不是嗎?爲什麼你需要GPL呢? –

+1

查看http://stackoverflow.com/questions/8613436/how-to-use-ffmpeg-libavcodec-libstagefright –