这个项目能做什么
FFMpegCore 是一个 .NET Standard 库,封装了 FFMpeg 和 FFProbe 命令行工具,使 .NET 应用能够进行媒体分析和转换。它同时支持同步和异步调用。
媒体分析通过 FFProbe 完成,它通过 Analyse 或 AnalyseAsync 返回给定输入路径的媒体信息。
转换通过 FFMpeg 使用流式参数构建器处理。输入可以来自文件或管道,输出可以写入文件或管道。选项涵盖视频和音频编解码器、恒定速率因子、可变比特率、视频滤镜(如缩放)以及用于网页播放的 faststart。该库还支持与流之间的相互转换,例如将 VP9/WebM 输出写入流。
辅助方法简化了常见操作:从视频中捕获图像快照(持久化到磁盘,或通过可选的 System.Drawing.Common 或 SkiaSharp 扩展包在内存中处理)、捕获 GIF 快照并可选地保持宽高比进行缩放、合并视频片段、按时间范围创建子视频、将图像序列合并为视频、静音音频、提取音轨、替换音轨,以及将静态图像与音频文件组合。
输入管道允许直接从程序内存写入视频帧,而无需保存中间图像文件,并能在帧生成或接收时进行即时转换。IPipeSource 接口提供了针对流、原始视频帧和原始音频采样的实现。原始视频帧源可以设置帧率,图像扩展包提供了将 System.Drawing.Bitmap 或 SKBitmap 适配到帧接口的包装器。
二进制文件可以在运行时通过 FFMpegCore.Extensions.Downloader 包安装,该包使用 ffbinaries API 将 ffmpeg 和 ffprobe 下载到配置的二进制文件夹中。或者,可以通过包管理器手动安装二进制文件,例如 Windows 上的 Chocolatey、macOS 上的 Homebrew 或 Ubuntu 上的 apt。
路径配置可以通过 FFOptions 类全局设置、按运行设置,或通过首次使用时读取的 ffmpeg.config.json 文件设置。选项包括二进制文件夹、临时文件文件夹和工作目录。对于 32 位和 64 位混合部署,二进制文件夹内的单独 x64 和 x86 子文件夹可以存放特定架构的二进制文件;否则,库会直接在二进制文件夹中查找。
该项目指出,较旧的 ffmpeg 版本可能不支持该库暴露的所有参数,并且 CI 针对 ffmpeg 8.1 进行测试。它基于 MIT 许可证发布。
评论
0 评分人数达到10人后显示
登录后参与讨论。