Judging by the lack of replies, I guess this is not a use case that the
current netjack implementation supports right?
I don't know how much work would imply making netjack a viable solution for
WiFi streaming but if it is something relatively easy to do, it might be
interesting to explore that path considering the lack of alternatives for
"low latency" audio streaming, bad bluetooth audio quality and support,
proliferation of devices and omnipresence of WiFi networks across the globe.
Thank you all anyway for your work on Jack!
Cheers,
André
On Fri, May 15, 2015 at 7:51 PM, André Pinto <andredasilvapinto(a)gmail.com>
wrote:
Hello,
I've been playing around with Jack/Netjack and the Opus codec in order to
setup a "low latency" WiFi audio stream at home.
After compiling Opus with custom modes and Jack2 with Opus support (both
from the master branches of the respective repositories), I was able to run
the Master-Slave setup:
Master.
jackd -R -d alsa -d hw:1 -D=false -r44100 -S -n16
jack_load netmanager
Slave:
jackd -R -d net -C0 -P2 -o0 -i0 -O320 -M1200 -l5
+ jack_connect to route the net input on the master to the speakers
But as I was getting quite frequent audio deterioration, with the master
showing messages like these:
Packet(s) missing from... -1 1
Wrong packet type : a
JackEngine::XRun: client = SLAVE_HOSTNAME was not finished, state = Running
JackEngine::XRun: client netmanager finished after current callback
JackAudioDriver::ProcessGraphAsyncMaster: Process error
Wrong packet type : a
Packet(s) missing from... -1 1
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackEngine::XRun: client = SLAVE_HOSTNAME was not finished, state =
Triggered
I've thought that maybe I should just try increasing the network latency
argument on the slave, as, for my use case, I'm happy with latency < 200
ms.
By using something like -l30 (the maximum I'm allowed to set) on the slave
I was able to greatly diminish the Process errors (I still get the same
lots of wrong packet type and packet missing messages though) but it didn't
fix the audio artifacts. Actually sometimes this change makes the playback
even worse with ms pauses every second.
So I would like to know if there is any other way to relax the low latency
requirement in order to improve playback reliability. Or is there some kind
of incompatibility in the configuration I'm passing to both endpoints that
is causing these problems?
Thanks!
André.