Lab
  • DRM 패키징 튜토리얼코스
  • 멀티 DRM 기술에 대해 알아야 할 5가지코스
  • DoveRunner Anti Piracy 시작하기코스
  • DoveRunner 포렌식 워터마킹 시작하기코스
  • DoveRunner 모바일 앱 보안 시작하기코스
  • DoveRunner 멀티DRM 시작하기코스
  • DoveRunner Transcoding & Packaging 시작하기코스
  • DRM CLI Packager로 콘텐츠 패키징하기레슨 · DRM 패키징 튜토리얼
EN

DRM CLI Packager로 콘텐츠 패키징하기

DoveRunner DRM CLI Packager를 사용해 CMAF 콘텐츠를 Widevine/PlayReady/FairPlay로 패키징하는 방법을 보여줍니다.

레슨 15분

DRM: —상태: 대기 중

이 레슨의 위치

DoveRunner 멀티DRM으로 콘텐츠를 보호하는 과정은 세 단계입니다.

  1. 콘텐츠 패키징 (이 레슨)
  2. 서버 측 라이선스 연동 구현
  3. 클라이언트 측 라이선스 연동 구현

패키징은 영상을 암호화하고, 플레이어가 재생할 때 요청하는 매니페스트를 만드는 단계입니다. 이어지는 레슨에서 여기서 패키징한 콘텐츠의 라이선스 토큰을 발급하고, 그다음 레슨에서 재생합니다.

시작하기 전에

DoveRunner에서 받을 것 두 가지와 테스트용 MP4가 필요합니다.

1. DRM CLI Packager. DoveRunner 문서 사이트의 Getting Started > Packager and Sample Downloads에서 Download를 선택하면 패키저의 GitHub 저장소(doverunner/drm-cli-packager)로 이동합니다.

2. KMS 토큰. 패키저가 DoveRunner에 요청을 인증할 때 사용합니다. DoveRunner Console에서 Content Security > Multi DRM > Settings로 이동해 Retrieve Secret Information을 선택하면 표시됩니다. 비밀번호처럼 다루고, 공유하는 스크립트나 스크린샷에 넣지 마세요.

3. 테스트용 MP4 (H.264 영상)

패키저를 실행하는 환경은 다음 조건을 충족해야 합니다.

  • 64비트 Windows, Linux(Ubuntu, CentOS), macOS(Intel, Apple Silicon, Docker로 실행)
  • Linux는 gcc, g++ 9.0 이상
  • 콘텐츠 크기의 2배 이상 여유 디스크 공간
  • 입력·출력 파일 이름은 영문자와 숫자만 사용

1. 패키징 명령의 다섯 가지 구성 요소

./doverunner-drm-packager --enc_token YOUR-KMS-TOKEN-VALUE --content_id demo --dash -i Test.mp4 -o ./demo
구성 요소 설명
./doverunner-drm-packager 패키저 실행 파일
--enc_token KMS 토큰. Console > Content Security > Multi DRM > Settings에서 확인
--content_id 고유한 임의의 ID (최대 200바이트). 클라이언트 연동 단계에서 같은 값을 다시 사용하므로, CMS에서 이 영상에 쓰는 ID를 쓰거나 따로 적어 두세요
--dash 패키징 유형
-i 입력 MP4(또는 M4A) 파일
-o 출력 디렉터리

패키징 유형

유형을 하나 이상 지정해야 합니다.

옵션 결과
--dash Widevine, PlayReady용 MPEG-DASH CENC (--wiseplay_drm을 함께 쓰면 Huawei WisePlay 지원)
--hls FairPlay Streaming용 HLS-AES
--cmaf Widevine, PlayReady, FairPlay를 하나의 CMAF 출력으로 처리. 다른 유형과 함께 쓸 수 없음
--ncg 다운로드·점진적 다운로드용 NCG DRM 파일
--hls_ncg NCG DRM으로 SAMPLE-AES 클리어 키를 보호하는 HLS

이 레슨은 --dash로 패키징합니다. Chrome, Firefox, Edge에서 재생을 테스트하기에는 충분합니다. Safari의 FairPlay까지 다루려면 --cmaf를 쓰거나 --dash --hls를 함께 실행하세요. -i에 입력 파일을 여러 개 지정하면 여러 해상도로 구성된 적응형 스트림을 패키징합니다.

2. 패키저 실행

명령을 실행하면 패키저가 각 트랙을 암호화하고 매니페스트를 만듭니다. 끝나면 다음 메시지가 표시됩니다.

Packaging completed successfully.

결과 코드는 0(<RESULT>0</RESULT>)입니다. 다른 값이면 오류 코드입니다. 예를 들어 1201은 입력 파일이 지정한 경로에 없다는 뜻이고, 2002는 서버가 오류를 반환했다는 뜻입니다. 코드와 함께 출력되는 상세 메시지도 확인하세요.

예전 튜토리얼이나 스크립트에서 PallyConPackager나 DoveRunnerPackager를 호출한다면, 현재 실행 파일 이름은 doverunner-drm-packager입니다.

3. 생성된 결과물 확인

demo/
└── dash/
    ├── stream.mpd     ← 플레이어가 요청하는 매니페스트
    ├── video/         ← 분할된 비디오
    └── audio/         ← 분할된 오디오

stream.mpd는 플레이어가 재생할 때 불러오는 파일이므로, 이 파일의 URL이 곧 재생 URL입니다. 마지막 레슨에서 이 URL을 플레이어에 붙여 넣습니다.

4. DoveRunner Console에서 확인

패키징이 등록되었는지 확인하려면 Content Security > Multi DRM > Usage / Management의 DRM Packaging 페이지를 엽니다. 목록에 콘텐츠 ID가 나타나며, --content_id로 전달한 값과 같습니다.

5. 업로드와 재생

출력 폴더를 S3 또는 HTTPS로 접근할 수 있는 웹 서버에 올립니다. 브라우저는 보호된 미디어에 HTTPS를 요구하므로 HTTP 서버는 쓸 수 없습니다. 재생 시에는 다음 순서로 동작합니다.

  1. 클라이언트 플레이어가 CDN에서 파일을 스트리밍합니다.
  2. 플레이어가 DoveRunner 라이선스 서버에 라이선스를 요청합니다.
  3. 라이선스가 도착하면 플레이어가 스트림을 복호화해 재생합니다.

2번과 3번은 이어지는 두 레슨에서 직접 해 봅니다.

다음 단계

다음 레슨에서 방금 사용한 콘텐츠 ID로 라이선스 토큰을 발급합니다. 다른 패키징 방식은 DRM CLI Packager 가이드를 참고하세요.