2013-04-12 123 views
3

我們需要使用ffmpeg二進制文件和c#項目將圖像(來自相機實時流)轉換爲視頻流。使用Aforge.net.framework和c將圖像轉換爲視頻動畫#

我們在系統中安裝了Aforge.net框架2.2.4.1(窗口7,32位),並實現了視頻錄製使用Aforge.video.Ffmpeg dll.It工作得很好,因爲我們expected.Then我們試圖努力在同一個項目中的64位編碼系統。

它給我的錯誤

「無法從 HRESULT加載文件或程序集‘AForge.Video.FFMPEG.dll’或 它的依賴之一。是不是有效的Win32應用程序。(例外:0x800700C1)「。

而且我們通過一些論壇去了,找到了解決的目標平臺更改爲86 32 bit.But基於在另一篇文章,我們應該留在x64作爲我們平臺target.And一些其他的原因,運行論壇我們從這個鏈接「http://ffmpeg.zeranoe.com/builds/」下載了64位ffmpeg庫,並將64位版本的avcodec-53.dll,avdevice-53.dll, avfilter-2.dll,avformat-53.dll, avutil-53.dll, swscale-2.dll替換爲我的項目輸出文件夾。當我們嘗試使用源代碼爲64位版本製作Aforge.video.ffmpeg.dll時由Aforge.net框架給出的代碼,構建並不成功。

我們認爲這個源代碼是爲win32平臺構建的,我們試圖通過只重新生成64位ffmpeg二進制文件來獲得Aforge.Video.Ffmpeg dll。我們不確定是否需要包含任何其他依賴文件除了ffmpeg 二進制文件使dll.Is有任何Aforge.net框架安裝程序可用於生成64位版本的Aforge.Video.ffmpeg dll?

+1

我描述觀察到完全相同的東西。 – tommed

回答

-1

嘗試改變的框架,從4.0到3.5改變它幫助我

0

從文檔:你要編譯的x86。

0

首先,您必須獲取Aforeg.Video.FFMPEG的64位庫。這個URL是
https://aforgeffmpeg.codeplex.com/(現在寫這個CodePlex就是說它們正在關閉)。

你也可以從https://ffmpeg.zeranoe.com/builds/得到FFMPEG庫。所有這些FFMPEG DLL必須被複制到執行.exe或二進制文件的目錄中。請特別注意它們必須避免的x86版本。

您必須將您的應用程序編譯爲x64(無AnyCPU)。

並且必須設置的App.config

<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <runtime> <NetFx40_LegacySecurityPolicy enabled="true" /> </runtime> </configuration>

這是由https://bydaniel.wordpress.com/2017/05/01/aforge-net-ffmpeg/