Skip to content

rib/rust-ffmpeg-sys-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust FFI bindings for ffmpeg

Low-level bindings for ffmpeg autogenerated with bindgen. This crate supports cross-compilation automatically.

For higher-level library, see ffmpeg crate.

Building

By default, the crate will search for ffmpeg v4 installed on the system.

This crate can also download, build and statically link its own copy of ffmpeg if you enable build feature:

[dependencies]
ffmpeg-sys = { version = "4", features = ["build"] }

Versioning

A word on versioning: major and minor versions track major and minor versions of FFmpeg, e.g. 4.2.x of this crate has been updated to support the 4.2.x series of FFmpeg. Patch level is reserved for bug fixes of this crate and does not track FFmpeg patch versions.

Feature flags

In addition to feature flags declared in Cargo.toml, this crate performs various compile-time version and feature detections and exposes the results in additional flags. These flags are briefly documented below; run cargo build -vv to view more details.

  • ffmpeg_<x>_<y> flags (new in v4.3.2), e.g. ffmpeg_4_3, indicating the FFmpeg installation being compiled against is at least version <x>.<y>. Currently available:

    • ffmpeg_3_0
    • ffmpeg_3_1
    • ffmpeg_3_2
    • ffmpeg_3_3
    • ffmpeg_3_1
    • ffmpeg_4_0
    • ffmpeg_4_1
    • ffmpeg_4_2
    • ffmpeg_4_3
  • avcodec_version_greater_than_<x>_<y> (new in v4.3.2), e.g., avcodec_version_greater_than_58_90. The name should be self-explanatory.

  • ff_api_<feature>, e.g. ff_api_vaapi, corresponding to whether their respective uppercase deprecation guards evaluate to true.

  • ff_api_<feature>_is_defined, e.g. ff_api_vappi_is_defined, similar to above except these are enabled as long as the corresponding deprecation guards are defined.

See Cargo features to control which codecs are included.

Based On

This combines bits from meh/rust-ffmpeg-sys and zmwangx/rust-ffmpeg-sys because when you have two almost identical projects that aren't actively maintained what you really need is a third!

About

FFmpeg bindings for Rust.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 98.3%
  • Other 1.7%