pion / opus Goto Github PK
View Code? Open in Web Editor NEWPure Go implementation of Opus
Home Page: https://pion.ly/
License: MIT License
Pure Go implementation of Opus
Home Page: https://pion.ly/
License: MIT License
Currently we are hardcoded to expect 4 subframes (20Ms)
We need to go through and fix the cases where we do that.
Trying to decode Telegram voice messages, get unsupported configuration mode: 2
Sample file:
https://file.io/LAv06s4gaw1o
NOTE: Low Bitrate Redundancy frames are low priority for on-disk opus but you will need to support/skip them in the webrtc context.
Currently none of it is implemented
opus/examples/playback/README.md
Line 9 in 70baa27
Running this command produces an error message:
go: github.com/pion/opus/examples/playback@latest (in github.com/pion/opus/examples/[email protected]):
The go.mod file for the module providing named packages contains one or
more replace directives. It must not contain directives that would cause
it to be interpreted differently than if it were the main module.
In a web worker , this would make it easy to build various apps that need sound
in a server , mobile iot desktop you can do the same with Wazero with no cgo also.
Question: this is a decoder only ?
no plans to also encode ?
If I understand correctly, pion opus only support decoding operations, is there any plan to support encoding operations in the future?
I've written a streaming-WebRTC gateway app that can convert av streams from streaming devices to WebRTC via pion, but now there's a tricky problem, the audio encoding provided by these media devices is usually aac (or can be set to pcm, which is configurable on the device), I can't find a library that implements pcm -> opus in pure go, only some library based on c-go (like this one). The c-go based library has some limitations (e.g. it can't be self-contained), so it would be nice if pion opus supported pcm->opus.
.
.
Sets up all the testing and linters
Currently a noop
Defined in https://datatracker.ietf.org/doc/html/rfc6716#section-4.2.7.5.4
README.md links to https://github.com/pion/opus/blob/master/LICENSE, however, LICENSE file does not exist.
Extract the ec_ctx
from libopus and write tests against it. Write a Go idiomatic version that passes all the same tests
Hello!
I was looking at table_of_contents_header.go, and noticed that the Configuration.mode() method returns 0 if c = 0.
According to RFC6716, if c = 0, it should be determined to be in SILKOnly mode.
Can I fix it?
master
Decoding SILK OGG OPUS streams and some of them are changing from to CELT codec after some time and thus failing.
Proper decoding of the of the whole SILK encoded stream
oggreader returned error that CELT is not supported
The problem is in the loop that is reading the segments. It does not handle the case if the segment's length is 255, which means that the OPUS packet spans multiple segments
opus/pkg/oggreader/oggreader.go
Line 157 in 8667a1a
Pseudo code of the correct loop can be found at https://gist.github.com/amishshah/68548e803c3208566e36e55fe1618e1c
Implementing something similar in my own, heavily modified oggreader, solved all the decoding problems.
Currently we only process correctly if lagAbsolute
is true.
https://github.com/pion/opus/blob/master/internal/silk/decoder.go#L1118
This is a covering ticket for the Pion Opus roadmap. If you have any requests feel free to leave them here/vote on others.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.