Android: Jcodec: кодирование файлов изображений в видео .mp4

Я использую JCODEC для создания видео о своих действиях на экране. Я не хочу использовать Android NDK, так как хочу сделать это в JAVA. Я запускаю цикл for для кодирования изображений с помощью SequenceEncoder. Проблема в том, что цикл выполняется слишком долго, а журнал cat выдает сообщения о освобождении GC_FOR_ALLOC. Даже для 5 итераций цикл занимает много секунд. Поэтому я не могу снять нормальное видео своей деятельности. Я пытался внести изменения в код, но это не помогло. Пожалуйста, помогите мне с этим. Предложите другие варианты, если они есть. Заранее спасибо.

File file = new File(Environment.getExternalStorageDirectory()+"/a.mp4");
SequenceEncoder encoder = new SequenceEncoder(file);
mview.setDrawingCacheEnabled(true);
// only 5 frames in total
for (int i = 1; i <= 5; i++) {
// getting bitmap from drawable path
mview.postInvalidate();
encoder.encodeNativeFrame(this.fromBitmap(mview.getDrawingCache()));
}
encoder.finish();

person nihartrivedi810    schedule 20.05.2014    source источник
comment
Вы решили эту проблему?   -  person Ahmad Arslan    schedule 29.05.2014
comment
Нет, я не могу. Попробуйте использовать ffmpeg с помощью ndk. Я не мог понять, как это сделать. Пожалуйста, скажите мне, если вы это сделаете.   -  person nihartrivedi810    schedule 01.06.2014
comment
я использую FFMpeg и попробовал, это работает, но это слишком сложно   -  person Ahmad Arslan    schedule 02.06.2014


Ответы (1)


Можете ли вы заглянуть в этот учебник. С помощью FFMPEG это работает.

https://github.com/vanevery/Android-MJPEG-Video-Capture-FFMPEG

person Ahmad Arslan    schedule 02.06.2014
comment
будет ли полезно, если я хочу преобразовать набор изображений (не с камеры) с SD-карты в видео .mp4. Я не хочу использовать камеру. Или вы можете предложить что-то для захвата видео с экрана? буду благодарен. - person nihartrivedi810; 04.06.2014
comment
Да, этот код поможет вам сделать видеофайл из серии изображений. Вы должны работать над ndk для библиотеки ffmpeg. вам нужно скомпилировать файлы .so из ffmpeg, а затем вы можете использовать эти команды, которые используются в этом учебном проекте. - person Ahmad Arslan; 05.06.2014
comment
Спасибо за помощь человеку, на самом деле. Можете ли вы сказать мне еще одну вещь? В предложенном вами примере не используются собственные классы, так как нет папки jni, тогда как он использует библиотеку ffmpeg? Спасибо за драгоценное время. я благодарна тебе - person nihartrivedi810; 05.06.2014
comment
Вы можете видеть, что в папке Asset есть почти 21 файл .so, который составлен из ffmpeg. Да, но с помощью компиляции jni он скомпилирован в файлы .so, которые используются в этом примере. Я проголосовал за ваш вопрос. Не стесняйтесь задавать любые вопросы. - person Ahmad Arslan; 06.06.2014
comment
эй, код, который вы предложили в ссылке, может захватывать изображения, но не может конвертировать их в видео. Есть много исключений, например, библиотеки в \data\data\package\... не найдены и вызывают исключение файла, не найденного. Вы хотите, чтобы я опубликовал новый вопрос. Спасибо. Опять таки. - person nihartrivedi810; 08.06.2014
comment
Действительно, я решил предыдущую проблему, но теперь приложение закрывается, когда я нажимаю кнопку «Назад», и видео не появляется на нужном пути. - person nihartrivedi810; 09.06.2014
comment
Приветствую вас :) Можете ли вы дать мне свой адрес электронной почты, я могу отправить вам несколько файлов библиотек ffmpeg, которые вы можете использовать, и вы можете легко создавать видеофайлы? - person Ahmad Arslan; 11.06.2014
comment
[email protected]. Спасибо. - person nihartrivedi810; 13.06.2014
comment
@hardik Нет, не извиняюсь за поздний ответ. - person Ahmad Arslan; 02.03.2015
comment
@ nihartrivedi810 Скажите, пожалуйста, вы нашли какое-нибудь решение для Android 5.0 Lollipop ?? - person Ahmad Arslan; 02.03.2015
comment
@ArslanAhmad encoder.encodeNativeFrame работает очень медленно, есть ли способ ускорить это? - person Narendra Singh; 18.05.2015
comment
Пожалуйста, напишите свой вопрос, и тогда я смогу дать вам ответ :) Это будет быстро, но недостаточно быстро, вы можете попробовать - person Ahmad Arslan; 19.05.2015
comment
@ArslanAhmad Не могли бы вы рассказать, как сделать с ним видео из кучи изображений в sdcard-bitmap-whatever? - person Kyryl Zotov; 24.12.2015