aprendizaje FFmpeg (5) - marcas de agua de vídeo

1. Para lograr el logotipo aparecen alternativamente cada 10 segundos

ffmpeg -y -t 60 -i input.mp4 -i logo1.png -i logo2.png -filter_complex "overlay=x=if(lt(mod(t\,20)\,10)\,10\,NAN ):y=10,overlay=x=if(gt(mod(t\,20)\,10)\,W-w-10\,NAN ) :y=10" output.mp4

Cuando el video-edición 60, llene sólo si el procesamiento y salida de los primeros 60 segundos de vídeo, no llenan todo el vídeo se encargará
x coordenada x de la esquina superior izquierda de la marca de agua
y la coordenada y de la esquina superior izquierda de la marca de agua
archivos de vídeo de entrada input.mp4 (necesidad de abordar a)
de salida output.mp4 del archivo de vídeo (el procesamiento se ha completado)
IF (GT (MOD (T, 20 es), 10), 10-Ww, desde NAN) la longitud de dicho 10 aparece segundo logo, que es la marca de agua se mostrará durante 10 segundos


2. Para lograr Marquesina

ffmpeg -i input1 -i input2 -vcodec libx264 -an -filter_complex "overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0" -s 320x240 output.mp4

en la parte inferior del vídeo INPUT1
vídeo INPUT2 en la parte superior de
la anchura y la altura de la salida de vídeo de 320x240


3. logotipo logró dos segundos se mueve de izquierda a derecha

ffmpeg -i input.mp4 -vf "movie=logo.png[logo];[in][logo]overlay=x='if(gte(t\,2)\,((t-2)*80)-w\,NAN)'" output.mp4

80 de movimiento en píxeles


4. Implementar logotipo ciclo de comando de formato gif

ffmpeg -i video.mpg -ignore_loop 0 -i loop.gif -filter_complex  "[0:v][1:v]overlay=10:10:shortest=1" -vcodec mpeg2video out.mpg

5. Añada los subtítulos para vídeo

ffmpeg  -i  input  -vf  drawtext=fontfile=arial.ttf:text=welcome output

6. Implementar pantalla periódica de la marca de agua de texto de entrada

ffmpeg -i input.mp4 -vf "drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf:text='testtest':x=w-100:y=100:enable=lt(mod(t\,3)\,1):fontsize=24:[email protected]:shadowy=2" output.mp4

7. Escribir código ha encontrado un error

Cannot create buffer sink ret = -12 
修改
AVFilter *buffersrc  = avfilter_get_by_name("buffer");
AVFilter *buffersink = avfilter_get_by_name("buffersink");

 

Publicados 295 artículos originales · ganado elogios 37 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/tianshan2010/article/details/104737501
Recomendado
Clasificación