2015年4月22日 星期三

如何方便的將影片轉成 gif

有時候我需要將影片片段轉成 gif 動畫來分享
有沒有比較方便的方法呢?

你可以使用 ffmpeg 然後使用參數來轉檔
像是這樣
ffmpeg -ss 00:00:00.000 -t 10 -i filename.avi -vf scale=320:-1 -r 10 /tmp/output.gif
-ss 是起始時間
-t 總共所需時間(秒)
-i是檔名
-vf scale= 320:-1 則是將解析度設定為 320 X (自動)
-r 是 fps (frame per second)
/tmp/output.gif gif 輸出的檔名

可是這樣的參數實在有點難記
於是寫了一個簡單的 script 只要將你需要的參數填入就好


$ vim gif
#!/bin/bash
# convert movie to gif.
# $1 position hh:mm:ss[.xxx]
# $2 duration
# $3 file name
ffmpeg -ss "$1" -t "$2" -i "$3" -vf scale=320:-1 -r 10 /tmp/output.gif


執行的時候你只需要填入3個參數
  1. 起始時間
  2. 總共所需時間(秒)
  3. 檔名
$ gif 10:01 3 /tmp/filename.avi

這就是對 /tmp/filename.avi 取 3 秒鐘的影片轉成 gif 從 10 分 01 秒開始
把寫好的 script 複製到 /usr/bin 底下
以後就可以使用 gif 這個指令來建立你的 gif 圖檔了