Question

Je souhaite implémenter une fonction qui récupère une seule image d'une vidéo d'entrée afin de pouvoir l'utiliser comme vignette.

Quelque chose dans ce sens devrait fonctionner:

// filename examples: "test.avi", "test.dvr-ms"
// position is from 0 to 100 percent (0.0 to 1.0)
// returns a bitmap
byte[] GetVideoThumbnail(string filename, float position)
{
}

Quelqu'un sait-il comment faire cela dans .Net 3.0?

La solution correcte sera la "meilleure". mise en œuvre de cette fonction. Points bonus pour éviter la sélection d'images vierges.

Était-ce utile?

La solution

J'ai fini par lancer ma propre classe autonome (avec la méthode unique que j'ai décrite), la source peut être affichée ici. . Le navigateur de média est , mais je suis content que le code que j'ai écrit pour ce fichier soit du domaine public. N'oubliez pas qu'il utilise interop du projet directshow.net . Vous devrez donc effacer cette partie de la code avec eux.

Cette classe ne fonctionnera pas pour les fichiers DVR-MS, vous devez injecter un filtre d'affichage direct pour ceux-ci.

Autres conseils

Ce projet fera l'affaire pour les AVI: http: //www.codeproject .com / KB / audio-video / avifilewrapper.aspx

Pour tout autre format, vous pouvez regarder en directshow. Quelques projets pourraient vous aider:
http://sourceforge.net/projects/directshownet/
http://code.google.com/p/slimdx/

1- Obtenez la dernière version de ffmpeg.exe sur: http://ffmpeg.arrozcru.org/builds/

2- Extrayez le fichier et copiez le fichier ffmpeg.exe sur votre site Web

3- Utilisez ce code:

Process ffmpeg;

string video;
string thumb;

video = Server.MapPath("first.avi");
thumb = Server.MapPath("frame.jpg");

ffmpeg = new Process();

ffmpeg.StartInfo.Arguments = " -i "+video+" -ss 00:00:07 -vframes 1 -f image2 -vcodec mjpeg "+thumb;
ffmpeg.StartInfo.FileName = Server.MapPath("ffmpeg.exe");
ffmpeg.Start();

Certaines www.mitov.com peuvent vous aider. C'est un wrapper générique pour la fonctionnalité Directshow, et je pense que l'une des démos montre comment prendre une image d'un fichier vidéo.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top