Este dilema se puede tratar de variadas formas, pero te enseñamos la respuesta más completa en nuestra opinión.
Solución:
FFMpeg es una herramienta adecuada que se puede usar para extraer cuadros de video en alguna posición. Puede invocar ffmpeg.exe como se mencionó anteriormente o simplemente usar el contenedor .NET existente (como Video Converter for .NET (es gratis) para obtener una miniatura con solo una línea de código:
var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
ffMpeg.GetVideoThumbnail(pathToVideoFile, thumbJpegStream,5);
Puede ejecutar FFmpeg mediante programación para generar un archivo de imagen en miniatura. Luego abra el archivo de imagen para usarlo como desee.
Aquí hay un código de muestra:
public static Bitmap GetThumbnail(string video, string thumbnail)
var cmd = "ffmpeg -itsoffset -1 -i " + '"' + video + '"' + " -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 " + '"' + thumbnail + '"';
var startInfo = new ProcessStartInfo
WindowStyle = ProcessWindowStyle.Hidden,
FileName = "cmd.exe",
Arguments = "/C " + cmd
;
var process = new Process
StartInfo = startInfo
;
process.Start();
process.WaitForExit(5000);
return LoadImage(thumbnail);
static Bitmap LoadImage(string path)
var ms = new MemoryStream(File.ReadAllBytes(path));
return (Bitmap)Image.FromStream(ms);
Xabe.FFmpeg: biblioteca gratuita, de código abierto y multiplataforma. Proporciona una API fluida para FFmpeg. Generando miniatura de video en Xabe.F
string output = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + FileExtensions.Png);
IConversionResult result = await Conversion.Snapshot(Resources.Mp4WithAudio, output, TimeSpan.FromSeconds(0))
.Start();
Requiere ejecutables FFmpeg como en otra respuesta, pero puede descargarlo por
FFmpeg.GetLatestVersion();
Documentación completa disponible aquí – Documentación Xabe.FFmpeg
valoraciones y reseñas
Nos puedes añadir valor a nuestra información contribuyendo tu experiencia en los comentarios.