Estoy intentando agregar mi logo durante los primeros 30 segundos en un video con ffmpeg. Tengo un video llamado d1.mp4
y un logo llamado logo.png
.
Cuando comienza el video, la marca de agua debe estar en la esquina superior izquierda o derecha del video y desaparecer después de 30 segundos.
¿Puedes mostrarme cómo agregarlo?
Respuesta1
ffmpeg -i in.mp4 -framerate 30000/1001 -loop 1 -i logo.png -filter_complex
"[1:v] fade=out:st=30:d=1:alpha=1 [ov]; [0:v][ov] overlay=10:10 [v]" -map "[v]"
-map 0:a -c:v libx264 -c:a copy -shortest out.mp4
Esto supone que el logotipo es una única imagen fija con un canal alfa y desea superponerlo sobre un vídeo con una velocidad de fotogramas de 30000/1001 (velocidad NTSC). Cambie el -framerate
para que coincida con su video de entrada si es diferente. Si su logotipo es un video, omítalo -framerate 30000/1001 -loop 1
. Si el logotipo no tiene un canal alfa, agregue uno insertándolo, por ejemplo, format=yuva420p,
inmediatamente antes fade
.
Esto mostrará el logotipo en la posición x,y 10,10 durante 30 segundos seguido de un desvanecimiento de 1 segundo.
Respuesta2
Usandooverlay
filtro de vídeopara agregar un logotipo a un video:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay" \
-codec:a copy out.mp4
Para entender este comando necesitas saber quéespecificador de flujoes y leyendo elIntroducción al filtrado FFmpegayudará. [0:v]
se refiere a la(s) secuencia(s) de video de la primera entrada ( video.mp4
) y [1:v]
se refiere a la secuencia de video de la segunda entrada ( logo.mp4
). Así es como puede saber overlay
qué entradas utilizar. Puede omitirlo [0:v][1:v]
y overlay
seguirá funcionando, pero se recomienda ser explícito y no confiar en valores predeterminados posiblemente desconocidos.
Por defecto el logo se colocará en la parte superior izquierda.
usando -codec:a copy
voluntadcopia de flujoel audio. Esto simplemente vuelve a mezclar el audio en lugar de volver a codificarlo. Piense en ello como "copiar y pegar" del audio.
moviendo el logotipo
Este ejemplo moverá el logotipo 10 píxeles hacia la derecha y 10 píxeles hacia abajo:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \
-codec:a copy out.mp4
Este ejemplo moverá el logotipo 10 píxeles desde el lado derecho y 10 píxeles hacia abajo:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=main_w-overlay_w-10:10" -codec:a copy out.mp4
main_w
se refiere al ancho de la entrada "principal" (el fondo o [0:v]
) y overlay_w
se refiere al ancho de la entrada "superpuesta" (el logotipo o [1:v]
). Entonces, en el ejemplo, esto se puede traducir a overlay=320-90-10:10
o overlay=220:10
.
Cronometrar la superposición
Algunos filtros pueden manejaredición de línea de tiempoque le permite utilizarexpresiones aritméticaspara determinar cuándo se debe aplicar un filtro. Consulte ffmpeg -filters
para ver qué filtros admiten la edición de la línea de tiempo.
Este ejemplo mostrará el logo hasta 30 segundos:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -codec:a copy out.mp4
Si desea desvanecer el logotipo, consulteLa respuesta de mark4o.