もういいって感じかと思いますが、作業ログなので。。。
昨日、以下を書きました。
ファイル名から日付情報を取り出してExif情報を書き換えるrubyスクリプト - memorandums
これまではmp4が対象ファイルだったのですが、変換対象にmpgファイルがあることがわかり。。。調べるとタイトルの通りだったんですね。。。ちなみに情報の取得はできます。
うーん。。。困った。
とりあえず、手元のmpgファイルをGoogle Photoにアップするとファイル作成日時を採用するようでした。でも、exiftoolでは変更できない。。。困った。
動画フォーマットなんてこの際どうでもいいので、handbreakでmp4に変換して、そのあと昨日のツールを適用することにしました。
面倒なので、上記の作業を一緒にしたスクリプトを作りました。はい。
HandBreakCLIをHandBreakのサイトから入手して、/usr/local/binあたりに入れて、それを使いました。というか私はいつも使っています。スマホで撮影した動画なんかをそのままアップするとアップロード時間がかかるので小さくして送るときに使っています。
SRC_EXT = ['mpg','MPG'] DIST_EXT = 'mp4' SRC_EXT.each {|ext| Dir::glob('*.' + ext).each {|src| y = src[0, 4] m = src[4, 2] d = src[6, 2] if y =~ /\A-?\d+\Z/ and m =~ /\A-?\d+\Z/ and d =~ /\A-?\d+\Z/ then dist = src.sub(ext, DIST_EXT) m = '01' if m == '00' #特殊処理(ファイル名の月が00のときに強制的に01にする) d = '01' if d == '00' #同情じゃなくて同上 `HandBrakeCLI -i #{src} -o #{dist} --preset="iPhone & iPod touch"` `exiftool -overwrite_original -CreateDate='#{y}:#{m}:#{d} 12:00:00' -ModifyDate='#{y}:#{m}:#{d} 12:00:00' #{dist}` t = Time.mktime(y.to_i,m.to_i,d.to_i,12,0,0) File::utime(t,t,dist) end } }
こればっかりやっているわけではないのですが。。。やってる感じですね。ブログだけ見ると。恥ずかしい。。。