Stuttering Opus audio in Chrome and Chromium

201 views
Skip to first unread message

Mikael Nousiainen

unread,
Nov 21, 2017, 2:34:01 AM11/21/17
to meetecho-janus
I'm having weird issues with latest versions of Chrome (62.0.3202.94 (Official Build) (64-bit)) and Chromium (61.0.3163.100 (Developer Build) Fedora Project (64-bit)) on Fedora 26 when playing back live-streamed Opus audio.

I've got the following config in janus.plugin.streaming.cfg:

[101]
type
= rtp
id
= 101
is_private
= yes
audio
= yes
video
= no
data
= no
audioiface
= 127.0.0.1
audioport
= 21101
audiopt
= 101
audiortpmap
= opus/48000/2

And I'm feeding Janus with a GStreamer pipeline:

gst-launch-1.0 pulsesrc ! audio/x-raw, rate=48000, channels=1, format=S16LE, payload=101 ! audioconvert ! audioresample ! opusenc bitrate=64000 complexity=10 frame-size=10 audio-type=generic bandwidth=fullband bitrate-type=vbr ! rtpopuspay ! udpsink host=127.0.0.1 port=21101

The played back audio is always perfect (does not have any unwanted artifacts) on Firefox (56 and 57), Firefox Android and even Chrome on Android.

However, on desktop Chrome and Chromium (on the same OS as Firefox) I get random and frequent (multiple per second) short breaks/stuttering in the audio -- although sometimes playback works for a while and then starts stuttering.

The connection is over 100 MBit LAN locally, so bandwidth is not the issue.

I've tried increasing Opus frame size, adding buffers to GStreamer, decreasing bitrate, etc without any success. I am running Janus and GStreamer on a relatively low-performance Orange Pi Zero device, but CPU usage is only around 20-30% and I've successfully opened 3 concurrent streams with Firefox with clean audio.

This sounds like it's something Chrome-specific, so I'm wondering if other Janus users have run into the same issue...

Reply all
Reply to author
Forward
0 new messages