Tous les produits
Search
Centre de documentation

ApsaraVideo Live:Filigrane en direct

Dernière mise à jour :Aug 08, 2026

ApsaraVideo Live vous permet de superposer des filigranes d'image sur les flux en direct pour la protection des droits d'auteur ou à des fins publicitaires.

Cas d'utilisation

Protection des droits d'auteur : ajoutez des filigranes à vos vidéos en direct pour décourager toute utilisation non autorisée.

Publicité : affichez des étiquettes promotionnelles ou les détails d'un événement sur votre flux en direct.

Prérequis

  • Pour utiliser la fonctionnalité de filigrane, vous avez besoin d'une image de filigrane. Seuls les filigranes sous forme d'image sont pris en charge. Si vous avez besoin d'un filigrane textuel, créez une image PNG contenant le texte souhaité. Les images de filigrane peuvent être au format JPG ou PNG.

  • Vous devez disposer d'une URL pour l'image du filigrane. ApsaraVideo Live récupère les images à partir d'URL et ne prend pas en charge les téléchargements directs. Assurez-vous que cette URL reste accessible.

Configuration de la fonctionnalité

Pour utiliser les filigranes, configurez des Watermark Templates et des Watermark Rules.

Un modèle de filigrane définit l'apparence du filigrane, y compris sa position, sa transparence et l'URL de l'image.

Une règle de filigrane associe un AppName et un StreamName à un modèle de filigrane spécifique.

Configurer un modèle de filigrane

Configurez un modèle de filigrane via la console ou en appelant une API.

Configurer via la console

  1. Connectez-vous à la console ApsaraVideo Live.

  2. Dans le volet de navigation de gauche, sélectionnez Feature Management > Watermarks. Sur la page Watermarks, cliquez sur l'onglet Watermark Templates.

  3. Sélectionnez le domaine de diffusion que vous souhaitez configurer.

  4. Cliquez sur Add Watermark Template et configurez le modèle.

    Prévisualisez l'effet du filigrane dans la zone d'aperçu. Ajustez la taille de l'écran, la taille du filigrane et sa position pour obtenir un aperçu en temps réel. Le tableau suivant décrit les paramètres du modèle.

    Paramètre

    Description

    Template Name

    Le nom du modèle de filigrane. Le nom peut contenir jusqu'à 30 caractères, incluant des caractères chinois, des lettres, des chiffres, des traits d'union (-) et des underscores (_).

    Watermark Description

    La description du filigrane. La description peut contenir jusqu'à 128 caractères, incluant des caractères chinois, des lettres, des chiffres et des caractères spéciaux.

    Watermark Material

    Saisissez l'URL de l'image du filigrane. L'URL doit commencer par http:// ou https://.

    Utilisez une URL permanente provenant d'Object Storage Service (OSS) ou d'une autre source avec une authentification à long terme.

    Coordinate Origin

    Le coin d'ancrage du filigrane dans la vidéo de sortie. Le filigrane est décalé par rapport à ce coin. Valeurs valides :

    • Haut droit (par défaut)

    • Bas droit

    • Haut gauche

    • Bas gauche

    Preview Screen Size (Width × Height)

    Les dimensions de votre vidéo réelle, utilisées pour prévisualiser la position et l'apparence du filigrane. Unité : pixels.

    Watermark Size (Width × Height)

    La taille de l'image du filigrane. La largeur est automatiquement ajustée en fonction de la hauteur.

    • Plage de valeurs : [0, 4096].

    • Unité : pixels.

    Horizontal Offset

    Le décalage horizontal du filigrane par rapport à l'origine des coordonnées dans la vidéo de sortie.

    • Plage de valeurs : [0, 4096].

    • Unité : pixels.

    Vertical Offset

    Le décalage vertical du filigrane par rapport à l'origine des coordonnées dans la vidéo de sortie.

    • Plage de valeurs : [0, 4096].

    • Unité : pixels.

    Transparency

    L'opacité du filigrane. 0 signifie entièrement transparent et 100 signifie entièrement opaque.

    • Plage de valeurs : [0, 100].

    • Unité : pourcentage.

  5. Cliquez sur save pour terminer la configuration du modèle de filigrane.

  6. Après avoir ajouté le modèle de filigrane, une boîte de dialogue vous invite à ajouter une règle de filigrane. Cliquez sur Add pour créer une règle de filigrane pour ce modèle. Pour plus d'informations sur la configuration d'une règle de filigrane, consultez Configurer une règle de filigrane.

    Remarque

    Après avoir créé un modèle de filigrane, vous devez l'associer à une règle de filigrane. L'AppName et le StreamName dans la règle doivent correspondre à ceux de l'URL d'ingestion. Pour appliquer les modifications, redémarrez l'ingestion du flux.

Configurer via une API

Les paramètres du modèle de filigrane sont complexes. Nous vous recommandons d'utiliser l'interface visuelle de la console pour prévisualiser la position du filigrane, même lorsque vous configurez les modèles par programmation.

  1. Commencez par ajouter un modèle de filigrane dans la console ApsaraVideo Live.

  2. Après avoir configuré les paramètres, interrogez la configuration du modèle.

    // This file is auto-generated, don't edit it. Thanks.
    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 {
    
            // Configure the HttpClient.
            /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                    .connectionTimeout(Duration.ofSeconds(10)) // The timeout period for a connection. Default value: 10 seconds.
                    .responseTimeout(Duration.ofSeconds(10)) // The timeout period for a response. Default value: 20 seconds.
                    .maxConnections(128) // The connection pool size.
                    .maxIdleTimeOut(Duration.ofSeconds(50)) // The timeout period for the connection pool. Default value: 30 seconds.
                    // Configure the proxy.
                    .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                            .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                    // For an HTTPS connection, you must configure a certificate or ignore the certificate by using .ignoreSSL(true).
                    .x509TrustManagers(new X509TrustManager[]{})
                    .keyManagers(new KeyManager[]{})
                    .ignoreSSL(false)
                    .build();*/
    
            // Configure the credentials for authentication, including the AccessKey ID, AccessKey secret, and security token.
            StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                    // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                    .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                    //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use a Security Token Service (STS) token.
                    .build());
    
            // Configure the client.
            AsyncClient client = AsyncClient.builder()
                    .region("<your-region-id>") // The region ID.
                    //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                    .credentialsProvider(provider)
                    //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                    // The client-level configuration. You can overwrite the endpoint and HTTP request parameters.
                    .overrideConfiguration(
                            ClientOverrideConfiguration.create()
                                      // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                    .setEndpointOverride("live.aliyuncs.com")
                            //.setConnectTimeout(Duration.ofSeconds(30))
                    )
                    .build();
    
            // Set the parameters for the API request.
            DescribeLiveStreamWatermarksRequest describeLiveStreamWatermarksRequest = DescribeLiveStreamWatermarksRequest.builder()
                    .regionId("<your-region-id>")
                    .domain("<your-domain>")
                    .keyWord("<your-keyword>")
                    // The request-level configuration. You can overwrite HTTP request parameters.
                    // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                    .build();
    
            // Asynchronously obtain the return value of the API request.
            CompletableFuture<DescribeLiveStreamWatermarksResponse> response = client.describeLiveStreamWatermarks(describeLiveStreamWatermarksRequest);
            // Synchronously obtain the return value of the API request.
            DescribeLiveStreamWatermarksResponse resp = response.get();
            System.out.println(new Gson().toJson(resp));
            // Asynchronously process the return value.
            /*response.thenAccept(resp -> {
                System.out.println(new Gson().toJson(resp));
            }).exceptionally(throwable -> { // Handle exceptions.
                System.out.println(throwable.getMessage());
                return null;
            });*/
    
            // Close the client.
            client.close();
        }
    
    }
    Remarque
    • Vous pouvez interroger la liste des modèles de filigrane par ID de modèle ou par nom. Pour plus d'informations, consultez la référence de l'API DescribeLiveStreamWatermarks.

    • Enregistrez les informations du modèle de filigrane interrogées comme modèle dans votre système métier.

  3. Ajoutez une configuration de modèle de filigrane.

    // This file is auto-generated, don't edit it. Thanks.
    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 {
    
            // Configure the HttpClient.
            /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                    .connectionTimeout(Duration.ofSeconds(10)) // The timeout period for a connection. Default value: 10 seconds.
                    .responseTimeout(Duration.ofSeconds(10)) // The timeout period for a response. Default value: 20 seconds.
                    .maxConnections(128) // The connection pool size.
                    .maxIdleTimeOut(Duration.ofSeconds(50)) // The timeout period for the connection pool. Default value: 30 seconds.
                    // Configure the proxy.
                    .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                            .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                    // For an HTTPS connection, you must configure a certificate or ignore the certificate by using .ignoreSSL(true).
                    .x509TrustManagers(new X509TrustManager[]{})
                    .keyManagers(new KeyManager[]{})
                    .ignoreSSL(false)
                    .build();*/
    
            // Configure the credentials for authentication, including the AccessKey ID, AccessKey secret, and security token.
            StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                    // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                    .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                    //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use a Security Token Service (STS) token.
                    .build());
    
            // Configure the client.
            AsyncClient client = AsyncClient.builder()
                    .region("<your-region-id>") // The region ID.
                    //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                    .credentialsProvider(provider)
                    //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                    // The client-level configuration. You can overwrite the endpoint and HTTP request parameters.
                    .overrideConfiguration(
                            ClientOverrideConfiguration.create()
                                      // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                    .setEndpointOverride("live.aliyuncs.com")
                            //.setConnectTimeout(Duration.ofSeconds(30))
                    )
                    .build();
    
            // Set the parameters for the API request.
            AddLiveStreamWatermarkRequest addLiveStreamWatermarkRequest = AddLiveStreamWatermarkRequest.builder()
                    .regionId("<your-region-id>")
                    .type(1)
                    .name("<your-name>")
                    .refWidth(1920)
                    .refHeight(1080)
                    .xOffset(50F)
                    .yOffset(100F)
                    .height(200)
                    .transparency(255)
                    .offsetCorner("<your-offset-corner>")
                    .pictureUrl("<your-picture-url>")
                    // The request-level configuration. You can overwrite HTTP request parameters.
                    // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                    .build();
    
            // Asynchronously obtain the return value of the API request.
            CompletableFuture<AddLiveStreamWatermarkResponse> response = client.addLiveStreamWatermark(addLiveStreamWatermarkRequest);
            // Synchronously obtain the return value of the API request.
            AddLiveStreamWatermarkResponse resp = response.get();
            System.out.println(new Gson().toJson(resp));
            // Asynchronously process the return value.
            /*response.thenAccept(resp -> {
                System.out.println(new Gson().toJson(resp));
            }).exceptionally(throwable -> { // Handle exceptions.
                System.out.println(throwable.getMessage());
                return null;
            });*/
    
            // Close the client.
            client.close();
        }
    
    }
    Remarque

    Pour plus d'informations sur les paramètres, consultez la référence de l'API AddLiveStreamWatermark.

    La configuration du modèle de filigrane est maintenant terminée. Ensuite, configurez une règle de filigrane.

Important
  • Les filigranes et le décalage temporel ne peuvent pas être utilisés simultanément.

Configurer une règle de filigrane

Après avoir créé un modèle de filigrane, créez une règle de filigrane pour l'appliquer.

Configurez une règle de filigrane via la console ou en utilisant une API.

Configurer via la console

  1. Connectez-vous à la console ApsaraVideo Live.

  2. Dans le volet de navigation de gauche, sélectionnez Feature Management > Watermarks. Sur la page Watermarks, cliquez sur l'onglet Watermark Rules.

  3. Sélectionnez le domaine de diffusion que vous souhaitez configurer.

  4. Cliquez sur Add Watermark Rule.

    Le tableau suivant décrit les paramètres de la règle de filigrane.

    Paramètre

    Description

    Rule Name

    Le nom de la règle de filigrane. Le nom peut contenir jusqu'à 32 caractères, incluant des caractères chinois, des lettres, des chiffres et des caractères spéciaux.

    Rule Description

    La description de la règle de filigrane. La description peut contenir jusqu'à 128 caractères, incluant des caractères chinois, des lettres, des chiffres et des caractères spéciaux.

    AppName

    Le nom de l'application à laquelle appartient le flux. L'AppName doit être identique à celui figurant dans l'URL d'ingestion pour que le modèle de filigrane prenne effet. Le nom peut contenir jusqu'à 256 caractères, incluant des chiffres, des lettres, des traits d'union (-) et des underscores (_).

    Stream Name

    Le nom du flux en direct. Les règles suivantes s'appliquent :

    • Saisissez un nom de flux spécifique pour ne faire correspondre que ce flux. Exemple : liveStreamA.

    • Vous pouvez utiliser la correspondance par joker.

      Pour faire correspondre tous les flux en direct, saisissez uniquement un astérisque (*).

      Vous pouvez également effectuer une correspondance par préfixe ou par suffixe. Les éléments de correspondance doivent être entourés de parenthèses (), et plusieurs éléments doivent être séparés par des barres verticales |. Le caractère joker astérisque () ne peut être utilisé qu'au début ou à la fin de la chaîne. Exemple : (abc|123) correspond à tous les flux commençant par abc ou 123. *(t1|t2) correspond à tous les flux se terminant par t1 ou t2.

    • Le nom peut contenir jusqu'à 256 caractères, incluant des chiffres, des lettres, des traits d'union (-), des underscores (_), des astérisques (*) et des signes égal (=).

    Watermark Templates

    Sélectionnez un modèle de filigrane configuré. Si aucun modèle n'est disponible, créez-en un d'abord. Pour plus d'informations, consultez Configurer un modèle de filigrane.

  5. Cliquez sur save pour terminer la configuration de la règle de filigrane.

    Remarque

    Après avoir configuré la règle de filigrane, redémarrez l'ingestion du flux pour que le filigrane apparaisse lors de la lecture.

Liste des règles de filigrane

Après avoir enregistré une règle de filigrane, vous revenez à la page de liste des règles de filigrane. Avant de pouvoir afficher la liste, vous devez ajouter un domaine de diffusion ; si aucun domaine de diffusion n'est ajouté, la liste des règles n'est pas affichée. La liste présente les règles de filigrane que vous avez créées, avec les colonnes suivantes :

  • ID/Nom de la règle de filigrane : l'ID et le nom de la règle.

  • AppName : le nom de l'application de diffusion à laquelle la règle s'applique.

  • StreamName : le nom du flux en direct correspondant à la règle.

  • Modèle de filigrane : le modèle de filigrane associé à la règle.

  • Actions : utilisé pour activer ou désactiver la règle de filigrane.

Pour activer ou désactiver une règle de filigrane, cliquez sur le bouton correspondant dans la colonne Actions de la liste pour changer son statut. Cette console ne fournit pas de colonne de statut distincte ; l'état activé/désactivé est contrôlé entièrement via les boutons de la colonne Actions. Une fois qu'une règle de filigrane est activée, le filigrane est ajouté au flux en direct correspondant lorsqu'il est poussé.

Configurer via une API

// This file is auto-generated, don't edit it. Thanks.
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 {

        // Configure the HttpClient.
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // The timeout period for a connection. Default value: 10 seconds.
                .responseTimeout(Duration.ofSeconds(10)) // The timeout period for a response. Default value: 20 seconds.
                .maxConnections(128) // The connection pool size.
                .maxIdleTimeOut(Duration.ofSeconds(50)) // The timeout period for the connection pool. Default value: 30 seconds.
                // Configure the proxy.
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
                // For an HTTPS connection, you must configure a certificate or ignore the certificate by using .ignoreSSL(true).
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // Configure the credentials for authentication, including the AccessKey ID, AccessKey secret, and security token.
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use a Security Token Service (STS) token.
                .build());

        // Configure the client.
        AsyncClient client = AsyncClient.builder()
                .region("<your-region-id>") // The region ID.
                //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                // The client-level configuration. You can overwrite the endpoint and HTTP request parameters.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // Set the parameters for the API request.
        AddLiveStreamWatermarkRuleRequest addLiveStreamWatermarkRuleRequest = AddLiveStreamWatermarkRuleRequest.builder()
                .regionId("<your-region-id>")
                .name("<your-name>")
                .domain("<your-domain>")
                .app("<your-app>")
                .stream("<your-stream>")
                .templateId("<your-template-id>")
                // The request-level configuration. You can overwrite HTTP request parameters.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // Asynchronously obtain the return value of the API request.
        CompletableFuture<AddLiveStreamWatermarkRuleResponse> response = client.addLiveStreamWatermarkRule(addLiveStreamWatermarkRuleRequest);
        // Synchronously obtain the return value of the API request.
        AddLiveStreamWatermarkRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Asynchronously process the return value.
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Handling exceptions.
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // Close the client.
        client.close();
    }

}
Remarque
  • L'<AppName> peut contenir jusqu'à 256 caractères, incluant des chiffres, des lettres, des traits d'union (-) et des underscores (_). Les astérisques (*) ne sont pas pris en charge.

  • La correspondance des règles de filigrane est basée sur la priorité. Les règles avec un <StreamName> spécifique (et non un joker *) sont mises en correspondance en premier.

  • Pour plus d'informations sur les paramètres, consultez la référence de l'API AddLiveStreamWatermarkRule.

Utiliser la fonctionnalité

Après avoir configuré le modèle et la règle de filigrane, démarrez l'ingestion et la lecture du flux pour appliquer le filigrane. L'effet du filigrane affiche un texte orange indiquant « 这是一个水印 » dans le coin supérieur droit du flux en direct.

Le filigrane dans cet exemple est une image PNG basée sur du texte.

Transparence du filigrane

Le code suivant montre comment définir la transparence du filigrane :

// The transparency of the watermark. A smaller value indicates higher transparency. Valid values: 0 to 255. Default value: 255.
addLiveStreamWatermarkRequest.setTransparency(255);

Par exemple, après avoir défini la transparence sur 128, le texte du filigrane (tel que « 这是一个水印 ») apparaît comme une superposition semi-transparente dans le coin supérieur droit de la vidéo en direct, visible par le spectateur mais sans masquer complètement le contenu sous-jacent.

Mettre à jour un filigrane

Exemple de code pour mettre à jour un modèle de filigrane

// This file is auto-generated, don't edit it. Thanks.
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 {

        // Configure the HttpClient.
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. The default is 10 seconds.
                .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. The default is 20 seconds.
                .maxConnections(128) // Set the connection pool size.
                .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout. The default is 30 seconds.
                // Configure the proxy.
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
                        .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
                // For an HTTPS connection, you must configure the certificate or ignore it by using .ignoreSSL(true).
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // Configure credentials, including the AccessKey ID, AccessKey secret, and token.
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use an STS token.
                .build());

        // Configure the client.
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // The region ID.
                //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                // Override the client-level configuration. You can set the endpoint, HTTP request parameters, and more.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // Set the parameters for the API request.
        UpdateLiveStreamWatermarkRequest updateLiveStreamWatermarkRequest = UpdateLiveStreamWatermarkRequest.builder()
                .regionId("<Your RegionId>")
                .templateId("<Your templateId>")
                .name("<Your name>")
                .description("<Your description>")
                // Override the request-level configuration. You can set HTTP request parameters and more.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // Asynchronously get the return value of the API request.
        CompletableFuture<UpdateLiveStreamWatermarkResponse> response = client.updateLiveStreamWatermark(updateLiveStreamWatermarkRequest);
        // Synchronously get the return value of the API request.
        UpdateLiveStreamWatermarkResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Asynchronously process the return value.
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Handle exceptions.
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // Close the client.
        client.close();
    }

}
Remarque
  • Le <regionId> doit correspondre à la région du centre de diffusion associé au nom de domaine du modèle. Pour obtenir la liste des ID de région, consultez point de terminaison de service.

  • Pour plus d'informations sur les paramètres, consultez la référence de l'API UpdateLiveStreamWatermark.

Exemple de code pour mettre à jour une règle de filigrane

// This file is auto-generated, don't edit it. Thanks.
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 {

        // Configure the HttpClient.
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. The default is 10 seconds.
                .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. The default is 20 seconds.
                .maxConnections(128) // Set the connection pool size.
                .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout. The default is 30 seconds.
                // Configure the proxy.
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
                        .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
                // For an HTTPS connection, you must configure the certificate or ignore it by using .ignoreSSL(true).
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // Configure credentials, including the AccessKey ID, AccessKey secret, and token.
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use an STS token.
                .build());

        // Configure the client.
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // The region ID.
                //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                // Override the client-level configuration. You can set the endpoint, HTTP request parameters, and more.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // Set the parameters for the API request.
        UpdateLiveStreamWatermarkRuleRequest updateLiveStreamWatermarkRuleRequest = UpdateLiveStreamWatermarkRuleRequest.builder()
                .regionId("<Your RegionId>")
                .ruleId("")
                // Override the request-level configuration. You can set HTTP request parameters and more.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // Asynchronously get the return value of the API request.
        CompletableFuture<UpdateLiveStreamWatermarkRuleResponse> response = client.updateLiveStreamWatermarkRule(updateLiveStreamWatermarkRuleRequest);
        // Synchronously get the return value of the API request.
        UpdateLiveStreamWatermarkRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Asynchronously process the return value.
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Handle exceptions.
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // Close the client.
        client.close();
    }

}
Remarque
  • Le <regionId> doit correspondre à la région du centre de diffusion associé au nom de domaine du modèle. Pour obtenir la liste des ID de région, consultez point de terminaison de service.

  • Vous pouvez mettre à jour d'autres propriétés de la règle. Pour plus d'informations, consultez la référence de l'API UpdateLiveStreamWatermarkRule.

Les modifications apportées à un modèle ou à une règle de filigrane ne prennent effet qu'après avoir redémarré l'ingestion du flux. Pour mettre à jour un filigrane pendant un flux en direct sans redémarrer, utilisez la fonctionnalité de mise à jour dynamique du filigrane.

Appelez l'API DynamicUpdateWaterMarkStreamRule pour effectuer cette mise à jour.

Exemple de code pour la mise à jour dynamique du filigrane

// This file is auto-generated, don't edit it. Thanks.
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 {

        // Configure the HttpClient.
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. The default is 10 seconds.
                .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. The default is 20 seconds.
                .maxConnections(128) // Set the connection pool size.
                .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout. The default is 30 seconds.
                // Configure the proxy.
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
                        .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
                // For an HTTPS connection, you must configure the certificate or ignore it by using .ignoreSSL(true).
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // Configure credentials, including the AccessKey ID, AccessKey secret, and token.
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use an STS token.
                .build());

        // Configure the client.
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // The region ID.
                //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                // Override the client-level configuration. You can set the endpoint, HTTP request parameters, and more.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // Set the parameters for the API request.
        DynamicUpdateWaterMarkStreamRuleRequest dynamicUpdateWaterMarkStreamRuleRequest = DynamicUpdateWaterMarkStreamRuleRequest.builder()
                .regionId("<Your RegionId>")
                .domain("<Your Domain>")
                .app("<Your App>")
                .stream("<Your Stream>")
                .templateId("<Your TemplateId>")
                // Override the request-level configuration. You can set HTTP request parameters and more.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // Asynchronously get the return value of the API request.
        CompletableFuture<DynamicUpdateWaterMarkStreamRuleResponse> response = client.dynamicUpdateWaterMarkStreamRule(dynamicUpdateWaterMarkStreamRuleRequest);
        // Synchronously get the return value of the API request.
        DynamicUpdateWaterMarkStreamRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Asynchronously process the return value.
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Handle exceptions.
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // Close the client.
        client.close();
    }

}
Important
  • L'<TemplateId> peut être l'ID d'un nouveau modèle ou du modèle original. L'appel de cette méthode met à jour le filigrane pour qu'il corresponde à la dernière configuration du modèle spécifié, y compris son image, sa transparence et sa position.

  • Actuellement, les mises à jour dynamiques ne sont pas prises en charge pour les règles de filigrane qui utilisent la correspondance floue pour le nom du flux.

Supprimer un modèle de filigrane

Avant de supprimer un Watermark Templates, supprimez d'abord toutes les règles de filigrane associées.

Exemple de code pour supprimer une règle de filigrane

// This file is auto-generated, don't edit it. Thanks.
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 {

        // Configure the HttpClient.
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. The default is 10 seconds.
                .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. The default is 20 seconds.
                .maxConnections(128) // Set the connection pool size.
                .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout. The default is 30 seconds.
                // Configure the proxy.
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
                        .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
                // For an HTTPS connection, you must configure the certificate or ignore it by using .ignoreSSL(true).
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // Configure credentials, including the AccessKey ID, AccessKey secret, and token.
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use an STS token.
                .build());

        // Configure the client.
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // The region ID.
                //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                // Override the client-level configuration. You can set the endpoint, HTTP request parameters, and more.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // Set the parameters for the API request.
        DeleteLiveStreamWatermarkRuleRequest deleteLiveStreamWatermarkRuleRequest = DeleteLiveStreamWatermarkRuleRequest.builder()
                .regionId("<Your RegionId>")
                .domain("<Your Domain>")
                // Override the request-level configuration. You can set HTTP request parameters and more.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // Asynchronously get the return value of the API request.
        CompletableFuture<DeleteLiveStreamWatermarkRuleResponse> response = client.deleteLiveStreamWatermarkRule(deleteLiveStreamWatermarkRuleRequest);
        // Synchronously get the return value of the API request.
        DeleteLiveStreamWatermarkRuleResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Asynchronously process the return value.
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Handle exceptions.
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // Close the client.
        client.close();
    }

}
Remarque

Spécifiez un AppName pour supprimer toutes ses règles de filigrane associées. Pour plus d'informations, consultez la référence de l'API DeleteLiveStreamWatermarkRule.

Exemple de code pour supprimer un modèle de filigrane

// This file is auto-generated, don't edit it. Thanks.
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 {

        // Configure the HttpClient.
        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
                .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout. The default is 10 seconds.
                .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout. The default is 20 seconds.
                .maxConnections(128) // Set the connection pool size.
                .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout. The default is 30 seconds.
                // Configure the proxy.
                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<YOUR-PROXY-HOSTNAME>", 9001))
                        .setCredentials("<YOUR-PROXY-USERNAME>", "<YOUR-PROXY-PASSWORD>"))
                // For an HTTPS connection, you must configure the certificate or ignore it by using .ignoreSSL(true).
                .x509TrustManagers(new X509TrustManager[]{})
                .keyManagers(new KeyManager[]{})
                .ignoreSSL(false)
                .build();*/

        // Configure credentials, including the AccessKey ID, AccessKey secret, and token.
        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
                .accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // Use an STS token.
                .build());

        // Configure the client.
        AsyncClient client = AsyncClient.builder()
                .region("<Your RegionId>") // The region ID.
                //.httpClient(httpClient) // Use the configured HttpClient. Otherwise, the default Apache HttpClient is used.
                .credentialsProvider(provider)
                //.serviceConfiguration(Configuration.create()) // The service-level configuration.
                // Override the client-level configuration. You can set the endpoint, HTTP request parameters, and more.
                .overrideConfiguration(
                        ClientOverrideConfiguration.create()
                                  // For more information about the endpoint, see https://api.aliyun.com/product/live.
                                .setEndpointOverride("live.aliyuncs.com")
                        //.setConnectTimeout(Duration.ofSeconds(30))
                )
                .build();

        // Set the parameters for the API request.
        DeleteLiveStreamWatermarkRequest deleteLiveStreamWatermarkRequest = DeleteLiveStreamWatermarkRequest.builder()
                .regionId("<Your RegionId>")
                .templateId("<Your TemplateId>")
                // Override the request-level configuration. You can set HTTP request parameters and more.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();

        // Asynchronously get the return value of the API request.
        CompletableFuture<DeleteLiveStreamWatermarkResponse> response = client.deleteLiveStreamWatermark(deleteLiveStreamWatermarkRequest);
        // Synchronously get the return value of the API request.
        DeleteLiveStreamWatermarkResponse resp = response.get();
        System.out.println(new Gson().toJson(resp));
        // Asynchronously process the return value.
        /*response.thenAccept(resp -> {
            System.out.println(new Gson().toJson(resp));
        }).exceptionally(throwable -> { // Handle exceptions.
            System.out.println(throwable.getMessage());
            return null;
        });*/

        // Close the client.
        client.close();
    }

}
Remarque
  • Le <regionId> doit correspondre à la région du centre de diffusion associé au nom de domaine du modèle. Pour obtenir la liste des ID de région, consultez point de terminaison de service.

  • Pour plus d'informations, consultez la référence de l'API DeleteLiveStreamWatermark.

Références

Pour plus d'informations sur l'utilisation du SDK Java, consultez le guide d'utilisation du SDK Java.