ffmpeg video com imagem única e drawtext com falha, -loop causa congelamento curto

0

Estou tentando criar um vídeo a partir de uma única imagem e adicionar um texto na parte superior. Comando no Ubuntu:

ffmpeg -loop 1 -r 1 -i image.jpg -b:v 1M -vf scale=320:240 "drawtext=fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf: text='Test Text'" -t 20 output.mp4

e estou recebendo este erro:

    Unable to find a suitable output format for 'drawtext=fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf: text='Test Text''
drawtext=fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf: text='Test Text': Invalid argument

Eu preciso manter a escala em 320: 240

Não sei porque isso está acontecendo.

Outro problema é que quando eu adiciono -loop 1 , o comando congela por 5-7 segundos antes de prosseguir para codificar. Esse problema não existe quando não há -loop 1

Após essa saída, -loop 1 congela:

 ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug 14 2014 01:22:13 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --prefix=/home/user/ffmpeg_build --extra-cflags=-I/home/user/ffmpeg_build/include --extra-ldflags=-L/home/user/ffmpeg_build/lib --bindir=/home/user/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libfreetype --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-libfribidi --enable-libfontconfig
  libavutil      54.  1.100 / 54.  1.100
  libavcodec     56.  0.100 / 56.  0.100
  libavformat    56.  0.100 / 56.  0.100
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  0.100 /  5.  0.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  0.100 /  1.  0.100
  libpostproc    53.  0.100 / 53.  0.100

E então ele continua a codificar como de costume. Estranho.

    
por Henry The Least 14.08.2014 / 19:45

1 resposta

1

O problema é que você acabou de fornecer ao ffmpeg um filtro, chamado scale one.

-vf scale=320:240 "drawtext=fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf: text='Test Text'"

A parte "drawtext…" é interpretada como o nome do arquivo de saída, que não pode ser aberto. Se você tiver vários filtros para usar, combine-os com uma vírgula:

-vf "scale=320:240, drawtext=fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf: text='Test Text'"
    
por 14.08.2014 / 20:27