使用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 的 - 更新等