使用本機 SDK 進行取證水印

在本主題中,您將了解如何使用 Brightcove Native SDK 交付受取證水印保護的視頻。

簡介

使用取證水印,您可以保護您的優質內容免受盜版和未經授權的內容共享。此功能會為您的視頻添加一個不可見的水印,讓您可以跟踪任何內容洩漏。

有關詳細信息,請參閱 概述:取證水印文檔。

需求

支持此功能需要滿足以下要求:

設定

除了配置您的播放器之外,還有設置要求。有關詳細信息,請參見概述:取證水印文檔。

裝置作業系統版本

  • Android 6.0 及更新版本
  • iOS 11.0 及更新版本

Brightcove SDK版本

  • 適用於 Android 6.16.3 及更新版本的本機 SDK
  • 適用於 iOS 6.9.0 及更新版本的本機 SDK

安卓實作

取證水印的配置在視頻級別執行。

  1. 播放器必須與您的註冊系統集成,以便在分析網絡信標上傳遞查看者 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);          
    
  2. 在裡面Catalog.findVideo或者Catalog.findPlaylist方法調用,添加VideoUtil添加水印令牌的方法。

    在 onVideo 回調中

    public void onVideo(Video video) {
        VideoUtil.addWatermarkingToken(video, yourWatermarkingToken);
        brightcoveVideoView.add(video);
    } 
    

    在 onPlaylist 回調中

    public void onPlaylist(Playlist playlist) {
      for (Video video : testPlaylist.getVideos()) {
          VideoUtil.addWatermarkingToken(video, yourWatermarkingToken);
      }
      brightcoveVideoView.addAll(testPlaylist.getVideos());
    }
    
  3. 通過此調用,當目錄從播放 API 檢索視頻或播放列表元數據時,VideoUtil類將替換水印令牌佔位符{WMT}帶有令牌值,無論它出現在視頻的源 URL 中的何處。可以為可能帶有水印的播放列表中的每個視頻替換此令牌。

要投射帶水印的視頻,您需要在構建您的應用程序時提供您的應用程序 ID、水印標記和用戶 ID BrightcoveCastCustomData帶有 Cast 插件的對象。

在您的代碼中設置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"
      }
  }  

離線播放

下載視頻的過程可能涉及多個目錄調用以檢索當前視頻元數據。Brightcove 建議添加onVideo獲取購買或租賃許可證以及下載視頻時可能出現的回調代碼。

下載視頻後,離線播放應該照常進行。

有關詳細信息,請參見離線播放示例應用

iOS 實作

要配置播放器以使用取證水印,請執行以下步驟:

  1. 播放器必須與您的註冊系統集成,以便在分析網絡信標上傳遞查看者 ID(在user場地)。

    在這裡,您將提供用戶 ID 和應用程序 ID 的值:

    @try
      {
        [BCOVGlobalConfiguration.sharedConfig setValue:@{
          @"privateUser": @"your user id",
          @"privateApplication": @"your application id"
        }
        forKey:@"privateSessionAnalytics"];
      }
      @catch (NSException *e)
      {
        NSLog(@"%@", e.description);
      }       
    
  2. 作為單個視頻或播放列表的 Brightcove 目錄請求的一部分,您將提供您的 NAGRA 水印令牌。這是使用watermarkingToken財產。

    將您的水印令牌添加到播放服務。

    /**
    * The watermarking token for use with Forensic Watermarking
    */
    @property (nonatomic, copy) NSString *watermarkingToken;
    ...
    playbackService.watermarkingToken = self.watermarkingToken;     
    
  3. 向 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 應用程序開發人員的離線播放指南參考

限制

有關此功能的限制的詳細信息,請參閱 概述:取證水印文檔。