Bitmovin
Bitmovin은 고객 중심의 제품 개발에 대한 자부심을 가지고 있습니다. 로드맵을 통해 사용자에게 보다 더 나은 기능을 제공 하며 세계 최초의 상용 HTML5 MPEG-DASH 플레이어를 도입하였습니다. 이후로 Bitmovin은 업계에서 가장 빠른 API 기반의 클라우드 비디오 인코딩 서비스 와 MPEG-DASH 및 HLS 용 HTML5 플레이어를 개발하여 모든 기기에서 재생 가능한 적응형 콘텐츠를 제공 함으로써 온라인 비디오 업계에서 선두주자로 빠르게 자리 매김 했습니다.
개요
PallyCon 멀티DRM 서비스는 ‘인크립티드 미디어 익스텐션'(Encrypted Media Extensions, 이하 EME)과 ‘MPEG 공통 암호화'(MPEG Common Encryption, 이하 CENC) 규격을 통해 다양한 HTML5 기반 웹 플레이어들과 쉽게 연동됩니다. HTML5 웹 플레이어를 이용하면 엣지, 크롬, 파이어폭스, 사파리 등 EME 표준을 지원하는 주요 웹 브라우저들에서 별도의 플러그인 없이도 DRM으로 보호된 동영상 또는 오디오 콘텐츠를 스트리밍 재생할 수 있습니다.
EME, CENC 등 멀티DRM 관련 HTML5 표준과 오디오 콘텐츠를 멀티DRM으로 보호하는 사례에 대한 자세한 내용은 아래 링크의 자료들을 참고하시기 바랍니다.
- EME WTF? An introduction to Encrypted Media Extensions(한글번역): https://www.html5rocks.com/ko/tutorials/eme/basics/
- PallyCon 멀티 DRM을 이용한 오디오 콘텐츠 보안 part1: https://pallycon.com/blog/article/protecting-audio-content-with-pallycon-multi-drm-part-1/?lang=ko
- PallyCon 멀티 DRM을 이용한 오디오 콘텐츠 보안 part2: https://pallycon.com/blog/article/protecting-audio-content-with-pallycon-multi-drm-part-2/?lang=ko
본 자습서에서는 HTML5 기반 플레이어 제품 중에서 국내외 여러 동영상 서비스에서 사용되는 Bitmovin 플레이어를 연동하는 과정을 단계별로 설명합니다. Bitmovin 플레이어는 PC/모바일 웹 브라우저 뿐만 아니라 iOS와 안드로이드를 지원하는 네이티브 앱용 플레이어 SDK를 제공하므로, 웹 브라우저와 모바일 앱, 그리고 스마트TV 등 HTML5 기반 OTT 플랫폼까지 동일한 연동 방식으로 지원 가능합니다.


About Bitmovin
Bitmovin은 동영상 인코더, 플레이어, 분석 등의 동영상 관련 소프트웨어 솔루션을 제공하는 글로벌 솔루션 업체입니다. Bitmovin 플레이어는 웹 브라우저와 모바일, 스마트TV 등 다양한 플랫폼에서 HLS와 MPEG-DASH 형식의 스트리밍 재생을 지원합니다.
본 자습서는 아래와 같은 세 가지 단계로 구성되어 있습니다. 가장 간단하고 빠르게 따라할 수 있도록, PallyCon CLI 패키져와 라이선스 토큰 연동으로 DRM 콘텐츠를 플레이어에서 재생하는 방법을 설명합니다.
- 1단계: PallyCon, Bitmovin 트라이얼 계정 가입
- 2단계: PallyCon CLI 패키져를 이용한 DRM 콘텐츠 패키징
- 3단계: Bitmovin 플레이어와 PallyCon 라이선스 토큰 연동을 통한 DRM 콘텐츠 재생
PallyCon CLI 패키져와 라이선스 토큰 연동에 대한 상세 설명은 다음 링크를 참고하시기 바랍니다.
- PallyCon CLI 패키져 가이드: https://pallycon.com/docs/ko/multidrm/packaging/cli-packager/
- 라이선스 토큰 연동 가이드: https://pallycon.com/docs/ko/multidrm/license/license-token/

1-2. PallyCon 계정 이메일 인증 및 트라이얼 사이트 생성
가입 시 입력한 이메일로 가입 환영 메일이 발송됩니다. 해당 메일의 ‘인증하기’ 링크를 클릭해 이메일 인증을 수행합니다. 이메일 인증 후에는 트라이얼을 위한 사이트 정보가 자동으로 생성됩니다.
1-3. 트라이얼 사이트 정보 확인
PallyCon 콘솔 사이트에 로그인 하여 ‘사이트 설정’ 메뉴의 ‘연동 설정’ 화면으로 이동합니다. 아래와 같은 화면에 표시되는 ‘사이트ID’, ‘사이트 키’와 ‘액세스 키’ 값을 메모장과 같은 곳에 별도로 복사해 둡니다. 이 값들은 이후 단계에서 DRM 연동에 사용됩니다.

1-4. Bitmovin 사이트 트라이얼 가입
Bitmovin 사이트에 접속해 ‘Sign up’ 링크를 클릭합니다. 아래와 같은 가입 양식을 통해 트라이얼 계정을 생성합니다.


PallyCon과 마찬가지로 가입 환영 메일이 발송됩니다. 해당 메일의 ‘Activate your account’ 버튼을 클릭해 이메일 인증을 수행합니다.
1-5. 플레이어 라이선스 설정에 테스트용 도메인 추가
3단계의 재생 테스트에서 사용될 테스트 웹 서버의 도메인을 Bitmovin 플레이어의 라이선스 설정에 추가합니다.
- 생성된 트라이얼 계정으로 Bitmovin 사이트에 로그인해 ‘Player > Licenses’ 화면으로 이동합니다.
- 트라이얼용으로 생성된 라이선스키 링크를 클릭해 라이선스 상세 정보 화면으로 이동합니다.
- 테스트용 웹 서버 도메인을 아래와 같이 입력하고 ‘Add’ 버튼을 클릭해 추가합니다.

추가된 도메인 정보가 적용되려면 몇 분 정도 걸릴 수 있습니다.
파라미터 | 입력 값 | 규격 | 예시 |
---|---|---|---|
–site_id | 1단계에서 PallyCon 콘솔 사이트의 ‘연동 설정’ 화면에 표시된 트라이얼 사이트 ID | 네자리 영대문자 | ABCD |
–access_key | PallyCon 콘솔 사이트의 ‘연동 설정’ 화면에 표시된 액세스 키 | 32자리 문자열 | H24FS8wdo3C7CWr SjcIhPYWpYaFu6Lh3 |
–content_id | DRM 패키징과 라이선스 발급 시 각 콘텐츠를 구분할 콘텐츠의 고유 아이디. 해당 아이디를 기준으로 DRM 암호화 키와 라이선스가 관리되며, 일반적으로 CMS (Content Management System) 에서 관리하는 콘텐츠 아이디가 입력되도록 연동 구현함. | 최대 200 자리 영문/숫자 문자열 | pallycon-intro |
-i | 패키징할 원본 MP4 파일명. 패키져 실행 파일과 다른 경로에 있는 경우, 해당 경로를 포함한 파일명 입력 | 파일 경로 규격 | ~/pallycon-test/input/pallycon-intro.mp4 |
-o | 패키징된 결과물이 저장될 경로 | 폴더 경로 규격 | ~/pallycon-test/output/pallycon-intro/ |
위 예시된 입력값에 따라 명령을 구성하면 아래와 같습니다. 예시로 표기된 사이트ID와 액세스 키는 실제로는 동작하지 않으며 1단계에서 가입한 계정에 해당되는 값으로 교체하셔야 합니다.
./PallyConPackager --site_id ABCD --access_key H24FS8wdo3C7CWrSjcIhPYWpYaFu6Lh3 --content_id pallycon-intro --dash -i ~/pallycon-test/input/pallycon-intro.mp4 -o ~/pallycon-test/output/pallycon-intro/
패키징이 성공적으로 완료되면 PallyCon 콘솔 사이트의 ‘DRM 패키징 이력’ 페이지에 해당 이력이 아래와 같이 표시됩니다.


다운로드 받은 ‘bitmovin-player-samplepage.html’ 샘플 파일을 텍스트 에디터로 열어 수정합니다. 우선 검색 기능으로 ‘.mpd’ 문자열을 검색하면 아래와 같은 부분으로 이동합니다.
var source = {
dash: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd',
hls: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8',
progressive: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/MI201109210084_mpeg-4_hd_high_1080p25_10mbits.mp4',
poster: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg'
};
위 소스의 내용을 테스트 환경에 맞도록 아래와 같이 수정합니다.
var source = {
dash: 'https://test-web-server-url/pallycon-intro/dash/stream.mpd',
drm: {
widevine: {
LA_URL: "https://license.pallycon.com/ri/licenseManager.do",
headers: {
"pallycon-customdata-v2" : "CUSTOM_HEADER_VALUE"
}
},
playready: {
LA_URL: "https://license.pallycon.com/ri/licenseManager.do",
headers: {
"pallycon-customdata-v2" : "CUSTOM_HEADER_VALUE"
}
}
}
};
- 위 소스 코드의 mpd 파일 URL은 2단계에서 테스트용 웹 서버에 업로드한 DASH 콘텐츠에 해당되는 URL로 교체되어야 합니다.
- ‘CUSTOM_HEADER_VALUE’ 값은 나중에 아래 과정에서 생성되는 라이선스 토큰 값으로 교체되어야 합니다.
3-2. DRM 라이선스 발급을 위한 라이선스 토큰 생성 및 설정
패키징된 콘텐츠를 재생하기 위해서는 DRM 라이선스 연동을 통해 플레이어에 해당 콘텐츠의 라이선스가 발급되어야 합니다. PallyCon 멀티DRM은 콜백 방식과 토큰 방식의 라이선스 연동을 지원하며, 본 자습서에서는 토큰 방식의 라이선스 연동으로 진행합니다.
라이선스 발급 방식에 대한 상세 설명은 아래 링크된 온라인 가이드를 참고하시기 바랍니다.
- DRM 라이선스 발급 연동 가이드 : https://pallycon.com/docs/ko/multidrm/license/
라이선스 요청에 사용되는 토큰은 PallyCon멀티DRM이 적용될 동영상 서비스의 서버 사이드(백엔드)에서 정해진 규격에 따라 생성되어 클라이언트의 플레이어 코드에 적용되어야 합니다. 본 자습서에서는 빠른 테스트 진행을 위해 PallyCon 사이트의 ‘개발자 콘솔’ 페이지에서 제공되는 ‘토큰 생성’ 기능을 이용합니다. 아래 링크의 개발자 콘솔 페이지로 접속하여 각 항목들을 입력합니다.

항목 | 입력 값 | 규격 | 예시 |
---|---|---|---|
USER ID | 콘텐츠 서비스 사용자의 권한 확인에 사용되는 고유한 사용자 ID. 토큰 방식의 연동에서는 콘텐츠 서비스 백엔드와 클라이언트 간에 직접 권한 확인이 완료된 후 토큰을 생성해야 함. | 최대 200자 영문/숫자 문자열 | test-user (임의로 입력) |
Token Rule | 라이선스 발급 시 적용될 각종 DRM 관련 룰 데이터 (상세 내용은 토큰 가이드 참조) | JSON 문자열 | { “playback_policy”: { “limit”: true, “persistent”: false, “duration” : 300 } } |
Time stamp | 토큰의 유효성 발효 시간. 일반적으로 토큰 생성 시점으로 설정하며, 해당 시점 이후 기본 600초 동안 토큰이 유효함. (PallyCon 콘솔 사이트에서 설정 가능) | yyyy-mm-ddThh:mm:ssZ (GMT 시간대 기준) | 2019-04-03T08:30:00Z |
SITE Key | PallyCon 콘솔 사이트의 ‘연동 설정’ 화면에 표시된 사이트 키 | 32자리 문자열 | 3H24FS8wdo3C7CW rSjcIhPYWpYaFu6Lh |
SITE ID | 1단계에서 PallyCon 콘솔 사이트의 ‘연동 설정’ 화면에 표시된 트라이얼 사이트 ID | 4자리 영대문자 | ABCD |
DRM Type | 재생할 클라이언트(브라우저)에서 지원되는 DRM을 입력 | widevine / playready / fairplay | 크롬 / 파이어폭스: widevine, IE11 / 엣지: playready |
CID | 2단계에서 CLI 패키져에 입력한 콘텐츠 ID | 최대 200자 영문/숫자 문자열 | pallycon-intro |
ACCESS Key | PallyCon 콘솔 사이트의 ‘연동 설정’ 화면에 표시된 액세스 키 | 32자리 문자열 | gktt7xArRiSrWXEvr ommuBdUD6Ktk3cP |
