Convert OGV video to GIF animation?
Clash Royale CLAN TAG#URR8PPP
up vote
37
down vote
favorite
I created OGV videos with the gtk-recordmydesktop
screencasting program, trying to tackle this problem here with bruteforce over X. I can view the videos with VLC.
Now, the task is to find some ways to convert OGV videos into GIF animations so I can display them on SE. How can I do that?
video conversion screencasting
add a comment |
up vote
37
down vote
favorite
I created OGV videos with the gtk-recordmydesktop
screencasting program, trying to tackle this problem here with bruteforce over X. I can view the videos with VLC.
Now, the task is to find some ways to convert OGV videos into GIF animations so I can display them on SE. How can I do that?
video conversion screencasting
add a comment |
up vote
37
down vote
favorite
up vote
37
down vote
favorite
I created OGV videos with the gtk-recordmydesktop
screencasting program, trying to tackle this problem here with bruteforce over X. I can view the videos with VLC.
Now, the task is to find some ways to convert OGV videos into GIF animations so I can display them on SE. How can I do that?
video conversion screencasting
I created OGV videos with the gtk-recordmydesktop
screencasting program, trying to tackle this problem here with bruteforce over X. I can view the videos with VLC.
Now, the task is to find some ways to convert OGV videos into GIF animations so I can display them on SE. How can I do that?
video conversion screencasting
video conversion screencasting
edited Sep 2 '17 at 12:47
Matthias Braun
1,81421120
1,81421120
asked Mar 29 '12 at 1:15
user2362
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
up vote
37
down vote
take a look at this: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast/107735#107735
..... After the Desktop Recorder has saved the recording into an OGV video, MPlayer will be used to capture JPEG screenshots, saving them into the 'output' directory.
On a terminal:
mplayer -ao null <video file name> -vo jpeg:outdir=output
Use ImageMagick to convert the screenshots into an animated gifs.
convert output/* output.gif
you can optimize the screenshots this way:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
1
For a large number of images, I had to add-limit map 1
to convert (got a "Killed" otherwise).
– Ax3l
Sep 8 '14 at 15:12
With a 30 second ogv video, the convert command took all my cpu and was going for over 10 minutes before i stopped it. adding-limit map 1
to the command did not fix it.
– max pleaner
Oct 21 '15 at 21:19
1
Try this for convertingffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/…
– Dawid Drozd
Jul 13 '16 at 16:07
It bears mention that directconvert output/* -fuzz 10% -layers Optimize optimised.gif
is possible as well, and noticeably faster than the two-command path. Also,mplayer
readily createspng
screenshots as well, which may be preferred for captures of websites or GUIs.
– Raphael
Oct 4 '17 at 10:09
add a comment |
up vote
19
down vote
Simple script with good quality
Script:
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
Code from: https://superuser.com/a/556031/295664
Without palette: (231 KB)
With palette:(573 KB)
add a comment |
up vote
3
down vote
This one-liner is working for me:
ffmpeg -i video.ogv video.gif
2
Is this essentially different from the existing answers that useffmpeg
? How?
– ilkkachu
Dec 8 '17 at 15:12
1
@ilkkachu I was looking for a very quick, simple and easy-to-remember solution. The other answers are much more complicated and not so easy to understand at first glance (probably resulting in higher quality results, though).
– luator
Dec 8 '17 at 22:53
add a comment |
up vote
2
down vote
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
Suggest converting to PNG, not JPEG, larger but reduces re-compression artifacts.
– ideasman42
Mar 30 '14 at 6:50
add a comment |
protected by Community♦ Nov 22 at 6:49
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
37
down vote
take a look at this: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast/107735#107735
..... After the Desktop Recorder has saved the recording into an OGV video, MPlayer will be used to capture JPEG screenshots, saving them into the 'output' directory.
On a terminal:
mplayer -ao null <video file name> -vo jpeg:outdir=output
Use ImageMagick to convert the screenshots into an animated gifs.
convert output/* output.gif
you can optimize the screenshots this way:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
1
For a large number of images, I had to add-limit map 1
to convert (got a "Killed" otherwise).
– Ax3l
Sep 8 '14 at 15:12
With a 30 second ogv video, the convert command took all my cpu and was going for over 10 minutes before i stopped it. adding-limit map 1
to the command did not fix it.
– max pleaner
Oct 21 '15 at 21:19
1
Try this for convertingffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/…
– Dawid Drozd
Jul 13 '16 at 16:07
It bears mention that directconvert output/* -fuzz 10% -layers Optimize optimised.gif
is possible as well, and noticeably faster than the two-command path. Also,mplayer
readily createspng
screenshots as well, which may be preferred for captures of websites or GUIs.
– Raphael
Oct 4 '17 at 10:09
add a comment |
up vote
37
down vote
take a look at this: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast/107735#107735
..... After the Desktop Recorder has saved the recording into an OGV video, MPlayer will be used to capture JPEG screenshots, saving them into the 'output' directory.
On a terminal:
mplayer -ao null <video file name> -vo jpeg:outdir=output
Use ImageMagick to convert the screenshots into an animated gifs.
convert output/* output.gif
you can optimize the screenshots this way:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
1
For a large number of images, I had to add-limit map 1
to convert (got a "Killed" otherwise).
– Ax3l
Sep 8 '14 at 15:12
With a 30 second ogv video, the convert command took all my cpu and was going for over 10 minutes before i stopped it. adding-limit map 1
to the command did not fix it.
– max pleaner
Oct 21 '15 at 21:19
1
Try this for convertingffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/…
– Dawid Drozd
Jul 13 '16 at 16:07
It bears mention that directconvert output/* -fuzz 10% -layers Optimize optimised.gif
is possible as well, and noticeably faster than the two-command path. Also,mplayer
readily createspng
screenshots as well, which may be preferred for captures of websites or GUIs.
– Raphael
Oct 4 '17 at 10:09
add a comment |
up vote
37
down vote
up vote
37
down vote
take a look at this: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast/107735#107735
..... After the Desktop Recorder has saved the recording into an OGV video, MPlayer will be used to capture JPEG screenshots, saving them into the 'output' directory.
On a terminal:
mplayer -ao null <video file name> -vo jpeg:outdir=output
Use ImageMagick to convert the screenshots into an animated gifs.
convert output/* output.gif
you can optimize the screenshots this way:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
take a look at this: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast/107735#107735
..... After the Desktop Recorder has saved the recording into an OGV video, MPlayer will be used to capture JPEG screenshots, saving them into the 'output' directory.
On a terminal:
mplayer -ao null <video file name> -vo jpeg:outdir=output
Use ImageMagick to convert the screenshots into an animated gifs.
convert output/* output.gif
you can optimize the screenshots this way:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
edited Apr 13 '17 at 12:22
Community♦
1
1
answered Jul 31 '12 at 14:40
maniat1k
83231833
83231833
1
For a large number of images, I had to add-limit map 1
to convert (got a "Killed" otherwise).
– Ax3l
Sep 8 '14 at 15:12
With a 30 second ogv video, the convert command took all my cpu and was going for over 10 minutes before i stopped it. adding-limit map 1
to the command did not fix it.
– max pleaner
Oct 21 '15 at 21:19
1
Try this for convertingffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/…
– Dawid Drozd
Jul 13 '16 at 16:07
It bears mention that directconvert output/* -fuzz 10% -layers Optimize optimised.gif
is possible as well, and noticeably faster than the two-command path. Also,mplayer
readily createspng
screenshots as well, which may be preferred for captures of websites or GUIs.
– Raphael
Oct 4 '17 at 10:09
add a comment |
1
For a large number of images, I had to add-limit map 1
to convert (got a "Killed" otherwise).
– Ax3l
Sep 8 '14 at 15:12
With a 30 second ogv video, the convert command took all my cpu and was going for over 10 minutes before i stopped it. adding-limit map 1
to the command did not fix it.
– max pleaner
Oct 21 '15 at 21:19
1
Try this for convertingffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/…
– Dawid Drozd
Jul 13 '16 at 16:07
It bears mention that directconvert output/* -fuzz 10% -layers Optimize optimised.gif
is possible as well, and noticeably faster than the two-command path. Also,mplayer
readily createspng
screenshots as well, which may be preferred for captures of websites or GUIs.
– Raphael
Oct 4 '17 at 10:09
1
1
For a large number of images, I had to add
-limit map 1
to convert (got a "Killed" otherwise).– Ax3l
Sep 8 '14 at 15:12
For a large number of images, I had to add
-limit map 1
to convert (got a "Killed" otherwise).– Ax3l
Sep 8 '14 at 15:12
With a 30 second ogv video, the convert command took all my cpu and was going for over 10 minutes before i stopped it. adding
-limit map 1
to the command did not fix it.– max pleaner
Oct 21 '15 at 21:19
With a 30 second ogv video, the convert command took all my cpu and was going for over 10 minutes before i stopped it. adding
-limit map 1
to the command did not fix it.– max pleaner
Oct 21 '15 at 21:19
1
1
Try this for converting
ffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/…– Dawid Drozd
Jul 13 '16 at 16:07
Try this for converting
ffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/…– Dawid Drozd
Jul 13 '16 at 16:07
It bears mention that direct
convert output/* -fuzz 10% -layers Optimize optimised.gif
is possible as well, and noticeably faster than the two-command path. Also, mplayer
readily creates png
screenshots as well, which may be preferred for captures of websites or GUIs.– Raphael
Oct 4 '17 at 10:09
It bears mention that direct
convert output/* -fuzz 10% -layers Optimize optimised.gif
is possible as well, and noticeably faster than the two-command path. Also, mplayer
readily creates png
screenshots as well, which may be preferred for captures of websites or GUIs.– Raphael
Oct 4 '17 at 10:09
add a comment |
up vote
19
down vote
Simple script with good quality
Script:
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
Code from: https://superuser.com/a/556031/295664
Without palette: (231 KB)
With palette:(573 KB)
add a comment |
up vote
19
down vote
Simple script with good quality
Script:
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
Code from: https://superuser.com/a/556031/295664
Without palette: (231 KB)
With palette:(573 KB)
add a comment |
up vote
19
down vote
up vote
19
down vote
Simple script with good quality
Script:
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
Code from: https://superuser.com/a/556031/295664
Without palette: (231 KB)
With palette:(573 KB)
Simple script with good quality
Script:
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
Code from: https://superuser.com/a/556031/295664
Without palette: (231 KB)
With palette:(573 KB)
edited Mar 20 '17 at 10:18
Community♦
1
1
answered Jul 27 '16 at 14:41
Dawid Drozd
29124
29124
add a comment |
add a comment |
up vote
3
down vote
This one-liner is working for me:
ffmpeg -i video.ogv video.gif
2
Is this essentially different from the existing answers that useffmpeg
? How?
– ilkkachu
Dec 8 '17 at 15:12
1
@ilkkachu I was looking for a very quick, simple and easy-to-remember solution. The other answers are much more complicated and not so easy to understand at first glance (probably resulting in higher quality results, though).
– luator
Dec 8 '17 at 22:53
add a comment |
up vote
3
down vote
This one-liner is working for me:
ffmpeg -i video.ogv video.gif
2
Is this essentially different from the existing answers that useffmpeg
? How?
– ilkkachu
Dec 8 '17 at 15:12
1
@ilkkachu I was looking for a very quick, simple and easy-to-remember solution. The other answers are much more complicated and not so easy to understand at first glance (probably resulting in higher quality results, though).
– luator
Dec 8 '17 at 22:53
add a comment |
up vote
3
down vote
up vote
3
down vote
This one-liner is working for me:
ffmpeg -i video.ogv video.gif
This one-liner is working for me:
ffmpeg -i video.ogv video.gif
answered Dec 8 '17 at 14:33
luator
1414
1414
2
Is this essentially different from the existing answers that useffmpeg
? How?
– ilkkachu
Dec 8 '17 at 15:12
1
@ilkkachu I was looking for a very quick, simple and easy-to-remember solution. The other answers are much more complicated and not so easy to understand at first glance (probably resulting in higher quality results, though).
– luator
Dec 8 '17 at 22:53
add a comment |
2
Is this essentially different from the existing answers that useffmpeg
? How?
– ilkkachu
Dec 8 '17 at 15:12
1
@ilkkachu I was looking for a very quick, simple and easy-to-remember solution. The other answers are much more complicated and not so easy to understand at first glance (probably resulting in higher quality results, though).
– luator
Dec 8 '17 at 22:53
2
2
Is this essentially different from the existing answers that use
ffmpeg
? How?– ilkkachu
Dec 8 '17 at 15:12
Is this essentially different from the existing answers that use
ffmpeg
? How?– ilkkachu
Dec 8 '17 at 15:12
1
1
@ilkkachu I was looking for a very quick, simple and easy-to-remember solution. The other answers are much more complicated and not so easy to understand at first glance (probably resulting in higher quality results, though).
– luator
Dec 8 '17 at 22:53
@ilkkachu I was looking for a very quick, simple and easy-to-remember solution. The other answers are much more complicated and not so easy to understand at first glance (probably resulting in higher quality results, though).
– luator
Dec 8 '17 at 22:53
add a comment |
up vote
2
down vote
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
Suggest converting to PNG, not JPEG, larger but reduces re-compression artifacts.
– ideasman42
Mar 30 '14 at 6:50
add a comment |
up vote
2
down vote
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
Suggest converting to PNG, not JPEG, larger but reduces re-compression artifacts.
– ideasman42
Mar 30 '14 at 6:50
add a comment |
up vote
2
down vote
up vote
2
down vote
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!'
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!'
edited Apr 2 '12 at 12:36
answered Apr 2 '12 at 10:04
Peter.O
18.7k1791143
18.7k1791143
1
Suggest converting to PNG, not JPEG, larger but reduces re-compression artifacts.
– ideasman42
Mar 30 '14 at 6:50
add a comment |
1
Suggest converting to PNG, not JPEG, larger but reduces re-compression artifacts.
– ideasman42
Mar 30 '14 at 6:50
1
1
Suggest converting to PNG, not JPEG, larger but reduces re-compression artifacts.
– ideasman42
Mar 30 '14 at 6:50
Suggest converting to PNG, not JPEG, larger but reduces re-compression artifacts.
– ideasman42
Mar 30 '14 at 6:50
add a comment |
protected by Community♦ Nov 22 at 6:49
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?