mac OS X 的屏幕录制 GIF“视频”工具

小要点:gif。工作流程中。输出分辨率可以(并且可能应该)随着文件名的变化而变化。脚本来执行上述操作的人,我想出了这个:脚本”工作流程项,并使用参数作为输入。在哪里,所以这个解决方案绝对不是很便携,可能需要调整,但它至少很快:然后,您可以将工作流程保存为适用于文件的应用程序或服务,以便使用它就像将电影拖放到其中或右键单击视频文件一样简单:我不知道为什么它显然加速了....

我今天实际上是想自己弄清楚这一点,并发现了这个不错的小要点:

用于保存视频,用于转换视频,用于压缩/清理最终的 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 脚本来执行上述操作的人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

如果要为此创建自动化工作流,则需要使用“运行 Shell 脚本”工作流项,并将参数作为输入。我不得不对其进行一些修改,因为生成的 .app 不知道用mac录视频软件,也不知道在哪里Na个图床,所以这个解决方案绝对不是很便携,可能需要调整锦鱼笔刷,但它至少很快:

#!/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

然后,您可以将工作流程保存为文件友好的应用程序或服务,以便使用它就像将电影拖放到其中或右键单击视频文件一样简单:

演示转换的图像

我不知道为什么它显然加速了..

相关文章

发表评论