🖥️

FFmpegでPNGをWebPに一括変換

2022/07/04に公開

FFmpegを使って、ディレクトリ配下のPNGファイルをWebPファイルに一括変換します。
変換後のファイル名が*.png.webpにならないようにする方法も紹介します。

環境

  • macOS Monterey 12.4
  • FFmpeg version 5.0.1

1つのファイルを変換

input.pngoutput.webpに変換するには

$ ffmpeg -i input.png ouput.webp

ディレクトリ配下のPNGを一括変換

カレントディレクトリ配下のPNGファイルをWebPに一括変換するには

$ for f in *.png ; do ffmpeg -i $f $f.webp ; done;

変換後のファイル名が*.png.webpにならないようにするには

$ for f in *.png ; do ffmpeg -i $f ${f%.png}.webp ; done;

参考

shellのfor文

for 変数 in 値リスト
do
  処理
done

shellの;

コマンド1 ; コマンド2 ;  # <= コマンド1が終了したらコマンド2を実行する(実行結果に関わらず)

Linuxコマンドを連続して使うには - Qiita

shellの$

$NAMEで変数NAMEを示す
Linuxのシェルスクリプト変数の記号あれこれ - 気まぐれな備忘録(仮)

shellの{}

変数展開
変数名と文字列を区別する時に、変数名を明示的に指し示すために使う。

STR="user_${NAME}_logged_in!"

Bashの括弧のノウハウ(まとめ) - Qiita

shellの%

その変数に代入されている文字列を後ろから切り取る。

${変数%パターン}
で変数について、最後の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。
【シェルスクリプト】シャープ、パーセントを使った文字列操作 - とある物理の院生日誌~院生は社会へ旅立った~

FFmpeg基本の構文

$ ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

Discussion