使用FFMPEG,我们如何在黑条区域或视频下方添加字幕?

Posted

技术标签:

【中文标题】使用FFMPEG,我们如何在黑条区域或视频下方添加字幕?【英文标题】:Using FFMPEG, how do we add subtitles in the black bar area or under the video? 【发布时间】:2020-09-26 04:05:50 【问题描述】:

我按照以下步骤操作:

    添加了黑条

    -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1" 来源:How to add black borders to video

    添加了字幕(“刻录”到视频中)

    ffmpeg -i "imput.mp4" -lavfi "subtitles=subtitles.srt:force_style='Alignment=0,OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize=18,MarginL=5 ,MarginV=25'" -crf 1 -c:a copy "output.mp4" 来源:ffmpeg subtitles alignment and position

现在我不知道如何将字幕放置在视频下方或黑屏中。

编辑:添加屏幕截图以澄清

Screenshot of the Problem

【问题讨论】:

【参考方案1】:

如果没有带有黑条的视频截图,我们只能猜测什么对你有用。

最容易尝试的是默认字幕定位在底部中心。

这是您的命令的组合版本,没有所有额外的垃圾:

ffmpeg -i input.mp4 -filter_complex "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:-1:-1,setsar=1,subtitles=subtitles.srt[v]" -map "[v]" -map 0:a -c:a copy output.mp4

字幕将在底部中心有标准位置。

【讨论】:

谢谢。我还添加了屏幕截图。 字幕文本没有放在黑条区域下方。【参考方案2】:

使用这样的过滤器在电影下方刻录字幕效果很好:

-vf "pad=1920:960:0:0:color=black,subtitles=subs.srt:si=0:force_style='Alignment=6,MarginV=246,Fontsize=18'"

以上内容适用于在 1920 x 800 源视频下方最多放置两行的字幕。您必须针对每种情况调整数字。

Alignment=6 使字幕水平居中,并根据第一行的上边缘垂直放置;即多行字幕的第一行与单行字幕出现在同一位置。我发现在图片下方放置字幕时更有意义。

我还没有找到可以用来计算MarginV 的文档。经验告诉我,增加它会使字幕向下移动;但只有通过反复试验,我才能为任何特定用途找到正确的数字。以上通常适用于原始高度为 800 的扩展,底部边框为 160 像素,最多适用于 Fontsize=18 的两行。

【讨论】:

以上是关于使用FFMPEG,我们如何在黑条区域或视频下方添加字幕?的主要内容,如果未能解决你的问题,请参考以下文章

苹果手机如何转发信息

如何使用 VLC 或 FFMPEG 命令行将外部音轨添加到视频文件

如何在 UITableView 弹跳区域下方编辑或添加 UIView(顶部)?像 Twitter 的 - 更新等

上面的黑条 iPhone X。如何摆脱?

ffmpeg:如何使用 ffmpeg 在视频中仅放置颜色叠加视频或应用不同类型的滤色器(如 instagram)

使用ffmpeg给视频添加图片及文字水印