批量修改ASS字幕样式?
本帖最后由 冰箱研会长 于 2021-4-27 13:03 编辑最近在看老攻壳, 手里的字幕在iPad上用Emby播就1/4个指甲盖大, 实在是伤眼睛...
想自己修改一下, 好像AegiSub也只能 打开文件 -> 样式管理器 -> 导入 -> 保存,
这流程也太令人绝望了, 12个字幕我都嫌烦, 老攻壳快40多份字幕了...
这种情况如果是字幕组会怎么操作呢
我自己的缓兵之计是用pwsh做搜索替换, 但是这个事情感觉像是有 "成熟好用的工具" 的样子啊...
Get-ChildItem *.ass | ForEach-Object {
$TargetInFo= Select-String -LiteralPath $_.FullName-Pattern "Style: Default"-CaseSensitive -NoEmphasis; #获取包含了行号, 文件名在内的查找信息
$FileContent = Get-Content -LiteralPath $_.FullName; #获取文件内容, 一个以行号为index (0-index)的字符串数组
foreach ($LineNumber in $TargetInFo.LineNumber){ #考虑到复数查找的情况, 比如不只是Default样式而是所有Style, 对返回的行号数组进行遍历并以此替换内容
$FileContent[$LineNumber - 1] = "Style: Default,PingFangSC-Regular,100,&H00FFFFFF,&H00FFFFFF,&H00000000,&H80000000,-1,0,0,0,100,100,0,0,1,1,1,2,20,20,30,1";
Set-Content -LiteralPath $_.FullName -Value $FileContent; #写入
}
}
顺便问一下 *Default和Default有啥区别啊
记事本直接复制粘贴就行了 lawsherman 发表于 2021-4-27 12:59
记事本直接复制粘贴就行了
不如换一个可以自由调节外挂字幕字体大小的播放器? ass 字幕文件可以用记事本打开修改
所以
EmEditor 支持在多个文本文件中批量查找替换,楼主想做的这事我以前经常用它来完成 幽远ghofar 发表于 2021-4-27 13:36
不如换一个可以自由调节外挂字幕字体大小的播放器?
emby其实有调节 但是它优先ASS内置的大小... すぴぱら 发表于 2021-4-27 14:01
都能写pwsh,不如写个python批处理
Python写点啥感觉都得import一堆, 心智负担有点重 完美解码可以在播放器改了另存 字幕组还要一句一句校对呢,怎么可能烦这个?简单做字幕我用arctime. 我写过个专门修改转换ass、srt的工具,用了好多年了不过没有制作可用于分发的版本,因为似乎大家对这件事不太感兴趣的样子。
言归正传,你可以试试 vscode EmEditor SublimeText 等等这些能批量修改文本的编辑器 你的脚本不都认为ass文件是个文本了吗,为什么会想不到用vscode之类的文本编辑器做批量替换
—— 来自 samsung SM-G9650, Android 10上的 S1Next-鹅版 v2.4.4.1 暗铁 发表于 2021-4-27 18:11
你的脚本不都认为ass文件是个文本了吗,为什么会想不到用vscode之类的文本编辑器做批量替换
——...
我也...不知道...
就是没想到...
总觉得同样的问题曾经看到过。果然没记错
https://bbs.vcb-s.com/forum.php?mod=viewthread&tid=6878 若荼泱 发表于 2021-4-27 19:07
总觉得同样的问题曾经看到过。果然没记错
https://bbs.vcb-s.com/forum.php?mod=viewthread&tid=687 ...
I AM NOT ALONE!!!! 简单点,换播放器,或换一套字幕。想要查找替换,像sublime text这种文本编辑器支持多文件操作 在ipad上看,,高清资源如果不在大屏幕上看,那还不如直接b站看在线,还有弹幕双份快乐 如果是每行单独定义样式的ass,那就就统一转成srt不就行了。 本帖最后由 vxzms 于 2021-4-28 16:13 编辑
https://github.com/tp7/Prass py2
移植到py3https://github.com/DeadSix27/Prass
copy-styles 简单写个bat就能批处理了 比如
@ECHO OFF & CD/D "%~dp0"
set copy_style_ass=a.ass
mkdir old_ass
:start
IF "%~1"=="" GOTO :END
python -m prass copy-styles --from "%copy_style_ass%" --to "%~nx1" -o "%~n1_styled.ass"
move "%~nx1" ".\old_ass"
rename "%~n1_styled.ass" "%~n1.ass"
del "%~n1_styled.ass"
:check
SHIFT /1
GOTO :start
pause
印象里subtitle edit可以批处理
页:
[1]