在 ffmpeg 中,如何在过滤时将文本保持在同一位置?例如缩放
用于 Linux 的 FFmpeg
ffmpeg
-t 5
-i x.jpg -filter_complex "[0:v]drawtext=fontfile='ariblk.ttf':text='test text':fontsize=24:x=0.23333333333333*main_w: y=0.1325*main_h:fontcolor=#000000: alpha=1,zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=out:st=4:d=1[v0]; [v0]concat=n=1:v=1:a=0,format=yuv420p[v]"
-map "[v]"
-s "800x450"
-t 40 ./video.mp4
文本也被放大,但我希望它保持相同的大小。
最佳答案
在绘制文本之前执行缩放。
ffmpeg
-i x.jpg -filter_complex "[0:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125:s=800x450,drawtext=fontfile='ariblk.ttf':text='test text':fontsize=24:x=0.23333333333333*main_w:y=0.1325*main_h:fontcolor=#000000: alpha=1,fade=t=out:st=4:d=1,format=yuv420p[v]"
-map "[v]"
-t 40 ./video.mp4
concat 是不必要的;你只有一个输入。
关于ffmpeg - 在 ffmpeg 中,如何在像缩放一样过滤时保持文本相同的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57006645/