見出し画像

【DaVinci Resolve】23.976fpsでも正確なタイムスタンプで字幕ファイルを生成したい話

DaVinci Resovleから字幕ファイル(SRT)を作成したら本来のタイミングからズレて書き出されてしまったので、その対処法を備忘録代わりに書き残します。

現象

以下の条件で書き出した字幕ファイルのタイムスタンプが実時間からズレる

  • ノンドロップフレーム(23.976fps / 29.97fps / 59.94fps)

  • 開始タイムコード(以下TC)≠[00:00:00:00]

ズレ方は開始TCに比例します。例えば[01:00:00:00]なら約3.6秒、[02:00:00:00]なら7.2秒といった具合。長尺で実験していませんが、尺が長い映像は後半の方がズレが大きくなると思います。

いくらノンドロップフレームでも20秒でここまでずれない

なぜズレるのか

23.976や29.97、59.94などの整数ではないフレームレートのノンドロップフレームTCは、実時間とのズレがどうしても発生しますが、そのずれを解消しないままタイムスタンプへ変換して字幕ファイルを書き出すからです。
23.976fpsは1秒に0.024コマ分TCと実時間のズレが生じています。1時間経つと[0.024 × 3600 = 86.4コマ]ズレが生じる計算です。
86.4コマは23.976fpsにおいては約3.6秒です。開始TCが[01:00:00:00]の場合は、開始時点で3.6秒ズレた状態の字幕ファイルが生成されます。
開始TCが[00:00:00:00]の場合は初手でズレることはありませんが、前記のとおり尺が長ければ後半でズレが大きくなる可能性があります。
ノンドロップフレームのズレを考慮してタイムスタンプへ変換してくれればいいのに…

対処法: ドロップフレーム(DF)の29.97fpsに移植して字幕ファイルを書き出す ※23.976fpsの場合のみ

元の23.976fpsタイムラインから字幕をコピーし、新規で作成した29.97fps (DF)に貼り付けてSRTファイルを書き出すことで実時間でのズレがなくなりました。
なお、タイムラインの開始TCは揃えると良いです。

ほぼ正確になりました

NDFの29.97や59.94fpsはちょっと分かんないです。そもそも29.97 / 59.94(NDF)ってわざわざ使う必要がなくないですか?素直にDFで撮って編集した方がいいでs……
「なぜ23.976fpsはこの方法でいけるのか」というのは、そもそも23.976って放送規格29.97p(59.94i)DFに綺麗に変換するためのものなんですよね。
そして23.976のまま放送に載せることもないからDFが存在しないfpsでもあります。29.97や59.94はDFがあるから素直にDFで撮ってh……

余談

他のアプリはどうなんだろうなと思ってPremiere Proでも試しましたが、DaVinci Resolveと同様のずれ方をしました。
整数のfpsだけで生きていきたい。

この記事が気に入ったらサポートをしてみませんか?