基本編
iOSで撮影した動画をいろいろいじる機会があったので、メモ。
まず、Mac OS Xで動画を変換するにはffmpegが王道なのでインストール。
brew install ffmpeg --with-libvpx --with-libvorbis
※libvpxとlibvorbisをつけないと、webmの変換ができない。
動画の変換はffmpegが拡張子をみて判断してくれるので、mov→mp4 の変換は
ffmpeg -i foo.mov bar.mp4
で完了する(そして、かなりファイルサイズが小さくなるw)
縦向きで撮影した動画
iOSで縦向きで撮影した動画をそのまま変換すると、QuickTime / Safariでは縦向きで再生されるが、Chromeでは90度反時計回りになった動画が再生される。
ffmpeg -i bar.mp4
の出力結果に
rotate: 90
とあるが、rotateして表示するかどうかはクライアントによる実装に任せてあるとのこと。
そこで、
ffmpeg -vf "transpose=1" -i foo.mov bar.mp4
とすれば、Chromeで縦向きで再生されるが、今度はQuickTime/Safariで90度回転された動画が表示される。
transpose=1 + rotate=90 の結果のようだ。
というわけで、transpose=1 + rotate=0にしてあげると、すべてのブラウザで同じように表示されるはず。
ffmpeg -i foo.mov -vf "transpose=1" -metadata:s:v:0 rotate=0 bar.mp4
面倒ですね。