combine a criação de vídeo e desenhe comandos de texto em uma única instrução no ffmpeg

combine a criação de vídeo e desenhe comandos de texto em uma única instrução no ffmpeg

Eu tenho os dois comandos a seguir que executo sequencialmente para criar um vídeo a partir de uma imagem e, em seguida, desenhar texto nele a partir de um arquivo de texto. Para criar um vídeo a partir de uma única imagem eu uso:

ffmpeg -framerate 30 -loop 1 -t 5 -i 1.jpg -i 3D_Transition_02.mp4 -filter_complex "[0]format=rgba,scale=1280:720,split[img][a]; [1]format=rgb24,negate,scale=1280:720[tr];[a][tr]overlay=format=gbrp[al];[img][al]alphamerge,setsar=1,format=yuva444p" -an -c:v libvpx -crf 10 -b:v 0 -quality realtime -auto-alt-ref 0 a1vp8.mkv

para criar o texto do vídeo estou usando o seguinte comando:

ffmpeg -i a1vp8.mkv -vf "drawtext=enable='gte(t,.5)':box=1:[email protected]:boxborderw=10:fontfile=Roboto-Black.ttf:fontcolor=white:fontsize=56:shadowcolor=Black:shadowx=1:shadowy=1:textfile=text.txt:y=h/2:x=10" aiwithText5.mkv

existe alguma maneira de criar o vídeo a partir da imagem (isso também possui um filtro complexo para criar a transição alfa) e, uma vez criado o vídeo, desenhar texto nele em um único comando, combinando os dois comandos?

Responder1

Basta adicionar o drawtext no final da filtragem.

ffmpeg -framerate 30 -loop 1 -t 5 -i 1.jpg -i 3D_Transition_02.mp4 -filter_complex "[0]format=rgba,scale=1280:720,split[img][a]; [1]format=rgb24,negate,scale=1280:720[tr];[a][tr]overlay=format=gbrp[al];[img][al]alphamerge,setsar=1,format=yuva444p,drawtext=enable='gte(t,.5)':box=1:[email protected]:boxborderw=10:fontfile=Roboto-Black.ttf:fontcolor=white:fontsize=56:shadowcolor=Black:shadowx=1:shadowy=1:textfile=text.txt:y=h/2:x=10" -an -c:v libvpx -crf 10 -b:v 0 -quality realtime -auto-alt-ref 0 a1vp8.mkv

informação relacionada