Audio 无法通过LAN使插孔音频/网络插孔正常工作

Audio 无法通过LAN使插孔音频/网络插孔正常工作,audio,ffmpeg,raspberry-pi,gstreamer,jack,Audio,Ffmpeg,Raspberry Pi,Gstreamer,Jack,我正在尝试在两个树莓PI之间传输低延迟音频。gstreamer和ffmpeg对我来说都会导致2秒以上的延迟 我玩过Jack Audio,在一个pi上本地播放,似乎很有希望。我可以将麦克风输入路由到本地扬声器,几乎是即时的 然而,我一直很难使用Netjack在设备之间进行路由 # ON SERVER jackd -P70 -p16 -t2000 -dalsa -dhw:1 -p128 -n3 -r44100 -s # ON CLIENT jackd -v -R -P70 -dnetone -i

我正在尝试在两个树莓PI之间传输低延迟音频。gstreamer和ffmpeg对我来说都会导致2秒以上的延迟

我玩过Jack Audio,在一个pi上本地播放,似乎很有希望。我可以将麦克风输入路由到本地扬声器,几乎是即时的

然而,我一直很难使用Netjack在设备之间进行路由

# ON SERVER
jackd -P70 -p16 -t2000 -dalsa -dhw:1 -p128 -n3 -r44100 -s 

# ON CLIENT
jackd -v -R -P70 -dnetone -i1 -o1 -I0 -O0  -r44100 -p128 -n3

# ON SERVER
jack_netsource -H < ip address of client >
jack_lsp # list availible connection ports

>system:capture_1
>system:playback_1
>system:playback_2
>netjack:capture_1
>netjack:capture_2
>netjack:capture_3
>netjack:playback_1
>netjack:playback_2
>netjack:playback_3

jack_connect system:capture_1 system:playback_1 # this works
jack_connect system:capture_1 netjack:playback_1 # this doesn't work :(
服务器jack_netsource输出如下所示

current latency 114
current latency 20
current latency 27
current latency 29
current latency 48
current latency 23
current latency 33
current latency 28
current latency 41
current latency 84
current latency 44
服务器jackd输出如下所示

JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackEngine::XRun: client = netjack was not finished, state = Triggered
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackEngine::XRun: client = netjack was not finished, state = Triggered
JackEngine::XRun: client = netjack was not finished, state = Triggered
我相信
-dnetone
标志表示使用Netjack2。我用
-dnet
标志尝试的Netjack 1会从jack_netsource发出一条
未连接的消息,并且:

Jack: CatchHost fd = 5 err = Resource temporarily unavailable
Jack: CatchHost fd = 5 err = Resource temporarily unavailable
Jack: CatchHost fd = 5 err = Resource temporarily unavailable
Jack: CatchHost fd = 5 err = Resource temporarily unavailable
Jack: CatchHost fd = 5 err = Resource temporarily unavailable
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 6

从客户端jackd。

首先在raspberry pi上,确保启用了mmap()

一旦jackd设置正确,这是在主设备和从设备之间连接jackd2的基本方法:

在主上

jackd -d alsa 
jack_load netmanager
在奴隶身上

jackd -r -d net -a ipaddress
此时应能正常工作,不要忘记将端口从netjack连接到主机上的系统输入和输出。您可以使用JackPortMonitor或JackPortMonitorGui在主机上为您自动连接这些。在这种情况下,主启动如下所示: 杰克德阿尔萨 jack_加载网络管理器
JackPortMonitorGui

首先在raspberry pi上,确保启用了mmap()

一旦jackd设置正确,这是在主设备和从设备之间连接jackd2的基本方法:

在主上

jackd -d alsa 
jack_load netmanager
在奴隶身上

jackd -r -d net -a ipaddress
此时应能正常工作,不要忘记将端口从netjack连接到主机上的系统输入和输出。您可以使用JackPortMonitor或JackPortMonitorGui在主机上为您自动连接这些。在这种情况下,主启动如下所示: 杰克德阿尔萨 jack_加载网络管理器
JackPortMonitorGui

你有没有让它工作过?我想尝试远程在线排练的解决方案。我认为Jack对网络延迟非常敏感。我认为杰克不适合远程或无线设置。你能让它工作吗?我想尝试远程在线排练的解决方案。我认为Jack对网络延迟非常敏感。我认为杰克不适合远程或无线设置