将OGV视频转换为GIF动画?


Answers:


38

看看这个:https : //askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast/107735#107735

..... Desktop Recorder将记录保存到OGV视频中后,将使用MPlayer捕获JPEG屏幕截图,并将其保存到“输出”目录中。

在终端上:

mplayer -ao null <video file name> -vo jpeg:outdir=output

使用ImageMagick将屏幕截图转换为动画gif。

convert output/* output.gif

您可以通过以下方式优化屏幕截图:

convert output.gif -fuzz 10% -layers Optimize optimised.gif

1
对于大量图像,我必须添加-limit map 1进行转换(否则将其“杀死”)。
Ax3l 2014年

有了30秒的ogv视频,convert命令占用了我所有的CPU,并且在我停止它之前持续了10分钟以上。添加-limit map 1到命令无法修复它。
2015年

1
尝试此方法来转换ffmpeg -i output/00000%03d.jpg output.gif unix.stackexchange.com/questions/24014/…–戴维德罗兹
Dawid Drozd)

值得一提的是,直接convert output/* -fuzz 10% -layers Optimize optimised.gif也是可行的,而且比两条命令的路径明显更快。此外,还mplayer可以轻松创建png屏幕截图,这对于捕获网站或GUI可能是首选。
拉斐尔

21

高质量的简单脚本

脚本:

inputFile=$1

FPS=15
WIDTH=320

#Generate palette for better quality
ffmpeg -i $inputFile -vf fps=$FPS,scale=$WIDTH:-1:flags=lanczos,palettegen tmp_palette.png

#Generate gif using palette
ffmpeg -i $inputFile -i tmp_palette.png -loop 0 -filter_complex "fps=$FPS,scale=$WIDTH:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif

rm tmp_palette.png

代码来自:https : //superuser.com/a/556031/295664

没有调色板:(231 KB)

在此处输入图片说明

带有调色板:(573 KB)

在此处输入图片说明


4

这个单线为我工作:

ffmpeg -i video.ogv video.gif

2
这与使用的现有答案有本质区别ffmpeg吗?怎么样?
ilkkachu

1
@ilkkachu我一直在寻找一种非常快速,简单且易于记忆的解决方案。其他答案要复杂得多,乍一看也不容易理解(尽管可能会导致更高质量的结果)。
luator

2
ifile=~/test.ogv

echo '# Determine input WxH and FPS' 
eval "$(ffmpeg -i "$ifile" 2>&1 |sed -nr 's/.*Stream.*Video.* ([0-9]+x[0-9]+),.*[^[0-9.]([0-9.]+).*tbr,.*/WxH=\1;FPS=\2/p')"

echo '# Output multiple images from the input video'
ffmpeg -i "$ifile" -r $FPS -s $WxH -f image2 -vframes 100 -y ~/test-%03d.jpg 2>/dev/null

echo '# use ImageMagic "convert" to generate the animated .gif' 
convert -delay 20 ~/test-[0-9][0-9][0-9].jpg  ~/test.gif 

echo '# remove temp image files'    
rm -f  ~/test-[0-9][0-9][0-9].jpg

echo 'Done!'

1
建议转换为更大的PNG,而不是JPEG,但会减少重新压缩的失真。
ideaman42 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.