6、树莓派音频——netjack2低延迟网络音频传输设置

时间:2024-03-31 08:37:19

一、从机端设置

1、以常规方式配置,驱动仍然为alsa,设置相对稳定的延迟参数,我选用128采样点数,3个缓冲区,44100采样率。

6、树莓派音频——netjack2低延迟网络音频传输设置

 

2、切换到option选项,勾选execute script after startup,添加服务启动时运行的脚本命令:jack_load netadapter -i "-P4 -C8"

脚本意思为加载网络适配器,创建4通道playback和8通道captrue。

6、树莓派音频——netjack2低延迟网络音频传输设置

如果创建超过7个通道,需要加-M参数修改发包数据大小,默认为1580(不加-M参数时)。

 

3、保存后start。点击connect,可看到从机端已创建8个输入和4个输出,这是基于网络的传输通道。

6、树莓派音频——netjack2低延迟网络音频传输设置

 

二、主机端设置:

1、以常规方式配置,驱动仍然为alsa,设置相对稳定的延迟参数,我选用128采样点数,3个缓冲区,44100采样率。

6、树莓派音频——netjack2低延迟网络音频传输设置

 

2、切换到option选项,勾选execute script after startup,添加服务启动时运行的脚本命令:jack_load netmanager

6、树莓派音频——netjack2低延迟网络音频传输设置

 

3、保存后start。点击connect,如果网络连接成功,可以看到8个输出和4个输入,这是基于网络的传输通道。

主机上的8个输出实际上就是从机的8个输入。

6、树莓派音频——netjack2低延迟网络音频传输设置

 

 

===================================================================================

以上例子中,从机声卡的line in输入信号,从主机声卡的line out输出。

 

===================================================================================

实际应用:

假设主机为多轨播放设备,从机开启服务后,会告诉主机,嘿,我有8个输入端口,你可以发送8个通道的音频给我,由我自己来混缩。

同时,从机可以发送4通道的音频给主机,例如麦克风信号,以实现对讲功能。

===================================================================================

一个主机可以连接多个从机,每个从机作为独立混缩设备。但目前仅在有线网络中使用。

此方案两台机器之间并不能真正的同步,因为他们均采用各自声卡的时钟,只是运用了软件方式解决同步问题,但这种方式确实比官方介绍的net驱动方式延迟更低,因为主要延迟并不是来自于网络,而是声卡本身。

===================================================================================

 

 

帮助文档:

jack_load netadapter -i "-help"

Internal client parameters:
    -a, --multicast-ip     Multicast address, or explicit IP of the master (default: 225.3.19.154)
    -p, --udp-net-port     UDP port (default: 19000)
    -M, --mtu     MTU to the master (default: 1500)
    -C, --input-ports     Number of audio input ports (default: 2)
    -P, --output-ports     Number of audio output ports (default: 2)
    -n, --client-name     Name of the jack client (default: 'hostname')
    -t, --transport-sync     Sync transport with master's (default: 0)
    -l, --latency     Network latency (default: 5)
    -q, --quality     Resample algorithm quality (0 - 4) (default: 0)
    -g, --ring-buffer     Fixed ringbuffer size (if not set => automatic adaptative) (default: 32768)
    -c, --auto-connect     Auto connect netadapter to system ports (default: false)


jack_load audioadapter -i "-help"

Internal client parameters:
    -C, --capture     Provide capture ports.  Optionally set device (default: none)
    -P, --playback     Provide playback ports.  Optionally set device (default: none)
    -d, --device     ALSA device name (default: hw:0)
    -r, --rate     Sample rate (default: 48000)
    -p, --periodsize     Period size (default: 512)
    -n, --nperiods     Number of periods of playback latency (default: 2)
    -D, --duplex     Provide both capture and playback ports (default: true)
    -i, --in-channels     Number of capture channels (defaults to hardware max) (default: 0)
    -o, --out-channels     Number of playback channels (defaults to hardware max) (default: 0)
    -q, --quality     Resample algorithm quality (0 - 4) (default: 0)
    -g, --ring-buffer     Fixed ringbuffer size (if not set => automatic adaptative) (default: 32768)


jack_load netmanager -i "-help"

Internal client parameters:
    -a, --multicast-ip     Multicast address (default: 225.3.19.154)
    -p, --udp-net-port     UDP port (default: 19000)
    -c, --auto-connect     Auto connect netmaster to system ports (default: false)
    -s, --auto-save     Save/restore netmaster connection state when restarted (default: false)