2015-01-30 4 views
2

Я хочу сгенерировать эскиз с URL-адреса видео в C#. Я много искал, чтобы найти опрятный способ, но не успел. Я использовал Nreco и MediaToolKit, но ни один из них не извлекал уменьшенное изображение. Использование ffmpeg также имеет mumbo jumbos, который не сработал!создать эскиз с видео URL в C#

использование NReco:

var ffMpeg = new NReco.VideoConverter.FFMpegConverter(); 
string thumbnailJPEGpath = "http://localhost:81882/content/hashem.jpeg"; 
ffMpeg.GetVideoThumbnail(videoUrl,thumbnailJPEGpath); 

с помощью FFmpeg:

try 
     { 
      System.Diagnostics.Process ffmpeg; 

      string video; 
      string thumb; 

      video = Server.MapPath("~/Content/Movies/bye.mp4"); 
      thumb = Server.MapPath("~/Content/frame.jpg"); 

      ffmpeg = new System.Diagnostics.Process(); 

      ffmpeg.StartInfo.Arguments = " -i " + video + " -ss 00:00:07 -vframes 1 -f image2 -vcodec mjpeg " + thumb; 
      ffmpeg.StartInfo.FileName = Server.MapPath("~/Content/ffmpeg.exe"); 
      ffmpeg.Start(); 
      ffmpeg.WaitForExit(); 
      ffmpeg.Close(); 
     } 
     catch (Exception ex) 
     { 
      Response.Write("Error: " + ex.Message); 
     } 

рассмотреть видео файлов не является локальным и у меня есть только прямая ссылка на файл: например: http://phytonord.com/Film-Series/hana/26.mp4

есть ли у кого-нибудь решение? любой пример кода, который работает?

+0

возможного дубликата [получить миниатюру видео файла в C#] (HTTP://stackoverflow.com/questions/15702031/get-thumbnail-image-of-video-file-in-c-sharp) – rducom

+0

протестированы, но не работают. не могли бы вы протестировать с помощью видеосвязи? –

ответ

1

Использование NReco для создания видео миниатюру:

Я нашел мою проблему:

1: Я не использовал Server.MapPath. Я только что вступил в relativePath.

2: видеофайл не обязательно местный его можно разместить где-то еще. NReco просто загружает желаемую часть видео, а затем извлекает миниатюру. Ваш файл видео должен находиться в локальном каталоге вашего локального сервера. Я имею в виду, если ваш сайт находится в разработке, а видеофайл находится в вашей локальной папке Computer , он НЕ РАБОТАЕТ, потому что NReco требует поддержки диапазона байтов в файле заголовка HTTP-ответа.

Неприемлемо Ссылка: «http://localhost:81882/content/AVSEQ01.mp4»

так для моего локального теста я переехал мой видеофайл в локальный каталог IIS: ‪C:\inetpub\wwwroot\AVSEQ01.mp4

//sample remote video file 
//string videoUrl = "http://phytonord.com/Film-Series/peik%20sahar/1.mp4"; 

//local video file 
string localVideoFile = "http://localhost/AVSEQ01.mp4" 
var ffMpeg = new NReco.VideoConverter.FFMpegConverter(); 
string thumbnailJPEGpath = Server.MapPath("~/Content/videoThumb.jpg"); 
ffMpeg.GetVideoThumbnail(videoUrl, thumbnailJPEGpath); 
0

я вижу вопрос ответа Но не написано ясно. Итак, вот мой ответ: Сначала загрузить DLL

ffMpeg.GetVideoThumbnail(inputFile,outputFile, frameTime); 
// Summary: 
    //  Extract video frame from local video file at specified position 
    // 
    // Parameters: 
    // inputFile: 
    //  path to local video file 
    // 
    // outputFile: 
    //  path to thumbnail jpeg file 
    // 
    // frameTime: 
    //  video position (in seconds) 

это, как я сделал в моем проекте

  var thumbNailMovieImage = PHYSICAL_PATH_UPLOAD_FILE + "/" + folder + "/thumb_" + filenameWithoutExtn + ".jpg"; 
      var ffMpeg = new FFMpegConverter(); 
      ffMpeg.GetVideoThumbnail(path, thumbNailMovieImage, 1); 

Теперь запустите этот код и проверить местоположение вашего файл эскиз создается

 Смежные вопросы

  • Нет связанных вопросов^_^