扱いにくいファイル名
GoPro Hero 10を使用しているのですが、録画されたファイルの命名規則が使いづらいという問題があります。
動画やタイムラプスでのファイル名の命名規則は次のようになっています。
GXzzyyyy.MP4
yyyy : ファイル番号。録画を開始する毎に順に割り振られる番号。1から始まる。
zz : チャプター番号。録画ファイルは約4GB毎に分割され、1から始まる番号が付けられる。
つまり、最初はGX010001.MP4から始まり、ファイルが4GBを超えるとGX020001.MP4となっていきます。録画を終了して、再度録画を開始するとGX010002.MP4として記録され、4GBを超えるとGX020002.MP4となっていきます。
このファイル名で記録されるとなると、後日PCで録画ファイルを扱う時にちょっと困ったことが起こります。たとえば、2回録画した時に記録されたファイルが次のようになったりします。
- GX010001.MP4 (最初に録画されたファイル)
- GX010002.MP4 (2番目に録画されたファイル)
- GX020001.MP4 (最初に録画されたファイルの2番目のファイル(GX010001.MP4のつづき))
- GX020002.MP4 (2番目に録画されたファイルの2番目のファイル(GX010002.MP4のつづき))
一般的にPCでファイルを一覧表示したときにはファイル名順になっている事が多いと思いますが、GoProが作成するファイル名の命名規則ではファイル名順にしたときに録画順になりません。PCでファイルを閲覧するときに時刻順にすればよいのですが、あまり時刻を意識することに慣れていませんし、なにかとファイルを扱うときにはファイル名に頼ることが多いはずです。
ファイル名を変換する
GoProのファイル名の命名規則は後々の作業が面倒になりがちなのでファイル名を変換してしまいます。
手作業で行うとなると、結構手間暇がかかりますし、間違いの元なのでシェルスクリプトを使って変換してしまいます。シェルスクリプトを起動するのも面倒なのでAutometerを使います。
Autometerで「クイックアクション」を作成します。
ワークフローが受け取る現在の項目で「ムービーファイル」を選びます。
「シェルスクリプトを実行」を追加します。
シェルは「/bin/bash」を選んで、入力の引き渡し方法には「引数として」を選びます。
スクリプトは以下の感じ。
set -e
NEWPRE="GX_"
for f in "$@"
do
FN=`basename $f`
DN=`dirname $f`
PRE=`echo $FN | cut -c 1-2`
CHA=`echo $FN | cut -c 3-4`
NUM=`echo $FN | cut -c 5-8`
EXP=`echo $FN | rev | cut -c 1-4 | rev`
if [[ ${#FN} -ne 12 ]]; then
continue
fi
if [[ $PRE != "GX" ]]; then
continue
fi
if [[ $EXP != ".MP4" ]]; then
continue
fi
mv $f $DN/$NEWPRE$NUM$CHA$EXP
done
変換前のファイルなのか変換後のファイルなのかを見分けられるようにファイル名の先頭”GX”を”GX_”にしました。
「GoProファイル名変換」といった名前で保存します。
Finderの右クリックから「クイックアクション」で「カスタマイズ…」を選ぶか、システム設定の「プライバシーとセキュリティ」から「Finder」を選ぶとautometorで保存したクイックアクションが表示されているのでチェックを入れます。
これでファインダーからファイルを選択して右クリックからクイックアクションを表示させれば作成したクイックアクションが出来上がっているので選択するだけ。ファインダーの機能のようにGoProのファイル名を変換することができるようになりました。
コメント