Coder Social home page Coder Social logo

shiguredo / momo Goto Github PK

View Code? Open in Web Editor NEW
754.0 56.0 166.0 2.65 MB

WebRTC Native Client Momo

Home Page: https://momo.shiguredo.jp/

License: Apache License 2.0

HTML 0.11% JavaScript 1.36% C++ 81.64% Objective-C++ 1.37% CMake 2.92% C 1.40% Python 11.20%
webrtc libwebrtc raspberry-pi macos ubuntu 4k-video jetson windows

momo's Introduction

WebRTC Native Client Momo

libwebrtc GitHub tag (latest SemVer) License Actions Status

About Shiguredo's open source software

We will not respond to PRs or issues that have not been discussed on Discord. Also, Discord is only available in Japanese.

Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use.

時雨堂のオープンソースソフトウェアについて

利用前に https://github.com/shiguredo/oss をお読みください。

WebRTC Native Client Momo について

WebRTC Native Client Momo は libwebrtc を利用しブラウザなしで様々な環境で動作する WebRTC ネイティブクライアントです。

https://momo.shiguredo.jp/

ハードウェアエンコーダーへの対応

  • Raspberry Pi の GPU に積まれている H.264 ハードウェアエンコーダー機能を利用することが可能です
  • NVIDIA Jetson に搭載されている VP8 や VP9 や H.264 ハードウェアエンコーダー機能を利用することで 4K@30 での配信が可能です
  • Apple macOS に搭載されている H.264 ハードウェアアクセラレーター機能を VideoToolbox 経由で利用することが可能です
  • NVIDIA グラフィックスカードに搭載されているハードウェアアクセラレーター機能を NVIDIA VIDEO CODEC SDK 経由で利用することが可能です
  • Intel グラフィックスカードに搭載されているハードウェアアクセラレーター機能を oneVPL 経由で Windows x86_64 と Ubuntu x86_64 にて VP9 / H.264 ハードウェアアクセラレーター機能を利用することが可能です

4K 30fps での配信

Momo はハードウェアエンコーダーを利用することで WebRTC で 4K 60fps の配信を実現可能です

サイマルキャストへの対応

Momo は Sora モード利用時にサイマルキャスト(複数画質の同時配信)に対応しています。

データチャネル経由でのシリアルの読み書き

Momo はデータチャネルを利用しシリアルに直接読み書きが可能です。信頼性より低遅延を優先したい場合の利用を想定しています。

SDL を利用した音声や映像の受信

Momo を GUI 環境で利用した場合、Simple DirectMedia Layer を利用して音声や映像の受信を行うことができます。

AV1 への対応

AV1 の送受信に対応済みです。

クライアント証明書への対応

Momo は Sora モード利用時にクライアント証明書に対応しています。

動画

WebRTC Native Client Momo と Jetson Nano で 4K@30 配信

OpenMomo プロジェクトについて

OpenMomo は WebRTC Native Client Momo をオープンソースとして公開し継続的に開発を行っていくプロジェクトです。 ブラウザやスマートフォン以外からの WebRTC をいろいろな用途で使ってもらえればと思っています。

詳細については下記をご確認ください。

OpenMomo プロジェクト

また Momo についてのつぶやきは以下にまとめてあります。

https://gist.github.com/voluntas/51c67d0d8ce7af9f24655cee4d7dd253#twitter

既知の問題について

既知の問題に対する解決方針

バイナリ提供について

以下からダウンロードが可能です。

https://github.com/shiguredo/momo/releases

動作環境

  • Raspberry Pi OS (64bit)
    • Raspberry Pi 4
    • Raspberry Pi 3
    • Raspberry Pi 2 Model B v1.2
    • Raspberry Pi Zero 2 W
  • Ubuntu 22.04 x86_64
  • Ubuntu 20.04 ARMv8 Jetson JetPack 6
  • macOS 12 arm64 以降
  • Windows 10.1809 x86_64 以降

対応終了

優先実装にて、対応継続することができます

使ってみる

Momo を使ってみたい人は USE.md をお読みください。

ビルドする

  • Momo をビルドしたい、またはパッケージ作成したい人は BUILD.md をお読みください

FAQ

FAQ.md をお読みください。

ライセンス

Apache License 2.0

Copyright 2015-2024, tnoho (Original Author)
Copyright 2018-2024, Shiguredo Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

OpenH264

https://www.openh264.org/BINARY_LICENSE.txt

"OpenH264 Video Codec provided by Cisco Systems, Inc."

優先実装

優先実装とは Sora のライセンスを契約頂いているお客様限定で Momo の実装予定機能を有償にて前倒しで実装することです。

優先実装が可能な機能一覧

詳細は Discord やメールなどでお気軽にお問い合わせください

  • リリース
  • Ubuntu 24.04 x86_64
  • Ubuntu 22.04 ARMv8 Jetson JetPack 6
  • H.265 (HEVC) HWA 対応
    • macOS Video Toolbox
    • NVIDIA Jetson
      • Ubuntu 22.04 JetPack 6
    • NVIDIA Video Codec SDK
      • Windows
  • OpenH264 対応
    • Windows
    • Ubuntu
  • AV1 対応
    • Windows
  • Windows / macOS 署名対応

Momo についての電子書籍

Momo の原作者である @tnoho が書いた Momo のノウハウが沢山詰まった本が販売されています。

WebRTC をブラウザ外で使ってブラウザでできることを増やしてみませんか?(電子版) - でんでんらぼ - BOOTH

サポートについて

Discord

  • サポートしません
  • アドバイスします
  • フィードバック歓迎します

最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。

https://discord.gg/shiguredo

バグ報告

Discord へお願いします。

有料でのテクニカルサポートについて

WebRTC Native Client に対する有料でのテクニカルサポート契約については WebRTC SFU Sora ライセンス契約をしているお客様が前提となります。

  • Momo のテクニカルサポート
  • OSS 公開前提での Momo への機能追加

H.264 のライセンス費用について

H.264 ハードウェアエンコーダー のみ を利用している Momo 単体の配布においてはライセンス費用は不要ですが、 ハードウェアとセットで配布する場合はライセンス費用を支払う必要があります。

ただし、 Raspberry Pi においては H.264 のライセンスがハードウェア費用に含まれているため、 配布時にライセンス費用を支払う必要はありません。

詳細については MPEG LA まで問い合わせる事をおすすめします。

momo's People

Contributors

dependabot[bot] avatar enm10k avatar goforbroke avatar hakobera avatar hexa avatar kabosy620 avatar kadoshita avatar kaitoyutaka avatar kdxu avatar melpon avatar mganeko avatar mikoto2000 avatar miosakuma avatar msnoigrs avatar shino avatar tetsu-koba avatar tnoho avatar torikizi avatar tsuyoshiii avatar voluntas avatar xqueezeme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

momo's Issues

cannot find lnvbuf_fdmap

hardware: jetson tx2
system :ubuntu18.04
jetpack: 4.2

first,thanks for your work. When compiling the project, the following error occurred:
/usr/bin/ld: connot found -lnvbuf_fdmap, i canot find libnvbuf_fdmap.so on my system, so what should i do ?
thanks a lot.

Error when build ./build.sh

When I build
sudo ./build.sh ubuntu-18.04_armv8_jetson_nano
I get error
image

Can you give me advice on the above error?

既知の問題

未解決

解決済み

  • #263
    • @melpon により無事修正されました
  • #282
    • @melpon により無事修正されました
  • #276
  • #275
  • #236
    • @melpon により無事修正されました
  • #218
    • @melpon により無事修正されました
  • #141
    • @melpon により無事修正されました
  • #221
  • #219
    • @tnoho により無事修正されました
    • #241
  • #220
    • @tnoho により無事修正されました
    • #241
  • #237
    • @tnoho により無事修正されました
    • #243
  • SDL を 2.0.16 に上げると正常に動作しない
    • 2.0.18 にて無事修正されました
  • #217
  • Sora / Multistream / sendrecv を Jetson Nano / H.264 で利用した際、デコーダの終了処理が正常に行われず固まってしまう問題
  • Ayame 利用時にコーデックが指定できない
    • Ayame Web SDK 側でコーデック指定を可能にしました。
  • macOS 版がビルドは成功するが動作させようとするとセグメンテーションフォルトする
  • macOS 版の H.264 利用時に解像度が変わるとクラッシュしてしまう問題
  • TURN-TLS の証明書に Let's Encrypt を利用した際、Unknown CA で弾かれる
    • @melpon からの PR で無事修正されました
    • #135
  • macOS でスクリーンキャプチャー機能が動作しない

macOSでraspbian-stretch_armv7向けビルドのエラー

macOS High Sierra 10.13.6 + docker (Engine 18.09.2) で、raspbian-stretch_armv7 をターゲットにビルドしたところ、途中でエラーが出て停止しましたので、お伝えします。
停止する直前のコンソール出力を、こちらに掲載しておきます。
https://gist.github.com/mganeko/c249cfc90f0f777f2be525896379c042

同じ環境で、ubuntu-18.04_x86_64 をターゲットにしたビルドは成功しました。

Apple Silicon に対応する

この Issue について

いつかやるタスクとして存在しますが、もし Discord にて「対応したい」というのを言って頂ければサポートします。

モチベーション

Apple Silicon 向けの macOS ビルド Momo を用意したい。

仕様

  • バージョンは GitHub Actions で利用できる OS にそろえる
  • アーキテクチャは shiguredo-webrtc-build 側にそろえる
  • momo-2021.1_macos-11.0.tar.gz -> momo-2021.1_macos-11.0_x86_64.tar.gz
  • momo-2021.1_macos-11.0_arm64.tar.gz

Jetson nanoで4Kの配信をするときにフレームレートが上がらない

バグを説明してください

Jetson nanoで4Kの配信をするときにフレームレートを30fps に指定しても実際には13fpsくらいまでしか上がらない。

再現方法

#!/bin/sh
AUDIO_OPT='--disable-echo-cancellation --disable-auto-gain-control --disable-noise-suppression --disable-highpass-filter --disable-typing-detection'

./momo $AUDIO_OPT --log-level 1 --video-device /dev/video0 --resolution 4K --fixed-resolution --framerate 30 test 

--use-native オプションをつけるとOSごとハングアップしてしまうのでつけていない。

予想される行動

Jetson nanoで4Kの配信をするときにフレームレートが30fps にできる。

カメラ/マイク

利用しているカメラやマイクの型番を教えてください。

Logicool BRIO ULTRA HD PRO WEBCAM

lsusb のコマンド結果を貼ってください。

Bus 002 Device 005: ID 046d:085e Logitech, Inc. 
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

提供バイナリ
momo-19.09.2_ubuntu-18.04_armv8_jetson_nano

--log-level 1 の出力ログ

p2p.log

追加の情報

このWebcamからはMJPEGを30fps で取り出せています。

 $ v4l2-ctl --set-fmt-video=width=3840,height=2160,pixelformat=1
 $ v4l2-ctl --stream-mmap=3 --stream-count=300
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.09 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.03 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.01 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.01 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

jetson nano用momoで 1920x1080の配信をしたときに画面下端に緑の帯がでる

バグを説明してください

jetson nano用momoで 1920x1080の配信をしたときに画面下端に緑の帯がでる
3840x2160 や 1280x720 のときには発生しない。
画面解像度はWebRTC downstream側の chrome の chrome://webrtc-internals で確認した。

再現する

SIGNALING_URL=...省略
CHANNEL_ID=...省略
AUDIO_OPT='--disable-echo-cancellation --disable-auto-gain-control --disable-noise-suppression --disable-highpass-filter --disable-typing-detection'

../current/momo $AUDIO_OPT --log-level 2 --video-device /dev/video0 --use-native --resolution FHD --framerate 30 sora --auto --video-codec H264 --audio-codec OPUS --audio-bitrate 96 $SIGNALING_URL $CHANNEL_ID

予想される行動

画面下端に緑の帯がでない

カメラ/マイク

IMX317 の4Kカメラと ロジクール C922 の2つのカメラで確認した。

自前バイナリ/提供バイナリ

提供バイナリ
momo-19.12.1_ubuntu-18.04_armv8_jetson_nano

--log-level 1 の出力ログ

webrtc_logs_0.txt

追加の情報

スクリーンショット
--resolution を FHD (1920x1080) のときに下端の緑の帯がでる。
HD (1280x720) のときにはこの帯はでない。

screenshot_1080
screenshot_720

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

こちらの 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)

ローカルネット上のAyameを使用して接続した場合にSEGVが発生する

バグを説明してください

Momoを起動して、ローカルホスト上のAyameに接続し、
registerメッセージを送信後に受信したacceptメッセージ内に、
IceServersが含まれていない場合、SEGVが発生する。

再現する

再現時コマンド
./momo --no-audio --video-device /dev/video0 --force-i420 --resolution FHD --fixed-resolution --log-level 0 ayame ws://localhost:3000/signaling test >& momo_log.txt

予想される行動

プロセスが終了しない。
AyameからIceServersが返答されない場合、
"stun:stun.l.google.com:19302"を使用して処理が継続される。

カメラ/マイク

カメラ: auvidea B101 HDMI to CSI-2 Bridge (15 pin FPC)
マイク: なし

lsusb のコマンド結果を貼ってください。
pi@raspberrypi:~ $ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

提供バイナリ
momo-19.09.0_raspbian-buster_armv7.tar.gz に含まれる momo

--log-level 1 の出力ログ

momo-log-level-1.txt

追加の情報

coredumpファイルも添付いたします。
core.zip

自前ビルドcommit 7ce0bc7894ad5df2a0b8876d73f4f8f331e38ff4でもデバッグ実行したところ、再現しました。

IceServersが含まれていない場合は src/ayame/ayame_websocket_client.cpp:307
落ちることが想定されていると思われますが、
想定しているjson::type_errorが発生せず、ice_servers_が設定されないため、
src/rtc/connection.cpp:18 でSEGVが発生しているようです。

Jetson nanoのmomoとSora Laboとでの映像配信時、Sora Laboで接続切断を繰り返すと「Device or resource busy」となりmomoの配信が止まってしまう

バグを説明してください

Jetson nanoでmultistream /FHD/H264/sendrecv配信を行い、
SoraLaboでマルチストリーム送受信にて接続/切断を繰り返すと
Jetson nanoのターミナルにDevice or resource busyが出力され、Jetson nanoの配信が止まる。
(SoraLaboでの配信は影響なし)

再現する

  • コマンドはこちらを使用しました。
./momo --no-audio --log-level 4 --resolution FHD --framerate 30 sora wss://sora-labo.shiguredo.jp/signaling torikizi@jetsonL --auto --video-codec H264 --audio-codec OPUS --audio-bitrate 96 --multistream --role sendrecv --metadata '{"signaling_key": ""}'
  • SoraLaboは以下のような環境を使用しました。
    ・Windows版Chrome
    ・マルチストリーム送受信
    ・H264/1000/VGA/audio ON

  • 手順は以下のように行いました。

 1.connect 押下
 2.表示されたことを確認した後すぐdisconnect 押下
 3.画面が消えたことを確認したのちconnect押下
 以降、2と3を繰り返すとJetsonのターミナル側でエラーメッセージが出力
  • Jetson nanoのターミナルで出力されたエラーはこちらです。
    [ERROR] (/root/rootfs/usr/src/nvidia/tegra_multimedia_api/samples/common/classes/NvV4l2ElementPlane.cpp:256) <dec0> Output Plane:Error while Qing buffer: Device or resource busy

  • 動かなくなった際のSoraLaboの画面はこちらです。
    Image from Gyazo

予想される行動

エラーにならず、配信が継続される。

カメラ/マイク

カメラはこちらを使用しています。
ELP-USB4KHDR01-BL170

自前バイナリ/提供バイナリ

実行時最新だったこちらを使用しました。build-workflow #289

--log-level 1 の出力ログ

代わりにwebrtc_logs_0を添付します。
webrtc_logs_0.txt

追加の情報

  • Macのmomoで同様の配信を行った際は再現しないことを確認しております。

  • 過去バージョンでも同様に再現しております。
    こちらを使用しました。
    build-workflow #274

  • 上記手順のほかに以下のような手順も実施して再現を確認しております。

環境:JetsonNanoで配信
   MacのChromeでSoraLaboに接続
   WindowsのChromeでSoraLaboに接続
手順:
 1.Win側で接続して映像を確認
 2.表示を確認後、Mac側でconnectを押す準備、Win側でdisconnectを押す準備
 3.Winでdisconnect、Macでconnectを押下
 4.映像確認後
 5.Winでconnect、Macでdisconnectを押下
 以降3~5を繰り返すとJetsonのターミナルにエラーが出力

Raspberry Pi 3B+ の raspbian 9.9 上で killed by SIGABRT

raspberry pi 3B+(リビジョン番号a020d3)でmomo-19.02.0_raspbian-stretch_armv7を実行するとAbortedと表示されて落ちます。

実行時のコマンドはこちらです。
./momo --no-audio --video-codec VP8 --video-bitrate 800 --port 8080 p2p

straceの出力です。
trace.txt

RaspberryPiで音声が再生されない

下記環境にて、P2Pモードで音声の再生ができませんでした。
視聴環境はchrome69
chrome://webrtc-internal で確認したところ、オーディオ、ビデオともにパケットの受信ができているため、
Raspberry piに使い方に記載されている以外のデバイスの設定が必要な可能性あり。

環境
端末: Raspberry pi 2 Model B
カメラ: HD ProウェブカメラC910
OS: Raspbian 9.4
Momo: momo-18.10.0-rc0_raspbian_armv7

実行コマンド

./momo --audio-codec OPUS --audio-bitrate 128 --video-codec VP9 --video-bitrate 500 --resolution VGA --framerate 30 --log-level 4 p2p --port 8080

ログ

[000:169] [1949] (audio_mixer_manager_alsa_linux.cc:943): Could not find output volume in the mixer.
[000:169] [1949] (adm_helpers.cc:47): Unable to access speaker.
[000:213] [1949] (audio_mixer_manager_alsa_linux.cc:943): Could not find output volume in the mixer.
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
[000:276] [1949] (audio_device_alsa_linux.cc:796): unable to open playback device: No such file or directory (-2)
[000:641] [1949] (audio_device_generic.cc:17): BuiltInAECIsAvailable: Not supported on this platform
[000:642] [1949] (audio_device_generic.cc:27): BuiltInAGCIsAvailable: Not supported on this platform
[000:642] [1949] (audio_device_generic.cc:37): BuiltInNSIsAvailable: Not supported on this platform

試したこと
https://gist.github.com/voluntas/102de0b94bdac7835168e3f1882906f6

オーディオデバイスの優先度変更

$ cat /proc/asound/modules
 0 snd_usb_audio
 1 snd_bcm2835

デバイス情報

$ arecord -l
**** ハードウェアデバイス CAPTURE のリスト ****
カード 0: C920 [HD Pro Webcam C920], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

MacOSでのmomoのビルドエラー

MacOS mojaveでmomoのビルドを行なっているのですが,以下のエラーでビルドが停止します.

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar: illegal option -- D
usage:  ar -d [-TLsv] archive file ...
	ar -m [-TLsv] archive file ...
	ar -m [-abiTLsv] position archive file ...
	ar -p [-TLsv] archive [file ...]
	ar -q [-cTLsv] archive file ...
	ar -r [-cuTLsv] archive file ...
	ar -r [-abciuTLsv] position archive file ...
	ar -t [-TLsv] archive [file ...]
	ar -x [-ouTLsv] archive [file ...]
make[2]: *** [_build/macos/libwebrtc.a] Error 1
make[1]: *** [momo] Error 2
make: *** [macos] Error 2

以下の部分のarコマンドの-Dによってエラーが発生している模様です.

# momo 本体のビルド
/Applications/Xcode.app/Contents/Developer/usr/bin/make _build/macos/momo
ar -r -c -s -D _build/macos/libwebrtc.a build/macos/webrtc-build/macos/obj/pc/peerconnection/sdp_utils.o ....

sora-js-sdkにて、connection確立時の"addstream"callbackが呼ばれない

下記環境にて、momoとsoraの連携に少し問題が有りました。

環境

[配信側]
端末: x86
カメラ: BUFFALO BSWHD06M
OS: Ubuntu 18.04 64bit
Momo: momo-18.10.0-rc0_ubuntu_x86_64

[受信側]
端末: x86
ブラウザ: chrome69
OS: Ubuntu 16.04 64bit
sora-js-sdk: 1.9.2

実行コマンド

$ ./momo --no-audio --video-codec H264 --video-bitrate 2000 sora --auto wss://{sora_url}/signaling Sora

上記実行コマンド後、JS側でconnectionが確立されるが、addstreamが呼ばれない。
connection確立後、addstream内ではなくconnect後にstreamをremoteVideosに紐付ければ一応は映像が表示される。

document.querySelector('#start-subscriber').addEventListener('click', function() {
  subscriber.connect()
    .catch(e => {
      console.error(e);
    });
  subscriber.on('addstream', function(event) {
    var remoteVideos = document.querySelector('#remote-videos');
    var remoteVideo = document.createElement('video');
    remoteVideo.id = 'publisher-remotevideo-' + event.stream.id;
    remoteVideo.style.border = '1px solid red';
    remoteVideo.autoplay = true;
    remoteVideo.width = '320';
    remoteVideo.height = '240';
    remoteVideo.srcObject = event.stream;
    remoteVideos.appendChild(remoteVideo);
  });
  subscriber.on('removestream', function(event) {
    var remoteVideo = document.querySelector('#publisher-remotevideo-' + event.stream.id);
    document.querySelector('#remote-videos').removeChild(remoteVideo);
  });
});

※上記、https://github.com/shiguredo/sora-js-sdk/blob/develop/example/multistream_down.html から抜粋

2プロセス起動時に2プロセス目のmomoのCPU使用率が100%を超える

Discord ID を教えて下さい

optim-aoki#5807

バグを説明してください

momoのプロセスを2つ起動した際、2つ目に起動したものが必ずCPU使用率100%を超える

再現する

  • Webカメラ : 2つ接続
  • Ayameモードにてmomoを2プロセス起動
    • ./momo --no-audio ayame wss://ayame-lite.shiguredo.jp/signaling **********
    • 映像ソースがかぶらないよう --video-device を指定する

期待する動作

  • 1プロセス目 : 1 ~ 5%程度
  • 2プロセス目 : 1 ~ 5%程度

実際の動作

  • 1プロセス目 : 1 ~ 5%程度
  • 2プロセス目 : 100%前後

カメラ/マイク

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 003: ID 046d:082c Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

自前バイナリの方はビルドしたコミットハッシュを、提供バイナリの方はバイナリのファイル名を教えてください。

momo-2020.3.1

--log-level 1 の出力ログ

1プロセス目
log1.txt

2プロセス目
log2.txt

追加の情報

�- 一時的な解決方法

  • 起動時に --port 0 を追加し、エフェメラルポートから自動的に選択されるようにする

  • 環境

    • momoバージョン : momo 2020.3.1
    • OS : Ubuntu 18.04
  • Ayameでの映像を確認時、2つのプロセスにFPSや解像度、ビットレートの差はほぼ無い

  • Ayame,Soraで現象を確認 Testモードでは確認出来ませんでした

  • Ayameでは、ブラウザで映像を閲覧しなくてもCPU使用率が100%を超える

    • Soraも同様と思われるが詳しくは調べられていない

The problem of using makefile to compile the project

I need to use the makefile I wrote to compile this project. Everything is going well, but there are some problems when linking. The output is below.I did not link openssl in the program, because webrtc uses boringssl, how should I solve this problem. Thank you。

websocket.o: In function Websocket::Connect(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::function<void (boost::system::error_code)>)':
websocket.cpp:(.text+0xf3d): undefined reference to SSL_ctrl' websocket.o: In function boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)':
websocket.cpp:(.text._ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE[_ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE]+0x11c): undefined reference to SSL_CTX_ctrl' websocket.cpp:(.text._ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE[_ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE]+0x139): undefined reference to SSL_CTX_ctrl'
websocket.cpp:(.text._ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE[_ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE]+0x195): undefined reference to SSL_CTX_ctrl' websocket.cpp:(.text._ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE[_ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE]+0x1b2): undefined reference to SSL_CTX_ctrl'
websocket.cpp:(.text._ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE[_ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE]+0x21a): undefined reference to SSL_CTX_ctrl' websocket.o:websocket.cpp:(.text._ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE[_ZN5boost4asio3ssl7contextC2ENS1_12context_base6methodE]+0x237): more undefined references to SSL_CTX_ctrl' follow
websocket.o: In function boost::asio::ssl::detail::engine::engine(ssl_ctx_st*)': websocket.cpp:(.text._ZN5boost4asio3ssl6detail6engineC2EP10ssl_ctx_st[_ZN5boost4asio3ssl6detail6engineC2EP10ssl_ctx_st]+0x77): undefined reference to SSL_ctrl'
websocket.cpp:(.text._ZN5boost4asio3ssl6detail6engineC2EP10ssl_ctx_st[_ZN5boost4asio3ssl6detail6engineC2EP10ssl_ctx_st]+0x95): undefined reference to SSL_ctrl' websocket.cpp:(.text._ZN5boost4asio3ssl6detail6engineC2EP10ssl_ctx_st[_ZN5boost4asio3ssl6detail6engineC2EP10ssl_ctx_st]+0xb3): undefined reference to SSL_ctrl'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:67: recipe for target 'momo' failed
make[1]: *** [momo] Error 1
make[1]: Leaving directory '/home/zn/Desktop/momo/src'
Makefile:57: recipe for target 'all' failed
make: *** [all] Error 2`

stderr:===== NVMEDIA: NVENC =====

is this normal?

momo.on.stderr:NvMMLiteOpen : Block : BlockType = 4

momo.on.stderr:===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4

momo.on.stdout:libv4l2_nvvidconv (0):(802) (INFO) : Allocating (1) OUTPUT PLANE BUFFERS Layout=0
libv4l2_nvvidconv (0):(818) (INFO) : Allocating (10) CAPTURE PLANE BUFFERS Layout=0
Opening in BLOCKING MODE
875967048
842091865

momo.on.stderr:H264: Profile = 100, Level = 51

i am experiencing some blank screens when streaming for long time with momo.
sometimes i got a white screen on the browser then it take about 2 to 5 minutes to show the cammera image again...
i wonder if the above error is ralated with the problem.

ps: i am using Jetson nano + momo 2020.1 + ayame sdk (should i upgrade??)

thank you.

momo-18.10.0-rc1_ubuntu_x86_64において、4K配信ができない

下記環境にて、momoによる4K映像の配信ができなかった。

環境

[配信側]
端末: x86
カメラ: LOGICOOL BRIO
OS: Ubuntu 18.04 64bit
Momo: momo-18.10.0-rc1_ubuntu_x86_64

[受信側]
端末: x86
ブラウザ: chrome69
OS: Ubuntu 16.04 64bit
sora-js-sdk: 1.9.3

実行コマンド

$ ./momo --no-audio --video-codec H264 --resolution 4K --video-bitrate 30000 sora --auto wss://{sora_url}/signaling Sora

or

$ ./momo --no-audio --video-codec H264 --resolution 4K --video-bitrate 30000 p2p --port 8080

上記、p2pとsora連携共に解像度を4K指定した場合に、VGA(640×480)程度の解像度になってしまう問題が発生している。FHDでは、問題なく動作する。
※webrtc-internalsにて確認。

screenshot from 2018-10-18 17-27-12

Ayame モードのリライト

この Issue について

いつかやるタスクとして存在しますが、もし Discord にて「対応したい」というのを言って頂ければサポートします。

モチベーション

現在 Momo の Ayame モードはに多くの課題があるため リライトしたい。

仕様

細かい不満

Discord などから転載

テストモードでUSBカメラの映像と音声がスムーズに配信されていない

バグを説明してください
P2Pモードで映像と音声を利用しようとしたが、映像も音声もうまく再生されなかった

再現する

./momo --resolution VGA --fixed-resolution --port 8082 test

予想される行動

映像と音声が正常に再生される事

カメラ/マイク
webrtc_momo _log.txt
カメラは ロジクール C922
マイクはロジクール C922の内蔵マイク

lsusb のコマンド結果を貼ってください。
Bus 002 Device 005: ID 174c:55aa ASMedia Technology Inc. Name: ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 046d:085c Logitech, Inc. C922 Pro Stream Webcam
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

momo-2020.1_raspbian-buster_armv7

--log-level 1 の出力ログ

txt ファイルにて添付してください。

追加の情報
Raspberry pi 3 ModeB+でmomo-19.09.2_raspbian-buster_armv7では動いていました。
今回はRaspberry pi 4 Model B 4GBを使用しています。

Ubuntu 18.04 で libcuda.so / libnvcuvid.so がイントールされていないと起動しない

Discord ID を教えて下さい

hakobera

バグを説明してください

Ubuntu 18.04 x86 版の momo を NVIDIA の GPU を搭載していないマシンで動作させる場合でも、NVIDIA VIDEO CODEC SDK の一部である libcuda/libnvcuvid がインストールされていないと momo が起動しない。

momo 2020.2 までは問題なく、momo 2020.3 で NVENC 対応以降に発生するようになった事象です。

再現する

$ ./momo --help
./momo: error while loading shared libraries: libcuda.so.1: cannot open shared object file: No such file or directory

期待する動作

libcuda/libnvcuvid がインストールされてなくても momo が起動すること。

実際の動作

momo が起動しない。

カメラ/マイク

Thinkpad E495 内蔵カメラ・マイク

lsusb のコマンド結果を貼ってください。

$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 5986:2130 Acer, Inc 
Bus 003 Device 002: ID 8087:0025 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

提供バイナリ
momo-2020.3.1_ubuntu-18.04_x86_64

--log-level 1 の出力ログ

起動しないので、ログはありません。

追加の情報

Workaround として、libnvidia-compute-435libnvidia-decode-435 をインストールすることで起動することはできる。

Assert fails at runtime

Hi, I'm trying to run momo on my mac,
Where define USE_ROS=0

I compiled webrtc latest version, but I get that:

./momo --no-audio sora --auto 127.0.0.1 demo
#
# Fatal error in: ../../../../modules/audio_device/audio_device_buffer.cc, line 81
# last system error: 0
# Check failed: (&main_thread_checker_)->IsCurrent()
# Abort trap: 6

The resource '/' was not found.

Hi,
I'm trying to deploy momo on Ubuntu 18.04 on x86_64. Everything is alright during compiling.
I execute '$ ./momo test' on my machine and use another PC to visit "http://ip:8080", the result is "The resource '/' was not found. ". But the camera on PC is on. Could you please give some suggestion?
I cannot figure out why. I don't know whether I have done something wrong or not. I am so sorry that I cannot read Japanese. I can only use google translation to read the documents. If the document can be translate to English, it would be much better.
Thanks!

動画が描画されない/送信されない

#74 と同じPi 3 B+からの映像が流れません。
HTMLのプルダウンメニューでVP8を指定しても変わりません。
実行ファイルは #74 のM75のもので、コマンドも #74 のものです。

気づいた点:

  • 41秒のSTUN pingがおわる前にICE connection status has changed to completedになる

ログファイルです:
log-no-video.txt

macOS 10.14.5 / Chrome M74

mac os x aborted

mac os x momo doesn't run and abort.

I'm using mac os Catalina 10.15.7

Below is result.

~/Downloads/momo-2020.10_macos-10.15
base ❯ ./momo test
[1] 25084 abort ./momo test

Ayame モード利用時に音声と映像のコーデックタイプを設定できるようにする

この Issue について

いつかやるタスクとして存在しますが、もし Discord にて「対応したい」というのを言って頂ければサポートします。

モチベーション

現在は Sora モードでのみコーデックタイプを指定しているが、Ayame モードで双方が Momo の場合はコーデックが指定できないため、せっかくの HWA などが利用できないという問題がある。

仕様

./momo --no-audio-device ayame wss://sample.com/signaling ayame-momo --video-codec-type VP9 --audio-codec-type OPUS

対応コーデック

  • 映像
    • VP9/VP8/AV1/H.264
  • 音声
    • Opus

Ubuntu環境において、ROS対応バイナリのビルドが失敗する

バグを説明してください

Ubuntu + docker環境において、ROS対応バイナリのビルドがエラーで失敗してしまいます

再現する

ビルド環境は以下の通りです

Ubuntu 18.04.3 LTS
Docker version 19.03.3., build a872fc2f86

※バイナリのビルド環境はUbuntu 18.04ですが、実行は別環境で行う予定でした

USE_ROS.md を参考に、以下のコマンドを実行しました

make ubuntu-16.04_x86_64_ros.clean
make ubuntu-16.04_x86_64_ros

予想される行動

ビルドが完了し、momoのバイナリが作成される

自前バイナリ/提供バイナリ

以下のコミットハッシュ時点のコードをビルドしています

b5c3fa7e738ca7576ee4c794c6500ccbeb8c029c

ビルドログ

ビルドログ中のエラーと思われる箇所は以下の通りです
momo_ros_x86_error.txt

usrvcsm,mmalなどでallocationが失敗したログが出力された後にSEGVで終了する

バグを説明してください

momoプロセスがSEGVで終了する

再現する

systemdのサービスとして以下のコマンドで起動する

/home/pi/momo/momo --no-audio --log-level=1 ayame wss://ayame-lite.shiguredo.jp/signaling yuroyoro@bumbun-blau --signaling-key $SIGNALING_KEY

予想される行動

プロセスが終了しない

カメラ/マイク

Raspberry Pi Camera V2 / 913-2664

lsusb のコマンド結果

Bus 001 Device 004: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

Githubのリリースページから以下のtarをダウンロードして利用

momo-19.08.0-rc0_raspbian-buster_armv7.tar.gz

--log-level 1 の出力ログ

--log-level=3 ですが添付します

momo-journal-log.txt

追加の情報

この問題に関する他の情報をここに追加してください。

次の問題が発生しました /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(entropymv.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000

まずはお疲れ様でした。このプロジェクトをjetsonxavier nxでコンパイルしたときに、コンパイルしたlibwebrtc.aファイルをCMakeLists.txt、set(CMAKE_INCLUDE_PATH "webrtc / include")に直接追加しました。
set(CMAKE_LIBRARY_PATH "webrtc / lib")、コンパイル時に次の警告が表示されました:
[ 97%] Building CXX object CMakeFiles/momo.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoDecoder.cpp.o 1 warning generated. [100%] Linking CXX executable momo /usr/bin/aarch64-linux-gnu-ld: warning: CMakeFiles/momo.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvLogging.cpp.o: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(entropymv.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(modecont.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(err_data.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(media_constants.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(constants.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(p2p_constants.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(lpc_shape_swb12_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(pulseaudiosymboltable_linux.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(tables_other.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(tables_pitch_lag.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(tables_NLSF_CB_NB_MB.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(tables_NLSF_CB_WB.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(resampler_rom.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(tables_pulses_per_block.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(tables_LTP.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(tables_gain.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(blockd.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(vp9_scan.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(vp9_common_data.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(txb_common.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(scan.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(odintrin.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(spl_init.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(fec_private_tables_random.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(constants.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(lpc_shape_swb16_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(lpc_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(lpc_gain_swb_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(pitch_gain_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(pitch_lag_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(alsasymboltable_linux.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(table_LSF_cos.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(mlp_data.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(vp9_filter.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(fec_private_tables_bursty.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(spectrum_ar_model_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(pitch_est_tables.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 /usr/bin/aarch64-linux-gnu-ld: warning: ../webrtc/lib/libwebrtc.a(rnn_vad_weights.o): unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 [100%] Built target momo

momoを実行すると、エラーは次のようになります:
nvidia@nvidia:~/chris/jetson_momo/build$ ./momo --resolution=HD --use-native test Opening in BLOCKING MODE Opening in BLOCKING MODE Segmentation fault (core dumped)

これはlibwebrtcの問題ですか、返信をお待ちしております。ありがとうございます。

Jetson nano build error

すみません, 最新のJetson nano JetPack 4.4, 以下の手順に従いましたが、ビルドエラーが発生しました

git clone https://github.com/shiguredo/momo.git
cd momo/build/
sudo ./build.sh ubuntu-18.04_armv8_jetson_nano

この種のエラーが表示されます

momo error1
momo error2

./build.sh --clean ubuntu-18.04_armv8_jetson_nano && ./build.sh ubuntu-18.04_armv8_jetson_nano
これをしてもまだ同じです

修正する方法を教えて よろしくおねがいいたします

解像度の QVGA 指定が 480x320 になる

バグを説明してください

--resolution オプションで QVGA を指定すると解像度が 480x320 になります。

再現する

momo --resolution QVGA --port 8000 test

予想される行動

解像度が 320x240 になること。

カメラ/マイク

Raspberry Pi Camera Module V2

自前バイナリ/提供バイナリ

https://github.com/shiguredo/momo/releases/download/19.11.0/momo-19.11.0_raspbian-buster_armv6.tar.gz

--log-level 1 の出力ログ

追加の情報

https://github.com/shiguredo/momo/blob/develop/src/connection_settings.h
での単純な typo だと思われます。

Windowsでmomoを実行した際に音声が配信されない

Discord ID を教えて下さい

t_kizi#1747

バグを説明してください

momoをWindowsで検証した際に音声の確認ができませんでした。
mac、jetson nano、ラズパイでは問題なく音声がでていることを確認できました。

再現する

以下のコマンドで実行したところ、再現しました。
./momo --log-level 1 test

またayameモード、soraモードで確認をした際も同様に再現しました。

期待する動作

配信をした時に受信側で音声を確認できることを期待しています。

実際の動作

test.htmlで確認したところ、映像は確認できましたが、音声が確認できませんでした。
マイクをつかめていないのかと思いましたが、Windows上ではmomo.exeが利用していることを確認できたため、環境不備によるものではないと思われます。
Screenshot from Gyazo

カメラ/マイク

カメラは ノートPC搭載のインカメラを使用しています。
マイクはノートパソコン搭載のマイクを使用しています。

別のマシンで確認した際は、ロジクール C270mを使用しました。

自前バイナリ/提供バイナリ

提供バイナリを使用しています。
確認をしたバージョンは以下のようになります。

  • 2020.6
  • 2020.5.1
  • 2020.5
  • 2020.4
  • 2020.3.1
  • 2020.3
  • 2020.2.1
  • 2020.2

また確認を行ったWindowsのバージョンはバージョン2004です。
上記ほどのバリエーションでは実施をしていませんが、バージョン1909でも確認を行い、同様の結果となりました。

--log-level 1 の出力ログ

以下各バージョンのログになります。

追加の情報

update 05/17
SoraLaboを使って統計情報からoutbound rtp audioを確認したところ、パケットが生成されていないことがわかりました。
デバイスから音声が取得できていないようです。
Image from Gyazo

P2PモードでUSBカメラの音声の再生ができませんでした

下記環境にて、P2Pモードで映像がうまく再生できず音声の再生もできませんでした。
視聴環境はchrome バージョン: 79.0.3945.117

環境
端末: Raspberry pi 4 Model B 4GB
カメラ: HD ProウェブカメラC922
OS: Raspbian 10.2
Momo: momo-2020.1_raspbian-buster_armv7

実行コマンド

./momo --no-audio --resolution VGA --fixed-resolution --port 8082 test VP8で接続。映像問題なし。音声なし。
./momo --resolution VGA --fixed-resolution --port 8082 test VP8で接続。映像問題あり。音声あり(問題あり)。音量変更可(音無し)。
./momo --port 8082 test VP8で接続。映像問題あり。音声なし?。音量変更可(音無し?)。
./momo --no-video --port 8082 test VP8で接続。P2Pで繋がらない。

ログ(./momo --resolution VGA --fixed-resolution --port 8082 test)
[000:089] [3969] (v4l2_video_capturer.cpp:58): GetDeviceName(4): device_name=bc$
[000:089] [3969] (device_info_linux.cc:70): GetDeviceName
[000:090] [3969] (v4l2_video_capturer.cpp:218): Video Capture enumerats support$
[000:090] [3969] (v4l2_video_capturer.cpp:220): { pixelformat = YUYV, descrip$
[000:090] [3969] (v4l2_video_capturer.cpp:220): { pixelformat = MJPG, descrip$
[000:090] [3969] (v4l2_video_capturer.cpp:236): We prefer format YUYV
[000:242] [3969] (v4l2_video_capturer.cpp:66): Get Capture
[000:242] [3969] (audio_device_impl.cc:76): Create
[000:242] [3969] (audio_device_impl.cc:84): CreateForTest
[000:243] [3969] (audio_device_buffer.cc:65): AudioDeviceBuffer::ctor
[000:243] [3969] (audio_device_impl.cc:122): AudioDeviceModuleImpl
[000:243] [3969] (audio_device_impl.cc:126): CheckPlatform
[000:243] [3969] (audio_device_impl.cc:137): current platform is Linux
[000:243] [3969] (audio_device_impl.cc:156): CreatePlatformSpecificObjects
[000:243] [3969] (audio_device_impl.cc:946): PlatformAudioLayer
[000:243] [3969] (audio_device_impl.cc:266): PulseAudio support is enabled.
[000:243] [3969] (audio_mixer_manager_alsa_linux.cc:30): AudioMixerManagerLinux$
[000:243] [3969] (audio_device_alsa_linux.cc:101): AudioDeviceLinuxALSA created
[000:243] [3969] (audio_device_impl.cc:274): Linux ALSA APIs will be utilized.

$ lsusb
Bus 002 Device 005: ID 174c:55aa ASMedia Technology Inc. Name: ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 046d:085c Logitech, Inc. C922 Pro Stream Webcam
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

オーディオデバイスの優先度
$ cat /proc/asound/modules
0 snd_usb_audio
1 snd_bcm2835

デバイス情報

$ arecord -l
**** ハードウェアデバイス CAPTURE のリスト ****
カード 0: Webcam [C922 Pro Stream Webcam], デバイス 0: USB Audio [USB Audio]
サブデバイス: 1/1
サブデバイス #0: subdevice #0

webrtc_momo _log.txt

multistreamで送信専用で長時間配信しているとSegmentation faultで落ちる

バグを説明してください

テレビ会議システム (Sora) に対してmomoからテスト映像を送っていた。
時々様子を見ながら一晩くらい連続配信しているとSegmentation fault で落ちていた。

再現する

AUDIO_OPT='--disable-echo-cancellation --disable-auto-gain-control --disable-noise-suppression --disable-highpass-filter --disable-typing-detection'
SIGNALING_URL=wss://....
CHANNEL_ID=566ce1...

../current/momo $AUDIO_OPT --video-device /dev/video0 --log-level 4 --resolution QVGA --framerate 20 sora --role sendonly --auto --video-codec H264 --video-bitrate 1000 --audio-codec OPUS $SIGNALING_URL $CHANNEL_ID --multistream

予想される行動

Segmentation fault で落ちずに配信が継続する。

カメラ/マイク

カメラは ロジクール C270

$ lsusb
Bus 001 Device 005: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 004: ID 0411:0242 BUFFALO INC. (formerly MelCo., Inc.) 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

提供バイナリ
momo-19.12.0_raspbian-buster_armv7

--log-level 1 の出力ログ

代わりにwebrtc_logs_[0-9] とcoreファイルを添付します。

追加の情報

使用したラズパイはラズパイ2B
sora は 19.10.3

segv1.zip
segv2.zip

この問題に関する他の情報をここに追加してください。

Momo 2021.1 (libwebrtc M89) 以降で TURN-TLS が有効な状況で接続にいくとセグフォする

問題がでる Momo のバージョン

  • 2021.1
  • 2021.2
  • 2021.2.1

回避方法

  • TURN-TLS を無効にする
  • Momo 接続時に --insecure を指定する

再現環境

  • 証明書には Let's Encrypt を利用している
  • TURN-TLS が有効な Ayame または Sora に接続に行く

サービス対応状況

  • Sora Labo は TURN-TLS を無効にしてあります
  • Ayame Labo は TURN-TLS が有効なため接続するとセグフォします

今後のアクション

  • 問題の解明
  • 問題が解明したら修正版 2021.2.2 のリリース

情報提供

Discord へお願いいたします。

sora モードの multistream + sendonly で長時間利用してる際に他の sendrecv が退出した時にセグメンテーションフォルトで落ちる

この issue はこちらからの引き継ぎです #119

バグを説明してください

sora モードの sendonly + multistream で接続している際、sendrecv / recvonly で参加したあとに離れると momo がセグメンテーションフォルトで落ちる

再現する

AUDIO_OPT='--disable-echo-cancellation --disable-auto-gain-control --disable-noise-suppression --disable-highpass-filter --disable-typing-detection'
SIGNALING_URL=wss://....
CHANNEL_ID=566ce1...

../current/momo $AUDIO_OPT --video-device /dev/video0 --log-level 4 --resolution QVGA --framerate 20 sora --role sendonly --auto --video-codec H264 --video-bitrate 1000 --audio-codec OPUS $SIGNALING_URL $CHANNEL_ID --multistream

予想される行動

sendonly では SDP 交換は発生しないため、それ以外が要因と思われる。

カメラ/マイク

カメラは ロジクール C270

自前バイナリ/提供バイナリ

最新版ではないことに注意

momo-19.12.0_raspbian-buster_armv7

追加の情報

#119

ラズパイ3で HD 解像度で --hw-mjpeg-decoder オプションをつけると映像が出ない

Discord ID を教えて下さい
tetsu_koba

バグを説明してください

resolution が HDで --use-native をつけると映像が出てこない。
このページに書いてある /boot/config.txt の追加はしている。
https://github.com/shiguredo/momo/blob/develop/doc/SETUP_RASPBERRY_PI.md#raspberry-pi-%E3%81%A7-usb-%E3%82%AB%E3%83%A1%E3%83%A9%E5%88%A9%E7%94%A8%E6%99%82%E3%81%AB-use-native-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%82%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AC%E3%83%BC%E3%83%88%E3%81%8C%E5%87%BA%E3%81%AA%E3%81%84

再現する

SIGNALING_URL=wss://.... (省略)
CHANNEL_ID=... (省略)
AUDIO_OPT='--disable-echo-cancellation --disable-auto-gain-control --disable-noise-suppression --disable-highpass-filter --disable-typing-detection'

momo $AUDIO_OPT --log-level 2 --video-device /dev/video0 --use-native --resolution HD --framerate 30 sora --auto --video-codec H264 --audio-codec OPUS --audio-bitrate 96 --video-bitrate 2000 $SIGNALING_URL $CHANNEL_ID

5回試して5回とも発生した。

期待する動作

--resolution HD を指定したときに、 --use-native の有無にかかわらず配信ができる。

実際の動作

webrtc の接続はされるが、映像が流れない。
webrtc_logs_0 のログを見るとSendFrame の行が無い。

resolution を VGAにすると --use-native をつけても映像が出て、正しく配信できる。
また、--use-native をつけなければ resolution がHDでも配信できる。

カメラ/マイク

IMX317センサーの4K webcam
ELP-USB4KHDR01-BL36

$ lsusb
Bus 001 Device 004: ID 05a3:0317 ARC International 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

提供バイナリ
momo-2020.3.1_raspbian-buster_armv7

--log-level 1 の出力ログ

webrtc_logs_0 を添付します。
webrtc_logs_0.txt

追加の情報

この問題に関する他の情報をここに追加してください。

ngrok経由での接続が突然切断される

発生している問題
momoを外部から接続できるようにするため,ngrokを用いて接続していたのですが,5分くらい経つとiceconnectionstateがdisconnectになり,映像が途切れてしまう問題が発生しています.

再現する環境
Macbook Pro (15-inch, 2018)
Ubuntu 18.04 LTS

momo --port 8080 --log-level 1 p2p

想定される原因

wiresharkでパケットを見ていたところ,突然ICMPのDestination unreachable (Port unreachable)が返ってきていました.そのため,ホールパンチしていたポートが閉じられたことが原因だと思われます.

カメラ/マイク

Mac : Macbook Proに搭載されているwebcam
Ubuntu : v4l2loopbackを用いた映像

自前バイナリ/提供バイナリ

Mac : 3bfe439
Ubuntu : eeac602

--log-level 1 の出力ログ

macbookで取得したものです.
momo-log.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.