답변:
..... Desktop Recorder 가 레코딩을 OGV 비디오에 저장 한 후 MPlayer 를 사용하여 JPEG 스크린 샷 을 캡처 하여 'output' 디렉토리에 저장합니다 .
터미널에서 :
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
-limit map 1
명령을 추가 해도 문제가 해결되지 않았습니다.
ffmpeg -i output/00000%03d.jpg output.gif
unix.stackexchange.com/questions/24014/...
convert output/* -fuzz 10% -layers Optimize optimised.gif
도 가능하며 두 명령 경로보다 눈에 띄게 빠릅니다. 또한 웹 사이트 나 GUI를 캡처하는 데 선호되는 스크린 샷도 mplayer
쉽게 png
만들 수 있습니다.
좋은 품질의 간단한 스크립트
스크립트:
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킬로바이트)
이 원 라이너는 나를 위해 일하고 있습니다.
ffmpeg -i video.ogv video.gif
ffmpeg
? 어떻게?
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!'
-limit map 1
변환 을 위해 추가 해야했습니다 (그렇지 않으면 "Killed").