.mkv
我想在 Windows 上为视频添加水印文本ffmpeg
。我希望水印像字幕一样,从第二分钟开始,持续 30 秒,并显示:“版权归 mysite.com 所有”。
我尝试mkvmerge
添加字幕,但其他人很容易删除它,所以现在我只能依靠他们ffmpeg
帮我完成这件事。有人能帮我完成这个过程吗?
我希望水印确实存在于视频上,因此无法使用 删除它mkvmerge
。
答案1
您可以使用subtitles
或者drawtext
过滤器可将文本放置在视频上,但与任何视频过滤器一样,两种方法需要重新编码视频。
subtitles
筛选
接受 ASS 或 SRT 格式的字幕文件。这些可以轻松使用埃吉苏布,甚至可以通过文本编辑器。
该过滤器将产生硬字幕字幕是视频的一部分。无法打开或关闭。
时间由字幕文件控制。
ASS 字幕应该能够实现比 SRT 字幕更精美的效果或使用滤镜
drawtext
。
例子
ffmpeg -i in.mkv -map 0 -vf subtitles=subs.ass -c copy -c:v libx264 out.mkv
此示例将覆盖默认流选择行为并使用 映射输入中的所有流
-map 0
。所有流将流已复制除了将被重新编码的视频流之外。
该过滤器还可以引用输入文件中现有的字幕流,例如
subtitles=video.mkv
或subtitles=video.mkv:si=1
。
drawtext
筛选
此滤镜将文本绘制到视频上。通常用于简单的单词或句子。显示的时间可以通过enable
选项。
例子
ffmpeg -i in.mkv -map 0 -vf "drawtext=enable='between(t,120,150)':fontsize=20: \
font=Sans:text='© mysite.com':x=w-tw-10:y=h-th-10" -c copy -c:v libx264 out.mkv
此示例将文本放置在右下角,填充为 10 像素。
如果您的
ffmpeg
构建不支持 fontconfig,那么您将必须使用该fontfile
选项而不是font
提供字体文件的完整路径。