2012-02-06 25 views
7
ffmpeg -i v.3gp -acodec copy -vf "movie=w.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" nv.3gp 

Funciona bien, pero quiero filigrana solo los primeros 30 segundos. Alguna idea?ffmpeg marca de agua primeros 30 segundos

Respuesta

0

Puede cortar los primeros 30 segundos, aplicarle marca de agua, luego unirlo con la parte restante.

+0

espero existe mejor manera – ncs

7

Puede convertir el logotipo en un video de 30 segundos con codec png y canal alfa, y aplicar el video como superposición.

La duración del video del logotipo debe especificarse a través del número de fotogramas a la velocidad de fotograma del video principal (en su caso, v.3pg). Por ejemplo, para video principal de 30 fps ejecutado:

ffmpeg.exe -loop 1 -i w.png -vframes 901 -vf "fade=out:899:1:alpha=1" 
    -vcodec png -pix_fmt rgba w.mov 

El logotipo debe desaparecer; de lo contrario, no desaparecerá. A continuación, utilice el video logotipo como superposición en otro video:

ffmpeg -i v.3gp -acodec copy -vf "movie=w.mov [logo]; [in][logo] 
    overlay=10:main_h-overlay_h-10 [out]" nv.3gp 

Como alternativa, en lugar de terminar abruptamente, el logotipo se puede desvaneció gradualmente, por ejemplo, dentro de 30 cuadros utilizando -vf "fade=out:870:30:alpha=1".

+0

valor no válido '1' para 'loop' opción – ncs

+0

Y no desaparece ffmpeg -i w. png -vframes 901 -vf "fade = out: 870: 30: alpha = 1" -vcodec png -pix_fmt rgba logo.mov ffmpeg -i v.3gp -acodec copy -vf "movie = logo.mov [logo]; [in] [logo] overlay = 10: main_h-overlay_h-10 [out] "nv.3gp – ncs

+0

Extraño. ¿Estás usando un ffmpeg más antiguo? Pruebe '-loop-input' luego, u obtenga la última –

6

overlay filtro admite edición de línea de tiempo; simplemente puede leer desde un archivo PNG y luego overlay=enable='lte(t,30)':...

+1

esto funciona bastante bien. – kev

+1

@kev Qué comentario tan tibio. Me encanta. –

4

Darse cuenta de que es tarde, pero como estaba viendo un problema similar, pude resolver este. que se desvanece con 0,5 segundos desde el inicio, y luego se desvanece a cabo a 30 seg

ffmpeg \ 
-i v.3gp \ 
-loop 1 -i w.png \ 
-acodec copy \ 
-filter_complex \ 
"[1:v] fade=in:st=0:d=0.5,fade=out:st=30:d=0.5 [logo]; [0:v][logo] overlay=10:main_h-overlay_h-10" \ 
nv.3gp 
+0

¿Cómo se evita el ciclo de codificación interminable? (causado por -loop 1)? Cuando en el otro lado utilizo eof_action = pass [out1] en el filtro complejo y lo asigno a la salida, la salida no tiene audio en funcionamiento. ¿Alguna idea? – fiveDust

+0

@fiveDust Prueba el '-shortest 'argumento (ver [documentación de opciones avanzadas] (https://ffmpeg.org/ffmpeg.html#Advanced-options)). – Tag

Cuestiones relacionadas