SATOXのシテオク日記

~ふもっふ、ふもふも~

全天球動画編集前のファイル仕分けバッチ作ってみた

最近、GoPro 6台を使って全天球動画を作る機会があったのですが、面倒なのがファイルの仕分け。
6台それぞれに録画された複数のmp4(H.264)ファイルをPC上に同期を取った状態で間違いないようにコピーする必要があり、手作業でやるのは面倒だし、なんだか間違えそうだと思ったので、バッチファイルを作ってみました。
簡単に言うと、撮ったファイルを半自動でフォルダ仕分けしてくれるものです。
前提としてはGoPro上に撮りためた直後からのお話で、各カメラ内のファイル数が同じであることが前提です。(例えば、あるGoProだけ動画が撮られている状態から撮るのはNG。なぜならファイル同期がずれちゃうので。最後のファイルの数が前後するのはOK。)
まぁ偉そうに記事にするほどたいした話じゃないんですが、もし同じ作業をしていてつらい思いをしている方がいおり、お役に立つならばこれ幸い……。

1. PC上にフォルダを作る
PC上の適当な場所にフォルダを作ります。
このフォルダ以下でファイルの仕分けを行います。
2. バッチファイルの準備
以下の内容をメモ長などのテキストエディタへ貼り付けて、例えば「distribute.bat」という名前で作成したフォルダに保存します。

@echo off
setlocal enabledelayedexpansion
set DIRNAMEPREFIX=mv
set FILESEARCH=*.mp4
set fileindex=1
set pad=4
rem ファイル名順、ファイル処理ループ
for /F %%A in ('dir /B /ON %FILESEARCH%') do (
	set DIRTMP=00000000!fileindex!
	set DIRNAME=%DIRNAMEPREFIX%!DIRTMP:~-%pad%!
	rem ディレクトリがなければ作る
	if not exist "!DIRNAME!\" (
    	mkdir !DIRNAME!
	)	
	echo "%%A" move to "!DIRNAME!"
	rem ファイルの移動
	move %%A !DIRNAME!\
	set /a fileindex=fileindex+1
)
endlocal

3. 1台のGoProからこのフォルダへファイルをコピー(または移動)します。
作業はGoPro1台ごとに行っていきます。
GoProから、作成したフォルダに1台分すべてのmp4ファイルをコピーします。
今回は13回動画を撮影したのでmp4ファイルが13あります。
(初めに全台数のコピーをしてはいけません)
4. バッチを実行
コピーが終わったら、先ほど作成したバッチを実行します。
すると、「mv(連番数字)」というフォルダが作成され、mp4ファイルが名前順に格納されます。

13ファイルがそれぞれ13フォルダに格納されます。
これで1台分の処理は終了。
3.に戻り、次のGoProのファイルコピー+バッチ実行をGoPro台数分回繰り返します。
 
これでフォルダごとにファイル仕分けが簡単にできました。便利便利。