本帖最后由 shuimiao 于 2026-6-2 22:55 编辑
类库简介
本项目是面向火山视窗的 FFmpeg 封装类库,分为两条能力线:FFmpeg命令行 和 FFmpeg源码模式。前者封装 ffmpeg.exe / ffprobe.exe 的命令行调用,适合快速完成常见音视频处理任务;后者直接链接 FFmpeg SDK,封装 libavformat、libavcodec、libavfilter、libswscale、libswresample 等底层接口,适合需要更细控制、播放器、解码、编码、滤镜、转封装和媒体信息读取的场景。 FFmpeg命令行封装
FFmpeg命令行 以友好的火山调用方式封装 FFmpeg 命令行能力,内置工具路径、命令构建、执行结果、日志、超时和批量任务管理。适合不想直接拼复杂命令的用户使用。 主要能力包括: - 媒体探测、JSON 信息读取、格式/时长/流信息分析。
- 音视频剪辑、转码、压缩、截图、提取音频、转 MP3/WAV。
- 合并、分割、批量处理、批量截图、批量转码。
- 水印、字幕、封面、基础滤镜、音量调整等常用流程。
- 自动准备示例素材,已有素材可复用,不存在时自动生成。
- 支持完整命令行输出、错误输出、退出码和运行状态反馈。
FFmpeg源码模式封装
FFmpeg源码模式 不依赖外部命令进程,而是直接调用 FFmpeg C API。类库已随包携带 FFmpeg 8.1.1 full shared x64 SDK,包含 include、lib、dll,用户引用类库后即可在 64 位火山视窗项目中编译使用。 主要能力包括: - 输入媒体打开、格式探测、流信息、元数据、章节、字幕流、附件流读取。
- 包 [size=0.92em]AVPacket、帧 [size=0.92em]AVFrame、字典 [size=0.92em]AVDictionary 等底层对象封装。
- 解码器、编码器、转封装输出、文本字幕流、附件写入。
- 视频缩放、音频重采样、音频队列、滤镜图、位流过滤器。
- 包/帧 side data、extradata、封面图、附件数据导出。
- 视频/音频基础播放器,支持播放、暂停、继续、停止、跳转、音量、进度、状态读取。
- 支持 GPU 设备枚举、硬件设备绑定、播放器 GPU 设置和渲染模式设置。
- 提供便捷层和批量层,用底层接口组合常用转码、截图、字幕、音频处理和批量流程。
示例项目
类库包含命令行调用示例和源码模式调用示例。示例会自动创建桌面 FFmpeg示例媒体 目录,并在素材不存在或不可读时自动生成测试素材;已有素材会直接复用,方便用户删除示例媒体后重新运行,也方便发布时不携带大体积媒体文件。 适用场景 - 需要在火山视窗中快速调用 FFmpeg 做常见音视频处理。
- 需要批量转码、截图、剪辑、提取音频、加字幕、水印或封面。
- 需要直接使用 FFmpeg SDK 做更底层的解码、编码、滤镜和播放器功能。
- 需要一个命名简洁、结构清晰、火山语法友好的 FFmpeg 类库。
|