我正在使用当前的 ffmpeg 命令来转换多个视频并创建一个水印,该水印是每 120 秒播放时间从右到左到右的滚动文本。
find /home/video/ -type f -execdir ffmpeg -i '{}' -filter:v "drawtext=fontfile=/root/FreeSans.ttf:text='QWERTY':[email protected]:fontsize=26:y=h-line_h-30:x=w/20*mod(t\,120),scale=854:480" -pix_fmt yuv420p -c:v libx264 -preset slow -b:v 1000k -minrate 500k -maxrate 2000k -bufsize 2000k -c:a aac -ar 44100 -b:a 128k -movflags +faststart '/home/video/new/{}.mp4' \;
我想修改水印,使它看起来像这样
我希望上面显示的文本每 120 秒淡出一次并持续 15 秒。是粗体格式和相同的颜色(黑色)。
“qwerty qwerty qwerty qwerty”新行
“qwerty qwerty qwerty qwerty”
我目前使用的当前命令的另一个问题是不同的视频帧。例如,如果视频只有 800x600,则文字会非常大。如果视频为 1920x1080,则文字会非常小。我希望根据帧速率调整文本大小。就屏幕尺寸而言,它应该看起来像上面那样。
一种方法是使用带有字幕过滤器的 ASS 字幕:
优点:
ffmpeg
命令很简单。坏处:
示例 ASS 文件(在 Aegisub 3.2.2 中创建):