将视频创建和绘制文本命令合并到 ffmpeg 中的一条指令中

将视频创建和绘制文本命令合并到 ffmpeg 中的一条指令中

我有以下两个命令,我按顺序执行它们以便从图像创建视频,然后从文本文件中在其上绘制文本。要从单个图像创建视频,我使用:

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

为了在视频上创建文本,我使用以下命令:

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

有没有什么方法可以让我根据图像创建视频(其中还包含用于创建过渡 alpha 的复合过滤器),并且一旦创建了视频,就可以通过组合这两个命令在单个命令中在其上绘制文本?

答案1

只需在过滤结束时添加绘制文本即可。

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

相关内容