0

EDL(編集決定リスト)テキストファイルを、字幕を含む別のテキストファイルとマージしたいと思います。EDLはビデオ編集プログラムのFinalCutProから生成されますが、テキストファイルは通常のテキストです。この特定の要求は特定の最終用途に対するものですが、この種の処理を行うために従うことができる一般的な方法を学びたいと思います。私はPythonに精通していますが、UNIX / Macワークステーションで明確で使いやすいものであれば、他の言語の例でも大丈夫です。

EDLファイルの最初の数行の例を次に示します。

TITLE: SAMPLE EDL
FCM: NON-DROP FRAME

001  GEN      V     C        00:01:03:16 00:01:04:29 01:00:03:06 01:00:04:19  
* FROM CLIP NAME:  TITLE 3D
* COMMENT: 
* FROM CLIP IS A GENERATOR

002  GEN      V     C        00:01:04:15 00:01:08:03 01:00:04:29 01:00:08:17  
* FROM CLIP NAME:  TITLE 3D
* COMMENT: 
* FROM CLIP IS A GENERATOR

003  GEN      V     C        00:01:04:15 00:01:09:05 01:00:10:19 01:00:15:09  
* FROM CLIP NAME:  TITLE 3D
* COMMENT: 
* FROM CLIP IS A GENERATOR

004  GEN      V     C        00:01:04:15 00:01:07:03 01:00:17:17 01:00:20:05  
* FROM CLIP NAME:  TITLE 3D
* COMMENT: 
* FROM CLIP IS A GENERATOR

字幕テキストファイルの4つの「コンパニオン」行の例を次に示します。

001

If we think about climate change,

002

most of society's focused on fossil fuel combustion.

003

But what humans release on an annual basis is just one part of the carbon cycle.

004

Carbon dioxide concentrations also go up and down

最後に、望ましい最終結果の例を次に示します。

[00:00:03.06]
If we think about climate change,
[00:00:04.19]

[00:00:04.29]
most of society's focused on fossil fuel combustion.
[00:00:08.17]

[00:00:10.19]
But what humans release on an annual basis is just one part of the carbon cycle.
[00:00:15.09]

[00:00:17.17]
Carbon dioxide concentrations also go up and down
[00:00:20.05]

EDLファイルの例を見ると、重要なテキストは次のとおりです。

  1. 行番号すなわち001 002 003..。
  2. タイムコード番号の3列目と4列目

    01:00:03:06 01:00:04:19
    01:00:04:29 01:00:08:17
    01:00:10:19 01:00:15:09
    

字幕テキストファイルの行番号は、EDLファイルの行番号に対応しています。これは、シーケンスにオフセットやギャップがない1対1の一致です。テキストの各行は、改行なしで1行全体として目的の最終結果に入る必要があります。

最終結果は、基本的に、字幕テキストの番号が付けられた各行を1番目と2番目のタイムコード番号の間に挟みます。タイムコード番号も、次のように少し再フォーマットする必要があります。

  1. 各セットを角かっこで囲みます。[]
  2. 数値の最初のセット(時間)がゼロになっていることを確認し01:00:03:06ます。00:00:03:0607:06:15:2200:06:15:22
  3. 最後のコロン' '(フレーム番号の前)は:ピリオドに変換されます' .'つまり、00:00:03:0600:00:03.06

そして、それはほとんどそれです。字幕テキストファイルには約100〜120行のテキストがあり、EDLテキストファイルにはそれに応じて100〜120行の「決定」があります。さらに説明が必要な場合は、お問い合わせください。私が抱えている主な問題は、これから始める方法を見つけることです。プログラムで1つのファイル内の1行のテキストを操作することに頭を悩ませることはできますが、複数のファイル間の多くの行を管理する方法については少し混乱しています。

よろしくお願いします。

4

2 に答える 2

2

おおむねこれが計画のはずです。

  • ファイルを読む
  • ファイルの種類ごとにパーサーを作成する
  • データを有用なデータ構造/オブジェクトに保存する
  • 適切な形式で出力

コードに書き留めるだけの問題になるまで、各ステップを分割します。各ステップでテストします。

于 2011-01-23T21:02:21.703 に答える
0

これは、1 つのファイルから別のファイルへの 1 対 1 のマッチングです。各ファイルを解析して、有用なトークンのリストにします。

1 つのリストには開始時刻と終了時刻があり、もう 1 つのリストには字幕があります。

(開始、終了時間):

01:00:03:06 01:00:04:19 -> 01:00:04:29 01:00:08:17 -> 01:00:10:19 01:00:15:09 -> ...

他のファイルには次のものが含まれます。

"If we think about climate change," -> "most of .. fuel combustion" -> "But what .. carbon cycle" -> ..

両方のファイルをループして、2 つのリストを (1 対 1) マージします (新しいリストを作成する可能性があります)。最後に、新しいリストをファイルに書き込みます。

于 2011-12-14T17:55:29.443 に答える