使用Aforge.net.framework和c#即时将图像转换为视频

时间:2013-04-12 08:20:09

标签: c# aforge

我们需要使用ffmpeg二进制文件和c#项目将图像(来自摄像机直播流)转换为视频流。

我们在我们的系统中安装了Aforge.net框架2.2.4.1(Windows 7,32位)并使用Aforge.video.Ffmpeg dll实现了视频录制编码。它正如我们预期的那样正常工作。然后我们尝试了工作64位系统中的同一项目。

它给了我错误

  

“无法加载文件或程序集'AForge.Video.FFMPEG.dll'或其中之一   它的依赖关系。不是有效的Win32应用程序。(例外   HRESULT:0x800700C1)“。

我们通过一些论坛找到了将目标平台更改为x86以32位运行的解决方案。但由于其他原因,我们应该留在x64作为我们的平台目标。并基于另一篇文章在论坛中,我们从此链接“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替换为我的项目输出文件夹。当我们尝试制作Aforge时。通过使用Aforge.net框架给出的源代码,64位版本的video.ffmpeg.dll,build无法成功。

我们认为这个源代码是为win32平台构建的,我们试图仅通过重新定位64位ffmpeg二进制文件来获取Aforge.Video.Ffmpeg dll。我们不确定是否需要包含任何其他依赖文件来自ffmpeg 制作dll的二进制文件。是否有任何Aforge.net框架设置可用于生成64位版本的Aforge.Video.ffmpeg dll?

3 个答案:

答案 0 :(得分:0)

从文档中:你必须为x86编译。

答案 1 :(得分:0)

首先,您必须获得Aforeg.Video.FFMPEG的64位库。它的URL是
https://aforgeffmpeg.codeplex.com/(目前编写此CodePlex只是说他们正在关闭)。

您也可以从https://ffmpeg.zeranoe.com/builds/获取FFMPEG库。必须将所有这些FFMPEG dll复制到将执行.exe或二进制文件的目录。设置特别注意,它们必须避免存在x86版本。

您必须将应用程序编译为x64(No 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/

描述

答案 2 :(得分:-1)

尝试更改Framework,将其从4.0更改为3.5帮助我