영상을 재생하는데 자막이 맞지 않아 답답하신가요? 지금 바로 해결해 드리겠습니다.
업데이트: 2024년 11월 29일
자막 싱크 문제란?
상황은 이렇습니다. 외국어 영화를 보고 싶은데 자막이 필요한 거죠. 요즘은 원하는 영화의 자막 파일을 거의 모든 언어로 손쉽게 구할 수 있습니다. SRT(.srt) 파일만 받아서 영상 파일과 같은 이름으로 저장하면 끝입니다. 제대로 된 미디어 플레이어라면 자동으로 자막을 불러와 표시해 줍니다(플레이어가 없다면 최고의 VLC를 사용하세요). 그런데 자막 싱크가 어긋나 있다면 어떻게 될까요?
자막에 올바른 대사가 담겨 있어도 화면보다 너무 늦게 나오거나 너무 일찍 나온다면 곤란합니다. 겨우 300ms 차이라도 감상이 상당히 거슬리고, 그 이상 벌어지면 사실상 시청이 불가능하죠. 이번 글에서는 자막을 빠르고 간단하게 보정하는 방법을 알려드리겠습니다.

핵심 도구는 바로 ffmpeg
미디어 파일을 다룰 때 고민된다면 답은 ffmpeg입니다. 동영상, 오디오 등 멀티미디어 작업의 만능 해결책이 될 수 있고, 되어야 합니다. 실제로 대부분의 미디어 편집 프로그램은 ffmpeg를 포장한 정교한 프론트엔드에 불과합니다. 영상이나 소리를 처리하는 거의 모든 도구 안에 ffmpeg가 들어 있다고 봐도 무방합니다. 리눅스 사용자라면 더욱 좋습니다. 거의 모든 배포판 저장소에서 ffmpeg를 바로 설치할 수 있으니까요.
여기서는 리눅스 기준으로 프로그램 사용법을 소개하지만, 명령어 자체는 ffmpeg를 설치하고 실행할 수 있는 모든 운영체제에서 동일하게 작동합니다. 설치 방법만 조금 다를 뿐입니다. 리눅스에서는 아래와 같이 간단합니다:
(sudo) [패키지 관리자] install ffmpeg
예를 들어 Debian 및 Ubuntu 계열 배포판에서는 다음과 같습니다:
sudo apt install ffmpeg
ffmpeg로 자막 시간 오프셋 조정하기
이제 자막 오프셋을 수정해 보겠습니다. ffmpeg에는 이미 해당 기능이 내장되어 있으며, 새 플래그 하나만 알면 됩니다. 명령 형식은 다음과 같습니다:
ffmpeg -itsoffset [시간] -i [자막 파일] -c copy [수정된 자막 파일]
실제 예시는 아래와 같습니다:
ffmpeg -itsoffset -13.6 -i sub1.srt -c copy subs2.srt
명령어 구성 요소 살펴보기
- -itsoffset: 입력 스트림의 시간을 이동시키는 옵션입니다. .srt처럼 텍스트 기반의 단일 스트림 파일뿐 아니라, 비디오 트랙과 오디오 트랙을 함께 가진 일반적인 영화 파일처럼 여러 스트림을 포함한 파일에도 사용할 수 있습니다.
- -13.6: 실제 적용할 오프셋 값입니다. 표기 형식은 ss.mmm이므로 필요하다면 1ms 단위까지 세밀하게 조정할 수 있습니다. 필자의 경우 영상을 재생하면서 간단한 장면을 통해 자막이 나타나야 하는 시점을 확인한 뒤 값을 조정했고, 몇 번 시도 끝에 적절한 오프셋을 찾았습니다. 정밀한 과학이 아니므로 -13.7이나 -13.55 같은 근사치도 충분히 잘 작동합니다. 참고로 필자의 경우 음수(-) 오프셋을 적용했습니다.
- 입력 파일과 출력 파일: 원본 자막 파일을 입력 스트림으로 지정하고, -c copy 옵션으로 코덱 변환 없이 그대로 복사합니다(SRT에서는 큰 의미가 없는 옵션이지만 유지하는 것이 안전합니다). 마지막으로 출력 파일 이름을 지정하면, 이 파일이 영상과 함께 사용할 올바른 시점의 자막이 됩니다.
이것으로 끝입니다! 정말 간단하죠.
마무리
리눅스는 가끔 어렵게 느껴질 수 있지만, 특정 상황에서는 그야말로 축복 같은 운영체제입니다. 특히 미디어 파일 관련 유지보수 작업이 필요할 때, 쉽게 접근할 수 있는 풍부한 도구와 유틸리티를 제공합니다. 요즘처럼 인터넷의 모든 것이 가짜일 수 있는 시대에, 수상한 웹사이트에서 무작위 프로그램을 받아 설치할 필요도 없고요.
영어권 미디어만 소비하는 게 아니라 전 세계의 다양한 콘텐츠를 즐기신다면, 원어로는 이해하기 어려운 영화를 만날 때 자막이 꼭 필요할 때가 있습니다. 그리고 그 자막은 영상 흐름과 정확히 맞아야 하겠죠. 만약 싱크가 어긋난다면 ffmpeg가 손쉽게 해결해 줄 것입니다. 오프셋 조정 기능은 단순하고 빠르며 우아합니다. 명령 한두 번이면 끝납니다.
그럼 오늘은 여기까지 하겠습니다. 즐거운 시청 되세요!