Superponer GIF en MP4 en un intervalo de tiempo determinado (mientras se mantiene la transparencia del GIF)

Superponer GIF en MP4 en un intervalo de tiempo determinado (mientras se mantiene la transparencia del GIF)

Estoy buscando una manera de implementar una superposición de gif encima de un mp4, que tenga las siguientes características:

  • Mantener la transparencia del GIF en vídeo
  • Que el GIF solo aparezca durante un intervalo de tiempo determinado (etc. 0:02-0:06)
  • Colocar el GIF en la esquina inferior izquierda del archivo MP4

Respuesta1

Puedes utilizarx=between(t, 2, 6), 0, NAN) Evaluación de expresionesy y=(H-h).
Ver overlayfiltrodocumentación(lea los ejemplos; están bastante cerca).

ffmpeg -y -i in.mp4 -i in.gif -filter_complex "[0][1]overlay=x='if(between(t, 2, 6), 0, NAN):y=(H-h)':format=yuv444" -vcodec libx264 -pix_fmt yuv444p -crf 17 -acodec copy out.mp4

format=yuv444y -pix_fmt yuv444pse utilizan para mejorar la calidad de la salida.

Usé el gif transparente de mis seguidores.correoy superposición con patrón sintético.

Muestra de cuadro de salida:
ingrese la descripción de la imagen aquí


Construyendo el patrón sintético (usado para pruebas):

ffmpeg -y -f lavfi -r 10 -i testsrc=size=640x480:rate=1:duration=300 -vf setpts=N/10/TB -vcodec libx264 -pix_fmt yuv444p -crf 17 in.mp4

Imagen GIF con transparencia:
ingrese la descripción de la imagen aquí

información relacionada