jackaudio / jack2

jack2 codebase
GNU General Public License v2.0
2.16k stars 372 forks source link

NetJack2 with Opus is driving me nuts!! #helpmeplease :) #335

Open blwtxc opened 6 years ago

blwtxc commented 6 years ago

I'm using Jack with NetJack successfully for years now and I'm loving it! I'm connecting Linux (Debian) on x86 machines (and VirtualBox for testing only), Raspberry Pis with Raspbian and macOS machines with it. I'm using Jack 1.9.11(1.9.12) and configurations look similar to the following: Master-machine:

Slave-machine:

Well, that works, with a little bit of tweaking, like a charm.

Now, for a long time I'm trying, again and again, to enable some kind of compression to make the connections work over a WiFi as well (currently that setup uses wired connections only).

And, yes, you guessed right, I failed.

I tried:

Up to this point I managed to compile everything successfully (except macOS), but still...

The version on Raspbian compiles with success but when I have a look in the --help I can't see an Opus option, nor can I use it...

The version on Debian always shows the Opus option but tells me it wasn't compiled with it. After compiling, it seems I can use the option but wasn't able to connect to anything else yet (and get loads of xruns and latency messages)

On macOS it's similar to Debian with the difference that I wasn't able to compile it yet (..yes I downloaded the aften lib and copied the header files over to jack dir and Xcode found some of the files but still got stuck...)

To test whether I managed to compile Opus, and on my quest to a different approach, I compiled GStreamer with Opus on Raspbian, Debian and macOS and successfully created an RTP stream with Opus encoding ... works very well, latency is awful ...

What else can I say? ... hmmm ... I claim that I did a really thorough search on the net (for some time now), read some papers but find myself still nowhere near to a solution ... it seems

So ... I'm sure someone out there managed to use NetJack and Opus (..or some other low-latency-well-implemented-in-jack encoder) successfully and it is very likely that I simply can't see something obvious...

I would highly appreciate to get a push into the right direction and of course I could provide various log data. Simply tell me what you would need to help me and I will try to produce and provide it. (I simply didn't want to post 1000s of lines here without knowing if they provided any good information in the first place)

Cheers, Oliver

wargreen commented 6 years ago

Hi, After search, have you tried to configure your jack slave via jack_control?

jack_control ds net
jack_control dp [you can see the opus parameter]
jack_control dps opus [put here your bitrate]
krono-i2 commented 3 years ago

Hi all, have you found a solution? I have to realize an outside live broadcast and I need to send low latency live audio to the broadcast studio over internet. I don't know if it will better use netjack (better due to its bidirectional nature) or gstreamer (simpler), either using opus. Any suggestions?

Ivan

[EDIT] I forgot to say that it's an inhomogeneous network (macOS, Linux, Windows)