[ffmpeg] 영상에 자막파일 합치기
자막파일을 따로 써도 되긴 하는데, 단일로 합쳐서 쓰는게 편할 수 있다.
일단 ffmpeg은 smi 형식을 지원하지 않기 때문에 smi라면 srt 같은 포맷으로 바꿔야 한다.
https://wepplication.github.io/tools/smi2Srt/
이런 유틸을 써도 된다.
그리고 명령 하나 날리면 끝이다.
ffmpeg -i 입력파일.mp4 -i 입력파일.srt -c copy -c:s mov_text 출력명.mp4
근데 이 방법은 플레이어에서 srt 같은 자막 형태를 지원하지 않는다면 동작하지 않을 수 있다.
그런 열악한 환경에서도 동작하게 하려면, 자막을 비디오 스트림에 번인(burn-in)해서 완전히 통합되도록 해야 한다. 다음과 같이 vf 플래그를 넣으면 처리할 수 있다.
ffmpeg -i 입력파일.mp4 -vf "subtitles=입력파일.srt" -c:a copy 출력명.mp4
그리고 다른 환경에서도 잘 재생되게 하려면 범용적인 코덱을 써야 한다.
다음은 가장 널리 쓰이는 H.264 비디오 코덱과 AAC 오디오 코덱을 적용해서 인코딩하는 명령이다.
ffmpeg -i "입력.mp4" -vf "subtitles=자막.srt" -c:v libx264 -c:a aac -strict -2 -b:a 192k -threads 0 출력.mp4