Domanda

Sto cercando di implementare una funzione che recupera un singolo fotogramma da un video di input, quindi posso usarlo come anteprima.

Qualcosa del genere dovrebbe funzionare:

// 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)
{
}

Qualcuno sa come farlo in .Net 3.0?

La soluzione corretta sarà la "migliore" implementazione di questa funzione. Punti bonus per evitare la selezione di cornici vuote.

È stato utile?

Soluzione

Ho finito per lanciare la mia classe autonoma (con il metodo singolo che ho descritto), la fonte può essere visualizzata qui . Il browser multimediale è GPL ma sono contento che il codice che ho scritto per quel file sia di dominio pubblico. Tieni presente che utilizza l'interoperabilità dal progetto directshow.net , quindi dovrai cancellare quella parte del codice con loro.

Questa classe non funzionerà per i file DVR-MS, è necessario iniettare un filtro di show diretto per quelli.

Altri suggerimenti

Questo progetto farà il trucco per gli AVI: http: //www.codeproject .com / KB / audio-video / avifilewrapper.aspx

Qualunque altro formato, potresti consultare directshow. Ci sono alcuni progetti che potrebbero aiutare:
http://sourceforge.net/projects/directshownet/
http://code.google.com/p/slimdx/

1- Scarica l'ultima versione di ffmpeg.exe da: http://ffmpeg.arrozcru.org/builds/

2- Estrai il file e copia ffmpeg.exe sul tuo sito web

3- Usa questo codice:

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();

Ci sono alcune biblioteche su www.mitov.com che possono aiutare. È un wrapper generico per la funzionalità di Directshow e penso che una delle demo mostri come prendere un frame da un file video.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top