How can I save first frame of a video as image?

I want to extract first frame of uploaded video and save it as image file.
Possible video formats are mpeg, avi and wmv.

One more thing to consider is that we are creating an ASP.NET website.

10
задан CoderHawk 26 August 2010 в 13:06
поделиться

2 ответа

Вы можете использовать FFMPEG как отдельный процесс (самый простой способ) и позволить ему декодировать первый IDR для вас. Здесь у вас есть класс FFMPEG с методом GetThumbnail(), которому вы передаете адрес видеофайла, адрес создаваемого изображения JPEG и разрешение, которое вы хотите, чтобы изображение было:

using System.Diagnostics;
using System.Threading; 

public class FFMPEG
{
    Process ffmpeg;

    public void exec(string input, string output, string parametri)
    {
        ffmpeg = new Process();

        ffmpeg.StartInfo.Arguments = " -i " + input+ (parametri != null? " "+parametri:"")+" "+output; 
        ffmpeg.StartInfo.FileName = "utils/ffmpeg.exe";
        ffmpeg.StartInfo.UseShellExecute = false;
        ffmpeg.StartInfo.RedirectStandardOutput = true;
        ffmpeg.StartInfo.RedirectStandardError = true;
        ffmpeg.StartInfo.CreateNoWindow = true;

        ffmpeg.Start();
        ffmpeg.WaitForExit();
        ffmpeg.Close();     
    }


    public void GetThumbnail(string video, string jpg, string velicina)
    {
        if (velicina == null) velicina = "640x480";
        exec(video, jpg, "-s "+velicina);
    }
}

Используйте так:

FFMPEG f = new FFMPEG();
f.GetThumbnail("videos/myvid.wmv", "images/thumb.jpg", "1200x223");

Чтобы это работало, вы должны иметь ffmpeg.exe в папке /utils или изменить код, чтобы найти ffmpeg.exe.

Есть и другие способы использования FFMPEG в .NET, такие как обертки .NET, вы можете найти их в Google. Они в основном делают то же самое здесь, только лучше. Поэтому, если FFMPEG выполняет вашу работу, я бы рекомендовал использовать оболочку .NET.

7
ответ дан 4 December 2019 в 01:29
поделиться

Вероятно, лучший программный инструмент для работы с видео — FFMpeg. Он имеет поддержку многих форматов, даже wmv. Я подозреваю, что для него даже есть оболочка .net.

0
ответ дан 4 December 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: