비디오 워터마킹(Video Watermarking)은 동영상 컨텐츠의 비정상적인 사용을 최대한 보완하기 위해 쓰이는 보안 정책 중 하나입니다. 워터마킹은 여러가지 형태 (이미지, 텍스트, 로고 삽입 등)으로 적용할 수 있으나 본 서비스에서는 텍스트-오버레이(text-overlay)를 우선 지원합니다. 콜러스에서 제공하는 워터마킹은 아래와 같은 형태로 제공되며, 해당 워터마킹은 API를 통해 지원합니다. (워터마크 샘플 영상을 보기 위해서는 보안 플레이어 설치가 필요하며 미 설치 안내가 자동 진행됩니다.
아래의 링크를 클릭하시면 Kollus Player가 다운로드 됩니다. 반드시 현재 사용하고 계시는 브라우저의 버전에 적합한 링크를 클릭해주시기 바랍니다.
Firefox, Safari, Opera, Chrome v44 이하, Mac OS X 사용자: [클릭 ]
Microsoft Edge, Chrome v45 이상: [클릭 ]
<Example code> Open
<?php
/**
* base64_urlencode
*
* @param string $str
* @return string
*/
function base64_urlencode($str) {
return rtrim(strtr(base64_encode($str), '+/', '-_'), '=');
}
/**
* jwt_encode
*
* @param array $payload
* @param string $key
* @return string
*/
function jwt_encode($payload, $key) {
$jwtHead = base64_urlencode(json_encode(array('typ' => 'JWT', 'alg' => 'HS256')));
$jsonPayload = base64_urlencode(json_encode($payload));
$signature = base64_urlencode(hash_hmac('SHA256', $jwtHead . '.' . $jsonPayload, $key, true));
return $jwtHead . '.' . $jsonPayload . '.' . $signature;
}
$securityKey = 'SECURITY_KEY';
$customKey = 'CUSTOME_KEY';
$mediaContentKey = 'MEDIA_CONTENT_KEY';
$clientUserId = 'CLIENT_USER_ID';
$expireTime = 7200; // 120 min
$mediaItems = array(
array(
'media_content_key' => $mediaContentKey,
),
);
$payload = array(
'mc' => array(),
'cuid' => $clientUserId,
'expt' => time() + $expireTime,
'video_watermarking_code_policy' =>
array(
'code_kind' => '2930451',
'font_size' => 20,
'font_color' => 'ffffff',
'show_time' => 10,
'hide_time' => 1,
'alpha' => 255,
'enable_html5_player' => true
),
);
foreach ($mediaItems as $mediaItem) {
$mcClaim = array();
$mcClaim['mckey'] = $mediaItem['media_content_key'];
$payload['mc'][] = $mcClaim;
}
$jwtToken = jwt_encode($payload, $securityKey);
$webTokenURL = 'http://v.kr.kollus.com/s?jwt=' . $jwtToken . '&custom_key=' . $customKey;
?>
<!DOCTYPE html>
<html lang="en">
<body>
<iframe width="840" height="472" src="<?php echo $webTokenURL; ?>" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
</body>
</html>
상기 샘플 동영상내에는 ‘2930451’ 이라는 텍스트가 삽입되어 있습니다.
당 텍스트는 영상 재생 중 위치를 랜덤하게 바꿔 노출됩니다.
해당 텍스트는 크기 및 색상, 그리고 투명도를 조절할 수 있습니다. (font_size, font_color, alpha)
해당 텍스트는 노출 시간의 주기를 임의로 변경할 수 있습니다. (show_time, hide_time)
해당 텍스트는 시청자의 ID로 변경하여 사용할 수 있습니다. (client_user_id)
해당 설정에 대해서는 Developer 문서 내 payload 항목에서 확인할 수 있습니다.