エンコード
動画などをエンコードするツールでは 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