NReco错误:“指定的可执行文件不是此OS平台的有效应用程序”

时间:2018-07-17 21:12:25

标签: c# vb.net ffmpeg nreco

我正在使用NReco转换视频。我像下面这样声明转换器,并向ConvertProgress添加一个处理程序。

Dim vid_Convert As New FFMpegConverter
AddHandler vid_Convert.ConvertProgress, Sub(sender, e) vidConvertProgress(folder,fname,fext,fverdest,fint,fcount,fhost,e)
vid_Convert.ConvertMedia(file_temp, Nothing, file_dest, "mp4", cSettings)

媒体转换正常。问题出在处理程序中,我在其中声明了一个新的转换器并让它执行GetVideoThumbnail(在完成先前的转换后),如下所示:

Dim vid_Extract As New FFMpegConverter
vid_Extract.GetVideoThumbnail(inputFile, outputFile, extractposition)

这将产生错误“指定的可执行文件不是此OS平台的有效应用程序”。但是,我已经在程序中的其他地方独立执行了GetVideoThumbnail方法,没有问题。由于某种原因,如果它在处理程序中执行,它将无法正常工作。有办法解决吗?

1 个答案:

答案 0 :(得分:0)

我假设您使用的是NReco.VideoConverter nuget程序包,该程序包嵌入ffmpeg.exe并在首次使用时将其提取。您很可能并行调用“ ConvertMedia”和“ GetVideoThumbnail”,这可能会导致错误提取ffmpeg.exe。

此问题的解决方法可能是在应用程序启动时(在Program.cs中)调用new FFMpegConverter().ExtractFFmpeg();,以确保在“ ConvertMedia”和“ GetVideoThumbnail”调用上已提取ffmpeg。