You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位.NET Framework 4.8应用使用FFmpeg.AutoGen 7.0调用FFmpeg报错

解决FFmpeg.AutoGen 7.0在.NET Framework 4.8中调用ffmpeg方法抛出NotSupportedException的问题

可能的原因及对应解决步骤

1. 二进制文件架构不匹配

  • 确认你引用的FFmpeg二进制文件是64位版本,和你的64位应用架构保持一致,32位FFmpeg会导致绑定调用失败。
  • 检查项目平台目标:右键项目→属性→生成→平台目标,设置为x64,不要用Any CPU(避免运行时自动切换到32位环境)。

2. 初始化流程冲突

  • 移除DynamicallyLoadedBindings.Initialize();调用,FFMpegBinariesHelper.RegisterFFMpegBinaries()已经完成了绑定初始化工作,重复初始化会引发冲突。
  • 修改后的构造函数示例:
public VideoPlayer()
{
    InitializeComponent();
    // 手动指定FFmpeg二进制文件路径,比自动注册更可靠
    var ffmpegBinPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FFmpeg", "bin");
    FFMpegBinariesHelper.RegisterFFMpegBinaries(ffmpegBinPath);
    Console.WriteLine($"FFmpeg version info: {ffmpeg.av_version_info()}");
}

3. FFmpeg与FFmpeg.AutoGen版本不兼容

  • 确保使用的FFmpeg二进制文件是7.0.x版本,和FFmpeg.AutoGen 7.0严格对应,版本不匹配会导致方法绑定失效。
  • 可通过命令行执行ffmpeg -version确认FFmpeg版本号。

4. 文件加载或权限问题

  • 将FFmpeg/bin目录下的所有DLL复制到应用程序输出目录(如bin\x64\Debug),避免路径加载异常。
  • 确认应用程序有权限访问FFmpeg文件目录,权限不足会导致DLL加载失败。

5. 项目不安全代码设置

  • 确保项目启用了不安全代码:右键项目→属性→生成→勾选“允许不安全代码”,你的代码中使用了unsafe关键字和指针,必须开启该设置。

内容的提问来源于stack exchange,提问作者auetic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:32:41