자막 처리에 대한 설명에서는 FFmpeg 명령어를 통해 자막 파일을 비디오에 추가하거나 추출하고, 인코딩, 포맷 변환, 동기화 등을 수행하는 방법을 다룬다. 자막 처리에는 비디오에 포함된 자막을 다루는 것과 외부 자막 파일을 이용하는 두 가지 주요 방법이 있다. 여기서는 여러 자막 포맷과 자막 파일을 처리하는 명령어의 사용 방법을 설명한다.
자막 파일 포맷
자막은 여러 가지 포맷으로 존재한다. FFmpeg에서 자주 사용되는 자막 포맷은 다음과 같다.
- SRT (SubRip Subtitle): 가장 많이 사용되는 자막 포맷으로, 텍스트 기반이며 쉽게 읽고 편집할 수 있다.
- ASS (Advanced SubStation Alpha): 스타일링과 포맷을 지원하는 자막 포맷으로, 다양한 효과와 글꼴 스타일을 적용할 수 있다.
- VTT (WebVTT): 웹 기반의 자막 포맷으로 HTML5와 함께 사용된다.
- SUB/IDX: 이미지 기반 자막 포맷으로 DVD에서 주로 사용된다.
자막 파일 추가
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
이 명령어는 자막의 위치를 화면 중앙 상단에 배치한다.