请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
查看: 4546|回复: 53

Assrender:基于libass的AVS/VS字幕滤镜

43

主题

248

帖子

3364

VC币

星辰大海

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
720005

崭露头角活跃达人新人登场渐入佳境

菜姬 发表于 2021-4-25 18:37:46 | 显示全部楼层 |阅读模式
本帖最后由 菜姬 于 2021-9-22 18:54 编辑

播放器用的滤镜转这里:AssFilterMod: 基于libass的DirectShow滤镜
本贴的滤镜是用来压制内嵌字幕的


VSFilter系的字幕滤镜包括(VSFilter, xy-VSFilter, VSFilterMod)都仅限于Windows平台,而且代码臃肿不堪难以维护,所以现在跨平台的播放器(mpv、VLC)基本都采用的libass
libass在发布0.15.0后可用性大大提高 大部分和VSFilter系能保持一致了
另外libass的一个显著的优点就是不再使用GDI渲染文字了,而是使用FreeType/DirectWrite,可以正常的显示竖排的思源黑体 思源宋体 不会像VSFilter系那样竖排横排大小不一致
所以现在将字幕滤镜从VSFilter系切到基于libass的滤镜是一个不错的选择


assrender是基于libass的AVS(+)滤镜,目前pinterf正在维护他的一个fork
我基于pinterf的fork把assrender移植到了Vapoursynth上
assrender 相比VSFilter系 的优点除了libass带来的有点以外 还支持了更多的视频格式(以下是Vapoursynth版的,AVS+支持的还更多一点)
  • YUV420P8
  • YUV420P10
  • YUV420P12
  • YUV420P14
  • YUV420P16
  • YUV422P8
  • YUV422P10
  • YUV422P12
  • YUV422P14
  • YUV422P16
  • YUV444P8
  • RGB24
  • YUV444P10
  • YUV444P12
  • YUV444P14
  • YUV444P16
  • RGB48
  • Gray8
  • Gray16
和色彩空间
  • Rec2020, BT.2020
  • Rec709, BT.709
  • Rec601, BT.601
  • PC.709
  • PC.601
  • TV.fcc, PC.fcc
  • TV.240m, PC.240m
以及支持从文件夹临时加载字体



Vapoursynth上assrender的用法为
  1. core.assrender.TextSub(clip clip, string file, [string vfr, int hinting, float scale, float line_spacing, float dar, float sar, int top, int bottom, int left, int right, string charset, int debuglevel, string fontdir, string srt_font, string colorspace])
复制代码
除了移植之外我也给assrender打了两个小patch
  • 如果没有指定字幕文件的编码的话 会检测一下BOM 最后回落到UTF-8
  • Apache553大佬给libass的PR 按需加载字体 这样就不用每次用libass都加载系统字体文件夹的所有字体了

另外我在Ubuntu20.04上、MSYS+Mingw-w64、cmake+vcpkg上也都测试过了,都可以正常编译和使用
每次发布的assrender二进制会根据libass的版本分为两个版本 一个跟进最新commit 一个为最新的release的版本 当然都打了@Apache553的patch
同时,除了提供assrender.dll外 还会提供wangqr维护的Aegisub使用的ass.dll,保证在Aegisub中预览和压制时显示效果时一致的。


2021/05/02: libass版本跟随上游更新至0.15.1 基于0.15.0修复了若干bug,以及几个和VSFilter系的兼容问题,按需加载字体的patch也被合并了,已经基本可以作为一个长期稳定版用了

2021/09/22: 又更新了几个版本,更新日志详见github
项目开源网址:https://github.com/Masaiki/assrender
原仓库:https://github.com/pinterf/assrender

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 2活跃度 +83967 收起 理由
Seekladoom + 51200 libass这个更新好啊!
vxzms + 32767

查看全部评分

回复

使用道具 举报

34

主题

682

帖子

46

VC币

荣誉会员

Rank: 14Rank: 14Rank: 14Rank: 14

积分
101201

崭露头角活跃达人CD!BD!

孤雨独火 发表于 2021-4-25 18:46:25 | 显示全部楼层

回帖奖励 +1000 活跃度

pf的xy-VSFilter分支也挺活跃的我基本一直用它的
回复 支持 反对

使用道具 举报

43

主题

248

帖子

3364

VC币

星辰大海

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
720005

崭露头角活跃达人新人登场渐入佳境

菜姬  楼主| 发表于 2021-4-25 18:51:03 | 显示全部楼层
孤雨独火 发表于 2021-4-25 18:46
pf的xy-VSFilter分支也挺活跃的我基本一直用它的

确实,最近还更新了VTT的支持
回复 支持 反对

使用道具 举报

4

主题

77

帖子

0

VC币

中级会员

Rank: 3Rank: 3

积分
3162
楚轩 发表于 2021-4-25 20:52:03 | 显示全部楼层

回帖奖励 +1000 活跃度

有没有mpcbe可用的插件
回复 支持 反对

使用道具 举报

43

主题

248

帖子

3364

VC币

星辰大海

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
720005

崭露头角活跃达人新人登场渐入佳境

菜姬  楼主| 发表于 2021-4-25 21:07:33 | 显示全部楼层
楚轩 发表于 2021-4-25 20:52
有没有mpcbe可用的插件

嗯… 想要让mpcbe用 要么照着vsfilter实现接口暴露出来
要么mpcbe主动适配
说实话 可能性都不大
或许到hc那里提个issue请求适配更靠谱一点(
回复 支持 反对

使用道具 举报

4

主题

77

帖子

0

VC币

中级会员

Rank: 3Rank: 3

积分
3162
楚轩 发表于 2021-4-26 08:53:33 | 显示全部楼层
菜姬 发表于 2021-4-25 21:07
嗯… 想要让mpcbe用 要么照着vsfilter实现接口暴露出来
要么mpcbe主动适配
说实话 可能性都不大

hc'和be不差不多吗 为啥hc会主动适配
回复 支持 反对

使用道具 举报

43

主题

248

帖子

3364

VC币

星辰大海

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
720005

崭露头角活跃达人新人登场渐入佳境

菜姬  楼主| 发表于 2021-4-26 12:24:54 | 显示全部楼层
本帖最后由 菜姬 于 2021-4-29 21:38 编辑
楚轩 发表于 2021-4-26 08:53
hc'和be不差不多吗 为啥hc会主动适配

hc现在在github上维护,比较容易联系上吧

回复 支持 反对

使用道具 举报

4

主题

47

帖子

0

VC币

中级会员

Rank: 3Rank: 3

积分
10898
小笠原翔子 发表于 2021-4-26 13:13:34 | 显示全部楼层

回帖奖励 +1000 活跃度

看到yuv444p10就气.....盒子播放器播不了
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

VC币

中级会员

Rank: 3Rank: 3

积分
2155
lanchuyu 发表于 2021-4-26 13:18:48 | 显示全部楼层

回帖奖励 +1000 活跃度

这代码加到哪里不太会用
回复 支持 反对

使用道具 举报

43

主题

248

帖子

3364

VC币

星辰大海

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
720005

崭露头角活跃达人新人登场渐入佳境

菜姬  楼主| 发表于 2021-4-26 14:25:00 | 显示全部楼层
lanchuyu 发表于 2021-4-26 13:18
这代码加到哪里不太会用

这个是给制作字幕的人用的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表