少し前に以下を書きました。
いちいちバッチ処理用のシェルを作るの面倒だったのでrubyにしました。pythonでも良かったのですがやはりruby推しなので。
Dir.glob("*.mp4").each do |f| d = `exiftool -createdate "#{f}"` f_ = "_#{f.split(".")[0]}.mp4" `ffmpeg -i "#{f}" -vf scale=-1:720 -crf 23 -loglevel quiet "#{f_}"` `exiftool -alldates="#{d}" -overwrite_original "#{f_}"` end
このスクリプトを空フォルダにいれて、あと、小さくしたいmp4ファイルをそのフォルダにいれて、ターミナルで以下などと実行すればファイル名の先頭に_がついたファイルができます。720pにするのでスマホで撮影したファイルであれば7,8割くらい小さくなると思います。さらに、こちらによると-crf 23の数字を大きくするとさらに圧縮できるようです(x264 : 23、x265 : 28、1080p HD video : 31)
ruby a.rb
前後しますが、上記のスクリプトではffmpegとexiftoolを利用しています。未インストールであれば以下を実行してください。
brew install ffmpeg brew install exiftool