我今天實際上是想自己弄清楚這一點,并發(fā)現(xiàn)了這個不錯的小要點:
用于保存視頻,用于轉換視頻,用于壓縮/清理最終的 gif。
它使用命令行漂亮的花紋及光碟筆刷,因此它可能不適合您的用例,但我懷疑這可以很容易地放入工作流程中。
安裝:
brew install ffmpeg
brew cask install xquartz #dependency for gifsicle, only required for mountain-lion and above
brew install gifsicle
轉變:
ffmpeg -i in.mov -s 600x400 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > out.gif
輸出分辨率可以(并且可能應該)隨文件名而變化。
對于那些想要生成 shell 腳本來執(zhí)行上述操作的人用mac錄視頻軟件,我想出了這個:
#!/bin/bash -e
# Converts a video to a gif
if [ "$#" -ne 2 ]; then
echo "usage: ${0##*/} [input video] [output gif]"
exit 1
fi
VIDEO=$1
GIF=$2
# finds width and height of $VIDEO expressed as 123x456
WIDTH_HEIGHT=$(ffprobe -loglevel warning -show_streams $VIDEO | grep -e "width\|height" | sed -E 's/(width|height)=//g' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/x/g')
# converts the video
ffmpeg -i $VIDEO -s $WIDTH_HEIGHT -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > $GIF
如果要為此創(chuàng)建自動化工作流,則需要使用“運行 Shell 腳本”工作流項,并將參數(shù)作為輸入。我不得不對其進行一些修改,因為生成的 .app 不知道用mac錄視頻軟件,也不知道在哪里Na個圖床,所以這個解決方案絕對不是很便攜,可能需要調(diào)整錦魚筆刷,但它至少很快:
#!/bin/bash -e
# Converts a video to a gif
if [ "$#" -ne 1 ]; then
echo "usage: ${0##*/} [input video]"
exit 1
fi
TOOL_PATH=/usr/local/bin
VIDEO=$1
GIF=$VIDEO.gif
# finds width and height of $VIDEO expressed as 123x456
WIDTH_HEIGHT=$($TOOL_PATH/ffprobe -loglevel warning -show_streams $VIDEO | grep -e "width\|height" | sed -E 's/(width|height)=//g' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/x/g')
# converts the video
$TOOL_PATH/ffmpeg -i $VIDEO -s $WIDTH_HEIGHT -r 10 -f gif - | $TOOL_PATH/gifsicle --optimize=3 --delay=3 > $GIF
然后,您可以將工作流程保存為文件友好的應用程序或服務,以便使用它就像將電影拖放到其中或右鍵單擊視頻文件一樣簡單:
我不知道為什么它顯然加速了..