You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg烧录ASS字幕时边框宽度异常问题求助

嘿,我来帮你解决把ASS字幕烧录到640x360视频时边框宽度不对的问题。结合你给出的部分ASS脚本内容,下面是几个常见的原因和对应的解决办法:

可能的原因与解决办法

1. 样式中的OutlineWidth参数设置不合理

ASS字幕的边框宽度是基于PlayResX/PlayResY的相对单位,而非绝对像素值。你已经固定了PlayResX: 640和PlayResY: 360,所以OutlineWidth的数值会直接对应这个分辨率下的实际像素比例。

比如如果数值设得太小(比如0.5),在640x360视频里可能几乎看不到边框;设得太大(比如4),又会显得过于粗重。你需要补全[V4+ Styles]里的完整样式定义,确保OutlineWidth是合适的数值。

完整的样式格式示例:

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, OutlineWidth, ShadowOffset, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,微软雅黑,20,&H00FFFFFF,&H000000FF,&H00000000,&H80000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

这里的OutlineWidth: 2对应640x360分辨率下的2像素边框,你可以根据需求调整为1、1.5或3这类数值。

2. BorderStyle参数设置错误

ASS的BorderStyle有三种可选值:

  • 1: 同时显示边框和阴影
  • 2: 只显示边框
  • 3: 只显示阴影

如果你的样式里BorderStyle设为3,那自然看不到边框;如果设为1但阴影偏移过大,也可能让边框看起来“变宽”或者被阴影掩盖。建议优先设为2单独测试边框效果,确认宽度合适后再调整回1添加阴影。

3. 烧录工具的缩放映射问题

如果你用ffmpeg这类工具烧录字幕,要确保工具按照ASS脚本里的640x360分辨率映射字幕,而非自动适配视频的实际分辨率(若视频分辨率与640x360不一致)。

正确的ffmpeg命令示例:

ffmpeg -i input.mp4 -vf "ass=你的字幕文件.ass:resolution=640x360" -c:v libx264 -crf 23 output.mp4

如果视频本身就是640x360分辨率,可去掉:resolution=640x360参数,工具会自动读取脚本里的播放分辨率。

4. YCbCr Matrix设置异常

你的脚本里YCbCr Matrix: None,部分播放器或烧录工具可能会因为这个参数导致颜色渲染异常,间接让边框看起来宽度不对。建议改成标清视频常用的BT.601:

[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
YCbCr Matrix: BT.601
PlayResX: 640
PlayResY: 360
快速排查步骤
  1. 补全ASS脚本中[V4+ Styles]的完整内容,确认OutlineWidth和BorderStyle参数
  2. 调整OutlineWidth数值,在Aegisub的640x360预览窗口查看效果
  3. 修改YCbCr Matrix为BT.601避免渲染异常
  4. 用正确的工具参数烧录字幕,确保分辨率映射正确

内容的提问来源于stack exchange,提问作者Tac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:48:12