ts から字幕を抽出する方法一覧

C-Cats と Caption2Ass の話


  • 2018/09/03 作成

Contents


概要

ts から字幕を抽出する方法はたくさんある.どれがいいか人によると思うのでまとめておく.

C-Cats

C-Cats の使い方

  • Readmeに書いてあるので詳細はそちらを見て使えばよい
  • ccats.exe を起動 → tsをドラックアンドドロップ → HTML出力のチェックボックスを任意に選択 → 抽出ボタンを押下
  • GUI なので初心者でも使えるが,一気に処理したいとかバッチであれこれしたいという需要には向かない

C-Cats の出力例

txt を出力すると次のようなものが得られる:

   (ルフィ)ゴムゴムの…。

    ホーク
     鷹スタンプ!

   (カタクリ)こんなものか。
   まだまだ!

      くっ…。

    (カタクリ)次は 力か。

         こ
    (カタクリ)もう懲りろ。

    ハァ… ブーッ!

html を出力すると次のようなものが得られる:

<body text="#FFFFFF" bgcolor="#404040"><basefont face="MS ゴシック" size="3"><br>
<br>
  &nbsp;</font><font color="#FFFF00">(ルフィ)ゴムゴムの…。<br>
<br>
    <sub></font><font color="#FFFF00">ホーク</sub><br>
    &nbsp;鷹スタンプ!<br>
<br>
   (カタクリ)こんなものか。<br>
   </font><font color="#FFFF00">まだまだ!<br>
<br>
      </font><font color="#FFFF00">くっ…。<br>
<br>
   &nbsp;(カタクリ)次は&nbsp;力か。<br>
<br>
         <sub>こ</sub><br>
   &nbsp;(カタクリ)もう懲りろ。<br>
<br>
    </font><font color="#FFFF00">ハァ…&nbsp;ブーッ!<br>

Caption2Ass

  • UTF-8 で ass, srt を出力できる
  • 派生版がいくつか存在する

Caption2Ass オリジナルと派生版

  • オリジナル版はodaruさん作成の試験的なソフトウェア
    • これのソースを綺麗に書き直したものが Caption2Ass 補完計画(Cleanup code)
  • オリジナル版を改変したものが Caption2Ass改
  • Caption2Ass 補完計画(Cleanup code)を改変したものが Caption2Ass_PCR
  • Caption2Ass_PCR をさらに改変したものが Caption2AssC

オリジナル版

  • 「台湾人のodaruさんのCaption2Ass.exe」
  • Friio関係ファイル置き場
    • 第2版「Caption2Ass(081221)」=up0877.zip, 初版「Caption2Ass(081220)」=up0874.zip が該当のブツ
    • 初版は srt 出力未対応
  • 改造版作者曰く「タイムコードが正しくデコードできず、実用的ではな」いらしい
  • 2008年12月のもの

Caption2Ass改

Caption2Ass_PCR

Caption2AssC

Caption2Ass の使い方

たとえば Caption2AssC_x64.exe を使うのであれば,

> Caption2AssC_x64.exe -format srt "input.ts"

とか,

> Caption2AssC_x64.exe -format ass "input.ts"

とかすればよい.

正確には次の通り.

Usage:  Caption2AssC.exe [Options] source.ts [target filename]

Options:
    -format <string>            Specify output format. {srt|ass|taw|dual}
                                    Default: ass
    -delay <integer>            Sepcify delay time. [mili-sec]
    -PMT_PID <hex>              Specify PID value.
    -detect_length <integer>    Specify upper limit value of packet counting
                                 for detecting caption data. [10k]
                                    Default: 300
    -log                        Make log-file.
    -keepinterval               Keep the interval of the output timestamp
                                 upon detection of packet loss.
  [srt]
    -srtornament                Set ornament to srt-file.
  [ass]
    -asstype <string>           Sepcify type name of ass setting.
    -hlc <string>               Sepcify HLC control type. {kigou|box|draw}
                                    Default: kigou
    -norubi                     Does not output the Rubi to ass-file.
    -center                     Fix align of text at bottom-center, no rubi.

Example:
    Caption2AssC.exe -format dual "source.ts"
    Caption2AssC.exe -format ass -asstype Default43 -hlc kigou "source.ts"
    Caption2AssC.exe -delay 500 -PMT_PID 1f2 -detect_length 400 "source.ts"

Caption2Ass の出力例

srt を出力すると次のようなものが得られる:

1
00:00:41,858 --> 00:00:43,860
(ルフィ)ゴムゴムの…。

2
00:00:43,860 --> 00:00:46,863
鷹スタンプ!

3
00:00:46,863 --> 00:00:50,863
(カタクリ)こんなものか。
まだまだ!

4
00:00:58,875 --> 00:01:00,875
くっ…。

5
00:01:02,879 --> 00:01:04,879
(カタクリ)次は 力か。

6
00:01:07,884 --> 00:01:10,884
(カタクリ)もう懲りろ。

7
00:01:12,889 --> 00:01:17,889
ハァ… ブーッ!

ass を出力すると次のようなものが得られる:

[Script Info]
; Original 1280x720(16:9)
Title: Default SSA V4+ (ASS)
(中略)

[V4+ Styles]
(中略)

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:41.85,0:00:43.86,Default,,0000,0000,0000,,{\pos(360,680)\c&H00ffff&}(ルフィ)ゴムゴムの…。\N
Dialogue: 0,0:00:43.86,0:00:46.86,Rubi,,0000,0000,0000,,{\pos(440,600)\c&H00ffff&}ホーク\N
Dialogue: 0,0:00:43.86,0:00:46.86,Default,,0000,0000,0000,,{\pos(466,680)\c&H00ffff&}鷹スタンプ!\N
Dialogue: 0,0:00:46.86,0:00:50.86,Default,,0000,0000,0000,,{\pos(386,440)}(カタクリ)こんなものか。\N
Dialogue: 0,0:00:46.86,0:00:50.86,Default,,0000,0000,0000,,{\pos(386,520)\c&H00ffff&}まだまだ!\N
Dialogue: 0,0:00:58.87,0:01:00.87,Default,,0000,0000,0000,,{\pos(546,520)\c&H00ffff&}くっ…。\N
Dialogue: 0,0:01:02.87,0:01:04.87,Default,,0000,0000,0000,,{\pos(413,680)}(カタクリ)次は 力か。\N
Dialogue: 0,0:01:07.88,0:01:10.88,Rubi,,0000,0000,0000,,{\pos(706,600)}こ\N
Dialogue: 0,0:01:07.88,0:01:10.88,Default,,0000,0000,0000,,{\pos(413,680)}(カタクリ)もう懲りろ。\N
Dialogue: 0,0:01:12.88,0:01:17.88,Default,,0000,0000,0000,,{\pos(440,680)\c&H00ffff&}ハァ… ブーッ!\N