일단 기본적으로 배치파일과 ffmpeg 사용법에 대해 한번 읽으시고


2011/12/30 - 윈도우용 ffmpeg 설치법 // 내가만든 배치파일 이용하는 법


이방법은 작년에 올린 gif 만드는 법에서

어떤분이 알려준 gif최적화 방법을 참고해서 만든것

과거글 참고


2014/04/04 - ffmpeg 이용해서 gif 만들기

http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html


기본적으로 gif만드는 법은 똑같은데

팔레트필터를 이용해서 최적화된 색들로만 gif를 만드는것


@echo off

:a

if "%~1"=="" goto:eof


ffmpeg.exe -v warning -ss 100 -t 10 -i %1 -vf "fps=15,scale=320:-1:flags=lanczos,palettegen" -y "c:\temp.png"


ffmpeg.exe -v warning -ss 100 -t 10 -i %1 -i "c:\temp.png" -lavfi "fps=15,scale=320:-1:flags=lanczos [x]; [x][1:v] paletteuse" -y "%~dpn1.gif"


shift

goto :a


이 배치파일에서 다른건 건들것없고

ss 다음에는 동영상에서 건너뛸 시간을 지정해주는것 초단위로 적거나 01:10:11 이런식으로 시분초로 적어도됨

t 다음에는 gif만들 시간 10이라는건 10초

scale 다음에는 가로 크기

c드라이브에 팔레트 png파일이 생성되니깐 나중에 지우시면됨

수정은 첫째줄 둘째줄 똑같이 수정해야함



그런데 막상 써놓고 보니깐 webp를 쓰는게 훨 나아보인다 그냥 확장자만 gif에서 webp로 해주면 알아서 움짤이 만들어진다

물론 용량과 화질은 webp의 압승이다




로고 넣는 법을 추가하였다

ffmpeg.exe -v warning -ss 100 -t 10 -i %1 -i "c:\logo.png" -vcodec libx264 -preset ultrafast -qp 0 -sn -an -filter_complex "fps=15,scale=320:-1:flags=lanczos,overlay=10:10" -y "c:\temp.mkv"

ffmpeg.exe -v warning -i "c:\temp.mkv" -vf "palettegen" -y "c:\temp.png"

ffmpeg.exe -v warning -i "c:\temp.mkv" -i "c:\temp.png" -lavfi "scale=iw:ih:flags=lanczos [x]; [x][1:v] paletteuse" -y "%~dpn1.gif"

일단 c드라이브에 logo.png 로고 파일은 만들어서 넣어둔다

본문에서 건너뛸 시간 ss와 인코딩할 시간 t 그리고 fps를 적절하게 조정해주고 해상도 scale로 조정해준다

로고의 위치는 overlay 뒤에 10:10 이부분을 적절하게 조정해주면 된다


첫줄에서 일단 로고를 넣은 상태로 비손실 동영상을 만든다

그리고 그 동영상을 기준으로 다시 gif파일을 만드는데

ultrafast로 설정해 놓아서 시간은 그리 걸리지 않느다 10초 움짤에 5초정도?



Posted by 아싸좋구나
,