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

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

回帖奖励 10000 活跃度 回复本帖可获得 1000 活跃度奖励! 每人限 1 次
  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    47

    主题

    324

    帖子

    2364

    VC币

    星辰大海

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

    积分
    1161185

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

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

    播放器用的滤镜转这里: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也被合并了,已经基本可以作为一个长期稳定版用了


    项目开源网址:https://github.com/Masaiki/assrender
    原仓库:https://github.com/pinterf/assrender

    本帖子中包含更多资源

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

    x

    评分

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

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-17 21:39
  • 签到天数: 40 天

    [LV.5]常住居民I

    38

    主题

    1326

    帖子

    2020

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    197544

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

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

    回帖奖励 +1000 活跃度

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    47

    主题

    324

    帖子

    2364

    VC币

    星辰大海

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

    积分
    1161185

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

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

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

    使用道具 举报

  • TA的每日心情

    2021-4-8 08:40
  • 签到天数: 37 天

    [LV.5]常住居民I

    16

    主题

    186

    帖子

    0

    VC币

    中级会员

    Rank: 3Rank: 3

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

    回帖奖励 +1000 活跃度

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    47

    主题

    324

    帖子

    2364

    VC币

    星辰大海

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

    积分
    1161185

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

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

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

    使用道具 举报

  • TA的每日心情

    2021-4-8 08:40
  • 签到天数: 37 天

    [LV.5]常住居民I

    16

    主题

    186

    帖子

    0

    VC币

    中级会员

    Rank: 3Rank: 3

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    47

    主题

    324

    帖子

    2364

    VC币

    星辰大海

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

    积分
    1161185

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

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

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

    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    3 小时前
  • 签到天数: 35 天

    [LV.5]常住居民I

    4

    主题

    40

    帖子

    0

    VC币

    中级会员

    Rank: 3Rank: 3

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

    回帖奖励 +1000 活跃度

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

    使用道具 举报

    该用户从未签到

    1

    主题

    13

    帖子

    0

    VC币

    中级会员

    Rank: 3Rank: 3

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

    回帖奖励 +1000 活跃度

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    47

    主题

    324

    帖子

    2364

    VC币

    星辰大海

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

    积分
    1161185

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

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

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

    使用道具 举报

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

    本版积分规则

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