opus VS cmake-rs

Compare opus vs cmake-rs and see what are their differences.

opus

Modern audio compression for the internet. (by xiph)

cmake-rs

Rust build dependency for running cmake (by rust-lang)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
opus cmake-rs
25 2
2,069 270
3.4% 3.7%
9.7 2.5
10 days ago 16 days ago
C Rust
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

opus

Posts with mentions or reviews of opus. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-23.
  • Permutation Iteration and Random Access
    4 projects | news.ycombinator.com | 23 Aug 2023
    There is a pattern here (that also goes with the author's prior article on inverting gauss' sum formula): Generally if if you can make a formula that counts the combination of things you can convert that into a code to encode and decode those combinations into indexes.

    So for example the opus audio codec needs to encode/decode vectors of dimension n whos absolute values sum to k. https://github.com/xiph/opus/blob/master/celt/cwrs.c#L74

    Or this rolling cuckoo filter that optimally encode/decode four sorted numbers in a range 0..2N with the constraint that the they span a range of N. https://github.com/sipa/bitcoin/blob/202006_cuckoo_filter/sr...

    If you're lucky there will be closed form expressions for the encoding and decoding equations. (There for both of the above, at least for some parameters, but in both those examples the implementations use small tables because for the ranges involved the tables end up being faster than sqrts).

  • Multiple tags with the same name in metadata
    2 projects | /r/ffmpeg | 8 Jan 2023
    If there are multiple tags with the same name, Ffmpeg will only use the last tag. If you really need to have multiple tags with the same name in your OPUS files, use opusenc instead (https://opus-codec.org/). Beware that some playback software does not display multiple artists gracefully.
  • I built a Zoom clone 100% IN RUST
    12 projects | /r/rust | 24 Oct 2022
    AFAIK ogg isn't really suitable for low latency audio streaming. Consider the Opus codec instead.
  • Hey r/audioengineering, I made an app that makes it easier to get feedback on your mix or song idea
    2 projects | /r/audioengineering | 26 Sep 2022
    I'm not writing anything myself. The decoder I'm using the C implementation (libopus) compiled to webassembly by this guy.
  • Windows HEVC video codec from Microsoft costs $0.99
    2 projects | news.ycombinator.com | 4 Aug 2022
    > The only reason you wouldn't use HEVC is if your hardware lacks support

    No, the main problem with HEVC is that it is not licensed under royalty-free terms. In contrast, almost all commonly used internet formats and protocols are licensed under royalty-free terms so everyone is free to use and implement them without paying a licensing fee. Video has been an anomaly.

    Imagine if HTML wasn't licensed under royalty-free terms. Or TCP/IP or HTTP or SMTP or any other internet format or protocol that you (probably) use every day. There's no reason why video needs to be a special case here.

    Fortunately, video formats like AV1 (https://aomedia.org/) and audio formats like Opus (https://opus-codec.org/) exist for high quality, royalty-free video and audio coding. These formats are deployed in the real world right now. YouTube, for example, makes extensive use of both.

  • A maximally-dense encoding for n-choose-k
    2 projects | news.ycombinator.com | 20 May 2022
    At the heart of the opus audio codec is a maximally-encoding for combinations with replacement and sign[1], which is n-choose-k where n can be reused and there is a sign for each chosen dimension. Or stated another way, n dimensional integer vectors where the sum of absolute values add to k.

    This enumeration can be implemented with the same kind of recursion as in the link, with a little bit of elaboration. Though interestingly, it (and the formula in the link) can also be be implemented with recursive table lookups quite efficiently, and for small fixed N with closed form formula (also true for the simpler combination code in the link).

    These maximally dense algebraic codes can be designed for a great many possible applications.

    For example, for a generational rolling cuckoo filter Pieter Wuille and I came up with an algebraic code for coding 4 sorted generation numbers with the requirement that all 4 are within a window of half the total range[2]. In prior published work on cuckoo filters used a large table of all possible values of combinations with replacement (to efficiently pack small sorted numbers). We found the algebraic code to be faster than a big dumb table, presumably due to cache locality, even though our fastest encoder/decoder still use tables but only tiny ones (at least for the sizes we were considering).

    A challenge for implementing these sorts of functions is that their inverses often require operations like integer square or cube roots which are not particularly fast unless the ranges are small enough to implement them with tables.

    [1] https://github.com/xiph/opus/blob/master/celt/cwrs.c#L74

  • M1 Users - How are you Cross Compiling?
    12 projects | /r/rust | 30 Nov 2021
    Got it, that makes sense -- thanks for the help! Another commenter pointed out some of those oddities in the flags; It looks like something opus is computing/setting in their makefile which the dependency is invoking.
  • [OC] ytmdl now supports getting metadata from Spotify as well. ytmdl v2021.08.01 Release
    4 projects | /r/linux | 23 Aug 2021
  • I won't be posting any more preimages against neuralhash for now
    2 projects | /r/apple | 22 Aug 2021
    My name is Greg Maxwell. I am a retired. My main areas of interest are cryptography, digital signal processing, error correcting codes, and computer networking. Well known organizations I previously worked at include Juniper Networks and Mozilla. I am one of the authors of the Opus audio codec (among other codecs). I've contributed to many open source protocols and packages. I mostly entertain myself with recreational mathematics and reading. In the distant past I achieved some minor notoriety for my contributions to cracking the CSS protection scheme for DVDs and for publishing a huge cache of historical and public domain academic documents that JStor was keeping behind a paywall. I was one of the earliest developers of Bitcoin and developed numerous parts of the system including the cryptographic code and many of the privacy protocols used there. Some peer reviewed publications I've coauthored include 1, 2, 3, and 4. My partner is an attorney for creative commons and has previously served on the board of organizations such as Wikimedia and the Free Software foundation.
  • Opus – an open source parallel corpus
    3 projects | news.ycombinator.com | 14 Aug 2021
    Opus is also the name of an incredibly well compressed audio codec: https://opus-codec.org

cmake-rs

Posts with mentions or reviews of cmake-rs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-30.

What are some alternatives?

When comparing opus and cmake-rs you can also consider the following projects:

libvorbis - Haskell binding for libvorbis, for decoding Ogg Vorbis audio files

go-m3u8 - Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8)

argos-translate - Open-source offline translation library written in Python

vorbis - Reference implementation of the Ogg Vorbis audio format.

vgmstream - vgmstream - A library for playback of various streamed audio formats used in video games.

libopenaptx - Open Source implementation of Audio Processing Technology codec (aptX)

vgmstream - vgmstream - A library for playback of various streamed audio formats used in video games. [Moved to: https://github.com/vgmstream/vgmstream]

HanBaoBao - Mandarin Chinese text segmentation and mobile dictionary Android app (中文分词)

audiopus_sys - Rust FFI-binding of Opus.

AppleNeuralHash2ONNX - Convert Apple NeuralHash model for CSAM Detection to ONNX.

homebrew-macos-cross-toolchains - macOS cross compiler toolchains

concentus.oggfile - Implementing support for reading/writing .opus audio files using Concentus