2013-06-20 6 views
11

애니메이션 GIF에 짧은 mp4 (10 만 이하)를 매우 높은 수 (200,000 개 이상) 배치 처리해야합니다. 나는 그것을 할 수있는 모든 가능한 명령 줄 방법을 시도했다고 생각하지만, 여전히 품질 gif를 생산하는 데 너무 오래 걸린다. 현재 ffmpeg를 사용하여 이미지 (jpg) 프레임의 압축을 풀고 이미지 magick을 변환하여 이미지를 어셈블합니다. 높은 품질의 gif를 생성하지만 너무 오래 걸리고 너무 많은 메모리와 CPU를 사용하며 -limit 메모리 및 맵 제한으로 조정할 때에도 마찬가지입니다.mp4에서 애니메이션 gif를 만드는 가장 빠른 방법

저는 ffmpeg를 사용하여 직접 애니메이션 GIF를 만들려고했지만 품질은 매우 좋지 않습니다. 또한 나는 gifsicle을 사용하여 시도해 보았습니다. 그러나 이것은 입력으로 gif 만 사용하고 ffmpeg를 사용하여 품질이 떨어지는 gif를 생성합니다.

누구나 빠른 고품질 gif 생성을위한 명령 행 방법이 있습니까?

+0

나는 이러한 도구 중 일부에 약간의 노출을 가졌습니다.파이프를 통해 다양한 단계로 출력을 전달할 수 있습니까? 이는 처리 시간을 극적으로 향상시킬 수 있습니다 (때로는!). 또한 프로젝트 관리 연구에서는 시간, 자원 및 품질간에 거의 항상 트레이드 오프가 있음을 알게됩니다. ; - /. 행운을 빕니다. – shellter

+1

[ffmpeg로 .flv 비디오를 .gif와 엄청난 품질로 변환] (http://superuser.com/a/556031/110524)을 참조하십시오. – LordNeckbeard

답변

0

이 명령 줄 것이다 MPlayer와 함께 예를 들어, .ppm 같은 비 압축 이미지에서 통과 향상시킬 수 :

mplayer -benchmark -noframedrop -nosound -vf format=rgb24 -vo pnm *.avi -osdlevel 0 

이 jpg이 압축/압축 해제주기를 저장합니다.

또한 솔리드 스테이트 드라이브로 작업하는 데 도움이됩니다.

17

처음에는 mplayerjpeg 옵션 세트를 100 (jpeg : quality = 100)으로 사용하여 최대 품질의 jpg 이미지 세트를 만들어야합니다.

mplayer -ao null -ss 0:00:00 -endpos 10 mts.flv -vo jpeg:outdir=jpeg_dir:quality=100 

다음, 당신은 convert를 사용하여 GIF를에 생성 된 JPG를 변환해야, 단지 입력 : 마지막으로

for i in ./jpeg_dir/*.jpg; do convert "$i" "${i%.jpg}.gif"; done 

및 애니메이션 GIF 만들 gifsicle를 사용 : 또한

gifsicle --delay=10 --loop ./jpeg_dir/*.gif > anim.gif 

을, 당신은 사용할 수 있습니다 최적화 레벨 플래그 --optimize=03. 파일 크기를 줄이기 위해 도움이 될 수 있습니다 :

gifsicle --delay=10 --optimize=03 --loop *.gif > anim.gif 

또한, 당신이 가장 적합한 팔레트를 결정하기 위해 색상을 현재 팔레트 의 --colors num--color-method method의 번호로 조작 할 수 있습니다. 나에게 가장 적합한 방법으로

는 또한 median-cut

median-cut is the median cut algorithm described by Heckbert 

, 내가 설명 플래그를 조작하려고 생성 된 GIF 이미지의 더 나은 품질 달성하기 위해 가장 유용한 옵션을 발견

gifsicle --delay=3 --optimize=03 --color-method median-cut --loop *.gif > anim.gif 

정확도는 --delay=NUM으로 애니메이션 속도에 해당합니다. 이 매개 변수는 원본 동영상의 FPS에 따라 다릅니다.

+0

내 원래의 언급에서 언급했듯이, 나는 그 경로를 시도했다. ffmpeg로 제작 된 개별 gif 파일은 매우 낮은 화질을 제공합니다. 결국 고품질의 애니메이션 GIF가 생성됩니다. – stinkypyper

+0

ffmpeg를 제공 할 수있는 것보다 더 높은 품질의 이미지 세트를 얻으려면 몇 가지 추가 단계를 추가하여 답변을 업데이트했습니다. mplayer -ao null -ss 0:00:00 -endpos 10 video.flv -vo jpeg : outdir = jpeg_dir; 및 for i * .jpg; "$ i" "$ {i % .jpg} .gif"로 변환하십시오; 끝난 –

0

비디오를 이미지로 분할 한 후 imagemagick 패키지의 "animate"프로그램을 사용하십시오. 이와 같이 애니메이션 ./*.jpg. 그런 다음 ImageMagick 프로그램 이미지를 gif로 병합하여 병합하여 저장합니다. 그러나 크기가 클 수 있습니다. 최적화 및 크기 조정 (mplayer first scale = 240 : 180으로 더 잘 수행 할 수 있습니다).

관련 문제