자막 처리에 대한 설명에서는 FFmpeg 명령어를 통해 자막 파일을 비디오에 추가하거나 추출하고, 인코딩, 포맷 변환, 동기화 등을 수행하는 방법을 다룬다. 자막 처리에는 비디오에 포함된 자막을 다루는 것과 외부 자막 파일을 이용하는 두 가지 주요 방법이 있다. 여기서는 여러 자막 포맷과 자막 파일을 처리하는 명령어의 사용 방법을 설명한다.

자막 파일 포맷

자막은 여러 가지 포맷으로 존재한다. FFmpeg에서 자주 사용되는 자막 포맷은 다음과 같다.

자막 파일 추가

FFmpeg에서 비디오에 자막을 추가할 때는 -vf subtitles 필터를 사용하여 외부 자막을 비디오에 포함시킬 수 있다. 이 과정에서 비디오 스트림에 자막을 하드코딩하여 출력하거나, 별도의 자막 스트림으로 삽입할 수 있다.

예제 1: 비디오에 SRT 자막을 하드코딩

ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4

이 명령어는 input.mp4 비디오 파일에 subtitles.srt 자막 파일을 하드코딩하여 output.mp4로 출력한다.

자막 스트림 추가

자막을 비디오에 하드코딩하지 않고 자막 스트림으로 삽입할 수도 있다. 이 방식은 자막을 동적으로 켜고 끌 수 있다는 장점이 있다.

예제 2: 비디오에 자막 스트림 추가

ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4

여기서 -c:s mov_text는 자막을 MP4 컨테이너에서 사용할 수 있는 mov_text 형식으로 변환한다.

자막 파일 추출

비디오 파일에 내장된 자막 스트림을 추출할 수 있다. 내장된 자막을 SRT 형식으로 변환하거나 그대로 추출할 수 있다.

예제 3: 자막 스트림 추출

ffmpeg -i input.mkv -map 0:s:0 subtitles.srt

이 명령어는 input.mkv 파일에서 첫 번째 자막 스트림을 subtitles.srt 파일로 추출한다.

자막 포맷 변환

FFmpeg를 사용하여 자막 파일을 다른 포맷으로 변환할 수 있다. 예를 들어, SRT 형식의 자막을 ASS 형식으로 변환하거나 VTT 형식으로 변환하는 것이 가능한다.

예제 4: SRT 자막을 ASS로 변환

ffmpeg -i subtitles.srt subtitles.ass

이 명령어는 subtitles.srt 파일을 subtitles.ass 파일로 변환한다.

예제 5: SRT 자막을 VTT로 변환

ffmpeg -i subtitles.srt subtitles.vtt

이 명령어는 SRT 자막을 VTT 형식으로 변환한다.

자막 동기화

비디오와 자막이 동기화되지 않은 경우, FFmpeg 명령어를 사용하여 자막의 타임코드를 조정할 수 있다. 이를 위해 자막의 타임스탬프를 이동시키는 방식으로 동기화를 맞춘다.

예제 6: 자막 시간 이동

ffmpeg -itsoffset 2 -i subtitles.srt output.srt

이 명령어는 자막 파일의 모든 타임스탬프를 2초 앞으로 이동시킨다.

자막 인코딩

다양한 자막 파일이 서로 다른 인코딩 방식을 사용할 수 있다. 예를 들어, UTF-8 또는 ISO-8859-1과 같은 인코딩 방식이 자막 파일에서 사용될 수 있으며, FFmpeg를 사용하여 자막 파일의 인코딩을 변환할 수 있다.

예제 7: 자막 인코딩 변환

ffmpeg -sub_charenc ISO-8859-1 -i subtitles.srt -c:s utf8 output.srt

이 명령어는 ISO-8859-1로 인코딩된 자막 파일을 UTF-8로 변환한다.

자막 스타일링

자막의 스타일을 FFmpeg 명령어를 통해 설정할 수 있다. 자막의 위치, 색상, 글꼴 크기 등을 조정하여 비디오에 맞는 자막 스타일을 적용할 수 있다.

예제 8: 자막 스타일 설정 (ASS 포맷)

ffmpeg -i input.mp4 -vf subtitles=subtitles.ass:force_style='FontName=Arial,FontSize=24,PrimaryColour=&H00FF00&' output.mp4

이 명령어는 자막 파일에 Arial 폰트를 적용하고 글꼴 크기를 24로, 자막 색상을 녹색으로 설정한다.

자막의 위치 조정

FFmpeg에서는 자막의 위치를 조정하여 화면의 상단, 하단 또는 다른 위치에 자막을 배치할 수 있다.

예제 9: 자막 위치 조정

ffmpeg -i input.mp4 -vf subtitles=subtitles.srt:force_style='Alignment=6' output.mp4

이 명령어는 자막의 위치를 화면 중앙 상단에 배치한다.