Я пытаюсь передать низкое латентное звучание между двумя малиновыми pis. Как gstreamer, так и ffmpeg вызывают 2+ вторых задержки для меня.Невозможно получить JACK Audio/Netjack, работающий по локальной сети
Я играл с 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 :(
Большинство вариантов запуска я вытащил отсюда http://wiki.linuxaudio.org/wiki/raspberrypi#using_jack. Я буду честен, я не знаю, что они делают.
Клиент вывода jackd показывает сообщения как
Jack: data not valid
Jack: data not valid
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 6
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
netxruns... duration: 139ms
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 6
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
И выход сервера 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. Netjack 1, который я пытался с результатами -dnet
флага в одном Not Connected
сообщения от 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.
ли вы когда-нибудь получить эту работу? Я бы хотел попробовать это решение для удаленных онлайн-репетиций. – cayblood
Я думаю, что Джек очень чувствителен к латентности сети. Я не думаю, что jack работает для удаленных или беспроводных настроек – James