ライブウォーターマーク機能を使用すると、ライブビデオにウォーターマークを追加できます。このドキュメントでは、この機能の使用方法について説明します。
利用シーン
著作権保護:ウォーターマークは、著作権を保護するための一般的な方法です。ApsaraVideo Live は、ライブビデオにウォーターマークを追加するために使用できるライブウォーターマーク機能を提供します。
広告:ライブストリーム中に、ライブウォーターマーク機能を使用して、プロモーションイベントに関する情報などの広告ラベルを表示できます。
前提条件
ウォーターマーク機能を使用するには、ウォーターマークイメージが必要です。ApsaraVideo Live はイメージウォーターマークのみをサポートしています。テキストウォーターマークが必要な場合は、テキストの PNG イメージを作成する必要があります。ウォーターマークイメージは JPG または PNG フォーマットに対応しています。
ウォーターマークイメージの URL が必要です。ApsaraVideo Live は URL からのみウォーターマークイメージにアクセスできます。イメージを直接アップロードすることはできません。ライブウォーターマーク機能を使用する場合、ApsaraVideo Live がウォーターマークイメージの URL に長期間アクセスできることを確認してください。
機能設定
ライブウォーターマーク機能を使用するには、その設定を行う必要があります。設定は、透かしテンプレート と 透かしルール の 2 つの部分で構成されます。
ウォーターマークテンプレートでは、ウォーターマークの位置、透過性、ウォーターマークイメージの URL などのウォーターマーク情報を設定します。
ウォーターマークルールでは、ウォーターマークを適用するためのルールを設定します。これには、AppName、StreamName、および関連付けられたウォーターマークテンプレートが含まれます。
ウォーターマークテンプレートの設定
ウォーターマークテンプレートは、コンソールまたは API を使用して設定できます。
コンソールでのウォーターマークテンプレートの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > ライブストリームのウォーターマーク を選択します。ライブストリームのウォーターマーク ページで、透かしテンプレート タブをクリックします。
設定するストリーミングドメインを選択します。
透かしテンプレートの追加 をクリックして、ウォーターマークテンプレートを設定します。

プレビューエリアでウォーターマークの効果を確認できます。プレビュー画面のサイズ、ウォーターマークのサイズ、位置を調整して、効果をリアルタイムでプレビューできます。次の表に、ウォーターマークテンプレートのパラメーターを説明します。
パラメーター
説明
透かしテンプレート名
ウォーターマークテンプレートの名前。漢字、英字、数字、ハイフン (-)、アンダースコア (_) を使用できます。名前の長さは最大 30 文字です。
透かしの説明
ウォーターマークの説明。漢字、英字、数字、その他の文字を使用できます。説明の長さは最大 128 文字です。
透かし素材
ウォーターマークイメージの URL を入力します。URL は HTTP または HTTPS で始まる必要があります。
Object Storage Service (OSS) オブジェクトの永続的な HTTP URL または長期間有効な URL を使用することを推奨します。
座標原点
出力ビデオにおけるウォーターマークのおおよその位置。これはウォーターマークの初期位置を示します。ウォーターマークはこの原点からオフセットされます。有効な値:
右上 (デフォルト)
右下
左上
左下
プレビュー画面サイズ (幅 × 高さ)
実際のビデオに基づいてディメンションを入力し、表示位置と効果をプレビューします。単位:ピクセル。
透かしのサイズ (幅 × 高さ)
ウォーターマークイメージのサイズ。幅は高さに基づいて自動的に調整されます。
有効な値:[0, 4096]。
単位:ピクセル。
透かしの水平オフセット
出力ビデオにおけるウォーターマークの水平オフセット。
有効な値:[0, 4096]。
単位:ピクセル。
透かしの垂直オフセット
出力ビデオにおけるウォーターマークの垂直オフセット。
有効な値:[0, 4096]。
単位:ピクセル。
透明度
ウォーターマークイメージの透過性。値が小さいほど透過性が高くなります。100% の値はイメージが不透明であることを意味します。
有効な値:[0, 100]。
単位:パーセント。
[保存] をクリックして、ウォーターマークテンプレートの設定を完了します。
ウォーターマークテンプレートを追加すると、ウォーターマークルールの追加を促すダイアログボックスが表示されます。追加 をクリックして、このテンプレートのウォーターマークルールを追加できます。ウォーターマークルールの設定方法の詳細については、「ウォーターマークルールの設定」をご参照ください。
説明ウォーターマークテンプレートを設定した後、ウォーターマークルールを追加し、それをテンプレートに関連付ける必要があります。ルール内の AppName と StreamName は、アップストリーミング URL の AppName と StreamName と一致する必要があります。その後、再生中にウォーターマークが表示されるように、アップストリーミングを再開する必要があります。
API を使用したウォーターマークテンプレートの設定
API を使用する場合でも、コンソールを使用してウォーターマークテンプレートを設定することを推奨します。ウォーターマークテンプレートのパラメーターは複雑です。コンソールには、ウォーターマークをドラッグしてその位置をプレビューできる可視化インターフェイスが用意されています。
まず、ApsaraVideo Live コンソールでウォーターマークテンプレートを追加します。
パラメーターを設定した後、ウォーターマークテンプレート情報をクエリします。
// このファイルは自動生成されたものです。編集しないでください。 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 ドキュメントをご参照ください。
クエリしたウォーターマークテンプレート情報を、ご利用の業務システムのテンプレートとして保存できます。
ウォーターマークテンプレートの設定を追加します。
// このファイルは自動生成されたものです。編集しないでください。 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 を使用して設定できます。
コンソールでのウォーターマークルールの設定
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションウィンドウで、機能管理 > ライブストリームのウォーターマーク を選択します。ライブストリームのウォーターマーク ページで、透かしルール タブをクリックします。
設定するストリーミングドメインを選択します。
透かしルールの追加 をクリックします。

次の表に、ウォーターマークルールのパラメーターを説明します。
パラメーター
説明
ルール名
ウォーターマークルールの名前。漢字、英字、数字、その他の文字を使用できます。名前の長さは最大 32 文字です。
ルールの説明
ウォーターマークルールの説明。漢字、英字、数字、その他の文字を使用できます。説明の長さは最大 128 文字です。
AppName
ストリームが属するアプリケーションの名前。ウォーターマークテンプレートを有効にするには、AppName がアップストリーミング URL の AppName と同じである必要があります。数字、大文字と小文字の英字、ハイフン (-)、アンダースコア (_) を使用できます。名前の長さは最大 256 文字です。
ストリーム名
ライブストリームの名前。ルールは次のとおりです:
特定のストリーム名を入力して、そのストリームのみを照合します。例:
liveStreamA。ワイルドカードマッチングを使用できます。
すべてのライブストリームを照合するには、アスタリスク (*) を入力します。
プレフィックスまたはサフィックスマッチングも実行できます。フォーマットでは、照合項目を括弧
()で囲み、複数の項目を縦線|で区切り、あいまい一致のためのアスタリスク (*) は文字列の先頭または末尾にのみ配置する必要があります。たとえば、(abc|123)*はプレフィックスが abc または 123 のすべてのストリームに一致し、*(t1|t2)はサフィックスが t1 または t2 のすべてのストリームに一致します。数字、大文字と小文字の英字、ハイフン (-)、アンダースコア (_)、アスタリスク (*)、等号 (=) を使用できます。名前の長さは最大 256 文字です。
透かしテンプレート
設定済みのウォーターマークテンプレートを選択します。利用可能なテンプレートがない場合は、まず追加してください。詳細については、「ウォーターマークテンプレートの設定」をご参照ください。
[保存] をクリックして、ウォーターマークルールの構成を完了します。
説明ウォーターマークルールを設定した後、アップストリーミングを再開しないと、再生時にウォーターマークは表示されません。
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 ドキュメントをご参照ください。
機能の使用
ウォーターマークテンプレートとウォーターマークルールを設定した後、アップストリーミングと再生を開始することで、ライブウォーターマーク機能を使用できます。次の図は、ウォーターマーク付きのライブビデオの例です。

この例では、ウォーターマークはテキストの PNG イメージから作成されました。
ウォーターマークの透明度の設定
次のコードは、ウォーターマークの透明度を設定する方法の例です。
// ウォーターマークの透明度。値が小さいほど透明度が高くなります。有効値:0~255。デフォルト値:255。
addLiveStreamWatermarkRequest.setTransparency(255);例えば、透明度を 128 に設定すると、サンプルのライブビデオは次の図のように表示されます。

ウォーターマークの更新
ウォーターマークテンプレートを更新するためのサンプルコード
// このファイルは自動生成されたものです。編集しないでください。
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 利用ガイド」をご参照ください。