2015-07-31 3 views
0

Я видел несколько потоков стека на том, как это сделать, но я не могу заставить его работать для себя в визуальной студии.Извлечение фреймов из изображения в C#

Что не так с кодом? Я загрузил FFMpeg и im, используя его в качестве ссылки. тем не менее, я получаю ошибку

«Не удалось загрузить файл или сборку Aforge.Video.FFMPEG. DLL или один из его зависимостей »

Вот код.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using AForge; 
using AForge.Video; 
using AForge.Video.FFMPEG; 

namespace WindowsFormsApplication6 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     // create instance of video reader 
     VideoFileReader reader = new VideoFileReader(); 
     // open video file 
     reader.Open("test.avi"); 
     // read 100 video frames out of it 
     for (int i = 0; i < 100; i++) 
     { 
     Bitmap videoFrame = reader.ReadVideoFrame(); 

     videoFrame.Save(i + ".bmp"); 

     // dispose the frame when it is no longer required 
     videoFrame.Dispose(); 
     } 
     reader.Close(); 
    } 
} 
} 

Программа останавливается, когда я нажимаю кнопку и появляется с ошибкой.

+0

ли вам проверьте, действительно ли файл 'dll' находится в папке проекта? –

+0

Я щелкнул правой кнопкой мыши по ссылке, добавленной Aforge.Video и Aforge.Video.FFMPEG. –

ответ

0

Похоже, что dll может быть перемещен/удален (или), вероятно, не зарегистрирован. Обычно лучше всего добавить их в библиотечную папку (скажем lib или bin) в рамках вашего проекта. Поэтому, когда вы регистрируетесь в своих материалах, все файлы библиотеки также проверяются, и ваши ссылки не повреждены.

Поскольку dll кажется внешним, я надеюсь, что вы его просмотрели и добавили ссылку.

Вы можете скопировать файл dll (желательно в папку lib) в свой проект, а затем добавить ссылку еще раз?

Похоже, что Visual Studio добавила ссылку, но не может найти файл.

Я предполагаю, что это решит вашу проблему.

0

Возможно, вам потребуется проверить, как вы строите свой проект. Некоторые библиотеки DLL могут работать только с конфигурацией сборки x86 или x64. Возможно, это не главная dll напрямую, а ссылки, которые она использует внутри.

0

Вам нужно добавить в папку бен Библиотеки DLL из AForge.NET \ Framework \ Экстерналии \ FFmpeg и убедитесь, что вы используете 32-битные (свойства проекта -> отладка -> Платформа -> x86

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