Page tree
Skip to end of metadata
Go to start of metadata

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

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

  • Internet Explorer, Firefox, Safari, Opera, Chrome v44 이하, Mac OS X 사용자: [클릭]
  • Microsoft Edge, Chrome v45 이상, 그 밖에 Active X 및 NPAPI 미지원 브라우저 사용자: [클릭]

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>

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

  • 당 텍스트는 영상 재생 중 위치를 랜덤하게 바꿔 노출됩니다.
  • 해당 텍스트는 크기 및 색상, 그리고 투명도를 조절할 수 있습니다. (font_size, font_color, alpha)
  • 해당 텍스트는 노출 시간의 주기를 임의로 변경할 수 있습니다. (show_time, hide_time)
  • 해당 텍스트는 시청자의 ID로 변경하여 사용할 수 있습니다. (client_user_id)

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

  • No labels