MacCatalyst(MAUI)中启动FFmpeg遇权限被拒绝问题求助
Blazor Hybrid(.NET MAUI)FFmpeg权限拒绝问题解决方法
检查FFmpeg可执行文件权限
确保FFmpeg二进制文件具备可执行权限:- Windows:右键FFmpeg文件→属性→安全选项卡,为当前登录用户添加「读取和执行」权限。
- Mac:打开终端,执行
chmod +x /完整路径/ffmpeg赋予可执行权限;若提示“无法打开,因为来自身份不明的开发者”,前往「系统设置→隐私与安全性」,找到对应提示并允许运行。
修正WorkingDirectory配置错误
代码中WorkingDirectory被设置为视频文件路径,这是错误的——该属性需要传入目录路径而非文件路径。修改为视频文件所在的目录:ffmpegProcess.StartInfo.WorkingDirectory = Path.GetDirectoryName(videoPath);确保视频文件路径权限合规
- Windows:避免将视频放在系统保护目录(如
C:\Program Files、系统盘根目录),优先使用用户目录(如Documents);若以UWP模式打包,需在Package.appxmanifest中添加文件访问相关权限。 - Mac:在项目的
Info.plist中添加文件访问权限描述,比如:<key>NSDocumentsFolderUsageDescription</key> <string>需要访问视频文件以获取媒体信息</string>
- Windows:避免将视频放在系统保护目录(如
优化FFmpeg参数传递方式
避免路径空格导致的参数解析异常,推荐使用.NET 6+支持的ArgumentList传递参数,更安全可靠:ffmpegProcess.StartInfo.ArgumentList.Add("-i"); ffmpegProcess.StartInfo.ArgumentList.Add(videoPath);配置MAUI跨平台权限
- Windows端:在
Platforms/Windows/Package.appxmanifest中添加必要权限:<Capabilities> <uap:Capability Name="documentsLibrary" /> <uap:Capability Name="picturesLibrary" /> </Capabilities> - Mac端:在
Platforms/MacCatalyst/Info.plist中补充权限说明,确保系统允许应用访问文件。
- Windows端:在
内容的提问来源于stack exchange,提问作者Cyril Gupta
相关产品推荐
相关产品推荐

