Как создать эскиз с помощью ffmpeg.exe - PullRequest
2 голосов
/ 20 июля 2011

Я пытаюсь создать эскиз видео .wmv.Я пробовал следующий код:

   Guid id = Guid.NewGuid();
   string thumbpath, thumbname, videopath;
   string thumbargs, inputfile;                        
   thumbpath = "C:\\Users\\Tom\\Desktop\\picture gallery\\";
   thumbname = thumbpath + id.ToString() + ".jpg";
   videopath = "C:\\Users\\Tom\\Desktop\\video gallery\\";
   inputfile = Videopath + id.ToString() + ".wmv";   
   thumbargs = "-i " + inputfile + " -vframes 1 -ss 00:00:07 -s 150x150 -f image2 " +      thumbname;   
   Process thumbproc = new Process();
   thumbproc = new Process();
   thumbproc.StartInfo.FileName = "C:\\Users\\Tom\\Desktop\\ffmpeg\\ffmpeg.exe";
   thumbproc.StartInfo.UseShellExecute = false;
   thumbproc.StartInfo.CreateNoWindow = false;
   thumbproc.StartInfo.RedirectStandardOutput = false;
   try
   {
       thumbproc.Start();
       if (thumbproc != null)
       {
          thumbproc.Close();
       }
   }
   catch (Exception ex)
   {
       lblMessage.Text = ex.Message;
       lblMessage.ForeColor = System.Drawing.Color.Red;
       lblMessage.Visible = true;
   }

Я получаю доступ к видео, которое хранится в папке «Видеогалерея».Проблема с моим решением заключается в том, что при запуске решения я обнаружил ошибку «не удалось найти подходящий выходной формат для ffmpeg 'gallery \ 69b77a48-1b3c-4ce7-8c5a-fba10af5d9b1.jpg'».

Ноесли я удаляю пробелы на пути к миниатюре (фотогалерея или видеогалерея), то она работает нормально.

Скажите, пожалуйста, есть ли какие-либо проблемы с моими "пиктограммами" или что-то, что я пропустил в своем коде.

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Выполните следующие действия: Преобразование видео в FLV и создание миниатюр из файла с помощью C #

protected void Convert(string fileIn, string fileOut, string thumbOut)
{
try
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = ffmpegPath;

proc.StartInfo.Arguments = "-i " + fileIn +
" -ar 22050 -ab 32 -f flv -s 320×240 -aspect 4:3 -y " + fileOut.Split('.')[0] +
".flv";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.WaitForExit();

Ссылка: КАК: создать миниатюры для предварительного просмотра видео вручную

Командная строка

ffmpeg  -itsoffset -4  -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg

Проверьте ваш код Guid id = Guid.NewGuid();, после генерации нового GUID, любой файл, связанный с новым GUID .. первая проверкаэтот файл существует или нет.

0 голосов
/ 20 июля 2011
thumbproc.StartInfo.Arguments = thumbargs;

Вы забыли инициализировать аргументы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...