https://github.com/pion/opus
Pure Go implementation of Opus
https://github.com/pion/opus
go golang pion
Last synced: 8 months ago
JSON representation
Pure Go implementation of Opus
- Host: GitHub
- URL: https://github.com/pion/opus
- Owner: pion
- License: mit
- Created: 2022-06-12T20:04:03.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-04-22T17:22:32.000Z (10 months ago)
- Last Synced: 2025-04-22T18:42:19.041Z (10 months ago)
- Topics: go, golang, pion
- Language: Go
- Homepage: https://pion.ly/
- Size: 206 KB
- Stars: 431
- Watchers: 9
- Forks: 17
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Pion Opus
Pure Go implementation of the Opus Codec
This package provides a Pure Go implementation of the [Opus Codec](https://opus-codec.org/)
### Why Opus?
* **open and royalty-free** - No license fees or restrictions. Use it as you wish!
* **versatile** - Wide bitrate support. Can be used in constrained networks and high quality stereo.
* **ubiquitous** - Used in video streaming, gaming, storing music and video conferencing.
### Why a Go implementation?
* **empower interesting use cases** - This project also exports the internals of the Encoder and Decoder.
Allowing for things like analysis of a Opus bitstream without decoding the entire thing.
* **learning** - This project was written to be read by others. It includes excerpts and links to [RFC 6716][rfc6716]
* **safety** - Go provides memory safety. Avoids a class of bugs that are devastating in sensitive environments.
* **maintainability** - Go was designed to build simple, reliable, and efficient software.
* **inspire** - Go is a power language, but lacking in media libraries. We hope this project inspires the next generation to build
more media libraries for Go.
You can read more [here](https://pion.ly/blog/pion-opus/)
### RFCs
#### Implemented
- **RFC 6716**: [Definition of the Opus Audio Codec][rfc6716]
[rfc6716]: https://tools.ietf.org/html/rfc6716
### Running
See our [examples](examples) for demonstrations of how to use this package.
### Roadmap
The library is used as a part of our WebRTC implementation. Please refer to that [roadmap](https://github.com/pion/webrtc/issues/9) to track our major milestones.
See also [Issue 9](https://github.com/pion/opus/issues/9)
### Community
Pion has an active community on the [Slack](https://pion.ly/slack).
Follow the [Pion Twitter](https://twitter.com/_pion) for project updates and important WebRTC news.
We are always looking to support **your projects**. Please reach out if you have something to build!
If you need commercial support or don't want to use public methods you can contact us at [team@pion.ly](mailto:team@pion.ly)
### Contributing
Check out the [contributing wiki](https://github.com/pion/webrtc/wiki/Contributing) to join the group of amazing people making this project possible
### License
MIT License - see [LICENSE](LICENSE) for full text