Final Cut Pro用の連続する字幕ファイルを結合するには、各セグメントのキュー時刻を完成した編集での位置に合わせてずらし、結合したSRTを1つインポートします。各キューの開始時刻と終了時刻に同じオフセットを適用すれば、キューの長さと間隔を保てます。

このワークフローは、既存のSRTがそれぞれのセグメントの開始時刻を基準にタイミング調整された連続するソフトウェアデモのセグメントを組み立てる、Macの編集者向けです。目標は、キューごとに個別のタイミングを保った1つの字幕シーケンスを作ることです。Appleは、Final Cut Pro for Macでクローズドキャプションのワークフローを通じてSRTを直接インポートする方法を案内しています。Final Cut Pro for Macにクローズドキャプションをインポートする。

Final Cut Proのキャプションインポートでは実際に何が行われる?

Appleのインポーターには、タイミングに関する選択肢が2つあります。Relative to Timelineは、プロジェクトの開始時刻をキャプションのタイムスタンプに加算します。Absoluteは、プロジェクトの開始時刻にかかわらずタイムスタンプを使用します。どちらの選択肢にも、後続するソースセグメントごとに個別のオフセットを指定する機能はありません。そのため、再生ヘッドをセグメントBに移動しても、Bのゼロ起点SRTをその位置から開始させる方法としては、公式に案内されていません。Appleのキャプションインポート手順。

Join Captionsというコマンドもありますが、選択した隣接するキャプションクリップを、結合したテキストを含む1つのキャプションに置き換えます。これによってキューの構成が変わります。個々の表示タイミングを維持する必要がある連続ファイルでは、キューを分けたまま、タイムスタンプ付きのレコードを結合してください。Final Cut Pro for Macでクローズドキャプションを調整して配置する。

ここで使用するサポート対象の方法は、Final Cut Proの外部でオフセットを正しく適用したSRTを準備し、Appleのキャプションインポーターからインポートして結果を確認し、必要に応じて1つのキャプションファイルを書き出す方法です。キャプション生成機能やプラグインは必要ありません。

字幕を変更する前にオフセットを決める

まず、完成したプロジェクトで各セグメントが始まる位置を、プロジェクト開始からの経過時間で確認します。オープニングスレート、空白区間、短縮されたセグメントを含め、実際の編集位置を記録してください。字幕ファイルはコピーを使って作業します。

ファイルがすでに共通の時間軸を使っていないか確認します。セグメントBが編集開始から12秒の位置で始まり、最初のキューがすでに約14秒になっている場合、プロジェクト基準のタイミングが付いている可能性があります。さらに12秒を加えると、二重にずれてしまいます。最初のキューが約2秒なら、該当するメディアを確認し、ファイルがBの開始を基準にローカルでタイミング調整されているか確かめてください。

結合する前に、次の判断表を使ってください。

ソースのタイミングと編集状況 必要な処理
各SRTがそれぞれのセグメントの開始時刻を起点としている そのセグメントのプロジェクト上の経過開始時刻を、すべてのキュータイムスタンプに加える
各SRTが完成したプロジェクトの経過時間に沿っている セグメントオフセットを加えずにレコードを結合する
ソースのタイムスタンプに異なる時間起点が含まれている その起点を差し引いてから、対象セグメントの開始時刻を加える
セグメント内にカットや速度変更がある 結合する前に、影響を受けるキューを編集後のメディアに合わせて再調整する

変更のないセグメントの場合、計算式はnew time = source time + segment start − source originです。すべてのキューについて、開始時刻と終了時刻の両方に適用します。一定のオフセットを加えても、(end + offset) − (start + offset)はend − startに等しいため、長さは保たれます。セグメント内のキュー間隔も保たれます。

一定のオフセットでは、セグメント内の削除や速度変更は補正できません。Bの途中が数秒削除されている場合、そのカット後のキューには別の調整が必要です。ファイル全体を1つのタイミングのまとまりとして扱う前に、各SRTが編集で実際に使用されているセグメントと一致することを確認してください。

2つのセグメントのタイミング例を見る

以下の入力は説明用です。セグメントAはソフトウェアデモの最初の12秒間です。セグメントBはその直後の12秒時点から始まります。どちらのソースSRTもローカル経過時間0秒から始まり、どちらのセグメントもトリミングや再タイミングはされていません。

ファイル 完成した編集でのセグメント開始時刻 ローカルのキュー区間 必要なオフセット
part-a.srt 0秒 1~3秒、6~8秒 0秒
part-b.srt 12秒 2~4秒、7~9秒 +12秒

Aの最後の字幕は8秒で終わりますが、Aのメディアは12秒まで続きます。最後の字幕の終了時刻をBのオフセットとして使うと、Bは4秒早く配置されます。字幕のない部分も含め、配置はメディア編集に合わせる必要があります。

SRTレコードは、キュー番号、開始時刻と終了時刻、字幕テキスト、空行の区切りで構成されます。タイムスタンプは時、分、秒、ミリ秒を使い、例は00:00:02,000です。時間区切りは-->です。米国議会図書館はこの構造を説明し、SRTがプレーンテキスト形式であると記しています。SubRip字幕形式(SRT)。

説明用のpart-a.srtの全内容は次のとおりです。

1
00:00:01,000 --> 00:00:03,000
Open the sample project.

2
00:00:06,000 --> 00:00:08,000
Select the blue rectangle.

調整前の説明用part-b.srtの全内容は次のとおりです。

1
00:00:02,000 --> 00:00:04,000
Open the color controls.

2
00:00:07,000 --> 00:00:09,000
Choose the green swatch.

Bの各キューの両方のタイムスタンプに12秒を加え、Aの後にそれらのレコードを追加して、結合したシーケンスの番号を振り直します。完成後のcombined-demo.srt全体は次のとおりです。

1
00:00:01,000 --> 00:00:03,000
Open the sample project.

2
00:00:06,000 --> 00:00:08,000
Select the blue rectangle.

3
00:00:14,000 --> 00:00:16,000
Open the color controls.

4
00:00:19,000 --> 00:00:21,000
Choose the green swatch.

4つのキューはすべて、引き続き2秒間表示されます。Bのキュー間にある3秒の間隔も3秒のままです。Aの最後のキューが8秒で終わってから、Bの最初のキューが14秒に始まるまでの6秒間も意図したものです。Aの末尾にある字幕なしの4秒間と、Bの冒頭にある2秒間で構成されています。タイムスタンプの計算は、小規模な決定論的Python計算で確認しました。この例はFinal Cut Proでは実行していません。

Macで結合したSRTを準備する

短いファイルなら、プレーンテキストエディターでタイムスタンプを調整し、レコードを組み立てます。TextEditでは、書類を作成して保存する前にFormat > Make Plain Textを選択してください。Appleによると、新規書類はデフォルトでリッチテキストになっており、プレーンテキストに変換すると書類の書式が削除されます。MacのTextEditで書類を作成、開く、変換する。

完成したテキストをファイル名combined-demo.srtで保存します。実際の拡張子を確認してください。末尾が.srt.txtや.rtfになっていてはいけません。キュー間の空行を保ち、字幕テキストと改行を維持し、最終レコードに連番を付けます。上の例には、スタイルタグのないプレーンな字幕テキストが含まれています。

大きなファイルでは、選択したすべてのキューをずらせる字幕エディターを使い、同じ計算を適用します。開始時刻と終了時刻の両方が変更されることを確認してください。その後、ファイルを結合する前に、調整後の最初と最後のキューをオフセット一覧と照合します。継続時間の調整やタイミングの伸縮と説明されるコマンドは、一定のオフセットを加える操作とは目的が異なります。

元のファイルをそのまま連結して番号を振り直すだけではいけません。番号は順序を示すもので、キューを動画の後の位置に移動させるものではありません。タイムスタンプが0秒付近の2つのファイルは、連結後も0秒付近のタイムスタンプを持ったままです。

結合したファイルをFinal Cut Proにインポートする

完成したプロジェクトを開き、Appleの案内するインポート手順に従います。

  1. File > Import > Closed Captionsを選びます。
  2. combined-demo.srtを選択します。
  3. Import as Roleで、SRTキャプションのロールと適切な言語サブロールを選びます。
  4. Insertion Timeで、プロジェクト開始からの経過時間を使うこの例ではRelative to Timelineを選びます。
  5. Importをクリックします。

キャプションはタイムラインの上にあるキャプションレーンに表示されます。01:00:00:00から始まるプロジェクトでは、経過時間14秒の例のキューが、およそ01:00:14:00に表示されるはずです。提示されたタイムスタンプがすでに目的のタイムライン時計を表している場合に限り、Absoluteを使ってください。これらのタイミング選択はAppleのインポートに関する説明に基づいています。

ミリ秒単位のタイムスタンプとフレーム単位のタイムコードを混同しないでください。サンプルSRTの00:00:14,000は、ちょうど14秒を意味します。計算を明確にするため、例では秒単位の境界を使用しています。インポート後は、実際のプロジェクトに照らしてより細かなタイミングを確認してください。

セグメント境界を確認し、タイミングの誤りを診断する

Shift-Command-2でタイムラインインデックスを開きます。Rolesでキャプション表示を有効にし、対象の言語サブロールを選択します。Captionsペインでキューを選択すると、再生ヘッドがその開始位置に移動します。View Errorsを選ぶと、エラーのあるキャプションに一覧が絞り込まれます。ビューアーとタイムラインでのキャプション表示は個別に切り替えられます。Final Cut Pro for Macでクローズドキャプションを表示または非表示にする。

この例では、4つのキャプションが別々に表示されることを確認します。Aの最初と最後のキュー、セグメント境界付近の空白区間、Bの両方のキューを確認してください。実際のプロジェクトでは、インポートしたすべてのセグメントについて境界を確認し、シーケンス全体を再生します。

症状 最初に確認する項目
すべてのキューが同じ量だけずれている プロジェクト開始時刻とインポート時のタイミング選択
1つのセグメントだけが全体を通して同じ量だけずれている そのセグメントのオフセットまたはソースの時間起点
内部編集後にタイミングが変わる メディアのトリミング、削除、挿入、速度変更
後のファイルが冒頭付近に表示される オフセットなしでローカルタイムスタンプを追加した
ビューアーにキャプションが表示されない キャプションの表示設定と有効な言語サブロール

キャプションが重なる場合は、表示時間を変更する前にオフセット計算を確認します。同じ言語サブロール内での重なりは通常エラーになること、またResolve OverlapsはクリップをトリミングすることをAppleは説明しています。また、キャプションを隣接するキャプションにドラッグすると、上書きされる場合があるとも記されています。どちらの操作も元のタイミング境界をすべて維持するものではないため、根本のタイミングを変更する必要があると判断した後にのみ使用してください。Appleのキャプション配置ガイド。

完成した編集用の字幕ファイルを1つ書き出す

File > Export Closed Captionsを選び、出力に名前を付けて、Rolesで対象の言語サブロールを選択します。Final Cut Proは、選択した言語サブロールごとに個別のファイルを作成します。完成した動画の開始時刻から測ったSRTにする場合は、Relative to Timelineを選びます。これによりプロジェクト開始時刻が差し引かれます。Absoluteではタイムライン時計が維持されます。Final Cut Pro for Macでクローズドキャプションを書き出す。

これらの装飾なしのデモ用キャプションでは、Include Formattingの選択を解除します。スタイルは想定するプレーヤーで異なる表示になる可能性があるため、Appleは一般にSRTの書式を削除することを推奨しています。書き出したファイルを再度開き、キュー数、テキスト、セグメント境界のタイムスタンプが、確認済みのプロジェクトと一致することを確かめてください。AppleのSRT書き出しガイド。

完成した結果では、各キューが個別のタイミング付きレコードとして保たれているはずです。各セグメントのオフセットは編集上の実際の位置に基づいて設定し、字幕のない区間を保ち、インポート後に境界を確認してください。こうすれば、組み立てた動画にタイミングが合った字幕シーケンスを作成できます。

出典