字幕をフレーム境界に合わせる
字幕テキストを貼り付けることもできます
オプション
各字幕の境界を、このレートの最寄りのフレームに移動します。25 fps なら 00:00:02,010 は 00:00:02,000 に、00:00:02,030 は 00:00:02,040 になります。ちょうど中間の境界は切り上げるので、00:00:02,020 は 00:00:02,040 になります。伸縮は行わず、時間軸の長さはそのままで境界だけがフレームに乗るため、各字幕の長さは最大で半フレーム前後変わります。これはファイルが宣言するフレームレートではなく、出力で境界をどこに置くかだけを決めます。
タイミングを数える基準のフレームレートです。形式のページでは MicroDVD が必要とする値で、同形式は時間をフレーム番号で保存します。フレームレートのページでは、そのファイルがどのレートを前提に作られたか(字幕が合わせて作られた版)を指し、ページの2つ目の欄には実際に使う動画のレートを入れます。よく使われるのは 23.976、24、25、29.97、30、50、59.94、60 です。間違えると時間軸全体がずれます。フレームレートのページでは、ずれは固定量ではなく比率で生じます。
このページは、字幕のすべての境界を、指定したフレームレートの最寄りのフレームへ移動します。速さは変えません。時間軸の長さも字幕の順序もそのままで、変わるのは各境界の位置だけです。25 フレームレートでは 00:00:02,010 が 00:00:02,000 に、00:00:02,030 が 00:00:02,040 になります。そのため各字幕の長さは前後どちらにも半フレームまで変わり得ますが、これは意図した取引です。
この処理が果たすのは、再生ソフトに判断を委ねないことです。字幕はミリ秒で保存されますが、多くの再生ソフトや焼き込みツールはフレーム単位で動くため、フレームとフレームの間にある境界は描画する側が丸めます。その丸め方はソフトごとに違い、ある再生ソフトでは1フレーム早く、別のソフトでは1フレーム遅く表示され、同じファイルが機械によって少しずれて見えます。ここで一度そろえておけば、境界はすべてフレーム境界になり、どのツールで読んでも一致します。
これはフレームレート変換ではありません。23.976 から 25 へ変える変換は時間軸全体に比率を掛けて動画に合わせる処理で、別のグループの別のページです。このページは動画を一切見ません。ファイルがすでに正しく、境界だけをフレームに載せたいならこのページ、動画に対して間違っているなら先に比率を変える必要があります。
フレームレートの入力欄が2つあるのは、答える問いが違うからです。1つはファイルを読むときのレートで、MicroDVD のようなフレーム番号形式を解釈するために必要です。もう1つはそろえる先のレートです。自前のレートを宣言しているファイルでは通常同じ数値になりますが、取り違えても出力はフレーム精度のまま、ただ違う格子に載るだけで静かに進みます。処理はこのブラウザタブ内で完結し、SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON、CSV を同じように扱います。
例
すべての境界がフレームに載る
入力
1
00:00:02,020 --> 00:00:04,030
Hello there.
2
00:00:07,010 --> 00:00:09,040
Second line.
出力
1
00:00:02,040 --> 00:00:04,040
Hello there.
2
00:00:07,000 --> 00:00:09,040
Second line.
25 フレームレートでは境界は 40 ms の倍数に載ります。02,020 はちょうど中間なので 02,040 へ切り上げ、04,030 は 04,040 へ、07,010 は 07,000 へ戻ります。時間軸は伸縮しておらず、2つ目の字幕は約2秒のまま、間隔もフレーム単位で変わりません。変わったのは各字幕の長さで、2010 ms と 2030 ms が 2000 ms と 2040 ms になっています。
フレームより短い字幕
入力
1
00:00:04,000 --> 00:00:04,010
Squeezed.
2
00:00:06,010 --> 00:00:08,010
A normal one.
出力
2
00:00:06,000 --> 00:00:08,000
A normal one.
10 ms の字幕は両端が同じフレーム100に丸まるため、そのままでは開始と終了が同じになり表示できません。1フレームに引き伸ばすのではなく削除して数えます。長さを捏造すると、ファイルが求めていない字幕を画面に出すことになるからです。25 フレームレートでは 20 ms 未満の字幕がこれに当たり、2つ目の字幕はその20倍あるので通常どおり残ります。
端数のあるフレームレートは長さを変える
入力
1
00:00:01,000 --> 00:00:03,000
Hello there.
出力
1
00:00:01,001 --> 00:00:03,003
Hello there.
23.976 フレームレートは1フレームが整数ミリ秒にならないため、切りのよい秒はどれもフレーム境界になりません。ちょうど 2000 ms だった字幕は 2002 ms になります。境界はすべてフレームに載るという約束は守られますが、元の丸い数値は失われます。23.976 や 29.97 にそろえたあと時間が変わらないと期待する前に、この挙動を確認してください。
よくある質問
フレームにそろえる処理は、フレームレート変換と何が違いますか?
変換は時間軸の長さを変え、そろえる処理は境界の位置だけを変えます。24 から 25 への変換はすべての時刻に 0.96 を掛けて動画に合わせるので、2秒の字幕は 1.92 秒になります。そろえる処理は2秒を2秒のままにして、両端を半フレーム未満だけ動かします。
フレームにそろえると別のフレームレートの動画に合いますか?
合いません。このページは動画を見ず、時間軸の長さも変えないので、動画のレートが違うためにずれているファイルは、そろえたあとも同じだけずれたままです。先にフレームレート変換のページで比率を直し、納品先のツールがフレーム境界を要求する場合にだけ、このページでそろえてください。
フレームにそろえると字幕の長さはどれだけ変わりますか?
各端で半フレームまで、合計で1フレームまでで、それ以上は変わりません。25 フレームレートなら字幕全体で最大 40 ms、片端で 20 ms です。23.976 や 29.97 では1フレームが整数ミリ秒にならないため、丸い値で始まり終わる字幕も動き、2秒の字幕が 2002 ms になります。
同じファイルに2回かけたら2回目は何も変わりませんでした。正しいですか?
正しい挙動です。すべての境界がフレームに載っていれば、その境界にとって最寄りのフレームは自分自身なので、2回目はバイト単位で同じファイルが返ります。納品前の確認にも使え、2回目で変わるファイルは1回目にそろえ切れていないことになります。
フレームにそろえると字幕が消えることはありますか?
半フレームより短い場合だけです。両端が同じフレームに丸まり、書き出す字幕が残りません。25 フレームレートでは 20 ms 未満が該当しますが、実際の字幕でそこまで短いものはありません。削除した件数は失われる情報として報告されるので、ダウンロード後ではなくレポートを見てください。
ファイルが宣言しているフレームレートにそろえるべきですか?
自動的には決められません。宣言はファイル内のフレーム番号をどう読むかを示し、そろえる先のレートは出力の境界をどこに置くかを示します。多くの納品では同じ数値ですが、別のレートで動くツール向けに準備するときは違います。そこで宣言値を使うと、フレーム精度のまま誰も求めていない格子に載る静かな誤りになります。