filtro de texto de desenho ffmpeg - crie um fundo transparente com texto


11

Atualmente, estou trabalhando com o drawtextfiltro. Até agora, só obtive sucesso com drawtextconfigurações de opções para usar a fonte correta e colocar o texto centralizado na horizontal. Como eu pude drawtextexibir o texto em um vídeo como mostrado abaixo?

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"

Respostas:


21

Use drawboxpara a caixa e drawtextpara o texto.

Besouro vermelho

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:color=black@0.4: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
  • drawtexttem uma boxopção, mas até onde eu sei, ela não pode ser uma largura arbitrária e é relativa ao tamanho do texto, por isso drawboxé usada.

  • O formatfiltro é usado para melhorar a cor da drawboxárea; caso contrário, dependendo dos formatos de entrada e saída, a área poderá parecer dessaturada ou monocromática. O formatfiltro é usado novamente para garantir que o formato de pixel do arquivo de saída seja compatível com todos os players.

  • O áudio está sendo copiado em fluxo neste exemplo porque você pode não querer recodificá-lo desnecessariamente.

  • ffmpegUsuários antigos terão que usar em t=maxvez de t=fill.


Perfeito, isso está fora do escopo da pergunta atual e talvez seja necessário criar uma nova pergunta. Alguma sugestão de como adicionar o snapchatcronômetro. Por exemplo, eu fiz alguns testes e ffmpeg contém uma fonte de vídeo testsrc que contém um temporizador: ffplay -f lavfi -i testsrc. O dígito 0 do temporizador inicial tem um tamanho de 29x52 pixels e sua posição no canto superior esquerdo é de 256 pixels na horizontal e 94 pixels na vertical. I pode cortar a área de um dígito como estaffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student

Eu adicionei uma imagem com um temporizador à pergunta. O cronômetro é uma contagem regressiva com base na duração do vídeo.
Code_Ed_Student

Sim, vou criar uma nova pergunta para ele. Você está certo. 30. 29, 28...etc.
Code_Ed_Student


1
Grande e você está certo que afetou a caixa
Code_Ed_Student

1

ffmpeg -i C: \ Usuários \ Desenvolvedor_2 \ Vídeos \ 2.mkv -vf drawtext = "fontfile = C \: / Regular.ttf: text = 'apcis.tmou.org': fontcolor = white: fontsize = 24: box = 1: boxcolor=black@0.4: x = w-tw: y = h-ésimo "C: \ inetpub \ wwwroot \ videos \ 1.mp4


isso é trabalhado para mim, mas eu usando boxcolor-white@0.9
sabre tabatabaee Yazdi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.