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

ファイル名に入れたメモ書きを引き継いでリネームできる

ファイル名に入れた「メモ書き」を引き継いでリネームできます。

変換前 変換後
GH010098_登山口~359mピーク
GH020098_359mピーク~稲荷山
GH030098_稲荷山~6号路分岐
GH040098_6号路分岐~山頂
GH0098-01_登山口~359mピーク
GH0098-02_359mピーク~稲荷山
GH0098-03_稲荷山~6号路分岐
GH0098-04_6号路分岐~山頂

GoPro本来のファイル名に続けて、動画の内容をメモ書きしておくと、その部分を引き継いでリネームします。上の例ではアンダースコア(_)を1個挿入していますが、スペースでもハイフンでも、くっつけて書いてもかまいません。もちろん【逆変換】も可能です。

この「メモ書きを引き継ぐ」動作については、コメントで教えていただきました。

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時代のような古めかしさです。

登山用品
神山オンライン

コメント

  1. […] ↓こちらのサイトで公開されてます。 https://kamiyama-online.com/gopro-movie-renumbering-vbscript/ […]

  2. R1150GS-A より:

    ありがてぇ、ありがてぇ
    二泊三日のバイクツーリングでは、ファイルが1TBになることも珍しくなく
    仲間内に公開する動画編集に・・・ファイル名による並び順が障害でした
    本当に助かります
    kamiyamaさんというお名前、昔cgiをいじっていた時にお見受けしたような・・

    • kamiyama kamiyama より:

      R1150GS-Aさん、お役に立てたようで良かったです。
      GoProユーザー共通の悩みではないかと思います。

  3. コツメカワウソ より:

    素晴らしいスクリプト作成ありがとうございます!
    しかし何故か私は動作がうまくいかない状況で困っています…。
    (私のやり方がどこかダメなのかもしません。その場合は大変申し訳ございません。m(_ _)m)
    一応、私の場合の詳細を書いてみます。
    OSはWindows10 proです。
    「Gopro動画連番リネーム.vbs」に動画ファイル(例えばGH010321.MP4)をドロップすると、「圧縮しています…」の表示が出た後、「GH010321.MP4」のファイル名のままでコピペされたデータがGopro動画連番リネーム.vbsの隣に現れます。
    もし何かアドバイス等ございましたらお手数をお掛けしてしまいますがお教えいただけますと幸いです。
    どうぞよろしくお願い申し上げます。m(_ _)m

    • kamiyama kamiyama より:

      コツメカワウソさん、こんにちは。
      不思議な現象ですね。ファイル圧縮に関わるようなコードはないのですが…。
      大量の動画ファイルをハードディスクで管理されていて、
      そのハードディスクに何らかのデータ圧縮機能を設定されていないでしょうか。
      このツールはGopro動画連番リネームに特化しており使い方が簡単なことだけが取り柄ですので、
      どうしても解決しないようでしたらflexible renamerのような汎用ツールを利用されてはいかがでしょうか。

  4. コツメカワウソ より:

    kamiyama様
    ご丁寧なお返事、誠にありがとうございます!
    また、flexible renamerというツールも教えてくださりありがとうございます。

    リネームしたい動画ファイルが入っているフォルダーの中に「GoPro動画連番リネーム」を入れて、そこにドロップ&ドラッグすると無事リネームできました!
    しかも動画ファイル名に個別のメモ書きを入れている場合でもその内容を引き継いでくれるのですね。非常に便利で感動しました。
    (例:GH010321 散歩.MP4 → GH0321-1 散歩.MP4)
    本当にありがとうございました!m(_ _)m

    • kamiyama kamiyama より:

      コツメカワウソさん、解決して良かったです。

      ※もしかして圧縮ファイルを解凍せずに「GoPro動画連番リネーム.vbs」にドラッグ&ドロップしようとしたら、圧縮処理が走ろうとしたのかも…?

      ファイル名の前後のメモ書きが引き継がれるのは実は意図した動作ではないのですが、余計なことをしていないシンプルなツールの副産物ですね。

      たしかに分割動画にシーン名を付けておくと扱いやすくなります。記事中で言及したいと思います。

  5. Sekiai より:

    こんなスクリプトをずっと探していました。(^ω^)
    どうもありがとうございます。大変助かりました。
    GoProの番号振りの謎仕様は長年こんな感じですが、
    理解に苦しみますね。(^-^;)

    • kamiyama kamiyama より:

      Sekiaiさん、こんにちは。
      コメントありがとうございます。

      ほんとに謎ですよね。
      お役に立てて良かったです。