2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

FFmpeg로 비디오에 자막을 추가하는 방법은?

_____
Q1: FFmpeg로 비디오에 자막을 추가하는 기본적인 방법은 무엇인가요?
A1: 가장 기본적인 방법은 자막 파일(SRT 등)을 비디오에 "입력(stream)"으로 추가하고, 이를 인코딩하거나 멀티플렉싱하는 것입니다. 예를 들어:
```
ffmpeg -i input.mp4 -i subtitles.srt -c:v copy -c:a copy -c:s mov_text output.mp4
```
이 명령은 input.mp4와 subtitles.srt를 입력으로 받아 비디오와 오디오는 복사(-c:v copy, -c:a copy)하고, 자막은 MP4 컨테이너에서 지원하는 mov_text 포맷으로 인코딩해(output.mp4) 자막 트랙을 넣습니다.

---

Q2: FFmpeg로 자막을 영상에 "하드코딩" (비디오에 영구적으로 입히기)하려면 어떻게 하나요?
A2: 자막을 하드코딩 하려면 filter_complex에서 subtitles 필터를 사용합니다. 예:
```
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4
```
이 경우 자막이 비디오 프레임에 합쳐져 별도의 자막 트랙 없이 재생 시 항상 표시됩니다.

---

Q3: 자막 파일이 ASS/SSA 포맷일 때도 같은 방법으로 하드코딩 할 수 있나요?
A3: 네, ASS/SSA 자막도 subtitles 필터로 하드코딩 가능합니다:
```
ffmpeg -i input.mp4 -vf subtitles=subtitles.ass output.mp4
```

---

Q4: 외부 자막을 MP4에 "소프트코딩" (플레이어에서 껐다 켰다 가능한 자막 트랙으로 넣기) 하려면 어떤 옵션을 써야 하나요?
A4: MP4 컨테이너는 mov_text 포맷 자막을 지원합니다. 따라서 다음처럼 입력 자막파일을 mov_text로 변환하여 mux 하면 됩니다.
```
ffmpeg -i input.mp4 -i subtitles.srt -c:v copy -c:a copy -c:s mov_text output.mp4
```

---

Q5: MKV 파일에 자막을 넣으려면 어떻게 해야 하나요?
A5: MKV는 SRT, ASS 등 다양한 자막 포맷을 네이티브로 지원하므로, 일반적으로 포맷 변환 없이 삽입 가능합니다. 예:
```
ffmpeg -i input.mkv -i subtitles.srt -c copy -c:s srt output.mkv
```

---

Q6: 비디오에 x264로 다시 인코딩하면서 자막을 하드코딩 하려면?
A6: 예를 들면 다음과 같습니다.
```
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt -c:v libx264 -crf 23 -preset medium -c:a copy output.mp4
```
비디오를 libx264로 인코딩하고, 자막을 필터로 합칩니다. 오디오는 복사합니다.

---

Q7: 자막 글꼴이나 위치를 커스터마이징할 수 있나요?
A7: 자막 파일(특히 ASS/SSA 형식)에서 스타일을 지정하거나, subtitles 필터 옵션을 이용할 수 있습니다. ASS 파일에 폰트, 크기, 색상, 위치 등을 직접 설계하는 것이 일반적입니다. 단, SRT는 스타일 지정이 제한적입니다.

---

Q8: FFmpeg에서 자막이 제대로 표시되지 않을 때는 어떻게 하나요?
A8: 자주 발생하는 문제는 자막 파일 경로나 문자 인코딩 문제, 또는 필터 지원 부족입니다. 다음을 점검하세요:
- 자막 파일 경로가 정확한지
- 자막 파일 인코딩(UTF-8 권장)을 확인
- 비디오 재생기가 mov_text 등 특정 자막 트랙을 지원하는지
- 하드코딩 시 subtitles 필터가 자막 포맷을 지원하는지

---

Q9: 자막 병합 시 여러 자막 트랙을 넣을 수 있나요?
A9: 네, 여러 자막 파일을 입력하고 map 옵션을 이용해 트랙을 지정할 수 있습니다. 예:
```
ffmpeg -i input.mp4 -i subs_en.srt -i subs_ko.srt -map 0 -map 1 -map 2 -c:v copy -c:a copy -c:s mov_text output.mp4
```

---

요약:
- 하드코딩: `-vf subtitles=sub.srt` 사용
- 소프트코딩 MP4: `-c:s mov_text`로 자막 트랙 추가
- MKV는 `-c:s srt` 등 원본 자막 포맷 유지 가능
- 여러 트랙, 스타일, 인코딩 옵션 활용 가능
- 폰트나 위치는 ASS 자막 편집 권장
FFmpeg는 비디오 파일을 처리하는 데 매우 강력한 도구로, 자막을 추가하는 것도 그 중 하나입니다.

자막을 비디오에 추가하는 방법은 여러 가지가 있으며, FFmpeg는 다양한 포맷의 자막 파일을 지원합니다.

이 글에서는 FFmpeg를 사용하여 비디오에 자막을 추가하는 방법에 대해 자세히 설명하겠습니다.

1. FFmpeg 설치 먼저, FFmpeg가 설치되어 있어야 합니다.

FFmpeg는 다양한 운영 체제에서 사용할 수 있으며, 공식 웹사이트에서 다운로드할 수 있습니다.

- Windows : FFmpeg의 Windows 빌드를 다운로드하고, 압축을 푼 후, `bin` 폴더의 경로를 시스템 PATH에 추가합니다.

- macOS : Homebrew를 사용하여 설치할 수 있습니다.

```bash brew install ffmpeg ``` - Linux : 패키지 관리자를 통해 설치할 수 있습니다.

```bash sudo apt-get install ffmpeg ```

2. 자막 파일 준비 FFmpeg는 여러 자막 파일 포맷을 지원합니다.

일반적으로 사용되는 포맷은 다음과 같습니다: - SRT (SubRip Subtitle) : 가장 일반적인 자막 포맷으로, 텍스트 기반입니다.

- ASS (Advanced SubStation Alpha) : 스타일과 효과를 지원하는 자막 포맷입니다.

- VTT (WebVTT) : 웹에서 자주 사용되는 자막 포맷입니다.

자막 파일은 텍스트 편집기를 사용하여 작성할 수 있으며, SRT 파일의 예시는 다음과 같습니다: ```srt 1 00:00:01,000 --> 00:00:03,000 안녕하세요! 2 00:00:03,500 --> 00:00:06,000 FFmpeg를 사용하여 자막을 추가하는 방법입니다.

```

3. 자막 추가하기 자막 파일이 준비되었다면, FFmpeg를 사용하여 비디오에 자막을 추가할 수 있습니다.

기본적인 명령어는 다음과 같습니다: ```bash ffmpeg -i input_video.mp4 -i subtitles.srt -c:v copy -c:a copy -c:s mov_text output_video.mp4 ``` 이 명령어의 각 요소는 다음과 같은 의미를 가집니다: - `-i input_video.mp4`: 입력 비디오 파일을 지정합니다.

- `-i subtitles.srt`: 추가할 자막 파일을 지정합니다.

- `-c:v copy`: 비디오 코덱을 복사하여 인코딩하지 않고 원본 비디오를 그대로 사용합니다.

- `-c:a copy`: 오디오 코덱을 복사하여 인코딩하지 않고 원본 오디오를 그대로 사용합니다.

- `-c:s mov_text`: 자막 코덱을 지정합니다.

MP4 포맷에서는 `mov_text`를 사용합니다.

- `output_video.mp4`: 출력 파일의 이름을 지정합니다.



4. 자막 스타일링 (ASS 파일 사용) ASS 파일을 사용하면 자막에 스타일을 적용할 수 있습니다.

ASS 파일은 더 많은 기능을 제공하며, 텍스트의 색상, 크기, 위치 등을 조정할 수 있습니다.

ASS 파일을 비디오에 추가하는 방법은 다음과 같습니다: ```bash ffmpeg -i input_video.mp4 -i subtitles.ass -c:v copy -c:a copy -c:s mov_text output_video.mp4 ```

5. 자막 내장하기 자막을 비디오에 내장하여 항상 표시되도록 만들고 싶다면, `-vf` (비디오 필터) 옵션을 사용할 수 있습니다.

이 경우, 자막은 비디오의 일부로 렌더링됩니다: ```bash ffmpeg -i input_video.mp4 -i subtitles.srt -vf "subtitles=subtitles.srt" -c:v libx264 -c:a aac output_video.mp4 ``` 이 명령어에서 `-vf "subtitles=subtitles.srt"`는 자막을 비디오에 내장하는 필터를 적용합니다.

`-c:v libx264`와 `-c:a aac`는 비디오와 오디오를 각각 H.264와 AAC로 인코딩합니다.



6. 자막 위치 및 스타일 조정 자막의 위치나 스타일을 조정하고 싶다면, ASS 파일을 사용하여 세부 설정을 조정할 수 있습니다.

ASS 파일 내에서 `Style` 섹션을 수정하여 글꼴, 크기, 색상 등을 설정할 수 있습니다.



7. 자막 선택 기능 추가 여러 개의 자막 트랙을 비디오에 추가하고, 사용자가 선택할 수 있도록 하려면 다음과 같은 명령어를 사용할 수 있습니다: ```bash ffmpeg -i input_video.mp4 -i subtitles1.srt -i subtitles2.srt -c:v copy -c:a copy -c:s mov_text output_video.mp4 ``` 이 명령어는 두 개의 자막 파일을 비디오에 추가합니다.

결론 FFmpeg를 사용하여 비디오에 자막을 추가하는 것은 매우 간단합니다.

자막 파일을 준비하고, 적절한 FFmpeg 명령어를 사용하면 됩니다.

자막의 스타일과 위치를 조정할 수 있는 다양한 방법이 있으며, 필요에 따라 적절한 포맷을 선택하여 사용할 수 있습니다.

FFmpeg는 강력한 도구이므로, 다양한 옵션을 실험해 보면서 원하는 결과를 얻을 수 있습니다.

작성자: 최승우 [비회원] | 작성일자: 1년 전 2024-09-10 19:04:37
조회수: 424 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.