顯示具有 ffmpeg 標籤的文章。 顯示所有文章
顯示具有 ffmpeg 標籤的文章。 顯示所有文章

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 圖檔了

2012年9月20日 星期四

如何在archlinux上安裝openmeetings

之前在自由軟體聚會上聽到Louie大大介紹這套軟體,心想應該不會很難搞吧!就拿家裡的小筆電來當lab server試試看,沒想到還是遇到了一些困難,花了一個禮拜才搞定。

簡單的介紹一下openmeetings,就是一套open source的線上會議伺服器系統,授權方式是EPL功能強大,有聲音、影像、電子白板、桌面分享、文件分享、會議錄製、投票......等功能。

OK,不囉唆,直接來吧!

2012年8月13日 星期一

解決在linux環境下,將桌面廣播到justintv

首先你必須要有justintv的帳號(廢話),
然後你的justintv帳號必須是開發者的帳號,可以到這裡申請,
然後到這邊來產生你的stream key,
如果還沒登入,會出現這行訊息 To get your stream key, please sign in.
你只要點sign in,登入你在justintv的帳號密碼,
他就會產生出一組stream key給你了
stream key代表你個人,所以請不要將這組key公開在網路上,
任何人只要有這組key就可以透過你的帳號來傳送live影片,

#!/bin/bash
API_KEY="YOUR STREAM KEY"
FPS="15"

INRES='1280x800'
OUTRES='1280x800'

ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \
               -f alsa -i hw:0,0 -vcodec libx264  -s "$OUTRES"  \
               -acodec libmp3lame -ab 64k -ar 22050 -threads 0 \
               -f flv "rtmp://live.justin.tv/app/$API_KEY"

-f x11grab 設定格式是抓取x11的畫面
-s 設定抓取的畫面解析度有多高
-r 設定每秒要幾個畫面
-i 設定要抓取哪個裝置
-vcodec 設定輸出影片編碼格式
-acodec 設定輸出聲音編碼格式
-ab 設定影像輸出bitrate
-ar 設定聲音sample rate(in Hz)
-threads 0 自動檢查和選擇適合的thread數量來壓縮影片
-f flv "rtmp://live.justin.tv/app/$API_KEY"
設定輸出的檔案格式為flash,並且將影片導到justintv的rtmp裡