2011-11-02 23 views
5

estoy usando el DrawText y drawBox avfilters en FFmpeg, dos de las funciones más pobremente documentada conocidas por el hombre.DrawText, drawBox o superposición en un solo marco usando FFmpeg

estoy luchando para averiguar si y cómo puedo utilizarlos en un solo marco, es decir, en el marco de DrawText 22.

comando actual:

ffmpeg -i test.wmv -y -b 800k -f flv -vcodec libx264 -vpre default -s 768x432 \ 
    -g 250 -vf drawtext="fontfile=/home/Cyberbit.ttf:fontsize=24:text=testical:\ 
    fontcolor=green:x=100:y=200" -qscale 8 -acodec libfaac -sn -vstats out.flv 

Dos elementos mencionados son in the documentationn y t. Sin embargo, parece que solo puedo usarlos en xey. No en texto o incluso como otros parámetros.

Cualquier ayuda o guía FFmpeg sería gratamente recibida.

+1

posible duplicado de [drawbox ffmpeg en un marco determinado] (http://stackoverflow.com/questions/17339841/ffmpeg-drawbox-on-a-given-frame) – Jannes

Respuesta

3

En un gran ejemplo de FFmpeg siempre te mantiene en los dedos, esto es trivial que ver con drawtext y extremadamente dolorosa con drawbox.

La clave es que drawtext incluye el parámetro draw:

dibujar
Establecer una expresión que especifica si el texto debe ser dibujada. Si la expresión se evalúa a 0, el texto no se dibuja. Esto es útil para especificar que el texto debe dibujarse solo cuando se cumplen condiciones específicas.

Así que sólo muestra el texto en marco de 22:

ffmpeg -i in.wmv -vf drawtext="fontfile=font.ttf:text='blah':draw='eq(n,22)'" out.flv 

drawbox tiene ningún parámetro draw, y no hay manera general, a emularlo, lo que se obtendrá haciendo algo así como la extracción de la porción de vídeo que desea poner la caja y luego superponer con un desplazamiento:

ffmpeg -i in.wmv -t 1 -ss 10 -vf drawbox=10:10:20:20:red boxed.flv 
ffmpeg -i in.wmv -itsoffset 10 -i boxed.flv -filter_complex overlay out.flv 

(aunque esto dejará el último fotograma de boxed.flv visibles para siempre) o romper sube el video en varias piezas, dibuja las piezas adecuadas y luego vuelve a combinar.

+3

drawbox (y drawtext) tienen capacidades de edición de vídeo estos días que le permiten hacer lo mismo de forma genérica. http://stackoverflow.com/questions/17339841/ffmpeg-drawbox-on-a-given-frame – Jannes

Cuestiones relacionadas