すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:ライブウォーターマーク

最終更新日:Nov 28, 2025

ライブウォーターマーク機能を使用すると、ライブビデオにウォーターマークを追加できます。このドキュメントでは、この機能の使用方法について説明します。

利用シーン

著作権保護:ウォーターマークは、著作権を保護するための一般的な方法です。ApsaraVideo Live は、ライブビデオにウォーターマークを追加するために使用できるライブウォーターマーク機能を提供します。

広告:ライブストリーム中に、ライブウォーターマーク機能を使用して、プロモーションイベントに関する情報などの広告ラベルを表示できます。

前提条件

  • ウォーターマーク機能を使用するには、ウォーターマークイメージが必要です。ApsaraVideo Live はイメージウォーターマークのみをサポートしています。テキストウォーターマークが必要な場合は、テキストの PNG イメージを作成する必要があります。ウォーターマークイメージは JPG または PNG フォーマットに対応しています。

  • ウォーターマークイメージの URL が必要です。ApsaraVideo Live は URL からのみウォーターマークイメージにアクセスできます。イメージを直接アップロードすることはできません。ライブウォーターマーク機能を使用する場合、ApsaraVideo Live がウォーターマークイメージの URL に長期間アクセスできることを確認してください。

機能設定

ライブウォーターマーク機能を使用するには、その設定を行う必要があります。設定は、透かしテンプレート透かしルール の 2 つの部分で構成されます。

ウォーターマークテンプレートでは、ウォーターマークの位置、透過性、ウォーターマークイメージの URL などのウォーターマーク情報を設定します。

ウォーターマークルールでは、ウォーターマークを適用するためのルールを設定します。これには、AppName、StreamName、および関連付けられたウォーターマークテンプレートが含まれます。

ウォーターマークテンプレートの設定

ウォーターマークテンプレートは、コンソールまたは API を使用して設定できます。

コンソールでのウォーターマークテンプレートの設定

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > ライブストリームのウォーターマーク を選択します。ライブストリームのウォーターマーク ページで、透かしテンプレート タブをクリックします。

  3. 設定するストリーミングドメインを選択します。

  4. 透かしテンプレートの追加 をクリックして、ウォーターマークテンプレートを設定します。

    image

    プレビューエリアでウォーターマークの効果を確認できます。プレビュー画面のサイズ、ウォーターマークのサイズ、位置を調整して、効果をリアルタイムでプレビューできます。次の表に、ウォーターマークテンプレートのパラメーターを説明します。

    パラメーター

    説明

    透かしテンプレート名

    ウォーターマークテンプレートの名前。漢字、英字、数字、ハイフン (-)、アンダースコア (_) を使用できます。名前の長さは最大 30 文字です。

    透かしの説明

    ウォーターマークの説明。漢字、英字、数字、その他の文字を使用できます。説明の長さは最大 128 文字です。

    透かし素材

    ウォーターマークイメージの URL を入力します。URL は HTTP または HTTPS で始まる必要があります。

    Object Storage Service (OSS) オブジェクトの永続的な HTTP URL または長期間有効な URL を使用することを推奨します。

    座標原点

    出力ビデオにおけるウォーターマークのおおよその位置。これはウォーターマークの初期位置を示します。ウォーターマークはこの原点からオフセットされます。有効な値:

    • 右上 (デフォルト)

    • 右下

    • 左上

    • 左下

    プレビュー画面サイズ (幅 × 高さ)

    実際のビデオに基づいてディメンションを入力し、表示位置と効果をプレビューします。単位:ピクセル。

    透かしのサイズ (幅 × 高さ)

    ウォーターマークイメージのサイズ。幅は高さに基づいて自動的に調整されます。

    • 有効な値:[0, 4096]。

    • 単位:ピクセル。

    透かしの水平オフセット

    出力ビデオにおけるウォーターマークの水平オフセット。

    • 有効な値:[0, 4096]。

    • 単位:ピクセル。

    透かしの垂直オフセット

    出力ビデオにおけるウォーターマークの垂直オフセット。

    • 有効な値:[0, 4096]。

    • 単位:ピクセル。

    透明度

    ウォーターマークイメージの透過性。値が小さいほど透過性が高くなります。100% の値はイメージが不透明であることを意味します。

    • 有効な値:[0, 100]。

    • 単位:パーセント。

  5. [保存] をクリックして、ウォーターマークテンプレートの設定を完了します。

  6. ウォーターマークテンプレートを追加すると、ウォーターマークルールの追加を促すダイアログボックスが表示されます。追加 をクリックして、このテンプレートのウォーターマークルールを追加できます。ウォーターマークルールの設定方法の詳細については、「ウォーターマークルールの設定」をご参照ください。

    説明

    ウォーターマークテンプレートを設定した後、ウォーターマークルールを追加し、それをテンプレートに関連付ける必要があります。ルール内の AppName と StreamName は、アップストリーミング URL の AppName と StreamName と一致する必要があります。その後、再生中にウォーターマークが表示されるように、アップストリーミングを再開する必要があります。

API を使用したウォーターマークテンプレートの設定

API を使用する場合でも、コンソールを使用してウォーターマークテンプレートを設定することを推奨します。ウォーターマークテンプレートのパラメーターは複雑です。コンソールには、ウォーターマークをドラッグしてその位置をプレビューできる可視化インターフェイスが用意されています。

  1. まず、ApsaraVideo Live コンソールでウォーターマークテンプレートを追加します。

  2. パラメーターを設定した後、ウォーターマークテンプレート情報をクエリします。

    // このファイルは自動生成されたものです。編集しないでください。
    package demo;
    
    import com.aliyun.auth.credentials.Credential;
    import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
    import com.aliyun.core.http.HttpClient;
    import com.aliyun.core.http.HttpMethod;
    import com.aliyun.core.http.ProxyOptions;
    import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
    import com.aliyun.sdk.service.live20161101.models.*;
    import com.aliyun.sdk.service.live20161101.*;
    import com.google.gson.Gson;
    import darabonba.core.RequestConfiguration;
    import darabonba.core.client.ClientOverrideConfiguration;
    import darabonba.core.utils.CommonUtil;
    import darabonba.core.TeaPair;
    
    //import javax.net.ssl.KeyManager;
    //import javax.net.ssl.X509TrustManager;
    import java.net.InetSocketAddress;
    import java.time.Duration;
    import java.util.*;
    import java.util.concurrent.CompletableFuture;
    import java.io.*;
    
    public class DescribeLiveStreamWatermarks {
        public static void main(String[] args) throws Exception {
    
            // HttpClient の設定
            /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                    .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                    .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                    .maxConnections(128) // 接続プールサイズを設定します。
                    .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                    // プロキシを設定します。
                    .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                            .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                    // HTTPS 接続の場合、証明書を設定するか、無視する必要があります (.ignoreSSL(true))。
                    .x509TrustManagers(new X509TrustManager[]{})
                    .keyManagers(new KeyManager[]{})
                    .ignoreSSL(false)
                    .build();*/
    
            // AccessKey ID、AccessKey Secret、トークンなどの認証情報を設定します。
            StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                    // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                    .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                    //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                    .build());
    
            // クライアントを設定します。
            AsyncClient client = AsyncClient.builder()
                    .region("<Your RegionId>") // リージョン ID。
                    //.httpClient(httpClient) // 設定済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                    .credentialsProvider(provider)
                    //.serviceConfiguration(Configuration.create()) // サービスレベルの設定。
                    // クライアントレベルの設定をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                    .overrideConfiguration(
                            ClientOverrideConfiguration.create()
                                      // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                    .setEndpointOverride("live.aliyuncs.com")
                            //.setConnectTimeout(Duration.ofSeconds(30))
                    )
                    .build();
    
            // API リクエストのパラメーターを設定します。
            DescribeLiveStreamWatermarksRequest describeLiveStreamWatermarksRequest = DescribeLiveStreamWatermarksRequest.builder()
                    .regionId("<Your RegionId>")
                    .domain("<Your Domain>")
                    .keyWord("<Your KeyWord>")
                    // リクエストレベルの設定をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                    // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                    .build();
    
            // API リクエストの戻り値を非同期で取得します。
            CompletableFuture<DescribeLiveStreamWatermarksResponse> response = client.describeLiveStreamWatermarks(describeLiveStreamWatermarksRequest);
            // API リクエストの戻り値を同期で取得します。
            DescribeLiveStreamWatermarksResponse resp = response.get();
            System.out.println(new Gson().toJson(resp));
            // 戻り値を非同期で処理します。
            /*response.thenAccept(resp -> {
                System.out.println(new Gson().toJson(resp));
            }).exceptionally(throwable -> { // 例外を処理します。
                System.out.println(throwable.getMessage());
                return null;
            });*/
    
            // 最後に、クライアントを閉じます。
            client.close();
        }
    
    }
    説明
    • テンプレート ID または名前でウォーターマークテンプレートのリストをクエリできます。詳細については、「DescribeLiveStreamWatermarks」API ドキュメントをご参照ください。

    • クエリしたウォーターマークテンプレート情報を、ご利用の業務システムのテンプレートとして保存できます。

  3. ウォーターマークテンプレートの設定を追加します。

    // このファイルは自動生成されたものです。編集しないでください。
    package demo;
    
    import com.aliyun.auth.credentials.Credential;
    import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
    import com.aliyun.core.http.HttpClient;
    import com.aliyun.core.http.HttpMethod;
    import com.aliyun.core.http.ProxyOptions;
    import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
    import com.aliyun.sdk.service.live20161101.models.*;
    import com.aliyun.sdk.service.live20161101.*;
    import com.google.gson.Gson;
    import darabonba.core.RequestConfiguration;
    import darabonba.core.client.ClientOverrideConfiguration;
    import darabonba.core.utils.CommonUtil;
    import darabonba.core.TeaPair;
    
    //import javax.net.ssl.KeyManager;
    //import javax.net.ssl.X509TrustManager;
    import java.net.InetSocketAddress;
    import java.time.Duration;
    import java.util.*;
    import java.util.concurrent.CompletableFuture;
    import java.io.*;
    
    public class AddLiveStreamWatermark {
        public static void main(String[] args) throws Exception {
    
            // HttpClient の設定
            /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                    .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                    .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                    .maxConnections(128) // 接続プールサイズを設定します。
                    .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                    // プロキシを設定します。
                    .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                            .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                    // HTTPS 接続の場合、証明書を設定するか、無視する必要があります (.ignoreSSL(true))。
                    .x509TrustManagers(new X509TrustManager[]{})
                    .keyManagers(new KeyManager[]{})
                    .ignoreSSL(false)
                    .build();*/
    
            // AccessKey ID、AccessKey Secret、トークンなどの認証情報を設定します。
            StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                    // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                    .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                    //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                    .build());
    
            // クライアントを設定します。
            AsyncClient client = AsyncClient.builder()
                    .region("<Your RegionId>") // リージョン ID。
                    //.httpClient(httpClient) // 設定済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                    .credentialsProvider(provider)
                    //.serviceConfiguration(Configuration.create()) // サービスレベルの設定。
                    // クライアントレベルの設定をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                    .overrideConfiguration(
                            ClientOverrideConfiguration.create()
                                      // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                    .setEndpointOverride("live.aliyuncs.com")
                            //.setConnectTimeout(Duration.ofSeconds(30))
                    )
                    .build();
    
            // API リクエストのパラメーターを設定します。
            AddLiveStreamWatermarkRequest addLiveStreamWatermarkRequest = AddLiveStreamWatermarkRequest.builder()
                    .regionId("<Your RegionId>")
                    .type(1)
                    .name("<Your Name>")
                    .refWidth(1920)
                    .refHeight(1080)
                    .xOffset(50F)
                    .yOffset(100F)
                    .height(200)
                    .transparency(255)
                    .offsetCorner("<Your OffsetCorner>")
                    .pictureUrl("<Your PictureUrl>")
                    // リクエストレベルの設定をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                    // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                    .build();
    
            // API リクエストの戻り値を非同期で取得します。
            CompletableFuture<AddLiveStreamWatermarkResponse> response = client.addLiveStreamWatermark(addLiveStreamWatermarkRequest);
            // API リクエストの戻り値を同期で取得します。
            AddLiveStreamWatermarkResponse resp = response.get();
            System.out.println(new Gson().toJson(resp));
            // 戻り値を非同期で処理します。
            /*response.thenAccept(resp -> {
                System.out.println(new Gson().toJson(resp));
            }).exceptionally(throwable -> { // 例外を処理します。
                System.out.println(throwable.getMessage());
                return null;
            });*/
    
            // 最後に、クライアントを閉じます。
            client.close();
        }
    
    }
    説明

    各パラメーターの説明については、「AddLiveStreamWatermark」API ドキュメントをご参照ください。

    これでウォーターマークテンプレートの設定は完了です。ウォーターマークテンプレートを設定した後、ウォーターマークルールを設定する必要があります。

重要
  • ライブウォーターマークとタイムシフトは、同時に設定して使用することはできません。

ウォーターマークルールの設定

ウォーターマークテンプレートを設定した後、ウォーターマークルールを設定し、それをウォーターマークテンプレートに関連付ける必要があります。

ウォーターマークルールは、コンソールまたは API を使用して設定できます。

コンソールでのウォーターマークルールの設定

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > ライブストリームのウォーターマーク を選択します。ライブストリームのウォーターマーク ページで、透かしルール タブをクリックします。

  3. 設定するストリーミングドメインを選択します。

  4. 透かしルールの追加 をクリックします。

    image

    次の表に、ウォーターマークルールのパラメーターを説明します。

    パラメーター

    説明

    ルール名

    ウォーターマークルールの名前。漢字、英字、数字、その他の文字を使用できます。名前の長さは最大 32 文字です。

    ルールの説明

    ウォーターマークルールの説明。漢字、英字、数字、その他の文字を使用できます。説明の長さは最大 128 文字です。

    AppName

    ストリームが属するアプリケーションの名前。ウォーターマークテンプレートを有効にするには、AppName がアップストリーミング URL の AppName と同じである必要があります。数字、大文字と小文字の英字、ハイフン (-)、アンダースコア (_) を使用できます。名前の長さは最大 256 文字です。

    ストリーム名

    ライブストリームの名前。ルールは次のとおりです:

    • 特定のストリーム名を入力して、そのストリームのみを照合します。例:liveStreamA

    • ワイルドカードマッチングを使用できます。

      すべてのライブストリームを照合するには、アスタリスク (*) を入力します。

      プレフィックスまたはサフィックスマッチングも実行できます。フォーマットでは、照合項目を括弧 () で囲み、複数の項目を縦線 | で区切り、あいまい一致のためのアスタリスク (*) は文字列の先頭または末尾にのみ配置する必要があります。たとえば、(abc|123)* はプレフィックスが abc または 123 のすべてのストリームに一致し、*(t1|t2) はサフィックスが t1 または t2 のすべてのストリームに一致します。

    • 数字、大文字と小文字の英字、ハイフン (-)、アンダースコア (_)、アスタリスク (*)、等号 (=) を使用できます。名前の長さは最大 256 文字です。

    透かしテンプレート

    設定済みのウォーターマークテンプレートを選択します。利用可能なテンプレートがない場合は、まず追加してください。詳細については、「ウォーターマークテンプレートの設定」をご参照ください。

  5. [保存] をクリックして、ウォーターマークルールの構成を完了します。

    説明

    ウォーターマークルールを設定した後、アップストリーミングを再開しないと、再生時にウォーターマークは表示されません。

API を使用したウォーターマークルールの設定

// このファイルは自動生成されたものです。編集しないでください。
package demo;

import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;

//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

public class AddLiveStreamWatermarkRule {
    public static void main(String[] args) throws Exception {

        // HttpClient の設定
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                .maxConnections(128) // 接続プールのサイズを設定します。
                .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                // プロキシを設定します。
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                // HTTPS 接続の場合、証明書を設定するか、無視する (.ignoreSSL(true)) 必要があります。
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // AccessKey ID、AccessKey Secret、トークンなどの認証情報を設定します。
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                .build());

        // クライアントを設定します。
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // リージョン ID。
                //.httpClient(httpClient) // 設定済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // サービスレベルの設定。
                // クライアントレベルの設定をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // API リクエストのパラメーターを設定します。
        AddLiveStreamWatermarkRuleRequest addLiveStreamWatermarkRuleRequest = AddLiveStreamWatermarkRuleRequest.builder()
                .regionId("<Your RegionId>")
                .name("<Your Name>")
                .domain("<Your Domain>")
                .app("<Your App>")
                .stream("<Your Stream>")
                .templateId("<Your TemplateId>")
                // リクエストレベルの設定をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // API リクエストの戻り値を非同期で取得します。
        CompletableFuture<AddLiveStreamWatermarkRuleResponse> response = client.addLiveStreamWatermarkRule(addLiveStreamWatermarkRuleRequest);
        // API リクエストの戻り値を同期で取得します。
        AddLiveStreamWatermarkRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // 戻り値を非同期で処理します。
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // 例外を処理します。
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // 最後に、クライアントを閉じます。
        client.close();
    }

}
説明
  • `` には、数字、大文字と小文字の英字、ハイフン (-)、アンダースコア (_) を含め、最大 256 文字まで使用できます。アスタリスク (*) は サポートされていません

  • ウォーターマークルールのマッチングには優先順位があります。`` がアスタリスク (*) ではないルールが最初にマッチングされます。

  • パラメーターの詳細については、AddLiveStreamWatermarkRule API ドキュメントをご参照ください。

機能の使用

ウォーターマークテンプレートとウォーターマークルールを設定した後、アップストリーミングと再生を開始することで、ライブウォーターマーク機能を使用できます。次の図は、ウォーターマーク付きのライブビデオの例です。

image

この例では、ウォーターマークはテキストの PNG イメージから作成されました。

ウォーターマークの透明度の設定

次のコードは、ウォーターマークの透明度を設定する方法の例です。

// ウォーターマークの透明度。値が小さいほど透明度が高くなります。有効値:0~255。デフォルト値:255。
addLiveStreamWatermarkRequest.setTransparency(255);

例えば、透明度を 128 に設定すると、サンプルのライブビデオは次の図のように表示されます。

image

ウォーターマークの更新

ウォーターマークテンプレートを更新するためのサンプルコード

// このファイルは自動生成されたものです。編集しないでください。
package demo;

import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;

//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

public class UpdateLiveStreamWatermark {
    public static void main(String[] args) throws Exception {

        // HttpClient の構成
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                .maxConnections(128) // 接続プールのサイズを設定します。
                .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                // プロキシを構成します。
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                // HTTPS 接続の場合、証明書を構成するか、無視する必要があります (.ignoreSSL(true))。
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // AccessKey ID、AccessKey Secret、トークンなどの認証情報を構成します。
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                .build());

        // クライアントを構成します。
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // リージョン ID。
                //.httpClient(httpClient) // 構成済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // サービスレベルの構成。
                // クライアントレベルの構成をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // API リクエストのパラメーターを設定します。
        UpdateLiveStreamWatermarkRequest updateLiveStreamWatermarkRequest = UpdateLiveStreamWatermarkRequest.builder()
                .regionId("<Your RegionId>")
                .templateId("<Your templateId>")
                .name("<Your name>")
                .description("<Your description>")
                // リクエストレベルの構成をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // API リクエストの戻り値を非同期で取得します。
        CompletableFuture<UpdateLiveStreamWatermarkResponse> response = client.updateLiveStreamWatermark(updateLiveStreamWatermarkRequest);
        // API リクエストの戻り値を同期的に取得します。
        UpdateLiveStreamWatermarkResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // 戻り値を非同期で処理します。
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // 例外を処理します。
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // 最後に、クライアントを閉じます。
        client.close();
    }

}

説明
  • <regionId> は、テンプレートに対応するドメイン名のライブセンターのリージョンと同じである必要があります。リージョン ID を取得するには、「サービスエンドポイント」をご参照ください。

  • パラメーターの詳細については、「UpdateLiveStreamWatermark」 API ドキュメントをご参照ください。

ウォーターマークルールを更新するためのサンプルコード

// このファイルは自動生成されたものです。編集しないでください。
package demo;

import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;

//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

public class UpdateLiveStreamWatermarkRule {
    public static void main(String[] args) throws Exception {

        // HttpClient の構成
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                .maxConnections(128) // 接続プールのサイズを設定します。
                .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                // プロキシを構成します。
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                // HTTPS 接続の場合、証明書を構成するか、無視する必要があります (.ignoreSSL(true))。
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // AccessKey ID、AccessKey Secret、トークンなどの認証情報を構成します。
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                .build());

        // クライアントを構成します。
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // リージョン ID。
                //.httpClient(httpClient) // 構成済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // サービスレベルの構成。
                // クライアントレベルの構成をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // API リクエストのパラメーターを設定します。
        UpdateLiveStreamWatermarkRuleRequest updateLiveStreamWatermarkRuleRequest = UpdateLiveStreamWatermarkRuleRequest.builder()
                .regionId("<Your RegionId>")
                .ruleId("")
                // リクエストレベルの構成をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // API リクエストの戻り値を非同期で取得します。
        CompletableFuture<UpdateLiveStreamWatermarkRuleResponse> response = client.updateLiveStreamWatermarkRule(updateLiveStreamWatermarkRuleRequest);
        // API リクエストの戻り値を同期的に取得します。
        UpdateLiveStreamWatermarkRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // 戻り値を非同期で処理します。
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // 例外を処理します。
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // 最後に、クライアントを閉じます。
        client.close();
    }

}

説明
  • <regionId> は、テンプレートに対応するドメイン名のライブセンターのリージョンと同じである必要があります。リージョン ID を取得するには、「サービスエンドポイント」をご参照ください。

  • ウォーターマークルールを更新する際に、ルール内の他の情報も更新できます。詳細については、「UpdateLiveStreamWatermarkRule」 API ドキュメントをご参照ください。

ウォーターマークテンプレートまたはルールを更新した後、変更を有効にするには、アップストリーミングを再起動する必要があります。ただし、ライブストリーム中にウォーターマークを更新する必要がある場合もあります。これは、ウォーターマークの動的更新機能を使用して行うことができます。

DynamicUpdateWaterMarkStreamRule API を呼び出して、ウォーターマークを動的に調整できます。

ウォーターマークを動的に更新するためのサンプルコード

// このファイルは自動生成されたものです。編集しないでください。
package demo;

import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;

//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

public class DynamicUpdateWaterMarkStreamRule {
    public static void main(String[] args) throws Exception {

        // HttpClient の構成
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                .maxConnections(128) // 接続プールのサイズを設定します。
                .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                // プロキシを構成します。
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                // HTTPS 接続の場合、証明書を構成するか、無視する必要があります (.ignoreSSL(true))。
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // AccessKey ID、AccessKey Secret、トークンなどの認証情報を構成します。
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                .build());

        // クライアントを構成します。
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionID>") // リージョン ID。
                //.httpClient(httpClient) // 構成済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // サービスレベルの構成。
                // クライアントレベルの構成をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // API リクエストのパラメーターを設定します。
        DynamicUpdateWaterMarkStreamRuleRequest dynamicUpdateWaterMarkStreamRuleRequest = DynamicUpdateWaterMarkStreamRuleRequest.builder()
                .regionId("<Your RegionId>")
                .domain("<Your Domain>")
                .app("<Your App>")
                .stream("<Your Stream>")
                .templateId("<Your TemplateId>")
                // リクエストレベルの構成をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // API リクエストの戻り値を非同期で取得します。
        CompletableFuture<DynamicUpdateWaterMarkStreamRuleResponse> response = client.dynamicUpdateWaterMarkStreamRule(dynamicUpdateWaterMarkStreamRuleRequest);
        // API リクエストの戻り値を同期的に取得します。
        DynamicUpdateWaterMarkStreamRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // 戻り値を非同期で処理します。
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // 例外を処理します。
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // 最後に、クライアントを閉じます。
        client.close();
    }

}

重要
  • <TemplateId> は、新しいテンプレートまたは元のテンプレートの ID を指定できます。このメソッドを呼び出すと、ウォーターマークはテンプレートの最新の構成 (イメージ、透明度、位置など) に基づいて更新されます。

  • 現在、StreamName にあいまい一致が設定されている場合、ウォーターマークルール動的に更新することはできません

ウォーターマークテンプレートの削除

透かしテンプレート を削除するには、まず関連付けられたウォーターマークルールを削除する必要があります。

ウォーターマークルールを削除するためのサンプルコード

// このファイルは自動生成されたものです。編集しないでください。
package demo;

import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;

//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

public class DeleteLiveStreamWatermarkRule {
    public static void main(String[] args) throws Exception {

        // HttpClient の構成
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                .maxConnections(128) // 接続プールのサイズを設定します。
                .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                // プロキシを構成します。
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                // HTTPS 接続の場合、証明書を構成するか、無視する必要があります (.ignoreSSL(true))。
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // AccessKey ID、AccessKey Secret、トークンなどの認証情報を構成します。
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                .build());

        // クライアントを構成します。
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // リージョン ID。
                //.httpClient(httpClient) // 構成済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // サービスレベルの構成。
                // クライアントレベルの構成をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // API リクエストのパラメーターを設定します。
        DeleteLiveStreamWatermarkRuleRequest deleteLiveStreamWatermarkRuleRequest = DeleteLiveStreamWatermarkRuleRequest.builder()
                .regionId("<Your RegionId>")
                .domain("<Your Domain>")
                // リクエストレベルの構成をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // API リクエストの戻り値を非同期で取得します。
        CompletableFuture<DeleteLiveStreamWatermarkRuleResponse> response = client.deleteLiveStreamWatermarkRule(deleteLiveStreamWatermarkRuleRequest);
        // API リクエストの戻り値を同期的に取得します。
        DeleteLiveStreamWatermarkRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // 戻り値を非同期で処理します。
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // 例外を処理します。
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // 最後に、クライアントを閉じます。
        client.close();
    }

}

説明

[AppName] を使用してウォーターマークルールを削除できます。詳細については、「DeleteLiveStreamWatermarkRule - ウォーターマークルールの削除」をご参照ください。

ウォーターマークテンプレートを削除するためのサンプルコード

// このファイルは自動生成されたものです。編集しないでください。
package demo;

import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.core.http.HttpClient;
import com.aliyun.core.http.HttpMethod;
import com.aliyun.core.http.ProxyOptions;
import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
import com.aliyun.sdk.service.live20161101.models.*;
import com.aliyun.sdk.service.live20161101.*;
import com.google.gson.Gson;
import darabonba.core.RequestConfiguration;
import darabonba.core.client.ClientOverrideConfiguration;
import darabonba.core.utils.CommonUtil;
import darabonba.core.TeaPair;

//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.net.InetSocketAddress;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

public class DeleteLiveStreamWatermark {
    public static void main(String[] args) throws Exception {

        // HttpClient の構成
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // 接続タイムアウトを設定します。デフォルトは 10 秒です。
                .responseTimeout(Duration.ofSeconds(10)) // 応答タイムアウトを設定します。デフォルトは 20 秒です。
                .maxConnections(128) // 接続プールのサイズを設定します。
                .maxIdleTimeOut(Duration.ofSeconds(50)) // 接続プールのタイムアウトを設定します。デフォルトは 30 秒です。
                // プロキシを構成します。
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                // HTTPS 接続の場合、証明書を構成するか、無視する必要があります (.ignoreSSL(true))。
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // AccessKey ID、AccessKey Secret、トークンなどの認証情報を構成します。
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID と ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // STS トークンを使用します。
                .build());

        // クライアントを構成します。
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // リージョン ID。
                //.httpClient(httpClient) // 構成済みの HttpClient を使用します。それ以外の場合は、デフォルトの Apache HttpClient が使用されます。
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // サービスレベルの構成。
                // クライアントレベルの構成をオーバーライドします。エンドポイント、HTTP リクエストパラメーターなどを設定できます。
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // エンドポイントについては、https://api.aliyun.com/product/live をご参照ください。
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // API リクエストのパラメーターを設定します。
        DeleteLiveStreamWatermarkRequest deleteLiveStreamWatermarkRequest = DeleteLiveStreamWatermarkRequest.builder()
                .regionId("<Your RegionId>")
                .templateId("<Your TemplateId>")
                // リクエストレベルの構成をオーバーライドします。HTTP リクエストパラメーターなどを設定できます。
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // API リクエストの戻り値を非同期で取得します。
        CompletableFuture<DeleteLiveStreamWatermarkResponse> response = client.deleteLiveStreamWatermark(deleteLiveStreamWatermarkRequest);
        // API リクエストの戻り値を同期的に取得します。
        DeleteLiveStreamWatermarkResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // 戻り値を非同期で処理します。
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // 例外を処理します。
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // 最後に、クライアントを閉じます。
        client.close();
    }

}

説明
  • <regionId> は、テンプレートに対応するドメイン名のライブセンターのリージョンと同じである必要があります。リージョン ID を取得するには、「サービスエンドポイント」をご参照ください。

  • 詳細については、「DeleteLiveStreamWatermark」 API ドキュメントをご参照ください。

関連ドキュメント

Java SDK の使用方法の詳細については、「Java SDK 利用ガイド」をご参照ください。