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 в коде