我需要將視頻解碼爲一系列位圖,以便我能夠修改它們,然後將它們壓縮回android中的視頻文件。使用MediaCodec和MediaExtractor來解碼和編碼視頻
我打算通過使用getFrameAtTime
並將其保存爲圖像序列來管理此操作。然後,我可以修改序列中的圖像並將其編碼回電影。但我有兩個問題是:
- 首先,因爲我讀它時,
getFrameAtTime
是創建縮略圖,並不能保證返回正確的框架。這使得視頻很遲鈍。 - 其次,保存圖像並讀回圖像需要很長時間。
我讀過解碼的正確方法是使用MediaExtractor,這很好,但我只是有示例將它直接渲染到surfaceView
。有什麼辦法可以將outputBuffer
轉換爲位圖嗎?
我需要它來使它的api級別爲16或更高。
那麼問題是,我已經看到了這個網站,但不幸的是我必須做對API拉特16.而且即使它說ExtractMpegFramesTest.java需要API 16,當我嘗試構建它時,它至少需要17 ...因此它不是一個選項。 –
那麼你已經有了一場艱苦的戰鬥。它需要一般工作嗎?還是僅僅爲特定設備而構建? (我會檢查到ExtractMpegFramesTest - 我不認爲它需要17+以上的任何東西。) – fadden
那麼這就是它需要的通用和api lvl 16 +的問題......我得到了getFrameAtTime解決方案,無需保存即可工作PNG和這樣的速度不止一次,但我仍然可能會遇到這樣的問題,它會提取一些幀兩次,這會導致視頻遲滯,我仍然不知道如何添加音頻。因此,任何關於將視頻分割爲位圖和創建帶有音頻的新視頻文件的建議都值得讚賞,但它需要使用16+以上版本。 –