ドロップフレームに変換
字幕テキストを貼り付けることもできます
オプション
30 fps のノンドロップと 29.97 のドロップフレームは同じ時計を違う形で書きます。この欄はファイルをどちらの規約で読み、どちらで書き戻すかを選びます。1時間の位置にある字幕は、一方では 01:00:00,000、他方では 01:00:03,600 になります。1時間あたり3.6秒の差で、丸め誤差ではありません。ページのタイトルが一方の方向を示し、この欄はその一方だけを出します。そのため得られるファイルはこのページが扱うとおりのものになります。テキストは変わりません。動画に合わせた再調整もフレームレートの変換も行わず、1時間の最初の1分内にある字幕はそのまま戻ります。そこで失われるフレームラベルがないからです。
タイミングを数える基準のフレームレートです。形式のページでは MicroDVD が必要とする値で、同形式は時間をフレーム番号で保存します。フレームレートのページでは、そのファイルがどのレートを前提に作られたか(字幕が合わせて作られた版)を指し、ページの2つ目の欄には実際に使う動画のレートを入れます。よく使われるのは 23.976、24、25、29.97、30、50、59.94、60 です。間違えると時間軸全体がずれます。フレームレートのページでは、ずれは固定量ではなく比率で生じます。
このページは、字幕ファイルのすべてのタイムコードを 30 fps の non-drop フレームから 29.97 fps のドロップフレームへ付け直します。ファイルを落として実行すると、各字幕の開始と終了がもう一方の書き方で返ります。語、字幕番号、字幕の順序、改行はファイル自身のもので、まったくそのまま残ります。
2つの約束は同じ時計を違うように綴り、ファイルは後工程が使うほうに揃っていなければなりません。ドロップフレームは1秒に30個のラベルを数えますが、10分ごとを除く毎分で2個を飛ばします。こうして壁時計と合い続ける一方、non-drop は少しずつ遅れます。1時間で2つは 3.6秒離れます。non-drop の 01:00:00,000 はドロップフレームの 01:00:03,600 です。この差は丸め誤差ではなく、丸めて消えるものでもありません。番組とともに育ち、10時間で36秒に達します。
1時間の最初の1分では何も動きません。そこでラベルが捨てられず、2つの約束がその区間を同じに綴るからです。これはすでに 30 fps のフレーム目盛りに乗っている時計、たとえば 00:00:02,000 に当てはまります。2つの目盛りの間にある時計は最も近いほうへ、最大 17 ms 動かされます。時計をタイムコードとして読むことはファイルのどこでもフレーム格子へ吸着させることで、最初の1分では吸着だけが動かすものになります。字幕の時刻は通常フレーム精度のツールから来てすでに格子上にあるので、その区間がバイト単位で戻ることもよくあります。
ここで読む字幕形式には、時計がどちらの約束にあるかを記録する欄がありません。SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON、CSV はどれも時刻を書くだけです。だからこのページは数値を変え、それがどちらの約束を意味するかはファイルが届く前と同じくパイプラインの性質のままです。ファイルにないものはファイルに書けず、そうでないふりをするのはそう言うより悪いことです。
これはフレームレート変換ではありません。25 fps の映像向けに付けたファイルはここで時刻を付け直されず、映像に対して伸びも縮みもしません。タイミングは間隔を保ち、綴り方だけが変わります。必要なのがもう一方の仕事、間隔が別のフレームレートに従う字幕ファイルなら、それには専用のページがあります。アップロードもありません。ファイルはブラウザタブ内で読まれ書き戻されるので、マシンから出せない素材はそのままマシンに残ります。
例
5分の位置にあるファイル
入力
1
00:05:00,000 --> 00:05:02,000
The room is dark.
2
00:10:00,000 --> 00:10:03,000
A cold night.
出力
1
00:05:00,333 --> 00:05:02,333
The room is dark.
2
00:10:00,600 --> 00:10:03,600
A cold night.
2つの字幕は同じ量だけ動かず、それが操作のすべてです。5分でドロップフレームは10個のラベルを飛ばしているので時計は 333 ms 後を読み、10分では18個を飛ばして 600 ms 後を読みます。テキストと字幕番号はファイル自身のもので、各字幕の2つの時計の値だけが書き換わります。
同じファイルを1時間の位置で
入力
1
01:00:00,000 --> 01:00:03,000
An hour into the programme.
出力
1
01:00:03,600 --> 01:00:06,600
An hour into the programme.
1時間で2つの約束は 3.6秒離れ、それは108個の飛ばしたラベルです。ページを確かめるときに比べる数値で、出力の最初の行は入力の最初の行よりちょうど 3600 ms 後になるはずです。字幕の両端が動くので長さは保たれます。
最初の1分に入る字幕
入力
1
00:00:02,000 --> 00:00:04,000
Nothing to re-label yet.
2
00:05:00,000 --> 00:05:02,000
This one does move.
出力
1
00:00:02,000 --> 00:00:04,000
Nothing to re-label yet.
2
00:05:00,333 --> 00:05:02,333
This one does move.
最初の字幕はバイト単位でそのまま返り、2つ目は同じ実行で動きます。1時間の最初の1分ではラベルが捨てられないので、2つの約束はその60秒を同じに綴ります。00:00:02,000 はすでに 30 fps のフレーム目盛りに乗っているので何も変わりません。2つの目盛りの間の時計は最大 17 ms 最も近いほうへ動かされ、それがファイルのどこでも適用される同じ吸着です。1つが変わらず隣が動くのは期待どおりの結果で、途中で止まった実行ではありません。
よくある質問
ドロップフレームと non-drop のタイムコードの違いは何ですか?
どちらも1秒に30個のラベルを数えますが、29.97 fps は1秒に30フレームを出さず約29.97しか出さないので、1秒に30個数える時計は実時間から少しずつ遅れます。ドロップフレームは10分ごとを除く毎分の頭で2個のラベルを飛ばして直します。フレームは捨てずにラベルだけを捨てるのです。non-drop はすべてのラベルを保ってずれます。書かれた形は同じ種類の数に見えますが、同じフレームと照らすと1時間で 3.6秒離れ、番組が長いほど further 離れます。
1時間の位置の字幕が入ったときより 3.6秒後になるのはなぜですか?
3.6秒は1時間に飛ばしたラベルの合計だからです。60分のうち54分で毎分2個、1個 33.37 ms で、1時間あたり108個、3600 ms です。ページは遅延を足しているのではなく、同じフレームをもう一方の約束で書いており、その約束は番組のその位置で後を読みます。01:00:00,000 が入って 01:00:03,600 が出てきます。両端が動くので字幕はミリ秒単位で長さを保ちます。
ファイルの最初の1分がそのまま返るのはなぜですか?
1時間の最初の1分ではラベルが捨てられず、ドロップフレームと non-drop がその区間を同じに綴るからです。00:00:02,000 はどちらでも60フレームで、60フレームはどちらでも同じように書かれます。ずれは最初の分の境界から始まり、その後育ちます。その区間で時刻を動かし得るもう1つは吸着です。00:00:02,010 のような2つの目盛りの間の値は 00:00:02,000 として返ります。フレーム精度のツールから写した時刻はすでに格子上にあり、まったく動きません。
必要なのはどちらの向きですか?non-drop からドロップフレームか、その逆か。
ファイルのタイムコードをどこから読んだかで決まります。non-drop に設定したプレーヤーや編集機から時刻を取り、納品先のパイプラインがドロップフレームで動くならこちらです。ファイルがドロップフレームの表示機に合わせて刻印され、後工程が non-drop を期待するなら、時計を同じ1時間あたり 3.6秒だけ逆へ動かす別のページです。見分け方として、ここで流して1つの字幕を比べ、出力の時計が入力より後を読むならこの向きが必要だったということです。
このページは字幕のフレームレートを変えますか?
変えません。何も拡大縮小も伸縮もしません。2秒だった字幕は2秒のままで、字幕の間隔も変わりません。各字幕は比率ではなく位置に応じた量だけ動くからです。25 fps の映像向けのファイルもここで 29.97 に変換されません。フレームレートの欄があるのは MicroDVD がタイミングをフレーム番号で保存し、それなしでは読めないからです。ファイルの間隔をあるフレームレートから別へ変換するのは別の操作で、専用のページがあります。
タイムコードがドロップフレームになったことをファイルはどこかに書きますか?
書きませんし、ここで読むどの形式にも書けません。SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON、CSV はすべて時刻だけを保存し、どう数えたかは保存しません。それは落としたファイルでも同じでした。だからページは数値を変え、それがどちらの約束を意味するかはパイプラインが言うままです。後工程のツールに独自のドロップフレーム設定があれば、その設定がこれらの値を読みます。