tencent cloud

Video on Demand

릴리스 노트 및 공지 사항
릴리스 노트
제품 소개
제품 개요
Product Features
제품 기능
제품 장점
시나리오
솔루션
구매 가이드
과금 개요
과금 방식
구매 가이드
청구서 조회
연장 안내
연체 안내
환불 안내
시작하기
콘솔 가이드
콘솔 소개
서비스 개요
애플리케이션 관리
미디어 관리
리소스 패키지 관리
License Management
사례 튜토리얼
미디어 업로드
VOD 미디어 파일을 스마트 콜드 스토리지하는 방법
비디오 처리
배포 및 재생
이벤트 알림 수신 방법
원본 서버 마이그레이션 방법
라이브 방송 녹화
사용자 지정 Origin-pull을 수행하는 방법
라이브 방송 하이라이트 클리핑을 VOD에 통합하기 위한 가이드
EdgeOne을 사용하여 VOD 콘텐츠 배포하는 방법
개발 가이드
미디어 업로드
미디어 처리
비디오 AI
이벤트 알림
비디오 재생
미디어 파일 다운로드
서브 애플리케이션 시스템
오류 코드
플레이어 SDK 문서
Overview
Basic Concepts
Features
Free Demo
Free Trial License
Purchase Guide
SDK Download
Licenses
Player Guide
Integration (UI Included)
Integration (No UI)
Advanced Features
API Documentation
Player Adapter
Player SDK Policy
FAQs
모바일 재생
요금
비디오 업로드
비디오 배포
비디오 재생
Web 재생
전체 화면 재생
데이터 통계
액세스 관리
미디어 자산 콜드 스토리지
Agreements
Service Level Agreement
VOD 정책
개인 정보 보호 정책
데이터 처리 및 보안 계약
문의하기
용어집

Player 서명

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2024-08-26 16:40:54
플레이어 서명은 비디오를 재생하기 위해 재생 장치를 인증하는 데 사용됩니다. App 재생 서비스가 장치에 유효한 서명을 발급하면(아래 그림의 6단계) 장치는 서명의 유효 기간 내에서 비디오를 재생할 수 있습니다.

플레이어 서명의 매개변수 및 생성 규칙은 다음과 같습니다.

서명 매개변수

매개변수
필수
유형
설명
appId
Yes
Integer
VOD appId.
fileId
Yes
String
파일 ID.
contentInfo
Yes
Object
지정된 파일 ID의 콘텐츠입니다. 이 매개변수의 구조는 ContentInfo를 참고하십시오. 세 가지 유형의 콘텐츠가 지원됩니다.
암호화되었거나 암호화되지 않은 어댑티브 비트레이트된 오디오/비디오.
트랜스 코딩된 오디오/비디오.
업로드된 원본 오디오/비디오.
currentTimeStamp
Yes
Integer
현재 시간(Unix 타임스탬프).
expireTimeStamp
No
Integer
분산 서명의 만료 시간(Unix 타임스탬프). 이 매개변수를 비워두면 서명이 만료되지 않습니다.
urlAccessInfo
No
Object
Key 링크 도용 방지 매개변수, 재생 도메인 및 프로토콜을 포함한 재생 URL 액세스 매개변수. 매개변수의 구조는 UrlAccessInfo를 참고하십시오.
drmLicenseInfo
No
Object
DRM License 구성. 매개변수의 구조는 DrmLicenseInfo를 참고하십시오.

ContentInfo

매개변수
필수
유형
설명
audioVideoType
Yes
String
재생되는 오디오/비디오 유형입니다. 유효한 값:
RawAdaptive: 암호화되지 않은 어댑티브 비트레이트 출력.
ProtectedAdaptive: 개인 프로토콜 또는 DRM 암호화 어댑티브 비트레이트 출력.
Transcode: 트랜스 코딩 출력.
Original: 업로드된 원본 오디오/비디오.
rawAdaptiveDefinition
No
Integer
출력이 허용되는 암호화되지 않은 ABS 트랜스 코딩 템플릿 ID. 이 매개변수는 audioVideoType이 RawAdaptive인 경우 유효하며 필수입니다.
drmAdaptiveInfo
No
Object
출력이 허용되는 암호화된 ABS 트랜스 코딩 템플릿 ID. 이 매개변수는 audioVideoType이 ProtectedAdaptive인 경우 유효하고 필수입니다. 구조는 DRMAdaptiveInfo를 참고하십시오.
transcodeDefinition
No
Integer
출력이 허용되는 트랜스 코딩 템플릿 ID. 이 매개변수는 audioVideoType이 Transcode인 경우 유효하며 필수입니다.
imageSpriteDefinition
No
Integer
진행률 표시줄 미리보기를 생성하는 데 사용되는 이미지 스프라이트 템플릿 ID.
resolutionNames
No
Array of Object
플레이어에 표시되는 다른 스트림(다른 해상도)의 이름. 해당 구조는 ResolutionNameInfo를 참고하십시오. 이 매개변수를 지정하지 않거나 비워두면 다음이 사용됩니다.
MinEdgeLength: 240, Name: 240P.
MinEdgeLength: 480, Name: 480P.
MinEdgeLength: 720, Name: 720P.
MinEdgeLength: 1080, Name: 1080P.
MinEdgeLength: 1440, Name: 2K.
MinEdgeLength: 2160, Name: 4K.
MinEdgeLength: 4320, Name: 8K.

DRMAdaptiveInfo

매개변수
필수
유형
설명
privateEncryptionDefinition
No
Integer
DrmType이 SimpleAES일 때 사용되는 ABS 트랜스 코딩 템플릿 ID.
widevineDefinition
No
Integer
DrmType이 Widevine일 때 사용되는 ABS 트랜스 코딩 템플릿 ID.
fairPlayDefinition
No
Integer
DrmType이 FairPlay일 때 사용되는 ABS 트랜스 코딩 템플릿 ID.

ResolutionNameInfo

매개변수
필수
유형
설명
MinEdgeLength
Yes
Integer
비디오의 짧은 면(px).
Name
Yes
String
스트림 이름.

UrlAccessInfo

매개변수
필수
유형
설명
t
No
String
URL 만료 시간을 나타내는 16진수 문자열.
유효한 값 및 기타 정보는 Key 링크 도용 방지의 t 매개변수를 참고하십시오.
이 매개변수를 비워두면 URL이 만료되지 않습니다.
exper
No
Integer
미리보기 시간(10진수 초).
미리보기 시간은 30초보다 짧을 수 없습니다.
유효한 값 및 기타 정보는 Key 링크 도용 방지의 exper 매개변수를 참고하십시오.
rlimit
No
Integer
재생이 허용되는 최대 IP 주소 수(십진수).
유효한 값 및 기타 정보는 Key 링크 도용 방지의 rlimit 매개변수를 참고하십시오.
us
No
String
링크를 고유하게 식별할 수 있는 URL ID.
유효한 값 및 기타 정보는 Key 링크 도용 방지의 us 매개변수를 참고하십시오.
domain
No
String
재생 도메인. 지정되지 않았거나 Default가 전달된 경우 기본 배포 구성이 사용됩니다.
scheme
No
String
재생 Scheme. 지정되지 않았거나 Default가 전달된 경우 기본 배포 구성이 사용됩니다. 기타 유효한 값:
HTTP.
HTTPS.

DrmLicenseInfo

매개변수
필수
유형
설명
persistent
No
String
재생 장치에서 DRM 재생 라이선스의 영구 저장 허용 여부. 유효한 값:
ON: 허용;
OFF: 허용하지 않음.
기본값: OFF.
rentalDuration
No
Integer
persistent이 ON일 때, DRM 재생 라이선스의 허용된 저장 시간(초). 지정하지 않으면 저장 시간에 제한이 없습니다.
forceL1TrackTypes
No
Array of String
Widevine을 사용할 때 L1 보안 수준을 사용해야 하는 Track 유형. 다른 Track 유형의 경우 Widevine L3가 사용됩니다. 유효한 값:
AUDIO: 오디오 트랙;
SD: 짧은 면이 720픽셀보다 작은 비디오 트랙.
HD: 짧은 면이 720픽셀 이상 2160픽셀 미만인 비디오 트랙.
UHD1: 짧은 면이 2160픽셀 이상 4320픽셀 미만인 비디오 트랙.
UHD2: 짧은 면이 4320픽셀 이상인 비디오 트랙.
설명:
서브 애플리케이션을 사용한 경우 서브 애플리케이션의 AppId를 appId 매개변수로 설정합니다.
서명 매개변수의 t, exper, rlimitus의 설명 및 유효한 값은 링크 도용 방지 매개변수와 동일합니다.

서명 계산

VOD Player 서명은 Header, PayLoad 및 Key로 구성된 JWT(JSON Web Token)입니다.
Header는 JSON 형식으로 JWT에서 사용하는 알고리즘의 정보를 나타내며 그 내용은 다음과 같이 수정됩니다.
{
"alg": "HS256",
"typ": "JWT"
}

PayLoad

PayLoad는 JSON 형식이며 플레이어 서명 매개변수를 나타냅니다. 예시는 다음과 같습니다.
{
"appId": 1255566655,
"fileId": "4564972818519602447",
"contentInfo": {
"audioVideoType": "RawAdaptive",
"rawAdaptiveDefinition": 10,
"imageSpriteDefinition": 10
},
"currentTimeStamp": 1663064276,
"expireTimeStamp": 1663294210,
"urlAccessInfo": {
"t": "6323e6b0",
"rlimit": 3,
"us": "72d4cd1101"
}
}

Key

Key는 서명을 계산하는 데 사용됩니다. 아래 예시에서는 기본 배포 구성재생 키가 사용됩니다.

계산 공식

1. Signature 계산: Signature = HMACSHA256(base64UrlEncode(Header) + "." + base64UrlEncode(Payload), Key)
2. Token 계산: Token = base64UrlEncode(Header) + '.' + base64UrlEncode(Payload) + '.' + base64UrlEncode(Signature) 생성된 Token이 VOD Player 서명입니다.
설명:
HMACSHA256은 RFC - HMACSHA256을 참고하십시오. base64UrlEncode는 RFC - base64UrlEncode를 참고하십시오.
VOD는 서명 생성 도구와 서명 확인 도구를 제공합니다.

계산 예시

appId가 1255566655이고, fileId가 4564972818519602447인 비디오에 대한 플레이어 서명을 생성하려고 한다고 가정합니다. 다른 매개변수는 다음과 같습니다.
재생 키는 TxtyhLlgo7J3iOADIron입니다.
플레이어 서명의 배포 시간은 2022-09-13 18:17:56이며 Unix 타임스탬프로 변환된 시간은 1663064276입니다.
플레이어 서명의 만료 시간은 2022-09-16 10:10:10이며 Unix 타임스탬프로 변환된 시간은 1663294210입니다.
링크 도용 방지 만료 시간은 2022-09-16 11:00:00이며 Unix 타임스탬프로 변환된 시간은 6323e6b0입니다.
재생 URL을 사용하여 동영상 재생 시 최대 3개의 IP 주소가 허용됩니다.
URL ID에 대해 생성된 임의의 문자열은 72d4cd1101입니다.
다음과 같이 서명을 계산합니다.
1. Header의 내용을 결정합니다.
{
"alg": "HS256",
"typ": "JWT"
}
base64UrlEncode 이후에 생성된 결과는 다음과 같습니다. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
2. Payload의 내용:
{
"appId": 1255566655,
"fileId": "4564972818519602447",
"contentInfo": {
"audioVideoType": "RawAdaptive",
"rawAdaptiveDefinition": 10,
"imageSpriteDefinition": 10
},
"currentTimeStamp": 1663064276,
"expireTimeStamp": 1663294210,
"urlAccessInfo": {
"t": "6323e6b0",
"rlimit": 3,
"us": "72d4cd1101"
}
}
base64UrlEncode 이후에 생성된 결과는 다음과 같습니다. eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImNvbnRlbnRJbmZvMSI6eyJhdWRpb1ZpZGVvVHlwZSI6IlJhd0FkYXB0
aXZlIiwicmF3QWRhcHRpdmVEZWZpbml0aW9uIjoxMCwiaW1hZ2VTcHJpdGVEZWZpbml0aW9uIjoxMH0sImN1cnJlbnRUaW1lU3RhbXAiOjE2NjMwNjQyNzYsImV4
cGlyZVRpbWVTdGFtcCI6MTY2MzI5NDIxMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNjMyM2U2YjAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ
3. 재생 Key(TxtyhLlgo7J3iOADIron)를 사용하여 HMAC Signature를 생성합니다. QFcBX9830ysTzJIyZxoOlRmNb2Gqy2fns9yOfriaDI8.
4. 생성된 Token은 다음과 같습니다. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTI1NTU2NjY1NSwiZmlsZUlkIjoiNDU2NDk3MjgxODUxOTYwMjQ0NyIsImNvbnRlbnRJbmZvMSI6eyJhdWRpb1ZpZGVvVHlwZSI6IlJhd0FkYXB0aXZlIiwicmF3QWRhcHRpdmVEZWZpbml0aW9uIjoxMCwiaW1hZ2VTcHJpdGVEZWZpbml0aW9uIjoxMH0sImN1cnJlbnRUaW1lU3RhbXAiOjE2NjMwNjQyNzYsImV4cGlyZVRpbWVTdGFtcCI6MTY2MzI5NDIxMCwidXJsQWNjZXNzSW5mbyI6eyJ0IjoiNjMyM2U2YjAiLCJybGltaXQiOjMsInVzIjoiNzJkNGNkMTEwMSJ9fQ.QFcBX9830ysTzJIyZxoOlRmNb2Gqy2fns9yOfriaDI8.

코드 예시

VOD는 Python, Java, Go, C#, PHP, Node.js 등 다양한 프로그래밍 언어에 대한 플레이어 서명의 코드 예시를 제공합니다. 자세한 내용은 플레이어 서명 예시를 참고하십시오.

일반적인 오류

플레이어 서명을 사용하고 플레이어 SDK가 에러 코드를 반환하는 경우 일반적인 원인은 다음과 같습니다.
잘못된 서명 계산 KEY. Key 링크 도용 방지KEY 매개변수가 아닌 기본 배포 구성재생 키를 사용해야 합니다.
잘못된 매개변수 유형: 예를 들어 appId는 정수이지만 입력된 값은 appId:"125000123"(문자열)입니다. 또는 contentInfo의 트랜스코딩 템플릿 매개변수가 정수인데 입력한 값이 transcodeDefinition: "14011"(문자열 유형)입니다.
잘못된 매개변수 값: 예를 들어 contentInfo의 오디오/비디오 유형 매개변수에 audioVideoType: "Transocde"(오타)가 입력되었습니다.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백