Как совместить 2 .mp4 видео на устройстве Android?
Цель состоит в том, чтобы объединить 2.mp4 видео, как одно, играющее за другим. Существует бесчисленное множество ссылок на ffmpeg, который не очень хороший вариант, поскольку он включает в себя NDK, делающий проект действительно тяжелым для какой-то не столь важной функции.
Я узнал, что медиакодек был значительно улучшен. Мне нужно руководство, чтобы помочь мне через это. Я не мог найти ни одного.
Также я ищу объединение.mp3 и фото (одиночное) и создание.mp4
Пожалуйста помоги.
Я попытался использовать библиотеку javacv для второго запроса, это был тупик. Код выглядит следующим образом:
{FFmpegFrameGrabber videoFrames = FFmpegFrameGrabber.createDefault(videoSource);
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(videoFile, 200, 200);
recorder.setFrameRate(10);
recorder.start();
Frame frame = videoFrames.grab();
for (int i = 0; i < (numSeconds * 10); i++) {
recorder.record(frame);
}
}
Требуется 12 секунд, чтобы сделать 5-кадровое видео. кадров в секунду 25
1 ответ
Если вы хотите объединить два видеофайла, проще всего использовать mp4parser (в нем есть все, что вам нужно). Другой способ - попытаться извлечь аудио и видео каналы с помощью MediaExtractor
чем использовать MediaMuxer
объединить два файла в один. Кроме того, убедитесь, что файлы идентичны с точки зрения разрешения, частоты кадров и битрейта, иначе объединение может быть не идеальным. В таком случае вам может понадобиться перекодировать файлы. Вы можете сделать это с FFMPEG
, или вы можете рассмотреть сложные инструменты Android, такие как MediaCodec
,
ОБНОВИТЬ:
Создание аудио .mp4
с одним кадром должен быть самым легким в FFMPEG
, Если вам нужно более легкое решение, вы должны закодировать свое изображение с помощью MediaCodec
и извлечь аудио из .mp3
первый. После этого вы должны преобразовать данные видео и аудио в видеофайл. Вы можете найти блестящий MediaCodec
примеры в графике и бигфлейке