shiguredo / momo

WebRTC Native Client Momo
https://momo.shiguredo.jp/
Apache License 2.0
781 stars 171 forks source link

Jetson nano + PulseAudio + rootユーザでmomoを起動する方法 #158

Open soudegesu opened 4 years ago

soudegesu commented 4 years ago

こちらの issue について知見があるかたは是非 Discord へ共有をお願いします

Jetson nanoにデフォルトでインストールされているPulseAudioを使い、非ログインユーザ(root)にて、映像+音声送受信にてmomo(2020.6)のプロセスをうまく起動できずに困っています。

「PulseAudioをアンインストールせずとも起動できたよ!」という方がいらっしゃれば、手順や追加でインストールしたモジュールなど、知見を共有いただければ幸いです。

以下のコマンドを root ユーザで実行します。 ./momo --log-level 0 --resolution FHD --framerate 30 sora --auto --multistream --role sendrecv --video true --video-codec H264 --video-bitrate 15000 --audio true --audio-codec OPUS --audio-bitrate 128 --metadata {認証用メタデータ} SIGNALING_URL CHANNEL

すると以下のようなログが出力され、起動に失敗します。

[000:176] [8399] (audio_device_impl.cc:332): Init
[000:176] [8399] (audio_device_pulse_linux.cc:1576): mainloop running!
[000:176] [8399] (audio_device_pulse_linux.cc:1310): context state cb
[000:176] [8399] (audio_device_pulse_linux.cc:1320): no state
[000:177] [8399] (audio_device_pulse_linux.cc:1310): context state cb
[000:177] [8399] (audio_device_pulse_linux.cc:1324): failed
[000:177] [8399] (audio_device_pulse_linux.cc:1610): failed to connect context, error=-1
[000:177] [8399] (audio_device_pulse_linux.cc:144): failed to initialize PulseAudio
[000:177] [8399] (audio_device_pulse_linux.cc:1693): PulseAudio terminated
[000:177] [8399] (audio_device_impl.cc:341): Audio device initialization failed.

#
# Fatal error in: ../../../_source/ubuntu-18.04_armv8/webrtc/src/media/engine/adm_helpers.cc, line 39
# last system error: 88
# Check failed: 0 == adm->Init() (0 vs. -1)
# Failed to initialize the ADM.Aborted (core dumped)
soudegesu commented 4 years ago

ubuntuのログインユーザとは違い、rootユーザではPulseAudio Serverプロセスが参照できない(pulseaudio コマンドで Daemon already running が出ない) ので ./momo コマンド実行前に pulseaudio -D (or --start) を実行してあげる必要がありそうです。

soudegesu commented 4 years ago

しかし、momo停止時にpulseaudio プロセスももれなくkillされている時があります。