TA的每日心情 | 郁闷 2016-12-31 01:33 |
---|
签到天数: 6 天 [LV.2]偶尔看看I
星辰大海
    
- 积分
- 874390

|
本帖最后由 tonyhsie 于 2020-3-23 23:01 编辑
分享一個自己寫的小程式,主要功能有兩個
1. 一次調整多個字幕檔 (.ass/.ssa/.srt/.idx) 的 時間軸 或 FPS
(也可從 Sushi: 自动调整时间轴工具 所得到的時間資訊來調軸,簡易教學請見 18 樓 及 28 樓)
2. 合併多個字幕檔 (.ass/.ssa 或 .srt) 的時間軸,主要是 BDrip -> BD 原盤用
支援 Unicode 或 BIG5/GB (ANSI)
程式截圖
v190101
功能 A: 調整字幕時間軸 (圖片範例:將字幕往後平移 5 秒)
功能 B: 合併兩個以上的字幕 (圖片範例:將兩個字幕合併,第 2 個字幕起始時間為 23:42.086)
功能 C: 調整字幕 FPS (圖片範例:將 fps 23.976 影片的字幕轉成 fps 25 的影片用)
更新記錄
v200323
1. 小 bug 修正
2. UI 介面調整

for 調整時間模式 (Adjust mode)
3. 對於單一目錄的參數,程式會將它視為多個字幕檔的參數來處理 (主要是為了搭配 Sushi 調軸)
4. 在 Adjust Time/FPS mode 以及 Append mode 之間切換時,程式會視情況重置輸入框的參數 (非必要的話就不會重置)
5. 使用 Sushi 的時間資訊時,可得到跟實際執行 Sushi 一模一樣的時間軸,但速度快很多 (因為不需要重複比對聲音資訊) 在調整多個 "同時間軸" 的 "不同字幕" 時 (如 Webrip -> BDrip) 很好用
for 合併字幕模式 (Append mode)
6. 在合併不同 resolution 的字幕時,會先把字幕作 resize,這版讓 resize 的結果更精確 (增加有效位數)
7. 修正 Resize 時會把 "\clip()" 修改成 "clip(" 的問題
8. 合併字幕時,現在可以指定第一個字幕的起始時間,不再強制一定要從 0:00:00.00 開始
(在少數某些 BD 的播放清單裡,在第一集正片前面,可能會先播別的影片,造成第一集的時間實際上不是從 0 開始,如:小書痴的小剋上)
v191116
1. 小 bug 修正
for 調整時間模式 (Adjust mode)
2. 增加支援 .idx 字幕 (DVD 字幕檔格式),可調整 .idx 的時間軸 / FPS (合併功能不支援 .idx 格式)
3. 可從 Sushi 的時間資訊來調整字幕 例如:在沒有 DVDrip/TVrip/BDrip 影片的情況下,只有 sushi 時間資訊時,也可以將 DVDrip/TVrip 的字幕調整成 BDrip 字幕 (.ass/.ssa/.srt/.idx 皆適用)
4. 可一次丟入 N 個檔案及 N 個 Sushi 時間資訊,產生出 N 個調整後的字幕
5. 調整字幕時間時,刪除行首及行尾的多餘空白
for 合併字幕模式 (Append mode)
6. 合併 .ass/.ssa 字幕時,若字幕檔之間的解析度設定不同,程式會自動調整相關參數 (字型大小、邊界、位置等等)
v191103
1. 小 bug 修正、提升程式效率
2. 程式由 32-bit only 變成 32/64-bit
3. 支援 .srt 的時間格式,如 "00:11:29,669" (也就是秒數後面為逗點的形式)
4. 支援 .idx 的時間格式,如 "00:11:29:669" (也就是秒數後面為冒號的形式)
5. 為所有的文字輸入框,增加 "滑鼠 點第1次 全選,點第2次 取消,點第3次 全選,點第4次 取消....依此類推" 的特性,方便複製
6. 由本程式調整時間後,所產生出來的字幕,檔名會帶有如 "delay 1s" 這種資訊,
原本經多次處理後會變成 "delay 1s.delay 500ms.delay -250ms",
現在改為合併計算,也就是會變成 "delay 1250 ms",不再盲目的重覆增加檔名長度,會合計所有調整時間的資訊,一次呈現
7. 新功能:指定一個時間,把第一句字幕的開始時間,調整成該指定時間,其餘字幕時間則類推
如下圖所示,就是把 "0.srt" 的第一句字幕開始時間調成 "0:01:23.456",其餘字幕時間都類推
v190101
1. 一堆小 bug 修正
2. 時間單位可選擇 毫秒 (Millisecond) 或 秒 (Second)
3. 可改變字幕 FPS (如 23.976 -> 25 之類)
for 調整時間模式 (Adjust mode)
4. Sushi 自動產生的字幕,如果有多個不同的時間區塊,那麼在區塊邊界,Sushi 偶爾會判斷錯誤,需要手動修正
AdjustAssTime 可按照 Sushi 結果來生成 N 個平移了不同時間後的字幕檔,方便來修正 Sushi 的這種錯誤
for 合併字幕模式 (Append mode)
5. 如果合併的字幕,預設解析度不相同時,會根據第一個字幕的解析度來調整後續字幕的字型大小 font size、字幕位置 position、 邊界 magrins 等等跟字幕解析度相關的數據,並產生 "*.position.ass" 用來方便確認更改後的相關字幕是否能正常呈現
6. 可直接把 "chapters.txt" 拖曳到 "Start Time" 欄,直接根據檔案裡紀錄的合併時間來再次合併字幕
v170516
1. 新增支援 .srt 字幕
2. 新增支援編碼為 ANSI (BIG5 或 GB) 的字幕(預設仍為 UTF8)
3. 新增一個合併字幕時可選用的選項:合併時以各字幕檔最後一個有效字幕的時間,來計算字幕合併的時間點 (Calculate next....)
若合併後的字幕,合併的時間點錯誤時,可勾選後再試試
v170111
新版加入兩個功能
1. 可以指定是否只調整某個時間點以後的字幕
例如:01:00 之後的字幕,往後調 5 秒,00:00~01:00 之間的字幕時間保持不變
2. 可以一次合併多個字幕
例如:把各集 BDrip 字幕,合成一個 BD-BOX 用的單字幕檔
簡易教學請見 2 樓
跟 SubResync, Aegisub 相比的話,主要特點在於
1. 簡潔快速的操作,不需在層層選單裡徘徊
2. 完整保留原始字幕檔的一切文字,除了時間軸改變以外,其它文字跟排版都不會變,(SubResync/Aegisub 都會拿掉注釋,排版也可能會變)
3. 支援一次調整多檔的時間軸
4. 合併字幕時,遇到相同 Style,但是不同的字型/字體設定時,兩種 Style 都會保留下來 (Aegisub 只會留其中一個)
操作方式
1. 可直接拖曳字幕檔案或目錄、或是路徑文字到視窗上,或用 "..." 按鈕選取一至多個字幕文件、或手動輸入字幕路徑皆可
2. 時間也可以用拖曳文字的方式輸入,省去打字或複製貼上的手忙腳亂
3. 調整時間軸,可以設定 "Original Time(原始時間)" & "Target Time(調整後時間)" 來調整,程式會自動幫你算兩者的時間差,再去調字幕
簡單說,假設同一句台詞 A,在 TVrip 的時間點是 0:10:35,在 BDrip 的時間點是 0:12:03,分別填入這兩個時間,就可以把 TVrip 字幕調成 BDrip 的時間軸
也可以只填入 "Target Time","Original Time" 保持在 0:00:00.000,那麼程式就會按你所填時間,把字幕時間一律往後(或往前)調整
填入時間的格式,可以是 1:23:45.678 (時:分:秒.毫秒),也可以填入整數 12345678 (毫秒),也可以是負數的時間/整數 (把字幕時間往前調)
4. 合併字幕的話,就只需要填入合併的時間點
例如,BD 影片是第 1 集 + 第 2 集,那就填入第 2 集開始的時間點,然後合併兩集的字幕
5. 按下 Go! 就會產生新的字幕檔,調整(或合併)的時間點也會一併保留在檔名上,如圖
調軸的話,就是單純產生 "原檔名 + Delay 多少時間" 的新字幕檔
合併的話,程式會自動判斷兩個字幕檔檔名的差異,如果像圖中這種有規律性,[01], [02], [03], .... 的
合併的字幕就會是 [01-02], [03-04],檔名最後會加上 "Appended @ 哪個時間點" 以方便辨視
進行多次合併的話,檔名就會像圖中最後一個檔案那樣 [24-25-26] (先合併 24 & 25, 再合併 26)
以下是合併字幕的一些特色
Style 部分,如果有同名的不同 Style 定義,程式會自動更名,Style名稱會加上該字幕檔的編號,如圖中 temp25, Default26 等等
如果有新的 Style,但名稱不衝突,則保留原名,如圖中的 STAFF
合併的兩個字幕檔中間,開頭會有 [Event] + 編號 以供判別
雖然說起來複雜,但實際操作是很直覺不難懂的
有任何建議或想法都歡迎指教,謝謝
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
查看全部评分
|