Introducción
Con la marca de agua forense, puede proteger su contenido premium contra la piratería y el intercambio de contenido no autorizado. Esta función agrega una marca de agua invisible a sus videos, lo que le permite rastrear cualquier filtración de contenido.
Para obtener más información, consulte el Visión general: Documento de marca de agua forense.
Requisitos
Se necesitan los siguientes requisitos para admitir esta función:
Configuración
Existen requisitos de instalación además de configurar su reproductor. Para obtener más detalles, consulte la Descripción general: Documento de marca de agua forense.
Versión del sistema operativo del dispositivo
- Android 6.0 y más reciente
- iOS 11.0 y más reciente
Versión de Brightcove SDK
- SDK nativo para Android 6.16.3 y versiones posteriores
- SDK nativo para iOS 6.9.0 y versiones posteriores
Implementación de Android
La configuración de la marca de agua forense se realiza a nivel de vídeo.
-
El reproductor debe estar integrado con su sistema de registro para que se transmita un ID de visor a la baliza web de análisis (en el
user
campo).Por ejemplo:
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);
-
En el
Catalog.findVideo
oCatalog.findPlaylist
llamadas a métodos, agregue elVideoUtil
método para agregar su ficha de marca de agua.En la devolución de llamada onVideo
public void onVideo(Video video) { VideoUtil.addWatermarkingToken(video, yourWatermarkingToken); brightcoveVideoView.add(video); }
En la devolución de llamada de onPlaylist
public void onPlaylist(Playlist playlist) { for (Video video : testPlaylist.getVideos()) { VideoUtil.addWatermarkingToken(video, yourWatermarkingToken); } brightcoveVideoView.addAll(testPlaylist.getVideos()); }
-
Con esta llamada en su lugar, cuando el catálogo recupera los metadatos de video o lista de reproducción de la API de reproducción, el
VideoUtil
la clase reemplazará el marcador de posición del token de marca de agua{WMT}
con el valor del token, dondequiera que aparezca en las URL de origen del video. Este token se puede reemplazar para cada video en una lista de reproducción que puede tener marca de agua.
Chromecast
Para transmitir un video con marca de agua, debe proporcionar su ID de aplicación, token de marca de agua e ID de usuario al crear su BrightcoveCastCustomData
objeto con el complemento Cast.
En su código para configurar el BrightcoveCastCustomData
objeto, agregue esta línea:
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());
}
Cuando abres una conexión de transmisión con un video con marca de agua, deberías ver un customData
objeto formateado así:
{
"accountId": "yourAccountId",
"analyticsParams": {
"application": "yourApplicationId",
"user": "yourUserId"
},
"catalogParams": {
"type": "video",
"id": "videoId",
"policyKey": "yourPolicyKey",
"watermarkingToken": "yourWatermarkingToken"
}
}
Reproducción sin conexión
El proceso para descargar un video puede implicar más de una llamada al catálogo para recuperar los metadatos actuales del video. Brightcove recomienda agregar el onVideo
código de devolución de llamada anterior a las devoluciones de llamada que pueden estar presentes al adquirir licencias de compra o alquiler y al descargar el video.
Una vez que se haya descargado el video, la reproducción sin conexión debería funcionar como de costumbre.
Para obtener más detalles, consulte la Aplicación de muestra de reproducción sin conexión.
Implementación de iOS
Para configurar un reproductor para que utilice la marca de agua forense, siga estos pasos:
-
El reproductor debe estar integrado con su sistema de registro para que se transmita un ID de visor a la baliza web de análisis (en el
user
campo).Aquí, proporcionará valores para el ID de usuario y el ID de la aplicación:
@try { [BCOVGlobalConfiguration.sharedConfig setValue:@{ @"privateUser": @"your user id", @"privateApplication": @"your application id" } forKey:@"privateSessionAnalytics"]; } @catch (NSException *e) { NSLog(@"%@", e.description); }
-
Como parte de la solicitud del catálogo de Brightcove para un solo video o una lista de reproducción, proporcionará su token de marca de agua NAGRA. Esto se hace usando el
watermarkingToken
propiedad.Agregue su ficha de marca de agua al servicio de reproducción.
/** * The watermarking token for use with Forensic Watermarking */ @property (nonatomic, copy) NSString *watermarkingToken; ... playbackService.watermarkingToken = self.watermarkingToken;
-
Haga su solicitud al catálogo de Brightcove para un solo video o una lista de reproducción.
Para una solicitud de video:
- (void)findVideoWithVideoID:(NSString *)videoID parameters: (NSDictionary *)parameters completion:(void (^) (BCOVVideo *video, NSDictionary *jsonResponse, NSError *error))completionHandler;
Para una solicitud de lista de reproducción:
- (void)findPlaylistWithPlaylistID:(NSString *)playlistID parameters: (NSDictionary *)parameters completion:(void (^) (BCOVPlaylist *playlist, NSDictionary *jsonResponse, NSError *error))completionHandler;
Para obtener más información, consulte la sección Marca de agua forense de la referencia del SDK nativo para iOS.
Chromecast
Para la transmisión, deberá proporcionar el token de marca de agua y los campos userId.
En su código para configurar el BrightcoveCastCustomData
objeto, agregue esta línea:
BCOVReceiverAppConfig *appConfig = [BCOVReceiverAppConfig new];
...
appConfig.userId = @"ios-client@brightcove.com";
appConfig.watermarkingToken = watermarkingToken;
...
En la consola de depuración, puede ver los valores de configuración que se utilizarán para su sesión de 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";
};
Reproducción sin conexión
La reproducción sin conexión debería funcionar como de costumbre una vez que se descargue el video.
Para comenzar con esta función, consulte la Guía del desarrollador de aplicaciones iOS para la reproducción sin conexión referencia.
Limitaciones
Para obtener detalles sobre las limitaciones de esta función, consulte la Visión general: Documento de marca de agua forense.