Copyright(c) 2018-2021 yyfll(yanyifei66@gmail.com) 本批处理是遵守GNU通用公共许可协议第二版(GPLv2)的自由软件 本批处理是用于将字幕和字体通过MKVmerge快速封装到MKV中的无用批处理 本批处理需要MKVmerge作为依赖 此版本包括一个重要问题修复和多个功能改进,建议立刻更新。 此版本包括一个重要问题修复和一个功能改进 ASFMKV并没有抽取字体子集这种高级功能,这导致ASFMKV只是很单纯的把整个字体包作为附件塞在MKV文件的头部 这样做的结果就是MKV文件头部臃肿,在流视频下载头部的时候会非常吃力 整个字体包往往会比字幕所需的子集大很多,所以体积大得很没有必要 我建议各位如果有一点技术力,也请不要直接使用ASFMKV嵌入整个字体包而是抽取了字体子集再用ASFMKV嵌入 (我并没有研究过如何抽子集,应该有一键式抽取嵌入的软件,所以ASFMKV确实没什么价值) 注意:Windows 7系统的用户,由于CMD版本过旧,若无法正常运行,请参考常见问题 从EU1.03起,mkvmerge的路径可以在ASFMKV中设定,详见下方自定义变量 注意:ExtL1.05之前的版本中,由于ASFMKV需要定位到源目录,故网络路径不受支持 其实你也可以直接把文件/文件夹直接拖进ASFMKV,就像拖进回收站那样 以下格式兼容性是对非ExtL版本而言的,ExtL版本有内建扩展名表,用户可以自行更改,完整的支持列表见mkvmerge Doc 以下格式表是内建的,不可更改 为什么我打不开ASFMKV? 在 Windows 7 SP1 及更早版本的 Windows 对 请您用记事本打开ASFMKV,删除文件头部的 如果您有其他更好的编辑器,操作方法也是类似的,删去 并选择使用"ANSI"编码或系统代码页(简体中文系统为"GB2312",也兼容"GB18030"、"GBK")来保存 为什么ASFMKV显示输出成功但没有任何文件输出? 在ExtL1.03及之后的版本中,一切文件没有得到处理的原因都会在运行结束后输出在屏幕上 请检查您的输入文件夹和ASFMKV的自定义变量设定,有以下可能性: 请使用文本编辑器打开ASFMKV,修改NotSub和SubDir (推荐兼容Batch语法高亮的编辑器,这样比较好找变量位置,如VS Code) 或在使用EU2.10/ExtL1.00及更新版本时时在路径处输入 (这样修改的设定并不会保存,下一次还需要再修改) 为什么ASFMKV总是显示错误 在EU2.12f和ExtL1.02f(GitHub为ExtL1.02)前的几个版本,由于对mkvmerge检测系统的设计失误 导致找不到mkvmerge时会弹出错误而不是直接禁止继续使用 在ExtL1.03更新前的版本中,如果mkvmerge不在 但运行时无法输出任何文件,第二次运行时就会显示以上错误 该问题已经在ExtL1.03中完全修复,请尽快更新 为了符合不同用户的使用习惯,ASFMKV有着大量的自定义变量来符合不同用户的使用习惯 ASFMKV的主界面的"[CUSTOM SETTINGS]"详细显示了各自定义变量的情况和影响 自定义变量位于ASFMKV的头部,用文本编辑器打开就能看到,每个变量都有详细的解释 推荐使用有Batch语法高亮功能的文本编辑器,如VS Code、UltraEdit,不然改起来很痛苦 在修改的时候只需要把行首为 EU2.10/ExtL1.00-MG 及更新版本 在主界面(即要求您输入文件路径、有一坨信息提示的时候)的"文件路径"处输入 使用内置变量管理器只能更改本次使用时的设定,关闭窗口即重置 ExtList(仅ExtL版本) NotDel NotSub NotFont OutPath SearchFilter ui_language priority SubDir DEBUG_MODE NUL_OUTPUT EXEin (全部更新至EasyUse1.0) 调用注意 调用方法①(CMD) 调用方法②(CMD) 调用方法③: 进程优先级 MKVmerge输出语言 文件过滤器 本BAT使用了以下挂接组件 MKVmerge(LICENSE: GPLv2) Replace for Batch(LICENSE: MIT) 本BAT使用了以下原创组件最近更新
ExtL 1.05 (重要更新)
ExtL 1.04 (重要更新)
findstr,速度更快更准确(searchfilter的老坑终于被填上了...)searchfilter和debug_mode变量的设定目录
1. 为什么我不推荐直接使用ASFMKV嵌入完整字体包
2. 系统要求
3. 开始混流
4. 格式兼容性
4.1. 可接受的媒体容器格式
4.2. 可接受的字幕格式
4.3. 可接受的字体格式
4.4. 输出的媒体容器格式
5. 常见问题
chcp代码页切换的兼容性非常的差,以至于一切换就有可能导致崩溃。chcp 65001,再选择"另存为"并在下方选择以"ANSI"编码保存。chcp 65001
set打开内置的设定管理器"mkvmerge" is not recognized as an internal or external command...path下但和ASFMKV放在同一目录,则第一次运行时会显示检测到了mkvmerge6. 自定义变量
6.1. 修改方式
set的那一行,等号后面的值修改为目标值就行了,如set "notsub=A",空缺就直接set "notsub="set就可以打开内置的变量管理器6.2. 变量表
控制ASFMKV的多媒体文件输入过滤器,决定哪些扩展名可以输入
控制是否要删除输入文件
控制在没有外挂字幕的时候(或者找不到外挂字幕的时候)是否要封装字体
控制是否封装字体
设置文件输出路径(ExtL1.02及之后版本均默认为"[源目录]\REMUX",其他版本都是直接输出回源目录)
使用通配符*、?来过滤输入文件
控制mkvmerge封装时显示的语言,并不更改ASFMKV的主要语言(因为只有一种语言嘛)
控制mkvmerge的进程优先级,优先级越高,被其他使用磁盘的应用阻断和干扰的程度就越小
控制是否搜索子目录
启用命令回显并阻止所有CLS清屏
测试用,输出到NUL(即不输出文件)
mkvmerge的路径,用于mkvmerge不和ASFMKV在同一目录或不在%path%下的情况7. 外部调用
7.1. 调用开关
?h 显示帮助(最高优先)
?del [y/n] 是否删除输入文件
?sub [y/n] 没有字幕时是否嵌入字体文件
(注意:sub开关在开启时会自动允许字体封装,即notfont为任意值)
?out [path] 输出目录
?dir [y/n] 是否搜索子目录
?dbm [y/n]:[y/n] 是否使用测试模式和空输出(测试模式开关:空输出开关)
(注意:dbm开关若只输入一个y则同时开启测试模式和空输出,反之亦然)
?ffl [filter] 文件过滤器
?pri [0-4] 选择进程优先级
?uil [1-4/input] 选择mkvmerge的语言
?exe [path] 选择mkvmerge的路径
开关必须整体,整体,整体用引号括起,比如
"?out %APPDATA%\test ?pri 3 ?dbm n:y"
也可以只括起单个开关,但是这样最多只能8个开关,比如
"?out %APPDATA%\test" "?pri 3" "?dbm n:y"
ASFMKV "输入路径" "[调用开关]"
Call "(带有某些符号的路径)\ASFMKV" "输入路径" "[调用开关]"
(如果路径或文件名中含有括号、空格、与号或其他影响CMD的符号,可以使用Call指令并用双引号括起路径)
直接往BAT拖入文件或文件夹,自动运行重封装并输出到源文件夹
该情况下所有开关均为默认值
7.2. 开关解释
[0] lowest(最低)
[1] lower(较低)
[2] normal(标准)
[3] higher(较高)
[4] highest(最高/实时)
快速语言选项:
[1] en(English)
[2] zh_CN(简体中文)
[3] zh_TW(繁體中文)
[4] ja(日本語)
该语言选项仅应用于mkvmerge输出部分,并仅在支持时使用
您也可以直接输入语言,比如 "?uil zh_CN"
可选的语言详见"mkvmerge --ui-language list"
过滤器使用标准文件搜索语法,例如:
"*.mkv"将只输入所有文件后缀名为MKV的文件
"*SEFO*.*"将会输入所有文件名中含有"SEFO"的文件(不区分大小写)且不管后缀名是什么
其实主要就是通配符的问题罢了
8. 挂接组件
Copyright© 2002– Moritz Bunkus
https://mkvtoolnix.download/downloads.html
Copyright© 2018-2019 yyfll(yanyifei66@gmail.com)
* [Delete AND(&) (DIR Ver.)]
该版本是独立程序,用于替换文件夹下所有符合匹配并带有"&"号的文件名
* [Replace for Batch V3F2_2]
使用CALL接口的泛用性Replace模块,可供挂接使用
9. 内部组件
Copyright© 2018-2019 yyfll(yanyifei66@gmail.com)
Module_FormatDate 日期格式化模块
Module_ReplaceBackSlash [专用]JSON转义模块(EU-JSON)
Module_EncapsulationMKV [专用]封装控制模块
Module_GetOutputPath [专用]输出控制模块
Module_DEBUG 除错辅助模块
最后一次更新于2021-03-21
