繁体   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