关于视频字幕压制方法及问题解决

Firgt的博客发布

去年在某网站逛资源的时候,下载了一部电影,视频是H.265格式,字幕是ASS。使用PotPlayer以及KMPlayer都可以正常加载,可在网页或者一些播放器就不能正常加载ASS字幕,甚至都不能播放。

问题呈现

  1. 内嵌ASS字幕的视频不能在网页或者一些播放器正常加载ASS字幕
  2. H.265格式视频在网页或者一些播放器提示不支持视频格式

解决问题

1、ASS字幕

注意:仅部分ASS特效字幕无法正常显示,如你的ASS字幕可以正常播放,可忽略该问题

解决方案一:将ASS字幕转换成其他字幕格式并重新嵌入视频

工具:
gMKVExtractGUI
Mkvtoolnix
一些在线转换字幕的网站(自己找)

步骤:

  1. 解包视频文件

    gMKVExtractGUI能用于抽取MKV视频中的字幕、音频、字体等,对于非MKV格式的视频,如MP4、AVI等格式,可以把这些视频直接拖进Mkvtoolnix中,封装成MKV格式,然后再用gMKVExtractGUI提取即可

  2. 转换

得到.ass字幕文件后去网上找一些在线转换字幕的网站
转换为例如.srt等常见的字幕格式并下载

  1. 重新封装

视频教程 (跳转01:18分位置)

MKV视频的字幕都是软字幕,需要高级一点的视频播放器才可以正常识别

完成!

可原来ASS字幕的炫酷特效都转换为了普通的文本,未免有点单调了,那如何做到既能看到炫酷特效又可以正常播放呢?
没错!就是把ASS字幕渲染为透明视频!

解决方案二:将ASS字幕渲染成透明视频并与原视频缝合

步骤一:将ASS字幕渲染成透明视频

工具:
FFmpeg

打开cmd并cd到FFmpeg的文件夹(一定要cd到bin文件夹!)
代码:
cd 你的FFmpeg根目录/bin/

接着键入以下代码:
ffmpeg -y -f lavfi -i "[email protected]:s=视频分辨率:r=视频帧率:d=视频总时长,format=rgba,subtitles=ASS字幕文件:alpha=1" -c:v png 透明视频.mov

举例,视频是1080p的(也就是1920x1080),24帧,总时长1:34:56,字幕提取后的路径是D://output/sub.ass,透明视频存放路径是D://sub.mov
那代码就是
ffmpeg -y -f lavfi -i "[email protected]:s=1920x1080:r=24:d=01\\:24\\:56,format=rgba,subtitles=D://output/sub.ass:alpha=1" -c:v png D://sub.mov

步骤二:合并

在经过一段时间的渲染后,你的ASS字幕就成功转换为透明视频,之后使用Pr等一些剪辑软件与源视频进行合并并导出就大功告成啦(具体教程:视频)

但是有一些人的电脑连显卡都没有,不能打开Pr,那如何缝合呢?

答案就是使用Shotcut!它免费且开源高效,不比Pr逊色,而且可以在没有显卡的情况下正常工作!(具体使用Shotcut合并的教程:视频 [你可以参考Pr的教程])

完成!

2、视频

解决方案:转换格式

工具:
FFmpeg

步骤:

  1. 打开cmd并cd到FFmpeg根目录里的bin文件夹
    代码:cd 你的FFmpeg根目录/bin/

  2. 接着键入以下代码:
    ffmpeg.exe -i 视频路径文件 -map 0 -c:v libx264 -crf 18 -vf format=yuv420p -c:a copy 导出视频路径文件

    举例,原视频是H.265的(也就是hevc)路径是D://h265test.mp4,导出转换后视频存放路径是D://h264test.mp4
    那代码就是
    ffmpeg.exe -i D://h265test.mp4 -map 0 -c:v libx264 -crf 18 -vf format=yuv420p -c:a copy D://h264test.mp4

这样你就得到了转换后的视频,然后重新封装。

如果可以正常观看,那么就大功告成了!

如果你有建议或要反馈问题,可以联系我
作者:FirgtZhong

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码

请我喝杯咖啡吧~

微信