エンコード
動画などをエンコードするツールでは ffmpeg が定番である。例えば
ffmpeg -i hoge.mov hoge.mp4
とか,あるいはさらにいろいろオプションを付けて
ffmpeg -i hoge.ts -ss 4 -f mp4 -aspect 16:9 -s 960x540 hoge.mp4
などとする。動画だけでなく音声にも使える。
さて,かみさんの車のオーディオプレーヤーにUSBメモリを差し込んで聴いている曲で,再生できるものとできないものがあるという。見てみると,再生できないというものはだいたい1曲10MB以上の *.m4a のようだ。ファイルサイズというか,おそらくビットレートが問題なのであろう。そこで,10MB以上の曲をffmpegで128kbpsに再エンコードすることにした。大量にあるので手動でやるのはたいへんだ。そこで,おおよそ次のようなシェルスクリプトを使うことにした:
#! /bin/bash
for x in *.m4a; do
s=`stat -f%z "$x"` # これはMacの場合。Linuxでは-f%zを-c%sにする
if [[ $s -gt 10000000 ]]; then
ffmpeg -i "$x" -b 128k x.m4a
mv x.m4a "$x"
fi
done