A-TAK.COM

GH7買って写真撮るようになったのでEXIF埋め込みと写真縦横分別するスクリプト作った

※Amazonのアソシエイトとして、A-TAK.COMは適格販売により収入を得ています
※本サイトではその他アフィリエイトも利用しております。

広告
シェア

DaVinci Resolve スクリプティングでEXIF情報をFusionタイトルに一括セットするスクリプトと、写真の縦横を仕訳してタイムラインに入れるスクリプトを作りました。

これはなにか

https://github.com/a-tak/ExifToFusion

https://github.com/a-tak/VerticalHorizontalSorter

DaVinci Resolve Scripting APIという機能を使ってDaVinci Resolveを操作して動画や写真の撮影時のF値やシャッタースピードなどの情報をFusionタイトルで表示するツールです。

もう一つはDaVinci Resolveに取り込んだ写真の縦横を分別してそれぞれ別のタイムラインに仕訳してくれるスクリプトです。

最近、PanasonicのGH7というカメラを新しく買い写真を撮るようになったので、それを効率良く扱えるようにしたいなと思ってプログラミングしてみました。

Exif情報を取得して既存のFusionタイトルに埋め込むスクリプト

写真や動画にはEXIFという撮影時の設定を記録が残っています。ここにはF値やシャッタースピード、ホワイトバランスなど様々な情報が記録されています(カメラによって残っている情報はマチマチです)。

それをFusionタイトルのパラメーターにセットして動画の中に表示することを目的にしたスクリプトが「ExifToFusion」です。

ここ最近、GH7で撮ってきた動画や写真をスライドショー的に動画にしてYoutubeにアップしているのですが、撮影したときの写真や動画で使っているレンズや機種名、絞り値や動画のコーデックなどを動画に一緒に表示して自分で振り返れるようにしたくてこういうことやってます。

実際にこれを使って作った動画がこちらです。

こんな感じで動画の左下に撮影情報を入れてます。

EXIF情報を取得する部分は「Exif Tool」というツールを使っているので、大抵のメーカーのカメラには対応しています(有志の方がいろんなカメラに対応して情報集められているので)。

使用できるFusionタイトルには限りがあります。こちらは私が一人でメンテしてるからですね。現状は @akiraxe さん作成の「Exif Text」とDaVinci Resolve標準の「Text+」のみです。

FusionタイトルにEXIF情報をセットする部分を各Fusionタイトル毎に作り込む必要があるので、とりあえず自分がもっているFusionプラグインのみ対応しているという状況です。

Fusionの一番最初のノードに対してパラメーターを設定しているのですが、これがFusionタイトル毎に違うんですね。なので、Fusionタイトルの方がバージョンアップしたりして最初のノードの名前が変わってりするとすぐ使えなくなります😅

Pythonのインストールなどが必要になるのでなかなか導入までに手間取ってしまうかもしれませんが、細かい使い方はWikiに記載しているので、もし使われる方がいらっしゃるのであればそちらご覧ください。

https://github.com/a-tak/ExifToFusion/wiki

一度準備が出来てしまえば、使用するFusionタイトルを指定してExifを取得したい動画や写真を置いているトラックの番号とFusionタイトルを配置したいトラック番号入れると一括でタイトルを生成してくれるので対象の写真や動画が多いと結構楽です。

写真の縦横を分別してタイムラインに追加するスクリプト

通常はLightroomやDarkroom、もしくはPhotoshop、Affinity Photoなどのアプリで写真をレタッチすると思いますが、私はDaVinci Resolveで写真のレタッチをしています。

Lightroomが写真管理も含めるとベストだとは思うんですがしばらく写真撮ることがなくなっていたので私は契約していません。あとDaVinci Resolveでの色編集に慣れてしまったので、あまり他のソフトで編集する気が起きないのです。Affinity Photoは一応もってるのですが。

DaVinci Resolveで写真のレタッチする上で一番困るのは「縦」の写真です。

DaVinci Resolveは動画編集ソフトなので画像の縦横の解像度はタイムラインで一種類のみです。そのため縦写真用と横写真用のタイムラインを作って、それぞれに縦と横の写真を振り分けてレタッチする必要があるのですが、これが一枚ずつ仕訳していくのが非常にめんどくさい。

写真を縦用と横用のタイムラインに自動で仕訳してくれるのが「VerticalHorizontalSorter」です。下記のポストに雰囲気つかめるような動画を貼っています。

メディアプールに縦横写真混在した状態で突っ込んでおいてこのスクリプトを実行すると縦用のタイムラインと横用のタイムラインを作って仕訳してくれます。あとはそれぞれレタッチしてスチルを書き出せばJPEGとして出力できます。

最初に書いていた動画でスライドショー的に写真載せる場合は、実はこのスクリプト使う事ないんですが、SNS等に投稿する時は縦横うまく使い分けられないと余白が出来てしまって変なので使ってます。

DaVinci Resolveのスクリプト界隈の今後への期待

DaVinci Resolve Scripting APIを使うとこんな感じでDaVinci Resolveの自動化が行えます。今回のようにExifToolを呼び出して動画や写真のEXIF情報を読み込むなどのDaVinci Resolveには無い機能をプログラム側で補完することもできます。

ただ個人的にはこのDaVinci Resolve Scripting APIを扱うツールは配布するのがちょっとやっかいだなと思っていて、今回のようにPythonを使う場合は各自Pythonのインストールしてもらうようなハードルの高さがあります。追加モジュールを使うならそれもpipコマンドなどでインストールしてもらう必要がある。

他にもElectronでも同様にDaVinci Resolveを操作できるのですが、残念ながらDaVinci Resolveに組み込みのElectronを使うようになっており、このElectronのバージョンがかなり古い。

普通、ElectronというとElectronの実行環境自体も含めて配布するので配布しやすいのが特徴の一つでもあるのですが、DaVinci ResolveのElectron用インターフェースはそうではなくてElectron自体DaVinci Resolve付属のものを使うんですね。なんか珍しい形態です。

唯一Luaだけがユーザー側で何か別途インストールすることなく使えるんですが、Lua単体だと機能が弱くて自分でいろいろ作り込まないといけないのでしんどい。

あとまだDaVinci Resolve Scripting API自体がちょっとバグが多い、仕様がまだコロコロ変わってる印象あります。まだこれからという仕組みなのかなという感触です。

今後がこの機能使ってDaVinci Resolveを拡張していく流れが来てれないかなと期待しています。楽しみです。

広告

シェア

投稿日

カテゴリー:

投稿者:

カテゴリ一覧