梯子不是太稳定,YouTube 时上的去时上不去,索性在能上的时候把想看的视频都下下来,传到国内的一些视频站作为备份。但多数视频站不支持 CC 软字幕(不是很想传 B 站,因为经常撞车),故需要把字幕(哪怕是 YouTube 自动生成的英文字幕)做成硬字幕内嵌到视频中。

将字幕转换成 ASS 格式

不用 SRT 格式字幕的原因很简单,懒得在 ffmpeg 参数里指定大小尺寸字体之类的参数了。

我用的是 Arctime 不带 Pro 的免费版。

参数简要列举如下:

  • 字体
    • Noto Sans SC
    • 60 pt
  • 背景
    • 勾选「矩形边框」
  • 字幕位置
    • 垂直边距:100

使用 FFmpeg 压制

CPU 编码

最简单的方式是使用 CPU 编码器:

1
ffmpeg -i video.mp4 -vf ass=video.ass output.mp4

A 卡硬件加速(AMF)

鉴于我是 A 卡(HD 7850 2G),可以用 AMF 硬件编码器,这样就可以并行开多个编码任务然后电脑也不会太卡:

1
ffmpeg -i video.mp4 -vf ass=video.ass -c:v h264_amf output.mp4

哦对,顺带一提,在更新最新版本的 Pr(Premiere Pro v14.4.0 & Media Encoder 14.4)之后,A 卡也可以在渲染时使用硬件加速了。实测 HD 7850 最高支持 1080P(宽 ≤ 1920,高 ≤ 1080)H.264 的硬件加速。实际效果上,渲染速度提升还是可以感知到的,渲染 25 分钟左右的视频(仅剪辑和加 BGM)之前需要差不多半个小时,现在只需要 20 分钟不到了(CPU 是 E5 2660,8C16T)。但渲染过程中 CPU 总占用从 100% 跌至 30% 左右,电脑的正常使用不再受影响,当然 GPU 就全程保持 Video Encode 满载了。

N 卡硬件加速(NVENC & NVDEC)

当然 N 卡有更好用的 NVENC 和 NVDEC 硬件编解码器,命令建议参考 NVIDIA 官方博客,我这里随便列一各,也不知道能不能用(亮机卡 GTS 250 并没有这俩编解码器):

1
ffmpeg -vsync 0 -hwaccel cuvid -i video.mp4 -vf ass=video.ass  -c:v h264_nvenc -y output.mp4

参考

参考