Dibujar texto Ffmpeg encima del video escalado independientemente del tamaño de la imagen

Dibujar texto Ffmpeg encima del video escalado independientemente del tamaño de la imagen

Estoy haciendo un video a partir de una sola imagen usando ffmpeg y dibujando texto encima del video.

¿Cómo puedo drawtextsuperponer eso sobre el tamaño del video escalado en lugar de la escala de la imagen?

Ahora mismo, cuando agrego un texto, la X y la Y comienzan desde la esquina superior izquierda de la imagen, no desde el video escalado en sí. La imagen tiene dimensiones más pequeñas que la escala del video, por lo que necesito dibujar texto independientemente del tamaño de la imagen. Si el texto sale de la escala de la imagen, se corta, aunque el borde negro sin relleno del vídeo escalado restante sigue ahí.

Este es el comando que estoy usando.

ffmpeg -loop 1 -r 1 -i image.jpg -b:v 1M -vf "scale=320:240, drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: text='Test Text': x=200: y=100: fontsize=30: [email protected]: box=1: [email protected]" -t 20 output.mp4

Respuesta1

Si la imagen es la única fuente de vídeo, entonces el vídeoes solola imagen y "superposición desde la esquina superior izquierda del vídeo" significa lo mismo que "superposición desde la esquina superior izquierda de la imagen". Entonces lo estás haciendo correctamente.

El borde negro que mencionas esnoparte del vídeo. Se inserta poralgunoreproductores multimedia al abrir vídeos muy estrechos porque el panel de controles del reproductor multimedia es más ancho que el vídeo. Por ejemplo, el reproductor multimedia VLC tiene controles/barra de menú bastante amplia y rellena el vídeo con bordes grandes. Pero Windows Media Player no muestra ningún borde negro ya que sus controles caben en el ancho del vídeo de 320p.

Respuesta2

Lo hice funcionar con el siguiente comando:

ffmpeg -loop 1 -i image.jpg -r 29.970 -c:v libx264 -t 15 -pix_fmt yuv420p -profile:v high -level 4.2 -vf "scale=1920:1080, drawtext = text='Resumes in %{eif\:15-t\:d}': x=200: y=100: fontsize=30: [email protected]: box=1: [email protected]" out.mp4

información relacionada