Aller au contenu

Exemples de code et tutoriels d'édition vidéo .NET

Video Edit SDK .Net

Cette page rassemble des recettes C# prêtes à l'emploi pour les scénarios d'édition les plus courants utilisant Video Edit SDK .Net. Chaque extrait est vérifié par rapport au code source du SDK et aux démos sous _SOURCE/_DEMOS/Video Edit SDK/. Les recettes ci-dessous utilisent le moteur VideoEditCore (Windows uniquement). Le code multi-plateforme basé sur VideoEditCoreX suit une forme similaire avec des types de source et d'effet spécifiques au moteur.

Recettes disponibles

Effets visuels et superpositions

Manipulation audio

Composition vidéo

iOS

Recette — Concaténer plusieurs fichiers sources en un seul MP4

VideoSource accepte un nom de fichier plus des temps de début/fin optionnels. Pour rogner une section d'une source, passez les décalages de début et de fin ; pour utiliser le fichier complet, passez null. Chaque appel à Input_AddVideoFile ajoute à la timeline.

using System;
using System.Threading.Tasks;
using VisioForge.Core.Types.VideoEdit;
using VisioForge.Core.VideoEdit;
using VisioForge.Core.Types.Output;

public async Task JoinClipsAsync(string output)
{
    var videoEdit = new VideoEditCore();

    // Conteneur de sortie.
    videoEdit.Output_Filename = output;
    videoEdit.Output_Format = new MP4Output();

    // Premier clip — les 10 premières secondes.
    var clip1 = new VideoSource(
        @"intro.mp4",
        TimeSpan.Zero,
        TimeSpan.FromSeconds(10),
        VideoEditStretchMode.Letterbox);
    await videoEdit.Input_AddVideoFileAsync(clip1);

    // Deuxième clip — fichier complet ajouté à la timeline.
    var clip2 = new VideoSource(
        @"content.mp4",
        null,
        null,
        VideoEditStretchMode.Letterbox);
    await videoEdit.Input_AddVideoFileAsync(clip2);

    // Troisième clip — fichier complet ajouté.
    var clip3 = new VideoSource(
        @"outro.mp4",
        null,
        null,
        VideoEditStretchMode.Letterbox);
    await videoEdit.Input_AddVideoFileAsync(clip3);

    // Lancer le moteur.
    await videoEdit.StartAsync();
}

Recette — Ajouter un logo image en superposition

VideoEffectImageLogo est l'effet de superposition d'image historique. Créez-le avec un nom d'effet unique (le deuxième argument du constructeur), affectez le fichier image via Filename, et ajoutez-le au moteur. La position est contrôlée par Left/Top (en pixels) lorsqu'aucun alignement automatique n'est utilisé.

using VisioForge.Core.Types.VideoEdit;
using VisioForge.Core.VideoEdit;
using VisioForge.Core.Types.Output;
using VisioForge.Core.Types.VideoEffects;

public async Task AddLogoAsync(string source, string output)
{
    var videoEdit = new VideoEditCore();

    videoEdit.Output_Filename = output;
    videoEdit.Output_Format = new MP4Output();

    var video = new VideoSource(source, null, null, VideoEditStretchMode.Letterbox);
    await videoEdit.Input_AddVideoFileAsync(video);

    // Superposition de logo image (PNG avec alpha recommandé pour les logos transparents).
    var logo = new VideoEffectImageLogo(enabled: true, name: "logo1")
    {
        Filename = "logo.png",
        Left = 10,
        Top = 10
    };
    videoEdit.Video_Effects_Add(logo);

    await videoEdit.StartAsync();
}

Recette — Remplacer l'audio source par une piste musicale

Ajoutez le fichier vidéo en tant que source vidéo uniquement (via les surcharges de Input_AddVideoFile conscientes de targetStreamIndex si nécessaire), puis ajoutez un AudioSource séparé pour la piste musicale. Le constructeur AudioSource accepte un nom de fichier plus des décalages de début/fin optionnels.

using VisioForge.Core.Types.VideoEdit;
using VisioForge.Core.VideoEdit;
using VisioForge.Core.Types.Output;

public async Task ReplaceAudioAsync(string source, string music, string output)
{
    var videoEdit = new VideoEditCore();

    videoEdit.Output_Filename = output;
    videoEdit.Output_Format = new MP4Output();

    // Vidéo source (l'audio original est ignoré par le moteur quand un AudioSource
    // séparé est ajouté ; consultez les surcharges de Input_AddAudioFile pour contrôler le mixage).
    var video = new VideoSource(source, null, null, VideoEditStretchMode.Letterbox);
    await videoEdit.Input_AddVideoFileAsync(video);

    // Musique de fond — fichier complet.
    var music_src = new AudioSource(music);
    await videoEdit.Input_AddAudioFileAsync(music_src);

    await videoEdit.StartAsync();
}

Ressources supplémentaires

Trouvez davantage d'exemples de code et de ressources sur notre dépôt GitHub, où nous mettons régulièrement à jour notre collection avec de nouveaux exemples et techniques d'implémentation pour les développeurs .NET.