* 본 포스팅은 맥을 기반으로 작성했습니다.
[ ffmpeg설치 ]
먼저 ffmpeg을 사용하기 위해 설치를 해야 됩니다.
사용 중인 쉘을 열고
brew install ffmpeg
위의 명령어만 입력해주면 완료됩니다.
[ 사용 ]
먼저 여러 개의 이미지의 길이를 정해주기 위해 init.txt 파일을 생성 후 아래와 같이 작성을 해줍니다.
주의할 점은 마지막 파일의 duration을 적어주고 duration을 적지 않은 상태로 한번 더 적어줘야 동작이 오류 없이 처리됩니다.
file '/path/1.jpg'
duration 3
file '/path/2.jpg'
duration 1
file '/path/2.jpg'
경로와 이미지별 시간에 대한 설정 파일 작성이 끝난 후 아래와 같이 코드를 작성해 줍니다.
ffmpeg -f concat -safe 0 -i [경로 및 시간설정 파일] -vsync vfr -t 6 -pix_fmt yuv420p [출력 파일]
ffmpeg -f concat -safe 0 -i init.txt -vsync vfr -t 6 -pix_fmt yuv420p output.mp4
-safe명령어를 삭제할 경우 init이라는 파일명이 안전하지 않다는 오류를 만나볼 수 있습니다.
이펙트 비디오 파일이 필요한 경우 오버레이 기능을 통해 덮어씌워 줍니다.
ffmpeg -i [원본 파일 명] -i [중첩할 파일 명] -filter_complex "overlay=0:0" -c:a copy [출력 파일 명]
ffmpeg -i output.mp4 -i effect.mov -filter_complex "overlay=0:0" -c:a copy final.mp4
"overlay=0:0"의 경우 두 영상의 사이즈가 같을 경우 xy좌표 0,0에 왼쪽 상단이 위치하게 됩니다.
마지막으로 소리를 추가해 줍니다.
ffmpeg -i [영상 파일 명] -i [음악 파일 명] -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 -shortest [출력 파일 명]
ffmpeg -i noSound.mp4 -i music.mp3 -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 -shortest output.mp4
최종 출력 결과물을 확인할 수 있습니다.