Skip to content

remade_ffmpeg_rs 0.2.2 — current codec engines

Choose a tag to compare

@Ttimmahlax Ttimmahlax released this 07 Oct 22:08
· 272 commits to main since this release

The remade_ffmpeg_rs crate family, republished against the current codec engines. The family moves to 0.2.2: every crate in it is API-compatible with its previous release (checked with cargo semver-checks against crates.io), so cargo update picks it up with no manifest change. The HEVC, H.264 and Opus adapters took new minor versions (published earlier today from #25) because their engine requirements moved across 0.x boundaries; depend on those versions directly to take the engine upgrades.

Engine upgrades

Adapter Engine before Engine now
rff-codec-hevc 0.2.0 rusty_h265 0.1 rusty_h265 0.6 — 147/147 JCT-VC HEVC_v1 streams bit-exact, 6183/6183 SEI picture hashes
rff-codec-h264 0.3.0 rusty_h264 0.8 rusty_h264 0.16
rff-codec-opus 0.3.0 rusty-opus 0.9 rusty-opus 1.0
rff-codec-flac 0.2.2 rusty_flac 0.1 rusty_flac 0.2
rff-codec-jpeg 0.2.2 rusty_jpeg 0.3 rusty_jpeg 0.4

New

  • HEVC decode in the engine: rusty_h265 behind remade-ffmpeg, wired through MP4, MKV and MPEG-TS.
  • rtp:// input (RFC 6184 H.264, RFC 2435 JPEG) and the rtp, mjpeg and mpjpeg (MJPEG over HTTP) formats — new crates rff-format-rtp and rff-format-mjpeg.
  • H.264 encoder options: -preset, -profile, -g, -b:v, -qp; one packet per frame through the lookahead.

Fixes and performance

  • WAV demux reads the data chunk into its own buffer — no file-sized copy.
  • Decode-to-WAV output path: no trailer copy, one-pass conform.
  • rff-io: the empty host binds every interface, and RTCP on the port is not treated as a stream.
  • rusty_vp9 0.1.2: an opt-in prometheus-telemetry feature (off by default) that records the encoder's coefficient-token entropy bins; output is byte-identical with or without it.

Unchanged

rusty_aac / rff-codec-aac 1.1.0, rusty_mp3 / rff-codec-mp3 1.0.0, rusty_h265 0.6.0, rff-codec-webp / rff-format-webp 0.2.1, rusty_webp and rusty_vorbis 0.1.1 were already current on crates.io and are not republished; they work with this release as-is.

What's Changed

  • rusty_aac 0.4.0: measured vs FFmpeg, LATM/LOAS, HE-AAC signalling, 5.1 layouts by @Ttimmahlax in #2
  • add release-plz so merged dependency bumps actually reach crates.io by @Ttimmahlax in #5
  • ci: call the shared portfolio check, so a dependency bump has a baseline by @Ttimmahlax in #8
  • bump rusty_alloc-api to =1.1.6 by @Ttimmahlax in #7
  • rtp:// and MJPEG-over-HTTP inputs, rusty_h264 0.12 with preset/profile, rusty_jpeg 0.4.0 from crates.io by @Ttimmahlax in #11
  • rff-io: the empty host binds every interface, and RTCP on the port is not a stream by @Ttimmahlax in #13
  • ci: --no-fail-fast, so one broken crate stops hiding every other crate's tests by @Ttimmahlax in #15

New Contributors

Full Changelog: v0.1.0...v0.2.2

What's Changed

  • rusty_aac 0.4.0: measured vs FFmpeg, LATM/LOAS, HE-AAC signalling, 5.1 layouts by @Ttimmahlax in #2
  • add release-plz so merged dependency bumps actually reach crates.io by @Ttimmahlax in #5
  • ci: call the shared portfolio check, so a dependency bump has a baseline by @Ttimmahlax in #8
  • bump rusty_alloc-api to =1.1.6 by @Ttimmahlax in #7
  • rtp:// and MJPEG-over-HTTP inputs, rusty_h264 0.12 with preset/profile, rusty_jpeg 0.4.0 from crates.io by @Ttimmahlax in #11
  • rff-io: the empty host binds every interface, and RTCP on the port is not a stream by @Ttimmahlax in #13
  • ci: --no-fail-fast, so one broken crate stops hiding every other crate's tests by @Ttimmahlax in #15

New Contributors

Full Changelog: v0.1.0...v0.2.2