서문
Forensic Watermarking을 사용하면 불법 복제 및 무단 콘텐츠 공유로부터 프리미엄 콘텐츠를 보호할 수 있습니다. 이 기능은 동영상에 보이지 않는 워터마크를 추가하여 콘텐츠 유출을 추적할 수 있습니다.
자세한 내용은 개요를 참조하십시오. 포렌식 워터마킹문서.
요구 사항
이 기능을 지원하려면 다음 요구 사항이 필요합니다.
설정
플레이어 구성 외에 설정 요구 사항이 있습니다. 자세한 내용은개요를 참조하십시오. 포렌식 워터마킹문서.
디바이스 OS 버전
- Android 6.0 이상
- iOS 11.0 이상
브라이트코브 SDK 버전
- Android 6.16.3 이상용 기본 SDK
- iOS 6.9.0 이상용 네이티브 SDK
안드로이드 구현
포렌식 워터마킹을 위한 구성은 비디오 수준에서 수행됩니다.
-
시청자 ID가 분석 웹 비콘 (
user
필드 내) 에 전달되도록 플레이어를 등록 시스템과 통합해야 합니다.예:
HashMap<String, String> baseParams = new HashMap<>(); baseParams.put(Analytics.Fields.USER, "viewer id"); baseParams.put(Analytics.Fields.APPLICATION_ID, "application id"); HashMap<String, Object> eventParams = new HashMap<>(); eventParams.put(Analytics.Fields.BASE_PARAMS, baseParams); eventEmitter.emit(EventType.ADD_ANALYTICS_BASE_PARAMS, eventParams);
-
Catalog.findVideo
또는Catalog.findPlaylist
메서드 호출에서 워터마킹 토큰을 추가할VideoUtil
메서드를 추가합니다.온비디오 콜백에서
public void onVideo(Video video) { VideoUtil.addWatermarkingToken(video, yourWatermarkingToken); brightcoveVideoView.add(video); }
온플레이리스트 콜백에서
public void onPlaylist(Playlist playlist) { for (Video video : testPlaylist.getVideos()) { VideoUtil.addWatermarkingToken(video, yourWatermarkingToken); } brightcoveVideoView.addAll(testPlaylist.getVideos()); }
-
이 호출을 통해 카탈로그가 Playback API에서 비디오 또는 재생목록 메타데이터를 검색하면
VideoUtil
클래스는 비디오의 소스 URL에{WMT}
있는 위치에 관계없이 워터마킹 토큰 자리 표시자를 토큰 값으로 대체합니다. 이 토큰은 워터마크될 수 있는 재생 목록의 각 비디오에 대해 대체될 수 있습니다.
크롬캐스트
워터마크가 표시된 동영상을 캐스팅하려면 Cast 플러그인으로BrightcoveCastCustomData
객체를 빌드할 때 애플리케이션 ID, 워터마킹 토큰 및 사용자 ID를 제공해야 합니다.
BrightcoveCastCustomData
객체를 설정하는 코드에 다음 줄을 추가하세요.
public static void setupGoogleCast() {
GoogleCastComponent.Builder castPluginBuilder = new GoogleCastComponent.Builder(eventEmitter, context)
.setAutoPlay(isAutoPlayEnabled)
.setQueuingSupported(isQueuingSupported);
BrightcoveCastCustomData.Builder customDataBuilder = new BrightcoveCastCustomData.Builder(context)
.setApplicationId(yourApplicationId)
.setWatermarkingToken(yourWatermarkingToken);
.setUserId(yourUserId);
// Add the custom data elements to the castPluginBuilder
castPluginBuilder
.setEnableCustomData(true)
.setCustomData(customDataBuilder.build());
}
워터마크가 표시된 동영상이 있는 캐스트 연결을 열면 다음과 같은 형식의customData
객체가 표시됩니다.
{
"accountId": "yourAccountId",
"analyticsParams": {
"application": "yourApplicationId",
"user": "yourUserId"
},
"catalogParams": {
"type": "video",
"id": "videoId",
"policyKey": "yourPolicyKey",
"watermarkingToken": "yourWatermarkingToken"
}
}
오프라인 재생
비디오를 다운로드하는 프로세스에는 현재 비디오 메타데이터를 검색하기 위한 하나 이상의 Catalog 호출이 포함될 수 있습니다. 브라이트코브는 구매 또는 대여 라이선스를 취득하거나 비디오를 다운로드할 때 표시될 수 있는 콜백에 위의onVideo
콜백 코드를 추가할 것을 권장합니다.
동영상이 다운로드되면 오프라인 재생이 정상적으로 작동합니다.
자세한 내용은오프라인 재생 샘플 앱을 참조하십시오 .
iOS 구현
Forensic Watermarking을 사용하도록 플레이어를 구성하려면 다음 단계를 따르십시오.
-
시청자 ID가 분석 웹 비콘 (
user
필드 내) 에 전달되도록 플레이어를 등록 시스템과 통합해야 합니다.여기에서 사용자 ID 및 애플리케이션 ID에 대한 값을 제공합니다.
@try { [BCOVGlobalConfiguration.sharedConfig setValue:@{ @"privateUser": @"your user id", @"privateApplication": @"your application id" } forKey:@"privateSessionAnalytics"]; } @catch (NSException *e) { NSLog(@"%@", e.description); }
-
단일 비디오 또는 재생 목록에 대한 Brightcove 카탈로그 요청의 일부로 NAGRA 워터마크 토큰을 제공합니다. 이 작업은
watermarkingToken
속성을 사용하여 수행됩니다.재생 서비스에 워터마킹 토큰을 추가합니다.
/** * The watermarking token for use with Forensic Watermarking */ @property (nonatomic, copy) NSString *watermarkingToken; ... playbackService.watermarkingToken = self.watermarkingToken;
-
단일 비디오 또는 재생 목록에 대한 Brightcove 카탈로그를 요청하십시오.
비디오 요청:
- (void)findVideoWithVideoID:(NSString *)videoID parameters: (NSDictionary *)parameters completion:(void (^) (BCOVVideo *video, NSDictionary *jsonResponse, NSError *error))completionHandler;
재생목록 요청:
- (void)findPlaylistWithPlaylistID:(NSString *)playlistID parameters: (NSDictionary *)parameters completion:(void (^) (BCOVPlaylist *playlist, NSDictionary *jsonResponse, NSError *error))completionHandler;
자세한 내용은 iOS용 네이티브 SDK 참조의 포렌식 워터마킹 섹션을 참조하세요.
크롬캐스트
캐스팅의 경우 워터마크 토큰과 userId 필드를 제공해야 합니다.
BrightcoveCastCustomData
객체를 설정하는 코드에 다음 줄을 추가하세요.
BCOVReceiverAppConfig *appConfig = [BCOVReceiverAppConfig new];
...
appConfig.userId = @"ios-client@brightcove.com";
appConfig.watermarkingToken = watermarkingToken;
...
디버깅 콘솔에서 Chromecast 세션에 사용될 구성 값을 볼 수 있습니다.
Google Cast Custom Data: {
accountId = <your_account_id>;
analyticsParams = {
application = "";
user = "ios-client@brightcove.com";
};
catalogParams = {
adConfigId = "";
bcovAuthToken = "";
id = <your_video_id>;
policyKey = "<your_policy_key";
type = video;
watermarkingToken = "<your_watermark_token";
};
오프라인 재생
동영상이 다운로드되면 오프라인 재생이 정상적으로 작동합니다.
이 기능을 시작하려면 iOS App Developer's Guide to Offline Playback 참조를 확인하세요.
제한 사항
이 기능의 제한 사항에 대한 자세한 내용은 개요를 참조하십시오. 포렌식 워터마킹문서.