캡션 및 자막
대부분의 소셜 동영상은 음소거 상태로 시청됩니다. 캡션은 편집의 일부이지, 추가 요소가 아닙니다.
1. 전사하기
# openai-whisper (pip install openai-whisper)
whisper audio.mp3 --model small --language en --output_format srt --output_dir captions/
# faster-whisper (pip install faster-whisper): 더 빠르고, 메모리 사용량 적음, 단어 타임스탬프 지원
python - <<'PY'
from faster_whisper import WhisperModel
model = WhisperModel("small", compute_type="int8")
segments, info = model.transcribe("audio.mp3", word_timestamps=True, vad_filter=True)
for s in segments:
for w in s.words:
print(f"{w.start:.2f}\t{w.end:.2f}\t{w.word}")
PY
더 나은 결과를 위해 먼저 깨끗한 오디오를 추출하세요:
ffmpeg -i video.mp4 -vn -ac 1 -ar 16000 audio.wav
모델 크기는 정확도와 속도를 결정합니다: base < small < medium < large. 영어는 small 또는 medium을 사용하고, 악센트가 강하거나 다른 언어는 large를 사용하세요.
스크립트가 이미 존재하는 경우(음성 해설을 스크립트에서 생성한 경우)에는 전사된 내용의 표현을 신뢰하지 마세요. 스크립트 텍스트를 사용하고 Whisper는 타이밍(강제 정렬)에만 사용하세요. 이렇게 하면 이름과 숫자가 정확하게 유지됩니다.
2. 텍스트 수정
고유명사, 제품명, 숫자를 교정하세요. Whisper는 종종 이들을 잘못 인식합니다. 주제가 기술적인 경우 사용자에게 용어집을 요청하세요.
3. 자막 파일 작성
SRT:
1
00:00:00,000 --> 00:00:02,400
대부분의 빌드는 금요일에 실패합니다.
2
00:00:02,400 --> 00:00:05,100
그 이유는 다음과 같습니다.
가독성 규칙:
- 최대 2줄, 줄당 약 42자(세로 동영상의 경우 약 20자).
- 읽기 속도 초당 17자 이하; 최소 큐 길이 1초.
- 구절 단위로 나누고, 중간에서 나누지 마세요. 이름을 큐 사이에 분할하지 마세요.
- 큐가 겹치면 안 됩니다. 2프레임 간격 또는 없음으로 유지하세요.
4. 번인하기
# force_style을 통한 소프트 스타일링 (SRT)
ffmpeg -i in.mp4 -vf "subtitles=captions.srt:force_style='FontName=Arial,FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Alignment=2,MarginV=60'" -c:a copy out/captioned.mp4
# ASS: 완전한 제어 가능 (가라오케 단어 강조, 위치, 애니메이션)
ffmpeg -i in.mp4 -vf "ass=captions.ass" -c:a copy out/captioned.mp4
Windows 경로 주의: 필터 내에서는 드라이브 콜론을 이스케이프하고 슬래시를 사용하세요(subtitles='C\:/work/captions.srt'), 또는 FFmpeg를 파일이 있는 폴더에서 실행하고 상대 경로를 사용하세요.
5. 숏폼용 단어 강조 스타일
단어 그룹(24단어)당 하나의 이벤트가 있는 ASS 파일을 생성하고, 4px 검은색 외곽선, 활성 단어는 브랜드 강조색, 중간 하단 1/3 지점에 배치(맨 아래는 플랫폼 UI가 가림).\k 가라오케 태그 또는 단어별 색상 오버라이드를 사용하여 활성 단어의 색상이 변경되도록 하세요. 일반적인 스타일: 굵은 산세리프, 흰색 텍스트, 3
시작용 최소 ASS 헤더:
[Script Info]
ScriptType: v4.00+
PlayResX: 1080
PlayResY: 1920
[V4+ Styles]
Format: Name,Fontname,Fontsize,PrimaryColour,SecondaryColour,OutlineColour,BackColour,Bold,Italic,Underline,StrikeOut,ScaleX,ScaleY,Spacing,Angle,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Encoding
Style: Default,Arial,72,&H00FFFFFF,&H0000D7FF,&H00000000,&H64000000,-1,0,0,0,100,100,0,0,1,4,0,2,60,60,520,1
[Events]
Format: Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text
Dialogue: 0,0:00:00.00,0:00:01.20,Default,,0,0,0,,{\k30}대부분의 {\k40}빌드는 {\k30}실패
ASS에서 색상은 &HAABBGGRR 형식입니다(파랑-초록-빨강 순서, 알파 우선).
6. 전달하기
- 소셜 플랫폼용 번인 버전.
- YouTube, LinkedIn 및 웹 플레이어용 별도
.srt또는.vtt파일(시청자가 켜고 끄고 번역 가능). - MP4 소프트 자막 트랙:
-i captions.srt -c copy -c:s mov_text.
번역
큐 텍스트만 번역하고 타이밍은 그대로 두세요. 언어별 줄 제한을 유지하세요(독일어와 핀란드어는 길어지므로 다시 줄바꿈하세요). 동영상이 공개되면 원어민이 확인하도록 하세요.