subtitles筛选

subtitles筛选

.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.mkvsubtitles=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提供字体文件的完整路径。

另请参阅

相关内容