Android, Java-рендеринг видео с использованием растровых кадров для реверса видео (Xuggler)

у меня нет видеокадров в ArrayList<Bitmap>. Я получил доступ к этим кадрам, используя MediaMetadataRetriever.getFrameAtTime() метод над видеофайлом(.mp4).

Я меняю порядок кадров в ArrayList. Теперь, используя эту очередь кадров с обратным порядком, я хочу отобразить видео, чтобы оно было обращено (надеюсь, я на правильном пути).

после создания этого видео я также хочу сохранить его на sd-карту.

как этого добиться? Или Является ли der любым другим методом обратного видео в Ява?

Edit 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 проекта, а затем добавьте его в путь сборки. я делаю это правильно?



Edit 2: (используя ffmpeg с)
Я скомпилировал ffmpeg для android на платформе ubuntu в соответствии с данным здесь
Я получил скомпилированные файлы в соответствии с документом.
Теперь кто-нибудь может сказать мне, как я могу использовать эти скомпилированные файлы в приложении android? что именно мне делать с этими файлами??
Я не нашел подходящей документации. любая помощь будет gr8.


Edit 3:(портирован на android - ffmpeg)

- Эй.. наконец, я скомпилировал ffmpeg на ubuntu, я получил libffmpeg.Итак. Я успешно портировал его на android. libffmpeg.так что загрузка в Android-активности успешно. Теперь я просто хочу протестировать простую команду или программу ffmpeg.
можете ли вы подсказать, где мне искать его.? можете ли вы предложить мне образец команды, чтобы проверить его.

спасибо

2 ответов


можно использовать 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 было бы лучше).

в противном случае вам нужно будет скомпилировать ffmpeg для ARM и используйте его с поддержкой Android NDK. Вам нужно будет написать код на C / C++, реализующий кодирование вашей серии изображений в определенный файл и обернуть его интерфейсом JNI. Вы можете передавать массивы Java в собственные реализации методов класса.

см. примеры приложений Android NDK в образцах SDK, чтобы узнать, как использовать JNI в коде