Kombinieren Sie die Befehle zum Erstellen von Videos und zum Zeichnen von Text in einer einzigen Anweisung in ffmpeg

Kombinieren Sie die Befehle zum Erstellen von Videos und zum Zeichnen von Text in einer einzigen Anweisung in ffmpeg

Ich habe die folgenden zwei Befehle, die ich nacheinander ausführe, um aus einem Bild ein Video zu erstellen und dann Text aus einer Textdatei darauf zu zeichnen. Um aus einem einzelnen Bild ein Video zu erstellen, verwende ich:

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

Um den Text im Video zu erstellen, verwende ich den folgenden Befehl:

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

gibt es für mich eine Möglichkeit, das Video aus dem Bild zu erstellen (dieses enthält auch einen Filterkomplex zum Erstellen des Alpha-Übergangs) und nach der Erstellung des Videos durch Kombinieren der beiden Befehle mit einem einzigen Befehl Text darauf zu zeichnen?

Antwort1

Fügen Sie den Zeichentext einfach am Ende der Filterung hinzu.

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

verwandte Informationen