У меня есть видео 5s
длиной. Конечное видео должно быть 60s
длинным. Полученное видео должно быть циклом "пинг-понга", то есть мои 5-секундные видео должны проигрываться вперед и назад, пока не будут достигнуты 60-секундные видео.
Кто-нибудь знает ffmpeg
магию, которая это делает?
Моя версия ffmpeg:
ffmpeg version 3.0.2 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 7.3.0 (clang-703.0.29)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-vda
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
решение1
Использовать
ffmpeg -i input.mp4 \
-filter_complex "[0]reverse[r];[0][r]concat,loop=5:250,setpts=N/25/TB" output.mp4
В loop=5:250
, 5
— это количество циклов, 250
— frame rate x double length of clip
. setpts
Применяется для предотвращения пропусков кадров, а значение 25
следует заменить на частоту кадров клипа.