linux 上的 C#:linux System.IO.DirectoryNotFoundException 上的 FFmpeg (FFMediaToolkit):找不到默认的 FFmpeg 目录

C# on linux: FFmpeg (FFMediaToolkit) on linux System.IO.DirectoryNotFoundException: Cannot found the default FFmpeg directory

我在 rider 中有 C# 项目,并且 FFMediaToolkit 通过 NuGet 安装。我制作了 MediaBuilder 的实例。当我点击 运行 时,我收到此错误消息:

/home/john/Projects/Slimulator/bin/Debug/net5.0/Slimulator /home/john/Projects/Slimulator/test_mazes/small-maze-food2.png
Loading file /home/john/Projects/Slimulator/test_mazes/small-maze-food2.png
Unhandled exception. System.IO.DirectoryNotFoundException: Cannot found the default FFmpeg directory.
On Windows you have to set "FFmpegLoader.FFmpegPath" with full path to the directory containing FFmpeg shared build ".dll" files
For more informations please see https://github.com/radek-k/FFMediaToolkit#setup
   at FFMediaToolkit.FFmpegLoader.LoadFFmpeg()
   at FFMediaToolkit.Encoding.Internal.OutputContainer.Create(String extension)
   at FFMediaToolkit.Encoding.MediaBuilder..ctor(String path, Nullable`1 format)
   at FFMediaToolkit.Encoding.MediaBuilder.CreateContainer(String path)
   at Slimulator.AnimationBuffer..ctor(String videoPath, Int32 height, Int32 width, Int32 frameRate) in /home/john/Projects/Slimulator/AnimationBuffer.cs:line 11
   at Slimulator.Simulation..ctor(Space space, String seed, String outputVideoPath) in /home/john/Projects/Slimulator/Simulation.cs:line 12
   at Slimulator.Launcher.Main(String[] args) in /home/john/Projects/Slimulator/Launcher.cs:line 8

Process finished with exit code 134.

当我去 https://github.com/radek-k/FFMediaToolkit#setup 时,我发现了这个:

Linux - Download FFmpeg using your package manager.

You need to set FFmpegLoader.FFmpegPath with a full path to FFmpeg libraries.

If you want to use 64-bit FFmpeg, you have to disable the Build -> Prefer 32-bit option in Visual Studio project properties.

我已经通过 pacman 安装了 FFmpeg 包,但我仍然收到这些错误。

我该如何解决这个问题,以便我可以在 linux 上毫无问题地使用 FFMediaToolkit
谢谢你的帮助

EDIT1: 我使用 Arch linux。 EDIT2: github 上有相关问题:https://github.com/radek-k/FFMediaToolkit/issues/80

解决方案是设置:

FFmpegLoader.FFmpegPath = "/usr/lib/";

因为 arch linux 的安装位置与其他发行版不同。