0

Я использую Microsoft.Expression.Encoder пространство имен, чтобы получить миниатюру видеофайла Загружайте следующий метод:Насколько надежным является Microsoft.Expression.Encoder.MediaItem?

MediaItem video = new MediaItem(file); 
       int Duration = video.FileDuration.Seconds; 
       using (var bitmap = video.MainMediaFile.GetThumbnail 
         (new TimeSpan(0, 0, (int)Duration/2), 
         new System.Drawing.Size(640, 480) 
        )) 
       { 
        bitmap.Save(Path.Combine(_fileDirectory, UniqueId + "_thumb.jpg")); 
       } 

Конструктор нового MediaItem (файл) Требовать Native программного обеспечения, установленное на компьютере, например, для QuickTime Player для файлов .mov, я Интересно Если в каждую минуту загружаются 500 видеороликов, насколько надежным будет этот сценарий, так как он использует QuicktimePlayer для получения информации о файле и каждый поток сможет использовать QuickTimePlayer в одно и то же время?

+0

Немного странно «новый TimeSpan (0, 0, (int) Duration^2)', это предназначено? – oleksii

+0

Да и хорошо работает – Amrit

+0

Уверен, что он работает нормально? Если продолжительность составляет 4 секунды, вы будете пытаться получить миниатюру на 6-й секунде, как 4^2 = 6, то же самое, например 1000: 1000^2 = 1002. Вы пытаетесь получить ее в половине случаев? – oleksii

ответ

1

Вам, скорее всего, придется протестировать его самостоятельно. Попробуйте запустить это в одном потоке и в нескольких потоках. Вероятно, разумно использовать threadpool, так как потоки могут быть повторно использованы.

Причина в том, что все оборудование отличается, и одно и то же приложение может вести себя по-другому, например, одна видеокарта может не позволить одновременно запускать две нагрузки, однако, если у вас несколько видеокарт, это, скорее всего, возможно.

PS У меня нет информации о обработке видео (или пространстве имен Microsoft.Expression.Encoder).

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