サポート問い合わせ先| システムステータス
ページコンテンツ

    「ネイティブSDKを使用したフォレンジック透かし」の

    「このトピックでは、Brightcove Native SDKを使用して、フォレンジック透かしで保護されたビデオを配信する方法を学習します。」

    はじめに

    フォレンジックウォーターマーキングを使用すると、著作権侵害や不正なコンテンツ共有からプレミアムコンテンツを保護できます。この機能により、動画に目に見えない透かしが追加され、コンテンツのリークを追跡できるようになります。

    詳細については、を参照してください。概要:フォレンジック透かし資料。

    要件

    この機能をサポートするには、次の要件が必要です。

    セットアップ

    プレーヤーの構成に加えて、セットアップ要件があります。詳細については、概要:フォレンジック透かし資料。

    デバイスOSのバージョン

    • Android6.0以降
    • iOS11.0以降

    BrightcoveSDKバージョン

    • Android6.16.3以降のネイティブSDK
    • iOS6.9.0以降のネイティブSDK

    Androidの実装

    フォレンジック透かしの構成は、ビデオレベルで実行されます。

    1. プレーヤーは登録システムと統合されている必要があります。これにより、ビューアーIDが分析Webビーコン(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. この呼び出しが行われると、カタログがPlayback APIからビデオまたはプレイリストのメタデータを取得すると、VideoUtilクラスは透かしトークンプレースホルダーを置き換えます{WMT}ビデオのソースURLで発生する可能性のある場所であれば、トークン値を使用します。このトークンは、透かしが入っている可能性のある再生リスト内の動画ごとに置き換えることができます。

    Chromecast

    透かし入りのビデオをキャストするには、ビルド時にアプリケーション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"
          }
      }  
    

    オフライン再生

    ビデオをダウンロードするプロセスには、現在のビデオメタデータを取得するための複数のカタログ呼び出しが含まれる場合があります。ブライトコーブは、onVideo購入またはレンタルライセンスを取得するとき、およびビデオをダウンロードするときに存在する可能性のあるコールバックに対する上記のコールバックコード。

    ビデオがダウンロードされると、オフライン再生は通常どおり機能します。

    詳細については、オフライン再生サンプルアプリを参照してください

    iOSの実装

    フォレンジック透かしを使用するようにプレーヤーを構成するには、次の手順に従います。

    1. プレーヤーは登録システムと統合されている必要があります。これにより、ビューアーIDが分析Webビーコン(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;
      

    詳細については、Native SDK foriOSリファレンスのフォレンジック透かしのセクションを参照してください。

    Chromecast

    キャストするには、透かしトークンと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アプリ開発者ガイドリファレンス。

    制約事項

    この機能の制限の詳細については、を参照してください。概要:フォレンジック透かし資料。


    ページの最終更新日03 Oct 2021