rmagik の montage で 困った話
動画を配信するサービスをやっているので、動画の転送量が馬鹿にならない。 さぁどうするかね。
やりたかったこと
動画から生成した画像を montage
する。その時、画像の容量が大きくなるため、できるだけ削減したい。
やったこと
まずは画像の容量下げる方法考える。
CLIでやりたかったから、JPEGminiなどのGUIツールは却下。
とりあえずGoogle先生に聞いて見ると、こんな答えが返ってくる。
https://developers.google.com/speed/docs/insights/OptimizeImages?hl=ja
jpegoptim jpegtran 使えと、ほうほう。
Linux上で使うことも考えて、さくっとできそうなjpegoptimを使ってみる。
手順
ffmpeg -i original.mp4 -f image2 -vf fps=fps=12 -crf 20 images/img%d.jpg
jpegoptim --strip-all -m80 *.jpg
jpegoptim なし | jpegoptim あり |
---|---|
584K | 544K |
まぁ画像の総量を比較すると、少し減ってるのがわかる。 大きい動画の場合、もっと減る。
画像を結合する
montage *.jpg -tile 5x6 -background none animations/%d.jpg
jpegoptim なし | jpegoptim あり |
---|---|
564K | 564K |
......変化なし。
他のツールも使って見たけど、結果は同じ。
原因としては、montage
使うと、質の部分は元に戻るようだ。非可逆ではないjpegでどうやって認識してるのか分からないけど。
仕方ないので、montage
のオプションで使えるのがないかを探すと、-quality
でいけるみたい。
案外あっさりと見つかる。
montage *.jpg -tile 5x6 -background none -quality 80 animations/%d.jpg
quality 指定なし | quality 80 |
---|---|
564K | 296K |
下がったね。だいぶ
ちなみに今回作った画像の一部がこんな感じ