簡體   English   中英

Android,Java - 使用位圖幀渲染視頻以反轉視頻(Xuggler)

[英]Android , Java - Rendering a video using bitmap frames to reverse a video (Xuggler)

我在ArrayList<Bitmap>中沒有視頻幀。 我在視頻文件(.mp4)上使用MediaMetadataRetriever.getFrameAtTime()方法訪問了這些幀。

我顛倒了ArrayList中幀的順序。 現在使用這個反向排序的幀隊列,我想渲染一個視頻,因此它將被反轉(我希望我在正確的軌道上)。

創建該視頻后,我還想將其保存到SD卡。

怎么實現這個? 或者是否有任何其他方法來反轉java中的視頻?

編輯1: (***使用xuggler * )**

我嘗試使用xuggler ...我嘗試使用它的.jar文件。 但它正在拋出一些錯誤。

[2012-08-18 00:29:16 - xugglertest2] The library 'xuggle-xuggler-5.2.jar' contains native libraries that will not run on the device.
    [2012-08-18 00:29:16 - xugglertest2]  The following libraries were found:
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-ferry.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler-io.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-ferry.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler-io.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle.so

我該怎么辦 ??

我將xuggler-xuggler-5.4.jar復制到項目的libs文件夾中,然后將其添加到構建路徑中。 mi做得對嗎?



編輯2 :( 使用ffmpeg)
我已經編譯的ffmpeg對Ubuntu的Android平台按給定這里
我按照文檔編譯了文件。
現在任何人都可以告訴我如何在Android應用程序中使用這些編譯文件? 我該怎么辦這些文件?
我沒有找到任何合適的文件。 任何幫助都是gr8。


編輯3 :( 移植到android -ffmpeg)

嘿..最后我在ubuntu上編譯了ffmpeg我得到了libffmpeg.so。 我成功地將它移植到了android。 libffmpeg.so正在成功加載android活動。 現在我只想測試一個簡單的ffmpeg命令或程序。
你能建議我在哪里尋找它嗎? 你可以建議我一個測試它的示例命令。

謝謝並恭祝安康

您可以使用ffmpeg從圖像中組合視頻。 您可以通過幾種方式將ffmpeg集成到Java(Android)中(一種是通過它直接運行它)

Runtime.getRuntime().exec("ffmpeg <options>");

),但可能是一個很好的方法,通過Xuggler項目 - 它嚴重依賴於ffmpeg。 首先,這里有一組介紹教程 ,這里是一個完整的教程, 如何從圖像序列中編碼視頻 這是很多工作和閱讀,但你需要的所有信息都在那里。 祝好運!

關於你的xuggler用法,你的庫的版本不適用於你的特定設備,因為它包含為x86_64和i686平台編譯的本機代碼:

[2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/
[2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/

嘗試使用為ARMv6編譯的本機代碼部分找到此庫的版本(最常見的Android架構 - 包括舊設備,如果不想支持早於〜1 - 2年前的設備,ARMv7會更好)。

否則,您需要獲取為ARM編譯的ffmpeg並在支持Android NDK時使用它。 您需要在C / C ++中編寫代碼,將您的一系列圖像編碼為特定文件,並使用JNI接口將其包裝起來。 您可以將Java數組傳遞給類'方法的本機實現。

請參閱SDK示例中的示例Android NDK應用程序,以了解如何在代碼中使用JNI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM