無料の動画編集ソフトとしては頂点に君臨しているDavinci Resolve。ちょっとしたVlogのカラーグレーディングからモーショングラフィックスまで何でもできちゃう優れものです。
しかし、私の環境ではDavinci Resolveに深刻な問題(バグ?)があります。動画を読み込むと「メディア オフライン」という赤い画面が点滅するというものです。

さらには、書き出した動画にも「メディアオフライン」という表示が現れます。

「やっと完成した!」とウキウキで書き出して
赤い画面ドン!だと涙が出てきちゃいます…


ストレージを疑ってみたものの特に異常はありませんでした。


これでは埒が明かないので、様々な条件でエンコードした動画を読み込ませ、原因と解決策を突き止めました。
参考までに、不具合発生時に読み込んでいた動画はPixel 7aで撮影した4k60p h.265の動画とyt-dlpでダウンロードしたVP9の動画です。
動画のコーデックとの相性が悪かったのではないか?
動画編集で使用していた素材の中にh.264の動画がなかったため、ffmpegにてh.264でエンコードした動画を取り込んでみました。
ffmpeg -i .\MV_1.mp4 -c:a copy -c:v h264_nvenc -preset p4 -profile main -rc vbr -rc-lookahead 1 -spatial-aq 0 -temporal-aq 1 -cq 23 -weighted_pred 0 -coder cabac -b_ref_mode 2 -dpb_size 4 -multipass 0 -g 120 -bf 2 -crf 18 output_h264_normal.mp4


すると、赤い画面が点滅することなく動画を再生することができました。
一番簡単な解決策は適当な動画編集ソフトを使いh.264で再エンコードすることだということですね。
でも、h.264では圧縮効率が下がってしまいますし画質の劣化につながるかもしれません。どうにかしてh.265で快適に読み込むことができないでしょうか。
中途半端なフレームレートになっていることが原因ではないのか?
Pixelで撮影した動画は可変フレームレートで記録されます。恐らくこれが原因です。


動画編集ソフトと可変フレームレートの相性が悪いことは容易に想像できます。Davinci Resolveに限らずPixelで撮影した動画ファイルは動画編集ソフトとの相性が悪いことが多いためこれが原因でしょう。
また、Youtubeからダウンロードした動画(60fps)はフレームレートが59.940としてDavinci Resolveに取り込まれます。


タイムラインのフレームレートと一致しなくなるため、ドロップフレームが起きているのかもしれません。
※タイムラインのフレームレートを59.940にしても「メディア オフライン」が表示されたので多分関係ない
そのため、フレームレートを明示したうえで再エンコードすれば問題が軽減されるでしょう。
ffmpegでは-r “フレームレート”と引数を加えることで指定できます。
ffmpeg -i .\MV_1.mp4 -r 60 output_h264_normal.mp4
動画のGOP長が長すぎるのではないか?
詳しい話は割愛しますが、GOP長が長ければ長いほど圧縮効率と画質が上がりIフレームの頻度が低くなります。
これはいいことのように思えますが、動画編集ソフトで扱う上ではデメリットも多いのです。Iフレームの頻度が少なくなるということはシークに時間がかかる上、再生時の負荷も増加します。詳しい解説は以下の記事を参考にしてください。


このGOP長の長さが編集時、書き出し時のエラーに関連しているのではないかということです。そのため、適切な設定で再エンコードすれば不具合なく再生できるようになります。ffmpegでは-bでBフレームの頻度、-gでGOP長を指定できますが、指定しなくても適切なGOP長でエンコードされると思います。解決しない場合は-g 5 -b 0と指定してもう一度試してみてください。
ffmpeg -i .\MV_1.mp4 -c:a copy -c:v hevc_nvenc -preset p7 -profile main10 -rc constqp -rc-lookahead 1 -spatial-aq 0 -temporal-aq 1 -weighted_pred 0 -init_qpI 21 -g 5 -b 0 -crf 18 output_5_0.mp4
動画編集で悩んでいる人のお役に立てば幸いです。最後まで見ていただきありがとうございました。
コメント