ffmpeg drawtext filter: crea un fondo transparente con texto

11

Actualmente estoy trabajando con el drawtextfiltro. Hasta ahora solo he tenido éxito con las drawtextconfiguraciones de opciones para usar la fuente correcta y colocar el texto centrado horizontalmente. ¿Cómo puedo drawtextmostrar el texto en un video como se muestra a continuación?

ffmpeg

ffmpeg -i "/media/test/test.mp4" -vf drawtext="fontfile=/usr/share/fonts/truetype/open-sans/OpenSans-Regular.ttf:text='Title of this Video':x=(w-tw)/2:y=(h-th)/2"  /media/test_edited.mp4"
Code_Ed_Student
fuente

Respuestas:

21

Úselo drawboxpara el cuadro y drawtextpara el texto.

Escarabajo rojo

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:[email protected]:width=iw:height=48:t=fill, \
 drawtext=fontfile=OpenSans-Regular.ttf:text='Title of this Video':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, \
 format=yuv420p" \
-c:v libx264 -c:a copy -movflags +faststart output.mp4
  • drawtexttiene una boxopción, pero por lo que puedo decir, no puede ser un ancho arbitrario y es relativo al tamaño del texto, por eso drawboxse usa en su lugar.

  • El formatfiltro se usa para mejorar el color del drawboxárea; de lo contrario, dependiendo de sus formatos de entrada y salida, el área podría verse desaturada o monocromática. El formatfiltro se usa nuevamente para garantizar que el formato de píxeles del archivo de salida sea compatible con todos los reproductores.

  • El audio se está copiando en este ejemplo porque es posible que no desee volver a codificarlo innecesariamente.

  • Los viejos ffmpegusuarios tendrán que usar en t=maxlugar de t=fill.

lema
fuente
Perfecto, esto está fuera del alcance de la pregunta actual y es posible que deba crear una nueva pregunta. Cualquier sugerencia de cómo agregar el snapchattemporizador. Por ejemplo, hice algunas pruebas y FFmpeg contiene una fuente de vídeo testsrc que contiene un contador de tiempo: ffplay -f lavfi -i testsrc. El dígito 0 del temporizador inicial tiene un tamaño de 29x52 píxeles y su posición desde la esquina superior izquierda es de 256 píxeles horizontal y 94 píxeles vertical. Puedo recortar el área de un dígito asíffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student
Agregué una imagen con un temporizador a la pregunta. El temporizador es una cuenta regresiva basada en la duración del video.
Code_Ed_Student
Sí, crearé una nueva pregunta para ello. Estás en lo correcto. 30. 29, 28...etc.
Code_Ed_Student
Nueva pregunta publicada: video.stackexchange.com/questions/15556/ffmpeg-video-with-timer
Code_Ed_Student
1
Genial y tienes razón, afectó la caja
Code_Ed_Student
1

ffmpeg -i C: \ Users \ Developer_2 \ Videos \ 2.mkv -vf drawtext = "fontfile = C \: / Regular.ttf: text = 'apcis.tmou.org': fontcolor = white: fontsize = 24: box = 1: [email protected]: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4

kostia7alania
fuente
esto funcionó para mí, pero estoy usando [email protected]
saber tabatabaee yazdi