Could not load file or assembly 'Accord.Video.FFMPEG.x64.DLL' or one of its dependencies. The specified module could not be found

1

Trying to merge image and audio file to create a video file.

I have tried

  • changing the arch (x86 and x64).
  • Manually moved all the dependent .dlls for "Accord.Video.FFMPEG.x64.DLL" to the the bin.
  • used both Accord and Aforge, both of them have the same issue.
  • installed VC++ redistribuable 2013 and 2015-19

Following is the base code:

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");
    }

Also, putting in the link to this sample project, https://drive.google.com/file/d/1JAt8ZUCCsIwez0fkdvq_2FGeGXif5rwu/view?usp=sharing.

Please help out in finding why this issue is coming?

Issue:

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, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +232
 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +113
 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, 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
c#
ffmpeg
webforms
accord.net
asked on Stack Overflow Sep 24, 2020 by Sandeep Kumar

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0