找回密码
 立即注册
楼主: rspOvO

[小工具]字幕批量处理-亮度调整&调轴&嵌字体&重命名(26/05/31更新)

  • TA的每日心情

    昨天 11:21
  • 签到天数: 53 天

    [LV.5]常住居民I

    1

    主题

    21

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    7872
    rspOvO  楼主| 发表于 2026-5-26 10:56:01 | 显示全部楼层
    anime7pro 发表于 2026-5-18 14:19
    再有一个小问题,相对于AssFontSubset或assfonts
    ssahdrify-cli生成的嵌入字体子集的ass字幕尺寸有点大
    目 ...

    应该修好了
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 10:18
  • 签到天数: 43 天

    [LV.5]常住居民I

    0

    主题

    16

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2713
    anime7pro 发表于 2026-5-26 19:59:14 | 显示全部楼层
    ℹ 正在使用字体缓存(位于 C:\Users\...\AppData\Roaming\ssahdrify\cli_font_cache.sqlite3)。
      传 --no-cache 可改为仅使用系统字体。
    已写入:...\cat.embed.ass
      警告:missing font: Dream Han Serif SC W22
    完成:1 个已写入,0 个计划写入,0 个已跳过,0 个失败

    初步测试 梦源宋体(ttc)依然无法嵌入
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 10:18
  • 签到天数: 43 天

    [LV.5]常住居民I

    0

    主题

    16

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2713
    anime7pro 发表于 2026-5-26 20:08:21 | 显示全部楼层
    @echo off
    chcp 65001 >nul
    setlocal enabledelayedexpansion

    set "ssahdrify=...\ssahdrify-cli.exe"
    set "src=%~dp0"
    set "src=%src:~0, -1%"
    set "ass_out=%src%\_ass_out"
    set "mkv_out=%src%\_mkv_out"

    rem set "fontdir=...\tmpFonts"
    if defined fontdir if not fontdir=="" (
        if exist "%fontdir%" (
            %ssahdrify% refresh-fonts ^
                --font-dir "%fontdir%" ^
                --font-dir "%windir%\fonts" ^
                --font-dir "%localappdata%\Microsoft\Windows\Fonts"
        )
    )

    pushd "%src%"

    if exist "%ass_out%" (rd /s /q "%ass_out%")
    mkdir "%ass_out%"
    if exist "%mkv_out%" (rd /s /q "%mkv_out%")
    mkdir "%mkv_out%"

    for %%I in (*.mkv *.mp4) do (
        if not exist "%%~nI.ass" (
            echo missing %%~nI.ass ...
            PAUSE
            exit
        )

        %ssahdrify% --fail-fast embed "%%~nI.ass" --on-missing fail --output-dir "%ass_out%"

        set "embedass=%ass_out%\%%~nI.embed.ass"
        set "outfile=%mkv_out%\%%~nI.mkv"

        mkvmerge ^
            --title "" ^
            --output "!outfile!" ^
            --no-global-tags --no-track-tags ^
            --no-subtitles --no-attachments ^
            "%%I" ^
            --language 0:zh --track-name 0:"" ^
            --default-track-flag 0:yes --forced-display-flag 0:no ^
            "!embedass!"
    )

    popd
    endlocal
    回复

    使用道具 举报

  • TA的每日心情

    昨天 11:21
  • 签到天数: 53 天

    [LV.5]常住居民I

    1

    主题

    21

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    7872
    rspOvO  楼主| 发表于 2026-5-28 15:51:55 | 显示全部楼层
    anime7pro 发表于 2026-5-26 20:08
    @echo off
    chcp 65001 >nul
    setlocal enabledelayedexpansion

    谢谢反馈,现在应该修复了
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 10:18
  • 签到天数: 43 天

    [LV.5]常住居民I

    0

    主题

    16

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2713
    anime7pro 发表于 2026-5-29 12:51:25 | 显示全部楼层
    rspOvO 发表于 2026-5-28 15:51
    谢谢反馈,现在应该修复了

    删除了上一版本的缓存后,重新运行脚本(生成新缓存),依然无法嵌入 Dream Han Serif SC W22
    在使用AssFontSubset 或 assfonts 对这个ass字幕的字体子集化时,是可以正常处理 Dream Han Serif SC W22

    将字幕中使用的Dream Han Serif SC W22 换成 Microsoft YaHei,即可通过。


    又测试了梦源字体的ttf版本,同样无法嵌入,看来是梦源字体对于这个程序而言是特例了,而不是程序不能处理ttc


    还有一个问题,如果out-dir设置在ramdisk中,字体子集嵌入的输出会失败,应该是bug回归了




    谢谢楼主,加油!

    回复

    使用道具 举报

  • TA的每日心情

    昨天 11:21
  • 签到天数: 53 天

    [LV.5]常住居民I

    1

    主题

    21

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    7872
    rspOvO  楼主| 发表于 2026-5-29 22:58:34 | 显示全部楼层
    anime7pro 发表于 2026-5-29 12:51
    删除了上一版本的缓存后,重新运行脚本(生成新缓存),依然无法嵌入 Dream Han Serif SC W22
    在使用AssF ...

    拿到了字体文件,我看看到底是怎么一回事,另外方便详细说一下ramdisk的问题吗
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 10:18
  • 签到天数: 43 天

    [LV.5]常住居民I

    0

    主题

    16

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2713
    anime7pro 发表于 2026-5-30 10:04:31 | 显示全部楼层
    rspOvO 发表于 2026-5-29 22:58
    拿到了字体文件,我看看到底是怎么一回事,另外方便详细说一下ramdisk的问题吗
    ...

    经楼主提醒又试了一下
    在 win2022 Primo Ramdisk 6.6.0 是可以正常使用的
    但在 win10 QSoftRamDisk 5.3.1.9 就会报错
    应该是不同的QSoftramdisk软件的兼容性问题
    这个问题影响不大


    之所以把字幕的临时文件夹放在ramdisk上是因为我使用的脚本中有子集化的ass转sup的操作
    会产生很多小图片
    改一下脚本也没什么问题
    回复

    使用道具 举报

  • TA的每日心情

    昨天 11:21
  • 签到天数: 53 天

    [LV.5]常住居民I

    1

    主题

    21

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    7872
    rspOvO  楼主| 发表于 2026-5-30 11:33:40 | 显示全部楼层
    anime7pro 发表于 2026-5-30 10:04
    经楼主提醒又试了一下
    在 win2022 Primo Ramdisk 6.6.0 是可以正常使用的
    但在 win10 QSoftRamDisk 5.3.1 ...

    好的好的,之前我本地的字体库里没有梦源黑体,找到了它的仓库在本地验证了一下,这次应该能正常嵌入这个字体了
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 10:18
  • 签到天数: 43 天

    [LV.5]常住居民I

    0

    主题

    16

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2713
    anime7pro 发表于 2026-5-30 12:50:20 | 显示全部楼层
    v1.5.0-preview.4
    测试后可以处理梦源字体了
    不过依然是win2022 Primo Ramdisk 6.6.0 成功
    win10 QSoftRamDisk 5.3.1.9失败
    小问题可以接受

    ass中使用的是dream han serif sc w22的ttc
    嵌入的字体项为:
    fontname: dream_han_serif_sc_w22.ttf
    成功!
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 10:18
  • 签到天数: 43 天

    [LV.5]常住居民I

    0

    主题

    16

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2713
    anime7pro 发表于 2026-5-30 13:05:26 | 显示全部楼层
    分别使用3款软件AssFontSubset assfonts ssahdrify
    字体子集化处理同一个ass字幕
    看一下生成的子集字体与字幕合计的最终大小
    合计最小的是AssFontSubset,但字体是独立的,并没有嵌入到ass中
    assfonts可以把字体嵌入也可不嵌入,最终合计体积是最大
    ssahdrify只能在aas中嵌入字体,文件体积比assfonts小,比assfontsubset大

    处理速度上看三者没有明显差异
    感觉上ssahdrify有优势,且更大优势是多种功能的链式处理
    还有一个最重要的因素是AssFontSubset assfonts基本上停止更新了
    而 ssahdrify 正当时
    谢谢楼主!加油!!!
    回复

    使用道具 举报

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

    本版积分规则

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