Añadir imagen debajo del video con ffmepg


7

Quiero extender el uso básico de la marca de agua y ponerlo debajo del video. Eso significa. Tengo entrada de video 720x480 e imagen 720x20. En la salida, quiero tener un video de 720x500 donde el aspecto del video se conserva y se coloca en la parte superior y la imagen se agrega en la parte inferior.

video de entrada

|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|

imagen de entrada

|--------------------------|
|          720x20          |
|--------------------------|

salida de video

|--------------------------|
|                          |
|                          |
|                          |
|          720*480         |
|                          |
|                          |
|                          |
|--------------------------|
|          720x20          |
|--------------------------|

Gracias


¿Puedes subir una imagen para ver lo que necesitas?
p2o

@poor: dicho de otra manera, está diciendo que quiere adjuntar la imagen al final del video. Por lo tanto, la salida debe ser el video original completo con la imagen debajo. (El borde superior de la imagen estaría directamente al lado del borde inferior del video).
AJ Henderson

Respuestas:


5

Creo que probablemente sea más fácil combinar (apilar) una imagen de fondo de dimensión completa (720x500px) con su video en ffmpeg en lugar de agregar el pie de página de 20px al video. Simplemente puede usar el overlay filterpara esto:

ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex overlay=0:0 \
    -t 0:01.48 \ 
    out.m4v

Nota: En este ejemplo, debe establecer la duración de su video de salida manualmente con el -tparámetro.


Si no desea especificar la duración , puede usar el shortestindicador dentro del filtro si usa -loop 1como @LordNeckbeard mencionado en los comentarios a continuación:

ffmpeg \
    -loop 1 -i 720x500.jpg \
    -i 720x480.mp4 \
    -filter_complex "overlay=0:0:shortest=1" \
    out.m4v

1
Si lo usa -loop 1, puede configurarlo shortest=1en su filtro de superposición, como en overlay=0:0:shortest=1.
llogan

@ LordNeckbeard ¡Gracias por tus ideas! He actualizado mi respuesta.
p2o

5

Use el filtro vstack :

hstack

ffmpeg -i video.mp4 -i image.png -filter_complex vstack output.mp4

Si la imagen no tiene el mismo ancho que el video, cambie su tamaño con el filtro de escala :

ffmpeg -i video.mp4 -i image.png -filter_complex "[1:v]scale=320:-1[bottom];[0:v][bottom]vstack" output.mp4
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.