0

我正在使用 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 方法,没有任何问题。出于某种原因,如果它在处理程序中执行,它将不起作用。有没有解决的办法?

4

1 回答 1

0

我假设您使用嵌入 ffmpeg.exe 并在首次使用时提取它的 NReco.VideoConverter nuget 包。您很可能同时调用“ConvertMedia”和“GetVideoThumbnail”,这可能会导致 ffmpeg.exe 的提取不正确。

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

于 2018-07-18T07:20:31.360 回答