Closed lroellin closed 6 years ago
If we go with just audio, the OPUS codec should be no problem performance-wise.
There's Java implementation here: https://github.com/lostromb/concentus#performance. It mentions the following performance characteristics:
For those interested in the expected real-world performance of the library, I ran some quick C# benchmarks on a Raspberry Pi 1 (700mhz ARM) at various modes: 0.82x realtime - 48Khz Voice, Stereo, 32Kbps (SILK), Compexity 0 0.98x realtime - 48Khz Music, Stereo, 128Kbps (CELT), Compexity 10 1.55x realtime - 16Khz Voice, Mono , 32Kbps (SILK), Compexity 0 1.70x realtime - 48Khz Music, Stereo, 96Kbps (CELT), Compexity 0 3.59x realtime - 16Khz Music, Mono , 96Kbps (CELT), Compexity 0
I will check now if AV1 would be suitable, that would include video too.
I can't find any library with Java bindings yet. This is a "fast and safe" AV1 encoder, written in Rust: https://github.com/xiph/rav1e
I'll check if we can get any performance out of this...
We've decided to check if we get any decent performance out of rav1e. We could maybe split the project into a "stream AV between defined peers" and "find peers via TomP2P"!
If you look for Y4M sample files, for testing rav1e: https://media.xiph.org/video/derf/y4m/
We've decided to not implement encoding/decoding ourselves, so we can close this issue
Are these codecs suitable for a P2P Skype on a laptop?
Note: we've not yet defined if it's just about audio, or video too.