DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Comment implémenter des informations vidéo et des API d’édition en Java
    Uncategorized

    Comment implémenter des informations vidéo et des API d’édition en Java

    mars 2, 2023
    Comment implémenter des informations vidéo et des API d'édition en Java
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Au cours des 15 dernières années et plus, le trafic vidéo en ligne a connu un boom spectaculaire sans précédent par rapport à toute autre forme de contenu. Selon les données fournies par Sandvine dans son rapport 2022 sur les phénomènes Internet mondiaux, le trafic vidéo représentait 53,72 % du volume total du trafic Internet en 2021, et la catégorie la plus proche (sociale) ne représentait que 12,69 %. Comme le souligne ce rapport, le trafic vidéo est devenu si omniprésent qu’il influence désormais directement le trafic dans d’autres catégories de contenu mesurables (telles que la messagerie, les jeux et les réseaux sociaux) où le contenu vidéo est fréquemment visionné et diffusé.

    Il faut dire que ce phénomène de trafic vidéo doit avant tout aux modernisations de la scalabilité des infrastructures de streaming, qui n’existaient tout simplement pas il y a quinze ans. Un niveau proportionné de demande de contenu vidéo était (probablement) toujours là, mais la volonté de mettre en pause les vidéos et de s’asseoir pendant de longs et frustrants temps de tampon vidéo a certainement mis un frein à cette demande. Non seulement le stockage en nuage évolutif presque à l’infini a réduit la charge de stockage de fichiers vidéo volumineux, mais les CDN (réseaux de diffusion de contenu) déployés par les géants du streaming vidéo et des médias sociaux au cours de cette période ont pratiquement éliminé ces temps de mise en mémoire tampon serveur-client lents, qui a d’abord tourmenté l’expérience utilisateur.

    Bien sûr, tous les sites Web ne peuvent pas se permettre de dépenser des milliards de dollars pour établir des CDN mondiaux pour le streaming, et les sites Web nouvellement développés avec des capacités vidéo en herbe ne peuvent espérer suivre les grands fournisseurs indépendants dans leur quête de bande passante de streaming. Un fait simple est devenu clair, cependant, qui ne peut être ignoré : les clients Internet s’habituent de plus en plus à une expérience en ligne centrée sur la vidéo. Nous, en tant que consommateurs, sommes responsables de porter le volume de trafic vidéo à son incroyable hauteur, et les innovations infrastructurelles qui rendent cela possible n’ont fait que suivre pour soutenir notre demande insatiable. Nous diffusons et enregistrons des réunions, capturons des clips portables de nos animaux de compagnie et communiquons constamment avec d’autres personnes en ligne qui font de même. L’interaction vidéo est quelque chose que nous attendons de plus en plus dans le cadre de notre expérience en ligne.

    En raison de cette croissance du trafic vidéo, les applications Web développées avec des workflows de téléchargement de médias, quel que soit le secteur vertical, doivent de plus en plus intégrer des fonctionnalités centrées sur la vidéo pour répondre aux attentes des consommateurs. Alors que les téléchargements d’images brutes doivent uniquement être recadrés, filtrés ou recouverts de texte, les téléchargements de vidéos doivent être coupés et modifiés à des longueurs spécifiques avant de trouver une maison en ligne. La mise en œuvre de fonctionnalités de montage vidéo telles que celles-ci n’est pas une mince tâche ; Cependant, le traitement vidéo, sans parler du stockage, peut être extrêmement lourd à gérer pour l’infrastructure d’une application Web en pleine croissance. Heureusement, les API Web de montage vidéo peuvent faire une grande différence : elles peuvent réduire le volume de code nécessaire à une application pour traiter les vidéos et décharger une grande partie du travail sur des serveurs externes.

    Manifestation

    Le but de cet article est de démontrer trois solutions d’API distinctes qui peuvent avoir un impact positif sur le processus de téléchargement et d’édition de vidéos sur un site Web. Chaque API prend en charge une variété de formats vidéo courants, notamment MP4, MPG, AVI, MOV, etc. Pour faciliter le processus d’implémentation, des exemples de code Java prêts à l’emploi ont été fournis avec une documentation supplémentaire plus bas dans la page. Ces API effectuent les trois opérations suivantes :

    1. Obtenir des informations détaillées sur un fichier vidéo (ou audio)
    2. Couper une vidéo à une longueur plus courte
    3. Diviser une vidéo en deux vidéos plus courtes

    Chaque API peut être utilisée gratuitement avec une clé API gratuite (cela peut être obtenu sur notre site Web). Pour installer le SDK, vous pouvez suivre les instructions ci-dessous.

    Pour installer avec Maven, ajoutez une référence au référentiel dans pom.xml:

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

    Après cela, ajoutez une référence à la dépendance dans pom.xml:

    <dependencies>
    <dependency>
        <groupId>com.github.Cloudmersive</groupId>
        <artifactId>Cloudmersive.APIClient.Java</artifactId>
        <version>v4.25</version>
    </dependency>
    </dependencies>

    Pour installer avec Gradle, ajoutez-le dans votre racine build.gradle à la fin des dépôts :

    allprojects {
    	repositories {
    		...
    		maven { url 'https://jitpack.io' }
    	}
    }

    Après cela, ajoutez la dépendance dans build.gradle:

    dependencies {
            implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v4.25'
    }

    1. Obtenir des informations détaillées sur un fichier vidéo (ou audio)

    Le but de l’appel de cette API est, comme le titre l’indique, de renvoyer des informations détaillées sur les téléchargements de vidéos (cela fonctionnera également pour les fichiers audio). Les informations renvoyées incluent le format, les dimensions, la taille du fichier, le débit binaire, la durée et l’heure de début. Tout cela est utile à prendre en compte dans les opérations de montage vidéo en aval. Lors de la structuration des requêtes pour cette API, le chemin du fichier d’entrée ou l’URL du fichier peut être utilisé (cette dernière est recommandée pour les fichiers dont la taille dépasse 2 Go). Les exemples de code ci-dessous peuvent être utilisés pour structurer votre appel d’API :

    // Import classes:
    //import com.cloudmersive.client.invoker.ApiClient;
    //import com.cloudmersive.client.invoker.ApiException;
    //import com.cloudmersive.client.invoker.Configuration;
    //import com.cloudmersive.client.invoker.auth.*;
    //import com.cloudmersive.client.VideoApi;
    
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    
    // Configure API key authorization: Apikey
    ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
    Apikey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //Apikey.setApiKeyPrefix("Token");
    
    VideoApi apiInstance = new VideoApi();
    File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
    String fileUrl = "fileUrl_example"; // String | Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
    try {
        MediaInformation result = apiInstance.videoGetInfo(inputFile, fileUrl);
        System.out.println(result);
    } catch (ApiException e) {
        System.err.println("Exception when calling VideoApi#videoGetInfo");
        e.printStackTrace();
    }

    Pour votre information, j’ai inclus un exemple de corps de réponse JSON :

    {
      "Successful": true,
      "FileFormat": "string",
      "FileFormatFull": "string",
      "ValidFileFormats": [
        "string"
      ],
      "Width": 0,
      "Height": 0,
      "Size": 0,
      "BitRate": 0,
      "Duration": 0,
      "StartTime": 0
    }

    2. Couper une vidéo à une longueur plus courte

    Les téléchargements de vidéos brutes ne sont généralement pas destinés à être un produit final, il est donc important de permettre aux téléchargeurs de raccourcir facilement leurs vidéos. Cette API permettra aux téléchargeurs de couper les vidéos à la longueur souhaitée en fournissant une heure de début spécifique et en définissant ensuite le temps qui doit s’écouler après cette heure de début (les deux valeurs doivent être fournies au format TimeSpan). Les fichiers peuvent être téléchargés via le chemin du fichier ou l’URL du fichier (cette dernière option est recommandée pour les fichiers dont la taille dépasse 2 Go), et la réponse de l’API renverra l’encodage du fichier vidéo nouvellement créé.

    Étant donné que la taille des vidéos varie considérablement, il est important de noter que cette API exploite un appel d’API pour 10 Mo de taille de fichier, et qu’elle utilise un appel d’API supplémentaire par minute de temps de traitement dépassant cinq minutes (jusqu’à un maximum de vingt-cinq minutes du temps de traitement total). De plus, la taille maximale du fichier de sortie est de 50 Go.

    Pour appeler cette API, utilisez les exemples de code suivants pour structurer votre requête :

    // Import classes:
    //import com.cloudmersive.client.invoker.ApiClient;
    //import com.cloudmersive.client.invoker.ApiException;
    //import com.cloudmersive.client.invoker.Configuration;
    //import com.cloudmersive.client.invoker.auth.*;
    //import com.cloudmersive.client.VideoApi;
    
    ApiClient defaultClient = Configuration.getDefaultApiClient();
    
    // Configure API key authorization: Apikey
    ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
    Apikey.setApiKey("YOUR API KEY");
    // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
    //Apikey.setApiKeyPrefix("Token");
    
    VideoApi apiInstance = new VideoApi();
    File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
    String fileUrl = "fileUrl_example"; // String | Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
    OffsetDateTime startTime = OffsetDateTime.now(); // OffsetDateTime | Optional; Specify the desired starting time of the cut video in TimeSpan format.
    OffsetDateTime timeSpan = OffsetDateTime.now(); // OffsetDateTime | Optional; Specify the desired length of the cut video in TimeSpan format. Leave blank to include the rest of the video. Maximum time is 4 hours.
    try {
        byte[] result = apiInstance.videoCutVideo(inputFile, fileUrl, startTime, timeSpan);
        System.out.println(result);
    } catch (ApiException e) {
        System.err.println("Exception when calling VideoApi#videoCutVideo");
        e.printStackTrace();
    }

    3. Diviser une vidéo en deux vidéos plus courtes

    Cette opération diffère légèrement de l’opération « Couper une vidéo à une longueur plus courte » décrite précédemment, permettant aux téléchargeurs de diviser les vidéos à un moment précis et de définir ensuite la durée de la deuxième vidéo. Cela renverra l’encodage pour deux nouveaux fichiers vidéo distincts plutôt qu’un seul.

    Conformément à la solution décrite précédemment, les vidéos peuvent être incluses dans la demande via le chemin du fichier ou l’URL du fichier (cette dernière option est à nouveau recommandée pour les fichiers dépassant 2 Go), et le temps de partage et la durée (pour la deuxième vidéo) doivent être définis dans Format TimeSpan.

    Pour appeler cette API, utilisez les exemples de code suivants :

    // Import...
    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.