[ PC系セットアップ覚書 Top]

PC系セットアップ覚書

2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;


[前] NAS壊れた‥ (4年ぶり2度目) 2018/03a

動画からAnimated GIFに 2018/01a

[Table of Contents]

FFmpeg というやつを使います

動画変換ツールでほぼ最強といえそうな FFmpeg を使ってみます。 最強のくせにフリーなんて最高じゃん! しかもWin用もMac用もあるし‥とは思うんですけど、 GUI的なユーザーインターフェースがないうえに、機能が多すぎて オプションが複雑すぎて何が何だか‥というのが弱点。

 なので自分がやったノウハウを忘れないうちメモメモ。

[Table of Contents]

[Step1] 動画から必要なエリアの切り出し

今回つくる動画は、縦横比を 1:2 にしたいと思います。そこでまず 元動画から指定した部分だけを切り出す crop の操作を行いたいと思います。

 こんな感じに書いてみました。

% ffmpeg -i CIMG000.MOV -vf "crop=600:300:20:80" -crf 21 -c:v h264 a.mp4
オプションですけど、 -i CIMG000.MOV は「入力ファイルは CIMG000.MOV」で、 -vf "crop=600:300:20:80" は「600x300+20+80 の座標を切り出して」で、 -crf 21 は「画質は21で(省略時は23;小さいほど高画質;指定できるのは0〜51)」、 -c:v h264 は「(-vcodec h264 と同じで)出力するビデオの codec は h264 で」、 最後の a.mp4 は「出力するファイルの名前は a.mp4 で」。

 ちなみに -vf オプションの指定について、ここでは crop というやつを使いましたけど、 他にも何やら大量にあるみたいで、現状ではちょっと私の手に余ります(^_^; とにかく、ここでいろんな変換フィルタによる処理を指定できるみたいです。

 これ以外に私が割とよく使うのが -ss と -t です。たとえば以下:

% ffmpeg -i CIMG000.MOV -ss 43 -t 113 -vf "crop=600:300:20:80" -crf 21 -c:v h264 a.mp4
こう書くと「スタートから43秒のところから、113秒分を切り出して」という感じになります (43、113 のところは 0:43、1:53 のような表記もアリ)。 よくわからないですけど、以下のように:
% ffmpeg -ss 43 -i CIMG000.MOV -t 113 -vf "crop=600:300:20:80" -crf 21 -c:v h264 a.mp4
-i オプションより -ss オプションを前で指定した方が動作が速いみたいです。

 「43秒目から1:53秒目までを切り出して」とする場合はこう:

% ffmpeg -i CIMG000.MOV -ss 43 -to 1:53 a.mp4
こんな感じで -to オプションで指定できるみたいです。この場合は注意点が一つあるみたいで、 それは上例のように -to に対応する -ss オプションを -i オプションの後ろにつけるか、 -copyts オプションをつけないとダメらしい、ということです。 [ Cutting small sections ]

 こうして作成された動画を見てみて、気にいる(まあガマンできる)感じになってるかどうか 確認します。

[Table of Contents]

[Step2] Animated GIF への変換

前のステップで作った a.mp4 から Animated GIF を作成します。こんな感じです:

% ffmpeg -i a.mp4 -r 3 b.gif
上とちがって -vcodec (-c:v) を指定してませんけど、そういう場合は b.gif の サフィックスから出力形式を推測してくれてるんでしょう。

 あとここで大事なのは -r オプションです。ここでは 3 を指定してますけど、 つまり「1秒で3コマに」という感じです。正確さを必要としたいときは -r 30000/1001 と 分数表記にすると良いとか書かれてるみたいですけど、まあ、そこまで正確である必要は ありませんでしたから‥というか「1秒で3コマ」はかなりのパラパラ漫画な感じになります (右に動画があればそれがそれ)。 動画の場合、この -r の値をどうするかでファイルのサイズがかなり変わってきますので、 サイズを決まった量以下におさえたいときは -r の指定に難儀するかもしれません。 (ちなみに日本での(?)一般的な動画のフレームレートは 29.97らしい)

 あとファイルサイズに影響するのが動画の大きさです。すでに上のステップで 600x300 サイズに調整済ですけど、さらに動画表示サイズ(とともに動画のファイルサイズ)を 調整したいときは以下:

% ffmpeg -i a.mp4 -vf "scale=300:150" -r 3 b.gif
こんな感じで調整できます。

[Table of Contents]

[ふろく] 画像から Animated GIF をつくる

ImageMagick パッケージに 含まれてる convert コマンドを使います。こんな感じ:

% convert -delay 1 -loop 0 IN/*.gif new.gif
-delay 1 は「画像切替は 1/100 秒」で、 -loop 0 は「無限ループ」で、IN/*.gif は動画にするファイル群で、 new.gif が新規作成される Animated GIF ファイル。そんな感じです。

 逆に Animated GIF を画像群にバラすときは +adjoin オプションを使うと良いらしいです。



[次] curlでFTPS 2017/11a