菜姬 发表于 2022-4-27 15:40:15

tonyhsie 发表于 2022-4-27 13:38
現在有些怪物級 ass 動輒幾十M
字幕特效太龐大,無法實時渲染



能直接生成sup 只要输出文件名是.sup后缀就会输出sup

tonyhsie 发表于 2022-4-27 19:14:26

菜姬 发表于 2022-4-27 15:40
能直接生成sup 只要输出文件名是.sup后缀就会输出sup
ass2bdnxml 用了感覺還不錯,雖然 27M 的 ass 轉出來變成 500M 的 sup 有點嚇人

不過至少可以即時正常播放了


菜姬 发表于 2022-4-27 19:33:14

tonyhsie 发表于 2022-4-27 19:14
ass2bdnxml 用了感覺還不錯,雖然 27M 的 ass 轉出來變成 500M 的 sup 有點嚇人

不過至少可以即時正常播 ...

像特效这种动的多的 每帧基本得一张图 感觉有点无解

b8b41e3c 发表于 2022-4-27 20:20:08

本帖最后由 b8b41e3c 于 2022-4-27 20:46 编辑

菜姬 发表于 2022-4-27 19:33
像特效这种动的多的 每帧基本得一张图 感觉有点无解
暂时不冒风险了,参数也不完全兼容,我这个用到了

spp2pgs的-s -r -x参数而且他-r是支持向下取整的

不知道你这个怎么转换,而且你还在迭代吧,等比较稳定了再切换。

另外如果能在github提供linux版本的二进制就更好了 (

菜姬 发表于 2022-4-27 21:29:08

b8b41e3c 发表于 2022-4-27 20:20
暂时不冒风险了,参数也不完全兼容,我这个用到了

spp2pgs的-s -r -x参数而且他-r是支持向下取整的


https://github.com/Masaiki/ass2bdnxml/releases/tag/1.02

b8b41e3c 发表于 2022-4-27 22:28:26

本帖最后由 b8b41e3c 于 2022-4-28 00:11 编辑

菜姬 发表于 2022-4-27 21:29
https://github.com/Masaiki/ass2bdnxml/releases/tag/1.02
多谢提供,我已经决定开始适配了。

更新:v3.5.4已用ass2bdnxml替换原有的spp2pgs进行ass转pgs.


b8b41e3c 发表于 2022-4-28 11:08:24

本帖最后由 b8b41e3c 于 2022-4-29 23:06 编辑

fuyouquan 发表于 2022-4-27 14:55
假设我的视频分辨率比是4:3,ass字幕脚本也是4:3,转成sup字幕会不会出现字幕定位超出画框的情况(ass字幕 ...
新版适配的ass2pgs支持手动设置分辨率了,你可以实际用用看。

更新:好像手动设置分辨率不起作用,会自动降到很低的分辨率,哪怕是1920*1080
再更新:问题已修复



b8b41e3c 发表于 2022-4-28 15:38:18

本帖最后由 b8b41e3c 于 2022-4-28 16:00 编辑

菜姬 发表于 2022-4-27 21:29
https://github.com/Masaiki/ass2bdnxml/releases/tag/1.02
sscanf(video_format,"%d*%d", &s_info->i_width, &s_info->i_width)
这里有问题,导致自定义分辨率工作不正常。

菜姬 发表于 2022-4-28 19:48:39

b8b41e3c 发表于 2022-4-28 15:38
这里有问题,导致自定义分辨率工作不正常。

(手残了 已经修了

b8b41e3c 发表于 2022-4-28 19:51:51

本帖最后由 b8b41e3c 于 2022-4-28 22:56 编辑

菜姬 发表于 2022-4-28 19:48
(手残了 已经修了
{:12_853:}
ps:1.0.3的二进制问题依旧
原因是如下代码:
p_param->i_height = ass->PlayResY;
p_param->i_width = ass->PlayResX;

if (!s_info->i_width || !s_info->i_height)

当字幕里有PlayResY或PlayResX的时候,a*b的方式始终不起作用。

修复方法:将
    if (!s_info->i_width || !s_info->i_height)
    {
      if (sscanf(video_format,"%d*%d", &s_info->i_width, &s_info->i_height) != 2){
            fprintf(stderr, "Error: Invalid video_format (%s).\n", video_format);
            return 1;
      }
    }
改为
    if (!(sscanf(video_format, "%d*%d", &s_info->i_width, &s_info->i_height) == 2 && s_info->i_width * s_info->i_height > 0)) {
      fprintf(stderr, "Error: Invalid video_format (%s).\n", video_format);
      return 1;
    }另外,按照github上的方法编译不是静态的,,该如何生成静态编译的成品呢?


页: 1 2 3 [4] 5 6 7 8 9 10 11 12 13
查看完整版本: mkvtool:一个ass字幕子集化/mkv文件处理一条龙工具