Introduction
Avec Forensic Watermarking, vous pouvez protéger votre contenu premium contre le piratage et le partage de contenu non autorisé. Cette fonctionnalité ajoute un filigrane invisible à vos vidéos, vous permettant de suivre toute fuite de contenu.
Pour plus d'informations, consultez la vue d'ensemble : Document de filigrane médico-légal.
Exigences
Les exigences suivantes sont nécessaires pour prendre en charge cette fonctionnalité :
Configuration
Il existe des exigences de configuration en plus de la configuration de votre lecteur. Pour plus de détails, consultez la présentation : Document de filigrane médico-légal.
Version du système d'exploitation de l'appareil
- Android 6.0 et versions ultérieures
- iOS 11.0 et versions ultérieures
Version du SDK Brightcove
- SDK natif pour Android 6.16.3 et plus récent
- SDK natif pour iOS 6.9.0 et versions ultérieures
Implémentation Android
La configuration du filigrane judiciaire est effectuée au niveau de la vidéo.
-
Le lecteur doit être intégré à votre système d'enregistrement pour qu'un identifiant de visionneuse soit transmis sur la balise Web Analytics (sur le
user
terrain).Par exemple :
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);
-
Dans le
Catalog.findVideo
ouCatalog.findPlaylist
appels de méthode, ajoutez leVideoUtil
méthode pour ajouter votre jeton de filigrane.Dans le rappel onVideo
public void onVideo(Video video) { VideoUtil.addWatermarkingToken(video, yourWatermarkingToken); brightcoveVideoView.add(video); }
Dans le rappel onPlaylist
public void onPlaylist(Playlist playlist) { for (Video video : testPlaylist.getVideos()) { VideoUtil.addWatermarkingToken(video, yourWatermarkingToken); } brightcoveVideoView.addAll(testPlaylist.getVideos()); }
-
Avec cet appel en place, lorsque le catalogue récupère les métadonnées de la vidéo ou de la liste de lecture à partir de l'API de lecture, le
VideoUtil
la classe remplacera l'espace réservé du jeton de filigrane{WMT}
avec la valeur du jeton, où qu'elle se trouve dans les URL sources de la vidéo. Ce jeton peut être remplacé pour chaque vidéo d'une liste de lecture pouvant être filigranée.
Chromecast
Pour diffuser une vidéo filigranée, vous devez fournir votre ID d'application, votre jeton de filigrane et votre ID utilisateur lors de la création de votre BrightcoveCastCustomData
objet avec le plugin Cast.
Dans votre code pour configurer le BrightcoveCastCustomData
objet, ajoutez cette ligne :
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());
}
Lorsque vous ouvrez une connexion Cast avec une vidéo filigranée, vous devriez voir un customData
objet formaté comme suit :
{
"accountId": "yourAccountId",
"analyticsParams": {
"application": "yourApplicationId",
"user": "yourUserId"
},
"catalogParams": {
"type": "video",
"id": "videoId",
"policyKey": "yourPolicyKey",
"watermarkingToken": "yourWatermarkingToken"
}
}
Lecture hors ligne
Le processus de téléchargement d'une vidéo peut impliquer plusieurs appels de catalogue pour récupérer les métadonnées vidéo actuelles. Brightcove recommande d'ajouter le onVideo
code de rappel ci-dessus à vos rappels qui peuvent être présents lors de l'acquisition de licences d'achat ou de location et lors du téléchargement de la vidéo.
Une fois la vidéo téléchargée, la lecture hors ligne devrait fonctionner comme d'habitude.
Pour plus de détails, consultez le Exemple d'application de lecture hors ligne.
Implémentation iOS
Pour configurer un lecteur afin qu'il utilise Forensic Watermarking, procédez comme suit :
-
Le lecteur doit être intégré à votre système d'enregistrement pour qu'un identifiant de visionneuse soit transmis sur la balise Web Analytics (sur le
user
terrain).Ici, vous fournirez des valeurs pour l'ID utilisateur et l'ID d'application :
@try { [BCOVGlobalConfiguration.sharedConfig setValue:@{ @"privateUser": @"your user id", @"privateApplication": @"your application id" } forKey:@"privateSessionAnalytics"]; } @catch (NSException *e) { NSLog(@"%@", e.description); }
-
Dans le cadre de la demande de catalogue Brightcove pour une seule vidéo ou une liste de lecture, vous fournirez votre jeton de filigrane NAGRA. Cela se fait à l'aide du
watermarkingToken
biens.Ajoutez votre jeton de filigrane au service de lecture.
/** * The watermarking token for use with Forensic Watermarking */ @property (nonatomic, copy) NSString *watermarkingToken; ... playbackService.watermarkingToken = self.watermarkingToken;
-
Faites votre demande au catalogue Brightcove pour une seule vidéo ou une liste de lecture.
Pour une demande de vidéo :
- (void)findVideoWithVideoID:(NSString *)videoID parameters: (NSDictionary *)parameters completion:(void (^) (BCOVVideo *video, NSDictionary *jsonResponse, NSError *error))completionHandler;
Pour une demande de playlist :
- (void)findPlaylistWithPlaylistID:(NSString *)playlistID parameters: (NSDictionary *)parameters completion:(void (^) (BCOVPlaylist *playlist, NSDictionary *jsonResponse, NSError *error))completionHandler;
Pour plus de détails, consultez la section Forensic Watermarking de la référence Native SDK for iOS.
Chromecast
Pour la diffusion, vous devrez fournir le jeton de filigrane et les champs userId.
Dans votre code pour configurer le BrightcoveCastCustomData
objet, ajoutez cette ligne :
BCOVReceiverAppConfig *appConfig = [BCOVReceiverAppConfig new];
...
appConfig.userId = @"ios-client@brightcove.com";
appConfig.watermarkingToken = watermarkingToken;
...
Dans la console de débogage, vous pouvez voir les valeurs de configuration qui seront utilisées pour votre session 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";
};
Lecture hors ligne
La lecture hors ligne devrait fonctionner comme d'habitude une fois la vidéo téléchargée.
Pour commencer avec cette fonctionnalité, consultez le Guide du développeur d'applications iOS pour la lecture hors ligne référence.
Contraintes
Pour plus de détails sur les limites de cette fonctionnalité, consultez la vue d'ensemble : Document de filigrane médico-légal.