Обрабатывать видео кадр за кадром в OpenCV на Android

Моя цель заключается в следующем: я должен прочитать видео, которое хранится на SD-карте, обработать его кадр за кадром, а затем снова сохранить в новом файле на SD-карте. Проблема в том, чтоOpenCV4Android не поставляется с видеокодером / декодером, поскольку он не включаетFFmpeg, Кроме того, используяJavaCV для обработки изображения это не вариант для меня, так как код уже написан на родном языкеOpenCV и я получаю к ним доступ через JNI. Я много читал здесь о stackoverflow и остальной части Google. Но я не нашел решения.

JavaCV позволяет мне читать видео кадр за кадром, а также сохранять его кадр за кадром. Однако я не могу преобразовать видео в простые объекты OpenCV Mat, которые могут быть обработаны обычным OpenCV4Android.

Я читал о JCodec как о библиотеке для кодирования / декодирования видео. Позволит ли JCodec мне выполнить мою задачу? Если да, знаете ли вы какие-либо примеры.

Компиляция FFMPEG для Android также будет вариант. Тем не менее, я думаю, что писать из себя FrameGrabber и FrameRecorder немного излишне. Я думаю, что, кроме JavaCV, должно быть какое-то решение.

Начиная с API 18, в Android есть MediaCodec и MediaMuxer. Возможно, они могут помочь мне?

Итак, давайте перейдем к моим требованиям. В настоящее время я нацеливаюсь на Android API 19, поэтому у меня есть все функции, которые мне нужны. Наиболее важным требованием для меня является следующее:

Если я обрабатываю видео продолжительностью 10 секунд с 30 кадрами в секунду, результатом также должно быть видео продолжительностью 10 секунд с 30 кадрами в секунду. Поэтому я хочу получить точную копию видео, но с добавлением рисунка к каждому кадруOpenCV, С помощьюOpenCV например, через Python можно выполнить эту задачу, используяVideoWriter класс ивидеоввода учебный класс. Мне нужна такая же функциональность на Android.

Мне интересно, что до сих пор ни у кого не было этой проблемы (или я ее не нашел).

Надеюсь, я все объяснил.

Ответы на вопрос(2)

Ваш ответ на вопрос