ffmpeg fusiona varias imágenes en video y agrega transiciones

El requisito es combinar varias imágenes en un video y agregar efectos de transición en la unión de cada imagen. El primer método es usar fundido para hacer transiciones y el segundo método es usar xfade para hacer transiciones. Xfade tiene más efectos de transición Se recomienda utilizar esto. Si te resulta útil, dale me gusta + marcador.

El primer método: utilice directamente el desvanecimiento para realizar la transición.

ffmpeg \
-loop 1 -t 5 -i 1.jpg \
-loop 1 -t 5 -i 2.jpg \
-loop 1 -t 5 -i 3.jpg \
-loop 1 -t 5 -i 4.jpg \
-loop 1 -t 5 -i 5.jpg -filter_complex "[0:v]fade=t=out:st=4:d=1[v0]; [1:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; [2:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; [3:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; [4:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v4]; [v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4

Los efectos de transición se pueden ver en: https://trac.ffmpeg.org/wiki/Xfade#MP4output
inserte la descripción de la imagen aquí

El segundo método: use xfade para hacer transiciones

ffmpeg \
-loop 1 -t 2 -i 1.jpg \
-loop 1 -t 2 -i 2.jpg \
-loop 1 -t 2 -i 3.jpg \
-loop 1 -t 2 -i 4.jpg \
-loop 1 -t 2 -i 5.jpg \
-filter_complex "[0:v]xfade=transition=wiperight:duration=1:offset=1[v0]; [1:v]xfade=transition=wiperight:duration=1:offset=1[v1]; [2:v]xfade=transition=wiperight:duration=1:offset=1[v2]; [3:v]xfade=transition=wiperight:duration=1:offset=1[v3]; [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" -y out.mp4

agregar música de fondo

#简单命令:
ffmpeg -i 1.mp3 -i circlecrop.mp4 -shortest \
-c:v libx264 \
-y BGM.mp4

# 复杂命令:
ffmpeg \
-loop 1 -t 2 -i 1.jpg \
-loop 1 -t 2 -i 2.jpg \
-loop 1 -t 2 -i 3.jpg \
-loop 1 -t 2 -i 4.jpg \
-loop 1 -t 2 -i 5.jpg \
-stream_loop -1 -i 1.mp3 -acodec aac \
-filter_complex "[0:v]xfade=transition=circlecrop:duration=1:offset=1[v0]; [1:v]xfade=transition=circlecrop:duration=1:offset=1[v1]; [2:v]xfade=transition=circlecrop:duration=1:offset=1[v2]; [3:v]xfade=transition=circlecrop:duration=1:offset=1[v3]; [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" \
-map "5:a" \
-shortest \
-c:v libx264 \
-y circlecrop.mp4

-stream_loop
ingresa los tiempos de bucle de la transmisión, 0 significa que no hay bucle, -1 significa bucle infinito, es decir, la música se reproduce en un bucle.
-acodec aac
establece el códec de audio en modo acc
-map "[v]"
especifica el flujo de entrada de video sintetizado v como fuente del archivo de salida
-map "5:a"
toma el sexto archivo como archivo de audio de video
-el más
corto más corto Cuando finaliza el flujo de entrada, se realiza la codificación.
-c:v
formato de codificación de vídeo de salida libx264
-pix_fmt yuv420p
Establece el formato de píxeles en yuv420p

Supongo que te gusta

Origin blog.csdn.net/qq236237606/article/details/130683429
Recomendado
Clasificación