HLS관련 설명은 따로 작성했습니다.
HLS(HTTP LIVE STREAMING) VS MPEG-DASH
FFmpeg
영상을 일정 길이로 조각내고 각 조각을 스트리밍용으로 인코등 또는 트랜스코딩 한 뒤 그 목록을 m3u8에 기록하는 절차를 말합니다
- 조각내기 (Segmentation)
- 예: 10초 단위로 잘라서
segment0.ts
, segment1.ts
, segment2.ts
… 생성
- 이걸 "HLS 세그먼트"라고 부릅니다.
.ts
또는 .fmp4
형식 사용
- 인코딩 / 트랜스코딩
- 원본 영상을 여러 화질·비트레이트로 변환 (예: 1080p, 720p, 480p)
- 이유: 네트워크 상태에 따라 자동 전환(Adaptive Bitrate Streaming) 가능
- 재생목록(m3u8) 생성
- 각 세그먼트의 순서와 길이, 화질별 목록을 기록
- 플레이어는 이
m3u8
를 보고 어떤 조각을 언제 재생할지 결정
FFmpeg 프로젝트에서 제공하는 도구가 두가지 있는데 하나는 ffmpeg이고 다른 하나는 ffprobe입니다.
1. ffmpeg
영상/음성을 변환, 인코딩, 편집하는 툴을 말합니다
주요 기능
- 포맷 변환 (MP4 → WebM, MP4 → m3u8 등)
- 인코딩/트랜스코딩 (코덱 변경, 해상도 조절, 프레임레이트 변경)
- 영상·음성 자르기, 합치기
- 필터 적용 (워터마크, 자막 입히기, 색보정 등)