【问题标题】:NReco Error: "The specified executable is not a valid application for this OS platform"NReco 错误:“指定的可执行文件不是此 OS 平台的有效应用程序”
【发布时间】:2018-07-18 15:20:31
【问题描述】:

我正在使用 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)

这会产生错误“指定的可执行文件不是此操作系统平台的有效应用程序”。但是,我已经在程序的其他地方自行执行了 GetVideoThumbnail 方法,没有任何问题。出于某种原因,如果它在处理程序中执行,它将无法工作。有没有办法解决这个问题?

【问题讨论】:

    标签: c# vb.net ffmpeg nreco


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复 - 我找到了另一个解决方案:我升级到了最新版本的 VideoConverter.dll,它工作正常。
    • 顺便说一句,我在这里发布了一个稍微相关的问题:stackoverflow.com/questions/51400594/…
    • 另一个注意事项 - 我将处理移动到一个线程并再次遇到相同的错误。我使用了您对 ExtractFFmpeg 的建议,它奏效了。再次感谢!
    • 我收回了它 - 它工作了几次,由于处于线程中,同样的错误又回来了。它在 ConvertMedia 命令处产生错误...对不起。 :(
    • 这是来自有同样问题的人的帖子:stackoverflow.com/questions/29734440/…
    猜你喜欢
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2020-07-13
    • 2018-03-30
    相关资源
    最近更新 更多