找回密码
 立即注册

QQ登录

只需一步,快速开始

教程经验总索引TVMW5/小日本5 索引【视频转换】小日本4/TE4XP 索引【视频转换】TAW4 / TDA3 索引【DVD打包软件】
Nero 索引DVD-Lab 索引【DVD打包软件】编解码器 索引 【必读】固顶帖011号
查看: 3044|回复: 5

[分享] ass转sup字幕工具Spp2Pgs 0.9.3.7

[复制链接]

0

威望

140

金钱

1

贡献

新手上路

积分
146
主题
6
回帖
19
注册时间
2011-6-7
最后登录
2021-10-6
发表于 2019-9-21 19:50:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
工具及简要说明】
Spp2Pgs 0.9.3.7
输入ass文件,bgra格式的avs,或者其他可播放的bgra源文件,或者来自stdin的bgra raw流
输出sup文件,或者输出到stdout
参数详见程序运行输出

运行时,%Temp%路径所在分区需要留出4G以上空间;可在执行前设置%Temp%路径,转移工作时临时文件的存储位置。
devel目录下为.net库及其它开发相关的内容;legacy目录下为基于3.0.0.306版本的xy-VSSppf

遵GPLv3许可协议发布,协议内容见源码,详见后文
耐得住一般特效;全屏动态黑板一般也能生成文件,但是为了兼容性会掉帧。
生成的sup文件严格遵照蓝光标准,因此大面积+动态的话会导致丢帧,严重程度主要与画面面积相关,请结合临床。

默认在起点处添加了“前黑”,避免字幕在大金中混流时需要手工指定起始偏移。
另可通过二次开发将多个ass文件连续合编入单一的sup文件中,参见示例代码。

项目概况】

目前项目维护地址(git):
https://github.com/subelf/Spp2Pgs

从13年开始就断断续续地做蓝光标准相关的一些文件的解析
手上资料匮乏,也没有相关的经验,更无奈的是现有的蓝光相关的工具没几个开源的
暂时这么搞着……至少是个开源的东西,就算我扑街了还有别的盼头……

目前想法是,小文件和目录结构交给C#了,大文件里流数据的编解还是应该用C++来写,封装后再交给CLR来调用。一方面解决效率问题,另一方面也是避免一些许可协议问题。
小文件目前能处理整个mpls文件和半个clpi文件,目录结构被我写成翔了,等参考一下MGVC和3D的盘重写。
目前扔在这儿了(hg):
https://bitbucket.org/subelf/bluraysharp

现在开始处理大文件。


外挂结构制作概况】

该项目以外挂结构的制作为重,最理想的情况当然是ass直接变外挂。
那么简述一下传统外挂结构制作的整个过程:
1. ass调轴准备,就绪后用avs挂成argb视频片段。
2. 用工具avs2bdnxml逐帧分析该片段,确定各帧图片和帧的持续时间;切除掉空白区,并适当处理后输出为xml+png;也可以输出sup文件,但是问题多多。
3. 生成的xml+png,作为bndxml,被SceanaristBD导入后,编码成pes+mui文件。其中pes存储编码后的显示图形(PG)。而mui具体含义不明,对pes来说存储的是各数据单元的时间戳信息。之后,pes+mui可以被大金用来混流形成m2ts文件,混流时的时间戳需要参考对应的视频片段。
3. sup文件,也可以直接被tsmuxer用以与音频或视频进行混流,形成m2ts文件。但是此方法可能存在兼容性问题。
4. 之后通过修改mpls文件,将字幕m2ts与视频m2ts关联起来,形成外挂结构。

整个过程中,最期望的就是2~4的完全自动化。
目前tsmuxer姑且可用,avs2bdnxml则麻烦多一些,mpls的修改目前没什么问题。大金参与的自动化则基本是不可能。
因此实现外挂字幕自动化的原则如下:
1. 最终期望可以有图形化界面。
2. 核心的代码,效率另说,可读性最重要,尤其是在体现文件结构方面。开源。
3. 先解决有无,再解决稳定性和兼容性,最后是尽量尝试替代闭源工具。

所以目前选择pes先下手,以期从ass生成可用的pgs文件成为可能。
之后再考虑pgs/sup生成m2ts的问题。


目录】

PG的基本顶层概念
PG相关的编码概念
定义:文件结构
定义:时间戳计算公式
卖萌的夏娜菊
其他细节


目前已完成的】

1. 解析从原始Epoch到pes文件的编码过程中,需要做的特殊动作:补空白段,时间戳生成等
2. avs2bdnxml的核心逻辑部分重写为C++代码,保留原有sse2汇编并稍作修改。
3. 初代:关键帧存档功能,帧剪裁+窗口区覆盖统计;色板的生成与映射算法·改;Demo v0.1, 完成视频流解析动作,捕获帧,并模拟编码pgs
4. 二代:pgs文件的编码;图形元件的编码;时间戳的统计与计算;窗口区域的判明及切割·改;pgs输出;管道输入
5. 三代:图形元件的面积优化算法;C++/CLI封装版本;去除对avs的依赖


未来已完成的】
6. 四代:避免生成临时文件;优化图元buffer使用;pes+mui的可选生成版本;
7. 五代:那么遥远的未来以我的能力看不到
8. 六代:完善文档,在这帖子卖萌,加图,加特技;验证3D盘的标准定义

使用方法:软件目录按住shift+右键选择powershell,出入命令

.\spp2pgs -i "1.ass" -s -1080 -r 23 "output.sup"

-i <filename>
                 Input subtitle file name. Use '-' for a stdin raw input.
        -s <format>
                 Frame format:
                 480i   = 1/240/-480
                 576i   = 2/288/-576
                 480p   = 3/480
                 1080i  = 4/540/-1080
                 720p   = 5/720
                 1080p  = 6/1080
                 576p   = 7/576
        -r <rate>
                 Frame rate:
                 23.976 = 1/23
                 24.0   = 2/24
                 25.0   = 3/25
                 29.97  = 4/29
                 30.0   = 5/30
                 50.0   = 6/50
                 59.94  = 7/59
                 60.0   = 8/60
        -b <frameid>
                 Beginning index of valid frames.
        -e <count>
        -n <count>
                 count of frames.
        -z[0|1]
                 Setting up an extra epoch at the very beginning or not.
                 0      = No;
                 1      = Yes;
                 (blank)= Yes. (default)
        -x[0|1]
                 Using extremely strict mode or not.
                 0      = No;
                 1      = Yes;
                 (blank)= Yes. (default)
        -v[level]
                 Output level.
                 (blank)= All, verbose;
                 63     = Errors only.
                 127    = Errors and warnings.
                 144    = Normal outputs. (default)
        <filename>
                 Output file name. Use '-' for a stdout output.

目前软件已经停更了,现在导出的字幕用在4k原盘字幕会过小,有源码,根据字幕动态的强度自动调整帧率从而符合大金规范,望高手接手更新下。
下载地址:链接: https://pan.baidu.com/s/12OLnfdyL-OSkeGJPk65UxQ 提取码: 3ben
gihub-zip链接:链接: https://pan.baidu.com/s/1lh12UdbFCdW5CnXOdlgNUw 提取码: 1a7y

0

威望

3029

金钱

0

贡献

中级会员

积分
3059
主题
0
回帖
478
注册时间
2018-5-6
最后登录
2020-1-23
发表于 2019-9-23 18:26:55 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

威望

344

金钱

0

贡献

初级会员

积分
348
主题
0
回帖
64
注册时间
2019-10-7
最后登录
2020-1-2
发表于 2019-10-26 08:33:36 | 显示全部楼层

谢谢分享,。。。。。。。
回复

使用道具 举报

0

威望

3149

金钱

2

贡献

中级会员

积分
3257
主题
13
回帖
147
注册时间
2020-3-9
最后登录
2024-11-21
发表于 2020-6-25 15:03:28 | 显示全部楼层
受教了,虽然不懂,感谢楼主分享技术经验
回复

使用道具 举报

2

威望

3051

金钱

2

贡献

中级会员

积分
3141
主题
2
回帖
155
注册时间
2020-6-4
最后登录
2024-11-21
发表于 2020-7-12 15:20:04 | 显示全部楼层
学习一下,虽然不会。
回复

使用道具 举报

0

威望

31

金钱

0

贡献

新手上路

积分
32
主题
0
回帖
8
注册时间
2022-3-29
最后登录
2022-8-16
发表于 2022-4-11 10:11:09 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2024-11-22 05:00 , Processed in 0.146007 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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