Créer de nouveaux fichiers à partir de plusieurs sources sans réencodage¶
Video Edit SDK .Net VideoEditCore
Introduction¶
Lors du développement d'applications multimédias, vous pouvez avoir besoin de combiner du contenu provenant de différents fichiers. Ce guide explique comment fusionner des flux provenant de plusieurs sources vidéo et audio dans un seul fichier de sortie sans perte de qualité due au réencodage.
Avantages du travail avec plusieurs sources¶
- Préserver la qualité originale de tous les fichiers sources
- Combiner des pistes audio de sources différentes
- Ajouter de la musique d'arrière-plan à des fichiers vidéo
- Créer du contenu multilingue avec différentes pistes audio
- Économiser du temps de traitement en évitant un réencodage inutile
Implémentation étape par étape¶
1. Initialiser la collection de flux¶
D'abord, créez une liste pour contenir toutes les références de flux :
var streams = new List<FFMPEGStream>();
2. Ajouter un flux vidéo¶
Ajoutez un flux vidéo à partir de votre premier fichier source. L'ID « v » désigne ce flux comme composant vidéo :
streams.Add(new FFMPEGStream
{
Filename = "c:\\samples\\!video.avi",
ID = "v"
});
3. Ajouter le flux audio principal¶
Incorporez un flux audio à partir d'un fichier MP3. L'ID « a » identifie ce flux comme composant audio :
streams.Add(new FFMPEGStream
{
Filename = "c:\\samples\\!sophie.mp3",
ID = "a"
});
4. Ajouter des flux audio supplémentaires¶
Vous pouvez ajouter d'autres flux audio à partir d'autres fichiers vidéo. À nouveau, utilisez l'ID « a » pour spécifier qu'il s'agit d'un composant audio :
streams.Add(new FFMPEGStream
{
Filename = "c:\\samples\\!video2.avi",
ID = "a"
});
5. Traiter et générer la sortie¶
Enfin, combinez tous les flux dans un seul fichier de sortie. Définir le second paramètre à « true » garantit que la durée de sortie correspond au flux le plus court, évitant les problèmes de lecture :
await VideoEdit1.FastEdit_MuxStreamsAsync(streams, true, outputFile);
Considérations techniques importantes¶
Lorsque vous combinez des flux provenant de plusieurs sources, gardez à l'esprit :
- Les formats sources doivent être compatibles avec le format de conteneur de sortie
- La compatibilité du codec audio doit être vérifiée au préalable
- La synchronisation des flux peut nécessiter une configuration supplémentaire dans des scénarios complexes
- Certains lecteurs peuvent rencontrer des problèmes si les durées des flux varient considérablement
Dépendances requises¶
Pour mettre en œuvre cette fonctionnalité, vous devrez référencer :
Pour plus d'informations sur le déploiement de ces dépendances aux utilisateurs finaux, consultez notre guide de déploiement.
Ressources supplémentaires¶
Visitez notre dépôt GitHub pour des exemples de code et des exemples d'implémentation supplémentaires.