워터마크 전처리: Transcoding & Packaging 시작하기
DoveRunner Transcoding & Packaging 서비스로 원본 영상을 워터마크 전처리하고 DRM 패키징해, 0/1 두 가지 버전(A/B variant)의 스트림을 만드는 과정을 처음부터 끝까지 따라 해 봅니다.
워터마크 전처리란?
워터마크 전처리는 영상 인코딩 과정에서 암호화되지 않은 원본 프레임에 워터마크 값(0과 1)을 삽입해, 두 가지 버전(A/B variant)의 인코딩 영상을 만드는 작업입니다. 워터마크는 콘텐츠 서비스 사업자마다 고유한 비밀 키로 암호화되므로 외부에서 임의로 추출할 수 없습니다.
전처리는 다음과 같은 방식으로 할 수 있습니다.
- Transcoding & Packaging(TnP) 서비스: DoveRunner 관리형 서비스에서 트랜스코딩, 전처리, DRM 패키징을 하나의 작업으로 처리
- Preprocessor 라이브러리: 자체 인코더에 연동하는 C++ 라이브러리
- FFmpeg 필터: FFmpeg에 바로 붙여 쓰는 비디오 필터 모듈
- Hybrik 연동: Dolby Hybrik 트랜스코딩 서비스용 전처리기
이 레슨에서는 가장 간단한 방식인 TnP 서비스를 사용합니다. 인코더를 직접 운영할 필요 없이 S3 스토리지를 등록하고 DoveRunner Console에서 작업 하나를 생성하면, 워터마크 전처리와 DRM 암호화가 모두 적용된 스트림을 얻을 수 있습니다. 다른 방식은 워터마크 전처리 가이드를 참고하시기 바랍니다.
시작하기 전에
- DoveRunner 계정: Transcoding & Packaging, Multi-DRM, Forensic Watermarking 서비스의 체험판 또는 유료 플랜
- AWS S3 버킷: 서울(ap-northeast-2) 또는 오레곤(us-west-2) 리전에 생성하며, 버킷 읽기/쓰기 권한이 있는 액세스 키 ID와 시크릿 키가 필요
- 원본 영상: 5분 이상 길이의 MP4 파일로, 비디오는 H.264(AVC) 또는 H.265(HEVC), 오디오는 AAC 또는 AC3 코덱이어야 함
1. 서비스 리전 선택
DoveRunner Console에 로그인한 뒤 Content Security > Transcoding & Packaging > Settings 메뉴로 이동합니다. Packaging Service Region은 서울과 오레곤 중 사용하는 AWS 리전에 가까운 쪽을 선택합니다. TnP 작업은 이 리전에서 실행되며, 다른 리전이 필요한 경우 DoveRunner 고객지원에 문의하시기 바랍니다.
2. S3 버킷 생성 및 원본 업로드
AWS 계정에서 다음 작업을 진행합니다.
- TnP 서비스 리전과 같은 리전에 입력용과 출력용 S3 버킷을 각각 생성합니다(이 레슨에서는
dr-lab-input,dr-lab-output사용). - 원본 MP4 파일을 입력 버킷에 업로드합니다.
- 두 버킷에 대한 읽기/쓰기 권한을 가진 IAM 사용자를 만들고 액세스 키를 발급합니다.
3. 입력/출력 스토리지 등록
DoveRunner Console의 Transcoding & Packaging > Storages 메뉴에서 앞서 발급한 IAM 사용자의 액세스 키 ID와 시크릿 키로 입력 버킷과 출력 버킷을 등록합니다. 등록이 끝나면 스토리지 목록에 두 버킷이 리전 정보와 함께 표시됩니다.
4. 작업 생성
TnP Job Create 페이지로 이동합니다. 작업 생성은 6단계로 진행됩니다.
1단계: 작업 유형
Transcode & Forensic Watermark & DRM을 선택합니다. 포렌식 워터마킹 전처리와 Multi-DRM 패키징이 함께 적용되기 때문에, 결과물을 DRM 연동과 포렌식 워터마킹 연동에 모두 사용할 수 있습니다.
2단계: 입력과 출력
작업 이름과 콘텐츠 ID를 입력하고, 입력 스토리지와 원본 영상 경로를 지정한 다음 출력 스토리지를 선택합니다.
Output Directory Path는 필수 항목입니다. 별도의 폴더 구조가 필요 없더라도 output처럼 짧은 폴더 이름을 입력해야 합니다. TnP가 이 폴더 아래에 콘텐츠 ID 폴더를 자동으로 추가하기 때문에, 여기에 콘텐츠 ID를 입력하면 경로에 콘텐츠 ID가 두 번 들어가게 됩니다.
3단계: 비디오
스트리밍 포맷으로 DASH와 HLS를 선택합니다. TnP가 원본 영상을 기준으로 ABR 래더(렌디션별 비트레이트와 해상도)를 자동으로 제안하며, 이 레슨에서는 기본값을 그대로 사용합니다.
두 포맷을 함께 패키징하면 주요 브라우저를 모두 지원할 수 있습니다.
- DASH: Chrome과 Edge에서 Widevine, PlayReady 지원
- HLS: Safari에서 FairPlay 지원
CMAF를 사용하면 하나의 패키지로 세 가지 DRM을 모두 지원할 수 있는데, 이 구성은 별도의 튜토리얼에서 다루도록 하겠습니다.
4단계: 오디오와 자막
TnP가 원본 파일에 포함된 트랙을 자동으로 감지합니다. AAC 오디오 트랙이 하나인 MP4 파일이라면 해당 트랙의 언어(예: English)를 선택합니다.
5단계: DRM 옵션
Audio Track Encryption, Multi-Key, Multi-Manifest는 비활성화 상태로 두고 Clear Lead는 0초로 유지합니다. 이러한 고급 옵션은 이후 레슨에서 다룹니다.
6단계: 검토 및 시작
검토 화면에서 앞 단계의 설정을 모두 확인한 뒤 Start Job을 클릭합니다.
5. 작업 진행 확인
작업은 생성 즉시 작업 ID와 함께 Job History에 표시됩니다. 상태는 Queued에서 시작해 트랜스코딩, 세그먼트 분할, 복사 단계를 거치며, 작업 상세 페이지에서 단계별 진행 상황을 확인할 수 있습니다.
6. 패키징 결과 확인
작업이 끝나면 S3 콘솔에서 출력 버킷을 열어 봅니다. 결과물은 다음과 같은 경로에 저장됩니다.
wm-contents/
└── <Output Directory Path>/
└── <콘텐츠 ID>/
├── 0/
│ ├── dash/stream.mpd
│ └── hls/master.m3u8
└── 1/
├── dash/stream.mpd
└── hls/master.m3u8
0과 1 폴더가 두 가지 워터마크 버전(A/B variant)이며, 각 폴더에는 DRM 패키징된 DASH와 HLS 스트림이 들어 있습니다. 다음 레슨에서는 이 두 버전을 시청 세션마다 조합해 스트리밍 시점에 워터마크를 삽입하는 방법을 알아보겠습니다.
전체 콘텐츠 보안 제품 연동 방법은 DoveRunner Docs를 참고하시기 바랍니다.