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文件夹中,然后将其添加到构建路径中。 我正确地做到了吗?
编辑2: (使用ffmpeg)
我根据给定的Here在ubuntu平台上为android编译了ffmpeg
我按照文档编译了文件
现在任何人都可以告诉我如何在Android应用程序中使用这些编译文件?
这究竟应该用这些文件做什么?
我没有找到任何合适的文件。任何帮助都是gr8。
编辑3:(移植到android -ffmpeg)
嘿..最后我在ubuntu上编译了ffmpeg我得到了libffmpeg.so。我成功地将它移植到了android。 libffmpeg.so正在成功加载android活动。现在我只想测试一个简单的ffmpeg命令或程序。谢谢和问候
答案 0 :(得分:11)
您可以使用ffmpeg从图像中组合视频。您可以通过几种方式将ffmpeg集成到Java(Android)中(一种是通过
直接运行它) Runtime.getRuntime().exec("ffmpeg <options>");
),但通过Xuggler项目可能是一个很好的方法 - 它很大程度上依赖于ffmpeg。对于起点,这里是set of introduction tutorials,这是一个完整的教程how to encode video from sequence of images。这是很多工作和阅读,但你需要的所有信息都在那里。祝你好运!
答案 1 :(得分:0)
关于你的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会更好)。< / p>
否则,您需要获取为ARM编译的ffmpeg并在支持Android NDK时使用它。您需要在C / C ++中编写代码,将您的一系列图像编码为特定文件,并使用JNI接口将其包装起来。您可以将Java数组传递给类'方法的本机实现。
请参阅SDK示例中的示例Android NDK应用程序,了解如何在代码中使用JNI