Самый эффективный способ создания видео в формате mp4, содержащего зацикленный видеофайл бумеранга? - PullRequest
0 голосов
/ 08 февраля 2019

Я разработал приложение для Android, которое позволяет пользователю создавать бумерангоподобные mp4-видео.Это видео состоит из 10 неподвижных изображений, которые воспроизводятся довольно быстро.Я знаю, что такое видео (эффект бумеранга) можно легко зациклить из одного видеофайла во время его воспроизведения, но мне действительно нужно создать MP4-видео, которое по существу будет содержать уже подготовленное видео бумеранга.Выходное видео может быть загружено и воспроизведено пользователем на любом внешнем проигрывателе (над которым, очевидно, я не имею никакого контроля).

Для этой цели в настоящее время я создаю видео из изображений в цикле.Цикл начинается с 1-го изображения и продолжается до 10-го изображения с задержкой 0,25 с между кадрами, а затем возвращается с 10-го на 1-е, включая задержку.И есть 5 таких циклов, что означает создание одного видео из 5 * 10 * 2 = 100 изображений.Я знаю, что это довольно смешно, поэтому время, затрачиваемое на подготовку этого видео, также невероятно (около 1:40 мин.).

Какое решение вы могли бы порекомендовать, предполагая, что выходное видео действительно должно состоять из 5петли туда-сюда?Я думал о создании однопетлевого видео (20 изображений), а затем о создании окончательного выходного видео, объединяя его 5 раз.Но разве это может быть хорошо?Я пытаюсь найти эффективный, но понятный способ для начинающего программиста Android.

Ответы [ 2 ]

0 голосов
/ 29 июля 2019

Вы можете использовать FFMPEG для создания бумеранга, как видео ниже. Простой пример кода: -

ffmpeg -i input_loop.mp4 -filter_complex "[0]reverse[r];[0][r]concat,loop=5:250,setpts=N/55/TB" output_looped_video.mp4

1,5 секунды видеофайла в качестве ввода с именем input_loop.mp4

setpts=N/<VALUE>/TB" youможно изменить значение в соответствии с вашими потребностями

увеличить значение, чтобы ускорить эффект бумеранга

уменьшить значение, чтобы замедлить эффект бумеранга

0 голосов
/ 27 июля 2019

Я искал способ создать видео с бумерангом и нашел довольно крутой пример того, как это сделать на GitHub.Вы создаете видео с помощью библиотеки FFMPEG org.bytedeco.javacpp-presets для клонирования кадров.

https://github.com/trantrungduc/boomerang-android

Это место в коде, в которомВы можете настроить цикл видео:

for (int k = 0; k < 3; k++) {
    for (Frame frame1 : loop) {
        frecorder.record(frame1);
    }
    for (int i=loop.size()-1;i>=0;i--){
        frecorder.record(loop.get(i));
    } 
}
...