Linux動態gif圖的錄制


Linux動態gif圖的錄制

前幾天寫了兩篇博客vim的配置Vim的自動代碼補全插件YCM的安裝和配置,反響還不錯。為了演示效果,想着錄制幾張動態的gif效果圖。抽空錄制了幾張,但是在Linux下錄制的過程並不是一帆風順。最開始想用大家推薦的byzanz,但是我在ubuntu13.04使用unity桌面(非gnome),byzanz依賴於gnome-panel, 所以只能在命令行下通過參數操作使用,很不方便。后來自己通過使用recordmydesktop錄制成ogv視頻再使用convert轉換制作成gif。特將其注意事項記錄下。不知道其他博友們再Linux下制作動態gif圖片有啥推薦。

byzanz的安裝與使用

Ubuntu下安裝

 sudo add-apt-repository ppa:fossfreedom/byzanz

sudo apt-get update

sudo apt-get install byzanz

你可以通過如下命令來完成錄制過程:

byzanz-record -d 40 -x 0 -y 0 -w 400 -h 320 byzanz-demo.gif

其中:

  • -d 40 為錄制的時長為 40 秒
  • -x 0 錄制區域的橫坐標
  • -y 0 錄制區域的縱坐標,記住:屏幕右上角為原點(0,0)
  • -w 400 錄制區域的寬度
  • -h 320 錄制區域的高度

byzanz-demo.gif 保存的文件名

詳細參數可通過byzanz-record --help查看。

我使用unity桌面的ubuntu下不能使用byzanz的圖形界面。即使是通過sudo apt-get install gnome-session-fallback並注銷選擇gnome桌面來安裝byzanz也不能啟用byzanz的圖形界面。圖形界面使用byzanz制作gif可以看參考部分的連接

recordmydesktop再convert成gif

recordmydesktop是一款著名的錄屏工具。它有gtk版本。使用很方便

  1. 安裝 
    sudo apt-get install imagemagick mplayer gtk-recordmydesktop
  2. 使用gtk-recordmydesktop錄制並保存文件為 out.ogv
  3. 執行如下命令將 out.ogv 分解成單幀圖片 
    mplayer -ao null out.ogv -vo jpeg:outdir=.
  4. 執行如下命令將單幀圖片壓縮成 gif 圖片 
    convert *.jpg out.gif
  5. 執行如下命令將 gif 圖片進行壓縮 
    convert out.gif -fuzz 10% -layers Optimize optimized.gif

第5步的壓縮效果很好,我做的一個能將一個30多M的壓縮成900多k

  • 注意事項:

通過上述第4步產生的out.gif如果太大,在第5步中進行壓縮優化時會出現

    convert.im6: UnableToAcquireString `Cannot allocate memory' @ fatal/string.c/AcquireString/135.

錯誤。

小一點的不會出現這個錯誤。

我的解決方法比較笨。就是將第3步產生的單張jpg圖片分成幾個部分分別壓縮成gif圖片,這樣每個gif圖片都不會太大,再經過第5步壓縮優化后合並成一個gif圖片。例如我在錄制這里的時長1分多鍾的vim的配置效果圖時,分解成單張的jpg圖片有600多張,直接將他們壓縮成gif圖片大小有80多M,在進行第5步壓縮優化時就會出現`Cannot allocate memory'錯誤,我是將這600多張圖分成2部分(前300張和后面300多張)分別壓縮成2個gif圖片,這樣再壓縮優化時就不會分配內存出錯。再將這兩張合成一張。

在將ogv視頻合成gif圖片時我也嘗試過使用QGifer,但轉換的質量效果沒有使用convert的好,且壓縮比率也沒convert高

參考資料

RECORD YOUR LINUX DESKTOP IN AN ANIMATED GIF WITH BYZANZ

Ubuntu使用byzanz截取動態效果圖

使用 Byzanz 錄制 Gif 動畫或 Ogv 視頻

ubuntu動態截圖,制作GIF動畫

Convert Ogv -video to Gif -animation

提取視頻制作為GIF動畫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM