gtk-recordmydesktop
이 문제를 해결하기 위해 스크린캐스팅 프로그램 으로 OGV 비디오를 만들었습니다 .여기X에 대한 무차별 대입. VLC로 비디오를 볼 수 있습니다.
이제 과제는 OGV 비디오를 GIF 애니메이션으로 변환하여 SE에 표시할 수 있는 몇 가지 방법을 찾는 것입니다. 어떻게 해야 합니까?
답변1
..... 후데스크탑 레코더녹음을 다음 폴더에 저장했습니다.OGV동영상,MPlayer캡처하는 데 사용됩니다.JPEG스크린샷을 다음 폴더에 저장합니다.'산출'예배 규칙서.
터미널에서:
mplayer -ao null <video file name> -vo jpeg:outdir=output
사용이미지매직스크린샷을 애니메이션 GIF로 변환합니다.
convert output/* output.gif
다음과 같은 방법으로 스크린샷을 최적화할 수 있습니다.
convert output.gif -fuzz 10% -layers Optimize optimised.gif
답변2
좋은 품질의 간단한 스크립트
스크립트:
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
없이팔레트: (231KB)
와 함께팔레트:(573KB)
답변3
이 한 줄짜리가 나를 위해 일하고 있습니다.
ffmpeg -i video.ogv video.gif
답변4
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!'