Con questo brevissimo script e coi file sotto indicati si può creare un sistema per salvare l'immagine di preview di un video grazie a ffmpeg
Per fare ciò occorre scompattare i file allegati al post e copiarli in una cartella il cui percorso verrà salvato nel app.config, creare una nuova classe con questo codice e quindi richiamare Media.Previewer.CreateThumb(...parametri...)
ffmpeg_preview.zip (3,00 mb)
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Configuration;
namespace Media
{
public static class Previewer
{
// VARIABILI DA PASSARE ALL'ENCODER PER CREARE LA PREVIEW
private static string encoderSettings = " -i \"{0}\" -s {1} -vframes 1 -f image2 -vcodec mjpeg \"{2}\"";
/// <summary>
/// Creazione Immagine Preview Video
/// </summary>
/// <param name="videoPath">IL PATH (COMPRENSIVO DI NOME FILE) DEL VIDEO ORIGINALE</param>
/// <param name="previewPath">IL PATH (COMPRENSIVO DI NOME FILE) DEL IMMAGINE CHE VERRA' ESPORTATA</param>
/// <param name="width">LA LARGHEZZA DELL'IMMAGINE</param>
/// <param name="height">L'ALTEZZA DELL'IMMAGINE</param>
public static void CreateThumb(string videoPath, string previewPath, int width, int height)
{
encoderSettings = String.Format(encoderSettings, videoPath, (width.ToString() + "*" + height.ToString()), previewPath);
try
{
Process ffmpeg = new Process();
ffmpeg.StartInfo.Arguments = encoderSettings;
ffmpeg.StartInfo.FileName = ConfigurationManager.AppSettings["FfmpegExecutablePath"];
// VOCE DA AGGIUNGERE ALL APP.CONFIG O WEB CONFIG DOVE SI TROVERA' L'ESEGUIBILE DI FFMPEG
// <add key="FfmpegExecutablePath" value="C:\...\ffmpeg.exe" />
ffmpeg.Start();
}
catch (Exception e)
{
//LOGGING ECCEZIONE
}
}
}
}