撮影設定を間違えて、動画を CRM(Canon RAW Movie) で録画してしまった。
普段使う分にはMP4で十分なのだけれど、気づいたときにはすでに8K RAWで撮影済み。
仕方がないので、最終的に
CRM
↓
CanonのソフトウェアでMOVへ変換
↓
ffmpegで4K MP4へ変換
という手順で処理した。
また同じことをやりそうなのでメモしておく。
最初はffmpegでCRMを直接変換しようとした
最初に考えたのは、当然ながらffmpegでそのまま変換する方法。
ffmpeg -i input.crm output.mp4
みたいにできれば一番楽だった。
しかし、どうもCRMをそのまま普通の動画ファイルとして扱うのは難しそうだった。
少なくとも今回の環境では、CRMを直接いい感じにMP4へ変換するところまでは持っていけなかった。
ということでCanon純正ソフトを使うことにした。
CanonのソフトウェアでCRMを現像する
CanonのCinema RAW Developmentを使ってCRMを読み込む。
ここからMOVへ書き出せる。
とりあえず
CRM → MOV
まではできた。
ただし、適当に現像するとなんか色が変。
RAWなので当然といえば当然なのだけれど、撮影時にカメラで見えていた映像と、書き出したMOVの見え方が結構違った。
今回は映像作品として厳密にカラーグレーディングしたいわけではなく、
間違ってRAWで撮ってしまった動画を普通に見られる状態にしたい
というだけなので、CRMからMOVへ書き出す際はBT.709を選んだ。
ここで少しハマったのが、色の設定場所だった。
最初はプレビュー設定を変更して見た目を合わせていたが、プレビュー設定は出力ファイルには反映されない。
書き出すMOVの色を設定するには、Cinema RAW Developmentの
エクスポート設定
↓
素材ファイル出力形式
↓
色空間/ガンマ設定
から設定する必要がある。
今回は、この色空間/ガンマ設定でBT.709を選んでMOVを書き出した。
MOVはできたのでffmpegでMP4にする
ここまで来れば、あとは普通の動画変換。
Cinema RAW Developmentから出したMOVをffmpegへ渡す。
今回は元動画が8Kだった。
本当は8Kのままでよかったし、積極的に4Kへ縮小したかったわけではない。
ただ、再生環境の問題があった。
手元で確認した限り、
- iPhone 15世代では8K動画の再生がカクつく
- iPhone 16 Pro Maxでは8Kでも問題なく再生できる
という状態だった。
8Kのままだと古いiPhoneでまともに再生できなかったため、今回は仕方なく4Kへ縮小することにした。
8Kから4Kへ縮小する
基本的にはscaleを指定すればいい。
16:9の8K素材なら、
-vf scale=3840:2160
を入れて4Kへ縮小できる。
例えばこんな感じ。
ffmpeg \
-i input.mov \
-vf "scale=3840:2160" \
-c:v h264_videotoolbox \
-c:a aac \
output.mp4
Macなので、最初はVideoToolboxを使ってH.264へ変換しようとした。
なんか死ぬ
ところが実行すると、
Cannot create compression session: -12903
Try -allow_sw 1. The hardware encoder may be busy, or not supported.
Error while opening encoder
みたいなエラーが出て変換できない。
今回一番詰まったところ。
8K素材を4Kへ縮小しつつVideoToolboxでエンコードしようとしたところ、圧縮セッションの作成に失敗していた。
エラーメッセージにもある通り、
Try -allow_sw 1
とのことなので、ソフトウェアエンコードへのフォールバックを許可する。
ffmpeg \
-i input.mov \
-vf "scale=3840:2160" \
-c:v h264_videotoolbox \
-allow_sw 1 \
-c:a aac \
output.mp4
これで処理できるようになった。
ハードウェアエンコードにこだわらないなら、最初からlibx264を使ってもいい。
ffmpeg \
-i input.mov \
-vf "scale=3840:2160" \
-c:v libx264 \
-crf 18 \
-c:a aac \
output.mp4
時間はかかるが、こちらの方が環境依存のトラブルは少ない。
最終的な流れ
今回やったことをまとめると、
間違えて8K CRMで録画
↓
ffmpegで直接変換しようとする
↓
うまくいかない
↓
Cinema RAW Developmentで現像
↓
色がなんか変
↓
プレビュー設定を変更する
↓
書き出したMOVには反映されない
↓
エクスポート設定の色空間/ガンマ設定でBT.709を選ぶ
↓
MOVを書き出す
↓
MOVをffmpegへ
↓
8K → 4Kへ縮小
↓
h264_videotoolboxが-12903で死ぬ
↓
-allow_sw 1を追加
↓
MP4完成
という感じだった。
結論
最終的には、
CRMをCanon純正ソフトで一度MOVへ変換して、そのMOVをffmpegで4K MP4にする
のが今回一番簡単だった。
CRMを直接どうにかしようとして時間を使うより、この方が早い。
まぁ急がば回れってことですなぁ。