GIF 截屏;UNIX方式
要對螢幕的選定部分進行靜態螢幕截圖,我經常
scrot
使用-s shot.png
. 這非常適合在 StackExchange 文章中添加插圖。我什至發現這個腳本可以自動將這樣的截圖上傳到Imgur.com並在我的 X 剪貼板中放置一個連結!讓我們把它變成十二個:我如何類似地創建一個 GIF 截屏影片?
在Ask Ubuntu 上討論過, & co之類的程序旨在“使用者友好”,但根據我的經驗,這些程序有缺陷、效率低下、大多無法編寫腳本並且不適合像這樣的一次性小事情。
recordmydesktop``byzanz
我只想選擇一個區域並記錄一個 GIF,使用我可以理解的控制台命令,而不是一些神秘的無法編寫腳本的 GUI 怪物。
我怎樣才能做到這一點?
好吧
我開始
ffcast
,做了vim
,退出ffcast
,然後convert
ed.avi
→.gif
。我在另一個終端上執行了錄製命令。
$PATH
在此答案的末尾為您完善了腳本。發生了什麼?
擷取
FFcast 幫助使用者以互動方式選擇螢幕區域並將幾何圖形移交給外部命令,例如 FFmpeg,以進行螢幕錄製。
ffcast
是Arch Linux 社區(主要是lolilolicon)的一些 hacking的光榮產品。你可以在 github 上找到它(或者在Arch ers的 AUR中)。它的依賴列表只是and ,儘管您需要(AUR 連結))進行互動式矩形選擇。bash``ffmpeg
xrectsel
您還可以
ffmpeg
在命令之後附加標誌。我設置-r 15
為以每秒 15 幀的速度擷取並-codec:v huffyuv
進行無損錄製。(玩這些來調整大小/質量的權衡。)送禮
ImageMagick 可以讀取
.avi
影片並具有一些 GIF 優化技巧,可以在保持質量的同時大幅減小文件大小:-layers Optimize
toconvert
呼叫通用優化器。ImageMagick 手冊也有一個關於高級優化的頁面。最終腳本
這就是我的
$PATH
. 它在轉換之前記錄到一個臨時文件中。#!/bin/bash TMP_AVI=$(mktemp /tmp/outXXXXXXXXXX.avi) ffcast -s % ffmpeg -y -f x11grab -show_region 1 -framerate 15 \ -video_size %s -i %D+%c -codec:v huffyuv \ -vf crop="iw-mod(iw\\,2):ih-mod(ih\\,2)" $TMP_AVI \ && convert -set delay 10 -layers Optimize $TMP_AVI out.gif
感謝BenC
ffcast
在最近更新後找出正確標誌的偵探工作。