Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Transcoder de la vidéo sous WinRT

[new:15/10/2013]Intégrer et gérer des vidéos dans un environnement basé sur le visuel semble naturel. c’est pourquoi Windows 8 fournit des API dédiées…

L’espace de nom Transcoding

Microsoft fournir un espace de nom dédié au transcodage, Windows.Media.Transcoding.

Cet espace de noms fournit un ensemble d’API qui vont vous aider à transcoder des fichiers audio ou video d’un format à un autre.

Une API simplifiée

L’API mise à disposition est très simple elle est constituée principalement de deux parties :

  • MediaEncondingProfile, qui contient les réglages qui déterminent comment la destination doit être triatée.
  • MediaEncoder, qui effectue le travail de transcodage.

 

Mise en œuvre

Avant de transcoder un fichier il convient de fixer les paramètres de la conversion, on ne s’occupe que des paramètres de sortie, l’entrée est reconnue ou ne l’est pas, mais aucun réglage ne la concerne :

var encodingProfile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.HD1080p);

 

Le MediaEncodingProfile contient des méthodes Factory comme CreateMp4 qu’on peut voir ci-dessus ou CreateWmv. Le paramètre de la méthode choisie permet de fixer la résolution.

Ensuite il faut appeler PrepareFileTransCodeAync pour traiter le fichier (on en profite pour vérifier que la source est acceptée par l’API) :

var prepareTranscodeResult = 
await transcoder.PrepareFileTranscodeAsync(
sourceFile, destinationFile, encodingProfile); if (prepareTranscodeResult.CanTranscode) { await prepareTranscodeResult.TranscodeAsync(); }
 

C’est tout…

Il est bien sûr possible de compliquer un peu plus les choses en chargeant un profile existant depuis les disques ou d’ajouter des opérations de trim (TrimStartTime ou TrimStopTime) pour extraire une partie seulement du fichier source.

Conclusion

Comme nous avons pu en discuter plusieurs fois, l’API de WinRT est très vaste, bien plus grande que celle de .NET. L’inconvénient majeur est l’apprentissabilité de cet édifice… L’avantage est d’y trouver des solutions simples à des opérations complexes !

Stay Tuned !

blog comments powered by Disqus