CSV を SMI に変換
字幕テキストを貼り付けることもできます
この変換で変わること
この方向では何も失われません。元の形式のすべての機能に、変換先での行き先があります。
この一覧は、読み込んだファイルではなく、この2つの形式の機能対応表から作られています。形式としては許されているが対応表が扱っていない機能を使っている場合、そのファイルではさらに多くが失われることがあります。
このページは CSV を SMI に変換します。ファイルをドロップするか、テキストを貼り付けてください。SMI 形式で返ります。変換はすべてブラウザ内で実行され、ファイルはアップロードされません。登録も不要です。
CSV は 1 cue を 1 行で持ち、start や begin などの列名の別名を照合し、引用符で囲んだカンマや改行を 1 つのセルとして扱います。この方向では何も失われません。CSV が表現できる情報にはすべて SMI 側の対応する形があり、出力は同じ字幕を別の入れ物に入れただけです。時間軸、改行、本文はそのまま残ります。
1 本でも、シーズン全体でも構いません。キューは順番に処理され、結果は 1 つの ZIP にまとめてダウンロードできます。
例
CSV ファイルを SMI に変換した例
入力
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
出力
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>The quick brown fox.
<SYNC Start=3500>
<P>
<SYNC Start=4000>
<P>Jumps over, the lazy dog.
<SYNC Start=6250>
<P>
<SYNC Start=7000>
<P>Two lines here.<br>And a second one.
<SYNC Start=9000>
<P>
</BODY>
</SAMI>
ここでは何も失われません。左右を 1 行ずつ比べてください。
同じ変換を扱いにくい入力で行った例
入力
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
出力
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there, friend.
<SYNC Start=4000>
<P>
<SYNC Start=5000>
<P>Second line.
<SYNC Start=7000>
<P>
<SYNC Start=10000>
<P>End before start.
<SYNC Start=10001>
<P>
<SYNC Start=12000>
<P>Unquoted comma in text, right here.
<SYNC Start=14000>
<P>
</BODY>
</SAMI>
実際のファイルには、混在した改行コード、余分な空白、空のフィールドなどがあります。上の整った例と比べて、パーサーがどこまで許容するかを確認してください。
よくある質問
CSV を SMI に変換した出力はどんな形ですか?
SMI らしく、cue 番号もタイムコード行もありません。各 cue は SYNC Start=… タグと、その下の P 要素に入った本文になり、SYNC が画面を置き換えるため、直後に だけのブロックが入って画面を空に戻します。CSV の各 cue は同じ順序・同じ本文で 1 つの SMI cue になります。
CSV のタイミングは SMI ファイルでも正確ですか?
はい、ミリ秒まで正確です。どちらの形式もそこで止まります。CSV は時刻を 00:00:04.126 と書き、SMI は同じ時刻を Start=4126 と書きます。丸めも移動もなく、2.9 秒表示されていた cue は 2.9 秒のままです。
CSV の 2 行の cue は SMI でどう表現されますか?
br タグで区切られた 2 行になります。SAMI の強制改行です。2 行が 1 つの字幕に属する関係は保たれ、プレーヤーは 2 行を一緒に表示します。
CSV の cue の順序は SMI 出力でも保たれますか?
はい。書き出し時に開始時刻の昇順へ並べ替えます。早いものが先で、これは本サイトのすべての形式が前提とする順序であり、プレーヤーが読み取る順序でもあります。CSV ファイルの cue が順不同だった場合、SMI 出力では順序が直ります。これは内容ではなくファイル構造の変更で、意図した動作です。
SMI を CSV に戻せますか?
はい。ただし戻す方向は有損です。SMI から CSV に戻すと、スタイル(フォント・色・縁取り)、画面位置、形式固有の情報が行き場を失います。この方向では何も失われないので、その代償は戻るときだけ発生します。
SMI 出力は CSV ファイルの文字コードを引き継ぎますか?
いいえ。入力が何であっても、出力は UTF-8、Unix 改行、BOM なしです。UTF-16 や Windows のシングルバイト文字コードで届いたファイルは読み込み時にデコードし、そのことは結果パネルに表示されます。出てくるのは常に同じ UTF-8 の SMI です。