tonyhsie 发表于 2022-4-27 11:24:49

本帖最后由 tonyhsie 于 2022-4-27 13:17 编辑

幫頂一下


順便提一個範例來解釋
其它子集化工具 (AssFontSubset) 是怎麼錯誤的處理「粗體」、「斜體」的


今天有一個簡單的 ass 檔,指定使用「思源黑體」、「粗體」,顯示一段文字

Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,思源黑體,100,&H00FFFFFF,&H00000000,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,0.7,0,2,15,15,14,1


Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,1:01:04.59,Default,,0,0,0,,思源黑體 -1


以下使用 MPC-HC & vsfilter 來做測試


當我使用影片+外掛字幕時,結果是這樣 (正確的結果)


當我把粗體改為非粗體時,
Style: Default,思源黑體,100,&H00FFFFFF,&H00000000,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,0.7,0,2,15,15,14,1

結果是這樣 (非粗體,對照組)



當我使用 AssFontSubset 把字幕的字型子集化
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,CHR48ML7,100,&H00FFFFFF,&H00000000,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,0.7,0,2,15,15,14,1


Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,1:01:04.59,Default,,0,0,0,,思源黑體 -1


並內封進 mkv 時,結果是這樣 (錯誤結果)




比較三張圖就能發現,在子集化之後,原本的「思源黑體」+「粗體」
在子集化&內封後,變成了「非粗體」


原因是因為,AssFontSubset 在子集化字型時,不會特別針對「粗體」或「斜體」挑選獨立字型
如果你輸入的字型資料夾裡,有「非粗體」的「思源黑體」在,那 AssFontSubset 就會把它子集化

這一步是有問題的(因為實際上應該被子集化的,是「粗體」的「思源黑體」)


樓主的程式理論上已解決這個錯誤了


順便附上我測試用的子集化後的內掛影片 & 外掛字幕
方便大家實測



菜姬 发表于 2022-4-27 12:40:38

b8b41e3c 发表于 2022-4-27 09:45
除了支持linux之外和现用的spp2pgs有啥区别么,这种东西不太敢随意换,因为会影响成品效果。
...

基于libass(

b8b41e3c 发表于 2022-4-27 13:09:50

菜姬 发表于 2022-4-27 12:40
基于libass(

关键是会不会丢特效,以及好像不支持2160p?

菜姬 发表于 2022-4-27 13:12:24

b8b41e3c 发表于 2022-4-27 13:09
关键是会不会丢特效,以及好像不支持2160p?

没加2160p的选项(

菜姬 发表于 2022-4-27 13:13:03

b8b41e3c 发表于 2022-4-27 13:09
关键是会不会丢特效,以及好像不支持2160p?

现在已经很少出现不兼容的情况了

tonyhsie 发表于 2022-4-27 13:38:23

菜姬 发表于 2022-4-27 12:40
基于libass(
現在有些怪物級 ass 動輒幾十M
字幕特效太龐大,無法實時渲染

有在考慮把這種字幕轉為 .sup 方便播放


想請教一下 ass2bdnxml 跟 Spp2Pgs 相比
除了 libass vs. xy-VSFilter 的差異外,其它地方有什麼顯著差異嗎?

菜姬 发表于 2022-4-27 13:41:13

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



没有仔细对比过建议实际用用试试

Keadovs 发表于 2022-4-27 13:44:49

另一个子集化项目
https://github.com/DYY-Studio/AddSubFontMKV_py

StarRingChild 发表于 2022-4-27 14:18:40

Keadovs 发表于 2022-4-27 13:44
另一个子集化项目
https://github.com/DYY-Studio/AddSubFontMKV_py

这个不支持 Linux 哇,macOS 更是没希望了吧

fuyouquan 发表于 2022-4-27 14:55:18

假设我的视频分辨率比是4:3,ass字幕脚本也是4:3,转成sup字幕会不会出现字幕定位超出画框的情况(ass字幕中定位靠左或靠右的字幕)?我用国语视界的工具就会出现这个情况
页: 1 2 [3] 4 5 6 7 8 9 10 11 12
查看完整版本: mkvtool:一个ass字幕子集化/mkv文件处理一条龙工具