llo*_*gan 13

ASS字幕可以具有文本的半透明背景.
最简单的方法是使用aegisub.
Subtitle→ Styles manager.Current Script选择下Default,然后按Edit按钮.Outline和Shadow值.检查Opaque box.Colors点击下面的颜色Outline或Shadows.将出现一个窗口.调整Alpha框的值以更改透明度..ass文件.现在您可以使用AAS文件制作hardsubs或softsubsffmpeg.
如果你想要hardsubs你可以使用字幕过滤器添加透明背景与force_style选项.
ffmpeg -i input -filter_complex "subtitles=subs.ass:force_style='OutlineColour=&H80000000,BorderStyle=3,Outline=1,Shadow=0,MarginV=20'" output
Run Code Online (Sandbox Code Playgroud)
这将适用于FFmpeg支持的任何基于文本的字幕,因为过滤器会自动将它们转换为ASS.
有关格式化选项,请参阅SubStation Alpha(ASS)样式字段.
如果您的字幕包含多行,由于长行的自动换行或有意的换行符,背景将重叠并且可能看起来很丑,如下所示:
您可以通过以下方式避免此
Outline和Shadow大小更改为0.Alpha所需的透明度级别.在文本编辑器中编辑ASS文件.在Style线改变与相对应的值BorderStyle来4.这将填充每个字幕事件的边界框背景.示例Style行:
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H80000000,&H80000000,-1,0,0,0,100,100,0,0,4,0,0,2,10,10,10,1
Run Code Online (Sandbox Code Playgroud)例:
请注意,这BorderStyle=4是一个非标准值,因此它可能无法在所有播放器中正常工作.
感谢sup和wm4的BorderStyle建议.
该drawbox过滤器可用于创建一个背景框.如果您希望框跨越宽度,这可能很有用.
ffmpeg -i input -filter_complex "drawbox=w=iw:h=24:y=ih-28:t=max:color=black@0.4,subtitles=subs.ass" output
Run Code Online (Sandbox Code Playgroud)
缺点是你需要为长字幕说明换行或自动换行.简单地使盒子更高以进行补偿就足够了,但是看起来很难看,因为字幕基线保持静止:单行字幕在顶部比底部有更多的填充.
创建一个带有透明框和您喜欢的尺寸的 Alpha 通道的 png。您可以使用gimp 或photoshop。
然后使用这个命令:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \
-codec:a copy out.mp4
Run Code Online (Sandbox Code Playgroud)
其中 10:10 是距左上角的距离。
之后您可以插入字幕。
| 归档时间: |
|
| 查看次数: |
9899 次 |
| 最近记录: |