비디오 워터마킹(Video Watermarking)은 동영상 컨텐츠의 비정상적인 사용을 최대한 보완하기 위해 쓰이는 보안 정책 중 하나입니다. 워터마킹은 여러가지 형태 (이미지, 텍스트, 로고 삽입 등)으로 적용할 수 있으나 본 서비스에서는 텍스트-오버레이(text-overlay)를 우선 지원합니다. 콜러스에서 제공하는 워터마킹은 아래와 같은 형태로 제공되며, 해당 워터마킹은 API를 통해 지원합니다. (워터마크  샘플 영상을 보기 위해서는  보안 플레이어 설치가 필요하며 미 설치 안내가 자동 진행됩니다. 

아래의 링크를 클릭하시면 Kollus Player가 다운로드 됩니다. 반드시 현재 사용하고 계시는 브라우저의 버전에 적합한 링크를 클릭해주시기 바랍니다.

<center>
<iframe width="840" height="472" src="https://v.kr.kollus.com/s?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtYyI6W3sibWNrZXkiOiJjN0pZM3gwTCJ9XSwiY3VpZCI6InRlc3QxMjM0IiwiZXhwdCI6MzU5NTMxNDkxNCwidmlkZW9fd2F0ZXJtYXJraW5nX2NvZGVfcG9saWN5Ijp7ImNvZGVfa2luZCI6IjI5MzA0NTEiLCJmb250X3NpemUiOjIwLCJmb250X2NvbG9yIjoiZmZmZmZmIiwic2hvd190aW1lIjoxMCwiaGlkZV90aW1lIjoxLCJhbHBoYSI6MjU1LCJlbmFibGVfaHRtbDVfcGxheWVyIjp0cnVlfX0.Za44oFP-0OQNP7lkdHfd7pTvVe0qTiRtIKE630INWos&custom_key=9e3ae9fdddaa2637912c74791f1c6928fe66bd3d52effc25f598104a51168eac&s"
allowfullscreen webkitallowfullscreen mozallowfullscreen>
</iframe>
</center>

<Example code>

<?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>


More samples

kollus-samples-php

kollus-samples-dotnet

kollus-sample-java

상기 샘플 동영상내에는 ‘2930451’ 이라는 텍스트가 삽입되어 있습니다.

해당 설정에 대해서는 Developer 문서 내 payload 항목에서 확인할 수 있습니다.