Marca de agua forense con los SDK nativos

En este tema, aprenderá a utilizar los SDK nativos de Brightcove para entregar videos protegidos con marcas de agua forenses.

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.

  1. 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);          
    
  2. En el Catalog.findVideo o Catalog.findPlaylist llamadas a métodos, agregue el VideoUtil 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());
    }
    
  3. 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:

  1. 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);
      }       
    
  2. 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;     
    
  3. 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.