无法加载文件或程序集“ Accord.Video.FFMPEG.x64.DLL”或其依赖项之一指定的模块无法找到

问题描述

尝试合并图像和音频文件以创建视频文件

我尝试过

  • 更换拱门(x86和x64)。
  • 手动将“ Accord.Video.FFMPEG.x64.DLL”的所有相关.dll移到垃圾箱中。
  • 同时使用Accord和Aforge,它们都有相同的问题。
  • 安装了VC ++可重新分发的2013和2015-19

以下是基本代码

private const string _basePath = @"D:\R&D Projects\AudioVideoConvertor\VideoAudioMerger\VideoAudioMerger\Images\";

    protected void Page_Load(object sender,EventArgs e)
    {
        int width = 2500;
        int height = 2100;
        int frameRate = 10;// Shuld be fix
        using (var videoWriter = new VideoFileWriter())
        {
            // default frame size 340,220
            videoWriter.Open(_basePath + "test.avi",width,height,frameRate,VideoCodec.WMV1);
            ResizeNearestNeighbor filter = new ResizeNearestNeighbor(width,height);
            var images = Directory.GetFiles(_basePath,"*.jpg");
            var tfile = TagLib.File.Create(_basePath + "audio.mp3");
            //string title = tfile.Tag.Title;
            TimeSpan duration = tfile.Properties.Duration;
            decimal timeinSecond = Math.Round((Convert.ToDecimal(duration.TotalSeconds) * frameRate) / images.Length);
            foreach (string img in images)
            {

                using (Bitmap image = Bitmap.FromFile(img) as Bitmap)
                {
                    //As per audio length rotate image in video frame.
                    for (int i = 0; i < timeinSecond; i++)
                    {
                        videoWriter.WriteVideoFrame(filter.Apply(image));
                    }
                }
            }
            videoWriter.Close();
            MergeAudioAndVideo();
        }
    }

    private static void MergeAudioAndVideo()
    {

        File.Delete(_basePath + "mergedvideo.avi");
        Process pss = new Process();
        processstartinfo si = new processstartinfo();
        si.FileName = @"D:\R&D Projects\AudioVideoConvertor\VideoAudioMerger\VideoAudioMerger\ffmpeg-win64-static\bin\ffmpeg.exe";
        si.UseShellExecute = false;
        si.CreateNowindow = true;
        si.Arguments = "-i \"" + _basePath + "test.avi\" -i \"" + _basePath + "audio.mp3\" -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 \"" + _basePath + "mergevideo1" + ".avi\"";
        pss.StartInfo = si;
        pss.Start();
        pss.WaitForExit();
        File.Delete(_basePath + "test.avi");
    }

此外,插入指向此示例项目https://drive.google.com/file/d/1JAt8ZUCCsIwez0fkdvq_2FGeGXif5rwu/view?usp=sharing链接

请帮忙找出为什么会出现此问题?

问题:

Could not load file or assembly 'Accord.Video.FFMPEG.x64.DLL' or one of its dependencies. The specified module Could not be found.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'Accord.Video.FFMPEG.x64.DLL' or one of its dependencies. The specified module Could not be found.

Source Error:

An unhandled exception was generated during the execution of the current web request. information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[FileNotFoundException: Could not load file or assembly 'Accord.Video.FFMPEG.x64.DLL' or one of its dependencies. The specified module Could not be found.]
 System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark& stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks) +0
 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,RuntimeAssembly reqAssembly,Boolean suppressSecurityChecks) +232
 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,Boolean forIntrospection) +113
 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,Boolean forIntrospection) +23
 System.Reflection.Assembly.Load(String assemblyString) +35
 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective) +49

[ConfigurationErrorsException: Could not load file or assembly 'Accord.Video.FFMPEG.x64.DLL' or one of its dependencies. The specified module Could not be found.]
 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective) +762
 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +259
 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +167
 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +238
 System.Web.Compilation.BuildManager.GetPreStartinitMethodsFromreferencedAssemblies() +78
 System.Web.Compilation.BuildManager.CallPreStartinitMethods(String preStartinitListPath,Boolean& isRefAssemblyLoaded) +334
 System.Web.Compilation.BuildManager.ExecutePreAppStart() +178
 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException) +746

[HttpException (0x80004005): Could not load file or assembly 'Accord.Video.FFMPEG.x64.DLL' or one of its dependencies. The specified module Could not be found.]
 System.Web.HttpRuntime.FirstRequestinit(HttpContext context) +552
 System.Web.HttpRuntime.EnsureFirstRequestinit(HttpContext context) +122
 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context) +737

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)