zello-channel-api
zello-channel-api copied to clipboard
Zello ios client isn't playing opus frames with packet duration of 120 ms
I have a test python client that encodes audio data in opus at 120 ms packet duration. IOS client doesn't play the audio sent to it. There is no indication on the client either.
However if i encoded the audio at 60ms eveerything works great.
Is there a limitation on the ios clients for opus packet duration supported ?
Please help
just an update, i see the same behavior on Android Clients too , 120 ms packet stream isn't being played out. Any insights here helps .. thanks
Are you referring to to the frame size in opus?
Current implementation of Zello supports maximum frame size of 60 ms, which I believe was done based on the following note in OPUS documentation:
To encode a frame, opus_encode() or opus_encode_float() must be called with exactly one frame (2.5, 5, 10, 20, 40 or 60 ms) of audio data
https://www.opus-codec.org/docs/html_api/group__opusencoder.html https://wiki.xiph.org/index.php?title=Opus_Recommended_Settings&mobileaction=toggle_view_desktop#Framesize_Tweaking
Why do you want to use larger frame sizes?
@agatx thanks for the reference. I think i was bit confused here . I was supposed to know how to compute/use the packet_duration
that is set in StartStream. I am defaulting it to 60 but want to move to 200 ms. How can i achieve the smae as seen in the example below
{
"command": "start_stream",
"seq": 2,
"type": "audio",
"codec": "opus",
"codec_header": "gD4BPA==",
"packet_duration": 200
}
@agatx wondering if you had thoughts on the above ?
wondering if you had thoughts on the above ?
this is documentation error. It should mention as @agatx says that maximum is 60
Also, encoder used by JS SDK supports 10
, 20
, 40
and 60
only with 20
as default
@suhasHere I am trying to stream audio from an audio input with python on a device to Zello and then play it on a iOS device but I am having trouble and can't find any resources online, would you be able to help me?