[Mac] コマンドラインで動画を2倍速変換する

Mac で動画を2倍速変換するには Adobe Premiere Pro なんかを使えばできるが、大量のファイルを2倍速変換するにはコマンドラインでやるのが楽だ。

環境:macOS Catalina Version 10.15.6(英語環境)

ffmpeg を使えば以下のコマンドで2倍速に変換できる。

$ ffmpeg -i input.mp4 -vf setpts=PTS/2.0 -af atempo=2.0 output.mp4

では指定ディレクトリ以下の mp4 ファイルを一括変換するにはどうすればいいか。

(1)動画ファイルを適当なディレクトリに集める。この際、ファイル名に半角スペースが含まれないようにする。

(2)以下のようなシェルスクリプトを作成し、x2converter.sh という名前で保存する。

#!/bin/sh
for i in $(ls)
do
ffmpeg -i $i -vf setpts=PTS/2.0 -af atempo=2.0 -f mp4 ${i%.*}_x2.mp4
done

ファイル名の最後に _x2 と付与した、2倍に変換されたファイルを同一ディレクトリに作成するようにしたわけだ(元のファイルはそのまま残す)。

(3)2のシェルスクリプトに実行権限を与える。

$ chmod 755 x2convert.sh

(4)3のシェルスクリプトを実行すれば。ディレクトリ内の mp4 動画が2倍速に変換される。

$ x2convert.sh

参考:
ffmpegを使って動画の再生速度を変えてみる – 脳内メモ++
http://fftest33.blog.fc2.com/blog-entry-36.html

ffmpegでmov拡張子とかからmp4に一括変換(ディレクトリ内)
https://nocebo.jp/post-3364/

フォルダ内のwavファイルを一括でmp3に変更 – Qiita
https://qiita.com/sumsum88/items/df441f080ef77afaf317