Intento agregar mi logotipo durante los primeros 30 segundos en un video con ffmpeg. Tengo un video llamado d1.mp4y un logotipo llamado logo.png.
Cuando comienza el video, la marca de agua debe estar en la esquina superior izquierda o superior derecha del video y desaparecer después de 30 segundos.
¿Me puede mostrar cómo agregarlo?

ffmpeg -i d1.mp4 -i logo.pngmuestra? Simplemente ingrese ese comando y muéstrenos cuál es la salida. Cuandoffmpeghaga preguntas sobre , siempre debe incluir tantos detalles como sea posible sobre el material de video / audio que tiene, lo que ya intentó y la salida completa de la línea de comandos de todo lo que ha intentado.Respuestas:
Esto supone que el logotipo es una única imagen fija con un canal alfa y desea superponerlo sobre un video con una velocidad de cuadros de 30000/1001 (velocidad NTSC). Cambie
-frameratepara 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 insertando, por ejemplo,format=yuva420p,inmediatamente antesfade.Esto mostrará el logotipo en la posición x, y 10,10 durante 30 segundos seguido de un desvanecimiento de 1 segundo.
fuente
framerateyloopse requieren en este caso y no por una simple superposición sin filtro de desvanecimiento?-frameratey-looppara una imagen fija es para que el desvanecimiento funcione. Si solo hay un solo cuadro, entonces no tiene forma de desvanecerse en un intervalo de 1 segundo. Idealmente, debería ser la misma velocidad de cuadros que el video para que el desvanecimiento sea lo más suave posible.Uso del
overlayfiltro de video para agregar un logotipo a un video:Para comprender este comando, necesita saber qué es un especificador de flujo y leer la Introducción al filtrado FFmpeg será de gran ayuda.
[0:v]se refiere a la transmisión de video de la primera entrada (video.mp4), y se[1:v]refiere a la transmisión de video de la segunda entrada (logo.mp4). Así es como puede saberoverlayqué entradas usar. Puede omitir[0:v][1:v], yoverlayseguirá funcionando, pero se recomienda que sea explícito y no dependa de valores predeterminados posiblemente desconocidos.Por defecto, el logotipo se colocará en la esquina superior izquierda.
El uso
-codec:a copyserá transmitir copiar el audio. Esto simplemente vuelve a silenciar el audio en lugar de volver a codificarlo. Piense en ello como un "copiar y pegar" del audio.Moviendo el logo
Este ejemplo moverá el logotipo 10 píxeles hacia la derecha y 10 píxeles hacia abajo:
Este ejemplo moverá el logotipo 10 píxeles desde el lado derecho y 10 píxeles hacia abajo:
main_wse refiere al ancho de la entrada "principal" (el fondo o[0:v]), y seoverlay_wrefiere al ancho de la entrada "superpuesta" (el logotipo o[1:v]). Entonces, en el ejemplo, esto se puede traducir aoverlay=320-90-10:10ooverlay=220:10.Momento de la superposición
Algunos filtros pueden manejar la edición de la línea de tiempo que le permite usar expresiones aritméticas para determinar cuándo se debe aplicar un filtro. Consulte para
ffmpeg -filtersver qué filtros admiten la edición de la línea de tiempo.Este ejemplo mostrará el logotipo hasta 30 segundos:
Si desea desvanecer el logotipo, consulte la respuesta de mark4o .
fuente
enable=not(between'(t,30,50)'). Esto mostrará la superposición en todo momento, pero no con una duración de 30-60 segundos.overlaysolo, lo hice, porque la posición predeterminada de la esquina superior izquierda era lo que quería. (Entonces, al final, mis banderas eran simplementefilter_complex overlay.)