xtne6f / b24tovtt

Creates WebVTT from trace output of tsreadex

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

b24tovtt - tsreadexのトレース出力のARIB字幕データをWebVTTに整形する

使用法:

b24tovtt [-l lang][-d delay][-t style][-c chapter][-s pattern][-e pattern] dest

-l lang, 1<=range<=8, default=1
  出力する字幕の言語。

-d delay (milliseconds), default=-300
  WebVTTキューのタイミングをずらす量。
  このオプションの既定値は音声ストリーム基準で処理するデコーダ(L-SMASH Worksなど)に最適化されている。
  映像が最初にデコードされる位置までの音声をカットすると思われるデコーダ(NVEncCなど)には-700ぐらいが適切。
  再生したとき字幕の表示が遅れるように感じる場合はより小さくする。

-t style, "nobom-vlc" or "vlc" or "nobom" or "none", default="none"
  出力するSTYLEブロックのテンプレート名。
  - "*vlc": VLCメディアプレーヤー(ver.3.0.16時点)で最低限の表示ができるようなSTYLEを出力。
  - "nobom" or "none": 出力しない。
  - "nobom*": バイトオーダーマークの出力を抑制する。

-c chapter, default=""
  出力をカット編集する場合、Nero/OGM形式のチャプターファイル名。
  文字コードはUTF-8やShift_JISなどの8bitベースで以下のような形式のもの:
  > CHAPTER01=00:00:00.000
  > CHAPTER01NAME=編集点開始
  > CHAPTER02=01:23:45.678
  > CHAPTER02NAME=編集点終了

-s pattern, default="^ix"
  出力をカット編集する場合、カット開始チャプター名のパターン。
  "^..." (前方一致)、"...$" (後方一致)、"^...$" (完全一致)、または部分一致。
  非ASCII文字を \x?? (??は16進数)でエスケープできる。
  大文字小文字は区別されない。
  たとえばチャプターファイルがShift_JISのとき、チャプター名が"開始"で終わるチャプターでカットしたいなら
  > -s '\x8A\x4A\x8E\x6E$'
  のようにする。

-e pattern, default="^ox"
  出力をカット編集する場合、カット終了チャプター名のパターン。
  "-s"オプションと同様。
  たとえばチャプターファイルがShift_JISのとき、チャプター名が"終了"で終わるチャプターまでカットしたいなら
  > -e '\x8F\x49\x97\xB9$'
  のようにする。

dest
  出力先のWebVTTファイル名、または"-"で標準出力。
  出力すべきWebVTTキューがない場合ファイルは生成されない。

説明:

このツールの標準入力にtsreadexのトレース機能の出力を与える。
> tsreadex -n -1 -r - foo.m2t | b24tovtt foo.vtt
するとトレースに含まれるエスケープされたARIB字幕データが、以下のようなWebVTTのボイスタグ風のキューとして出力される。
> 00:00:00.000 --> 00:00:02.345
> <v b24caption0><c>%80%00%00%3F%02%1Ajpn%84%3Aeng%84%={%=}</c></v>
> <v b24caption1><c>%84%00%00%3F%={%1F%20%={%0C%=}%1F%20%={%^[7 S%^[840;480 V</c>ここは読める<c>%=}%=}</c></v>
可読な部分以外はクラスタグで囲われる(このタグはとくに必須ではないので後処理で消したりしてもかまわない)。

その他:

ライセンスはMITとする。

このツールの主な目的は、ARIB字幕データをある程度編集に便利な形で、劣化させず、コンパクトに格納すること。

(付録)エスケープされたARIB字幕データの制御符号の対応表:

%07  BEL(ベル)
%08  APB(動作位置後退) #BS
%09  APF(動作位置前進) #HT
%0A  APD(動作行前進)   #LF
%0B  APU(動作行後退)   #VT
%0C  CS(画面消去)      #FF
%0D  APR(動作位置改行) #CR
%16  PAPF(指定動作位置前進)
%18  CAN(キャンセル)
%1C  APS(動作位置指定)
%1E  RS(データヘッダ識別符号)
%1F  US(データユニット識別符号)
%^@  BKF(前景色黒およびカラーマップ下位アドレス指定)
%^A  RDF(前景色赤〃)
%^B  GRF(前景色緑〃)
%^C  YLF(前景色黄〃)
%^D  BLF(前景色青〃)
%^E  MGF(前景色マゼンタ〃)
%^F  CNF(前景色シアン〃)
%^G  WHF(前景色白〃)
%^H  SSZ(小型サイズ)
%^I  MSZ(中型サイズ)
%^J  NSZ(標準サイズ)
%^K  SZX(指定サイズ)
%^P  COL(色指定)
%^Q  FLC(フラッシング制御)
%^R  CDC(コンシール制御)
%^S  POL(パターン極性)
%^T  WMM(書込みモード変更)
%^W  HLC(囲み制御)
%^X  RPC(文字繰り返し)
%^Y  SPL(アンダーライン終了およびモザイク分離終了)
%^Z  STL(アンダーライン開始およびモザイク分離開始)
%^[  CSI(コントロールシーケンスイントロデューサ)
%^]  TIME(時間制御)
# CSIのおもな終端文字
# S SWF(書式選択) / n RCS(ラスタ色制御) / a ACPS(動作位置座標指定) / V SDF(表示構成ドット指定) / _ SDP(表示位置指定)
# W SSM(文字構成ドット指定) / X SHS(字間隔指定) / Y SVS(行間隔指定) / c ORN(文字飾り指定) / d MDF(字体指定)

About

Creates WebVTT from trace output of tsreadex

License:MIT License


Languages

Language:C++ 97.6%Language:Makefile 2.4%