Pregunta

Estoy buscando implementar una función que recupere un solo fotograma de un video de entrada, por lo que puedo usarlo como miniatura.

Algo en este sentido debería funcionar:

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

¿Alguien sabe cómo hacer esto en .Net 3.0?

La solución correcta será la " mejor " Implementación de esta función. Puntos de bonificación para evitar la selección de marcos en blanco.

¿Fue útil?

Solución

Terminé de rodar mi propia clase independiente (con el método único que describí), la fuente puede ser que se puede ver aquí . El navegador de medios es GPL pero estoy feliz por el código que escribí para que ese archivo sea de dominio público. Tenga en cuenta que utiliza la interoperabilidad del proyecto directshow.net , por lo que tendrá que borrar esa parte del codificar con ellos.

Esta clase no funcionará para archivos DVR-MS, necesita inyectar un filtro de show directo para ellos.

Otros consejos

Este proyecto hará el truco para los AVI: http: //www.codeproject .com / KB / audio-video / avifilewrapper.aspx

Cualquier otro formato, puede buscar en Directshow. Hay algunos proyectos que podrían ayudar:
http://sourceforge.net/projects/directshownet/
http://code.google.com/p/slimdx/

1- Obtenga la última versión de ffmpeg.exe desde: http://ffmpeg.arrozcru.org/builds/

2- Extraiga el archivo y copie ffmpeg.exe en su sitio web

3- Usa este Código:

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

Hay algunas bibliotecas en www.mitov.com que pueden ayudar. Es un contenedor genérico para la funcionalidad Directshow, y creo que una de las demostraciones muestra cómo tomar un cuadro de un archivo de video.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top