我在用户上传的输入视频上绘制文字和图标。我能够使用两个独立的ffmpeg过滤器-vf和-filter_complex成功绘制测试和图标。但问题是视频的不同大小和分辨率的输出不一致。我的意思是我需要在左上角放置一些填充文本和图标,但每个视频的位置和大小完全不同。 那么你可以帮助我如何计算基于视频高度和宽度的字体以使其保持一致,我的意思是文本框应该具有相同的大小,而与视频尺寸无关。
以下是我使用的命令:
ffmpeg -i input.mp4 -vf" drawtext = fontfile = OpenSans-Regular.ttf:text = \' LIVE \':fontcolor = white:fontsize = 40:x = 50 :y = 50:box = 1:boxcolor = red@0.9:boxborderw = 20,format = yuv420p,drawtext = fontfile = OpenSans-Regular.ttf:text =' \%{eif:$ 1 + t:d} ':= FONTCOLOR白色:字号= 40:X = 195:Y = 50:盒= 1:boxcolor=black@0.4:boxborderw = 20,格式= YUV420P" -c:v libx264 -c:copy -movflags + faststart output1.mp4 -y
ffmpeg -i input.mp4 -vf" drawtext = fontfile = OpenSans-Regular.ttf:text = \' LIVE \':fontcolor = white:fontsize = 40:x = 50 :y = 50:box = 1:boxcolor = red@0.9:boxborderw = 20,format = yuv420p,drawtext = fontfile = OpenSans-Regular.ttf:text =' \%{eif:$ 1 + t:d} ':= FONTCOLOR白色:字号= 40:X = 195:Y = 50:盒= 1:boxcolor=black@0.4:boxborderw = 20,格式= YUV420P" -c:v libx264 -c:copy -movflags + faststart output1.mp4 -y ffmpeg -i output1.mp4 -i eye.png -filter_complex" [1] lut = a = val * 1 [a]; [0] [a] overlay = 190:48" -pix_fmt yuv420p -c:副本output2.mp4 -y;