2012-11-22 2 views
12

Я хочу объединить два или более видеофайла (они могут быть двумя mp4 или двумя 3gp или любым другим форматом).Как объединить или объединить два или более видеофайлов в Android?

+2

FFmpeg является большая библиотека работы с видео преобразования и что нет. Здесь есть привязка java: http://code.google.com/p/jjmpeg/ – appnus

+0

Я использовал FileInputSream, чтобы получить файлы uruce, а затем SequenceInputStream (stream1, stream2), чтобы объединить два файла, но он считает это неправильным так как андроид падает вокруг проблемы утечки памяти, если размер кучи превышает 16 МБ – Mahesh

ответ

14

Наиболее общим инструментом, который вы можете использовать, является ffmpeg (как указано в @Jeremy выше), но использование его на мобильном телефоне потребует некоторой работы; также это лицензия LGPL, и некоторые из ее кодеров (в частности, x264) являются GPL.

Простое решение, если оба файла, которые вы хотите объединить, используют аналогичную кодировку и содержатся в форматах файлов, полученных из MP4 (3GP - это такой), заключается в использовании парсера pure-java MP4 и конкатенации видео без касания медиа-поток. Посмотрите на mp4parser, анализатор с открытым исходным кодом, который является чистым-java, лицензируется под лицензией Apache и даже имеет example for concatenating videos в своей вики.

+0

классный, парсер mp4 работает для 2-х файлов, но он не работает должным образом для более чем 2 файлов, видео не сливается должным образом. это работает для более чем двух файлов одновременно? – Mahesh

+0

@Mahesh объединить два файла, затем объединить объединенный файл со следующим и так далее? – Cheesebaron

+0

@ Cheesebaron Возможно ли это, что вы говорите? –

5

Вы можете попробовать INDE медиа для мобильных устройств, учебники здесь: https://software.intel.com/en-us/articles/intel-inde-media-pack-for-android-tutorials

Он имеет перекодировки \ функциональности ремультиплексирования в классе MediaComposer и возможность присоединиться файл \ сегменты файла. Поскольку он использует MediaCodec API внутри кодирования, выполняется на GPU, поэтому он очень дружелюбен к батарее и работает как можно быстрее.

Пример кода, показывающий, как включить или присоединиться другие функции на GitHub: https://github.com/INDExOS/media-for-mobile

enter image description here enter image description here enter image description here

Смежные вопросы