如何制作一个循环前进和后退的gif?

7 video-editor software-recommendation gif

我有一个 mp4 剪辑,我想将其转换为看起来平滑的 gif,它会以与向前播放相同的速度和质量向后重播。也就是说,当它到达剪辑的末尾时,它会反向播放,然后当到达反向版本的末尾时,它会开始播放正常版本,并且会继续循环,这样看起来平滑无跳跃。

我正在运行 Ubuntu GNOME 16.10 和 GNOME 3.22,是否有任何视频编辑器或其他应用程序可以用来执行这些操作?如果是的话,是哪些以及如何?或者也许是一个脚本来反转所有帧以创建一个新帧,然后将它们合并到 gif 中?只要速度和质量都很好并且相同并且没有跳跃,那么我并不介意它是如何完成的。

Maa*_*nsh 8

最简单的方法是使用这个在线工具。只需上传 GIF 并标记“运行到末尾并反向返回到开头”复选框即可。

我还没有看到任何内置这样功能的 Linux 工具,但是如果你不想使用在线工具或者文件太大,你可以使用 gifsicle 分割 GIF,复制并重命名帧或只是制作一个列表按升序和降序排列文件名,然后再次使用 gifsicle 将它们重新组合在一起。

像这样的东西可以解决这个问题:

gifsicle --unoptimize --explode original.gif && 
find . -iname "*\.gif\.*" | sort > frame_list.txt && 
find . -iname "*\.gif\.*" | sort -r >> frame_list.txt && 
cat frame_list.txt | xargs gifsicle > reversed.gif
Run Code Online (Sandbox Code Playgroud)

(如果您遇到损坏/闪烁的 gif 或某些 gifsicle 错误,您可能需要在分割之前使用 imagemagick 删除优化convert original.gif -coalesce unoptimized.gif:)


对于 mp4 到 gif 转换步骤,在线和离线有许多不同的选项,但我发现这可以产生最佳结果:http://blog.pkh.me/p/21-high-quality-gif-with- ffmpeg.html

制作 GIF 后对其进行拆卸和重新组装根本不会影响质量,mp4 到 gif 转换步骤将决定质量。

  • 欢迎询问 Ubuntu!我建议[编辑]这个答案来扩展它,并提供有关如何执行此操作的具体细节。(另请参阅 [如何写出一个好的答案?](/help/how-to-answer),了解 AskUbuntu 上哪些类型的答案被认为最有价值的一般建议。) (2认同)