#ffmpeg #音视频 #编解码器 #多媒体 #像素格式 #音频

ac-ffmpeg

为FFmpeg库提供的简单安全的Rust接口

13个版本

0.18.1 2023年1月6日
0.17.4 2022年5月17日
0.17.3 2022年3月8日
0.17.1 2021年9月6日
0.15.5 2020年10月29日

57视频 中排名

Download history 174/week @ 2024-03-11 259/week @ 2024-03-18 282/week @ 2024-03-25 256/week @ 2024-04-01 207/week @ 2024-04-08 331/week @ 2024-04-15 212/week @ 2024-04-22 48/week @ 2024-04-29 148/week @ 2024-05-06 102/week @ 2024-05-13 129/week @ 2024-05-20 56/week @ 2024-05-27 83/week @ 2024-06-03 48/week @ 2024-06-10 42/week @ 2024-06-17 58/week @ 2024-06-24

236 每月下载量
4 个crate中使用了(3个直接使用)

MIT 许可证

250KB
6.5K SLoC

Rust 5K SLoC // 0.0% comments C 1.5K SLoC // 0.0% comments

FFmpeg库的Rust封装

Crates.io MIT licensed Build Status

该库为FFmpeg库提供Rust接口。我们专注于接口的安全性,而不是支持所有FFmpeg功能。

支持的功能

  • 解复用任何自包含的媒体容器
  • 复用任何自包含的媒体容器
  • 设置元数据
  • 寻道
  • 解码音频和视频
  • 编码音频和视频
  • 视频帧缩放和像素格式转换
  • 音频重采样
  • 比特流过滤器

要求

  • FFmpeg v4.x或v5.x库。以下库是必需的
    • libavutil
    • libavcodec
    • libavformat
    • libswresample
    • libswscale

编译

可以使用以下环境变量设置FFmpeg头文件和库的正确路径

  • FFMPEG_INCLUDE_DIR - FFmpeg头文件的路径
  • FFMPEG_LIB_DIR - FFmpeg库的路径

如果您需要为多个平台构建,可以向上述两个路径都附加 _PLATFORM_TARGET_TRIPLET 以创建特定于平台的环境变量,例如

  • FFMPEG_INCLUDE_DIR_AARCH64_LINUX_ANDROID = ${jniInclude}/arm64-v8a/
  • FFMPEG_LIB_DIR_AARCH64_LINUX_ANDROID = ${jniLibs}/arm64-v8a/
  • FFMPEG_INCLUDE_DIR_X86_64_LINUX_ANDROID = ${jniInclude}/x86_64/
  • FFMPEG_LIB_DIR_X86_64_LINUX_ANDROID = ${jniLibs}/x86_64/

如果您更喜欢静态链接,可以使用以下方法强制执行

  • FFMPEG_STATIC=1

许可证

尽管这个库是在MIT许可证下分发的,但FFmpeg项目有自己的许可证政策需要遵守。有关详细信息,请参阅 https://ffmpeg.org/legal.html

依赖关系

~195KB