GoPro動画の連番をリネームするVBScript

GoPro動画をワンショットで長時間撮影すると、そのファイルは4GBごとに分割して保存されます。

分割ファイルの命名規則は公式サイトで公開されているとおりです。

この分割ファイル名が実に扱いづらい。

録画タイプ ファイル名
チャプター分けされたビデオ GHzzxxxx.mp4
GXzzxxxx.mp4

  • H” = AVC エンコード
  • X” = HEVC エンコード
  • xxxx’ = ファイル番号
  • zz’ = チャプター番号
GH011234.mp4 (1 番目のビデオ)
GH021234.mp4 (同じビデオの 2 番目のチャプター)

Windowsのエクスプローラの[名前]順で表示すると、同じビデオのファイルが連続して並んでくれません💀。(↓)

[日付時刻]をクリックして並べ替えると、同じビデオのファイルが連続して並びます👌。(↓)

Windowsのエクスプローラで眺める分にはこれで良いのですが、動画編集ソフトで取り扱う際にはやはり混乱します。

GoProの命名規則が何故、一般的な感覚とは異なる[子番号]-[親番号]という順序になっているのか不思議です。

GoPro動画の連番をリネームするVBScript【ダウンロードと実行】

そこで、[親番号]-[子番号]の順序にリネームするスクリプト(VBScript)を作ってみました。

Windows10で動作確認済みです。Macでは動作しません。

ダウンロード

以下のリンクからダウンロードしてください。

GoPro動画連番リネーム.zipというファイルがPCに保存されます。

右クリック→[すべて展開]で解凍すると、

  • GoPro動画連番リネーム.vbs
  • GoPro動画連番リネーム【逆変換】.vbs

という2つのファイルが入っています。

ひとまずデスクトップにでもコピーしてください。

連番リネーム

早速リネームしてみましょう。

GoProのファイルをGoPro動画連番リネーム.vbs上にドラッグアンドドロップする

GoProのファイルを[GoPro動画連番リネーム.vbs]上にドラッグアンドドロップします。動画以外のファイルも全部含めて大丈夫です。

変換前に確認する

いきなり変換しません。[上記のようにリネームします。実行しますか?]と問い合わせます。

このツールは、GHzzxxxx.mp4またはGXzzxxxx.mp4という命名規則に該当するファイルだけを処理対象とします。画像ファイルなど対象外のファイルについては「対象外です。」と表示します。

変換後に結果を確認する

[はい]と答えると、リネームを実行します。これくらいのファイル数なら、2~3秒でエクスプローラ上のファイル名が変わります。

リネーム後は[親番号]→[子番号]の順に入れ替わり、さらに間にハイフンが入ります。

変換前 変換後
GH010098
GH020098
GH030098
GH040098
GH0098-01
GH0098-02
GH0098-03
GH0098-04

連番リネーム【逆変換】

ファイル名を元に戻したいときのために【逆変換】のVBScriptも用意しました。

ひとつのVBScriptで【変換】と【逆変換】を兼ねようかとも考えましたが、ユーザーインターフェースをどうするか決めかねたので、あっさり2つのスクリプトを用意することにしました。

GoProのファイルをGoPro動画連番リネーム【逆変換】.vbs上にドラッグアンドドロップする

 

GoProのファイルを[GoPro動画連番リネーム【逆変換】.vbs]上にドラッグアンドドロップします。動画以外のファイルも全部含めて大丈夫です。

変換前に確認する

いきなり変換しません。[上記のようにリネームします。実行しますか?]と問い合わせます。

このツールは、GHxxxxzz.mp4またはGXxxxxzz.mp4という命名規則に該当するファイルだけを処理対象とします。画像ファイルなど対象外のファイルについては「対象外です。」と表示します。

変換後に結果を確認する

[はい]と答えると、リネームを実行します。これくらいのファイル数なら、2~3秒でエクスプローラ上のファイル名が変わります。

リネーム後は[子番号]→[親番号]の順に入れ替わり、間のハイフンが消えて、元のファイル名に戻ります。

変換前 変換後
GH0098-01
GH0098-02
GH0098-03
GH0098-04
GH010098
GH020098
GH030098
GH040098

GoPro動画の連番をリネームするVBScript【改造】

ハイフンが不要な場合

[親番号]と[子番号]とのあいだのハイフンが不要な場合、以下のようにスクリプトを修正してください。

GoPro動画連番リネーム.vbsの修正

52行目の

sAfterFileName = rx.Replace(sBaseName,"$1$3-$2") & "." & sExtensionName	'リネーム後のファイル名

sAfterFileName = rx.Replace(sBaseName,"$1$3$2") & "." & sExtensionName	'リネーム後のファイル名

という具合にハイフン1文字を削除してください。

GoPro動画連番リネーム【逆変換】.vbsの修正

50行目の

rx.Pattern = "(G.)(\d{4})-(\d{2})"

rx.Pattern = "(G.)(\d{4})(\d{2})"

という具合にハイフン1文字を削除してください。

修正後、保存するときの注意

修正にはWindows標準のメモ帳やテキストエディタを利用します。VBScriptをダブルクリックで開こうとすると、スクリプトを実行してしまいます(その場合、[ファイルをドラッグ&ドロップしてください。]と注意ダイアログを表示して終わるようにしてあります)。

あらかじめメモ帳やテキストエディタを開いておき、そこにスクリプトをドラッグアンドドロップして開くとよいでしょう。

修正後、保存するとき文字コードのタイプに気を付けてください。

保存ダイアログで下部の[文字コード]を[ANSI]とします。テキストエディタによっては[S-JIS]、[Shift-JIS]といった表記になっているかもしれません。

まとめ

こんなツールを使わなくてもすむようにGoPro側で仕様を改善してほしいものです。

[親番号]の代わりに、録画開始時の[年月日時分秒]を付けると良いのではないでしょうか。

GH-yyyymmddhhnnss-01.mp4
GH-yyyymmddhhnnss-02.mp4
GH-yyyymmddhhnnss-03.mp4
GH-yyyymmddhhnnss-04.mp4

こうすれば[9999]を上限としたサイクリック問題も解消します。現状の8桁縛りはまるでMS-DOS時代のような古めかしさです。

登山用品
神山オンライン

コメント