Comments (14)
segv3.zip
hung1.zip
hung2.zip
ログを追加します。
hung1, hung2 はSEGVは発生しないのですが、映像音声がテレビ会議の相手側に出なくなってしまったのでmomoをkillしたケースです。
共通しているのは、Received non-DTLS packet before DTLS complete.
が連発していることです。
momoは momo-19.12.0_raspbian-buster_armv7です。
いずれの場合もsora側のログにはエラーは出ていませんでした。
再現しやすい手順ですが、
momoを上記のコマンドラインオプションで起動した後に、テレビ会議に他に誰も参加しない状態で、10時間程度待ってから会議に参加、退出をすると発生します。
定期的に会議に参加、退出があると発生しないようです。
from momo.
momo-19.12.1_raspbian-buster_armv7 でも発生しました。
segvで落ちないけど、Received non-DTLS packet before DTLS complete.
が連発して使用不能な状態になるパターンです。
起動から全てのログが nohup.out に入っています。
hung3.zip
from momo.
原因切り分けのためにJetson Nanoとラズパイ4でロングランを実施しました。
まとめ
上記再現にある「10時間程度待ってから会議に参加、退出」の再現方法としてSoraで別端末のブラウザ経由で映像を確認、停止を実施しましたが再現することはありませんでした。
また、CPU、メモリ平均値は安定して稼働しており、ラズパイ2B環境に原因があるのではないかと考えられます。
実行結果
確認方法
- WindowsのChromeからSora経由で映像を確認(毎日朝と夜に再生・停止を2回ずつ)
- TOPコマンドでメモリとCPUを取得
実行コマンド
./momo --no-audio --port 0 --log-level 4 --resolution HD --framerate 20 sora --role sendonly --auto --video-codec H264 --video-bitrate 2500 --audio-codec OPUS wss://example.com/signaling xxxx@xxxx --multistream
実行環境
-
momo
自前バイナリ(12/31最新版使用) -
Jetson Nano
Jetpack 4.3 [L4T 32.3.1] -
ラズパイ4
Raspbian GNU/Linux 10 (buster)
from momo.
こちらでもJetson nano でやってみますね。
from momo.
jetson nano で試しました。SEGVで落ちるのでなくmomoは生きているけどDTLSのエラー多発で通信できない状態になりました。2回試して2回とも同様の結果になりました。
使用したのは提供バイナリの以下のものです。
momo-19.12.1_ubuntu-18.04_armv8_jetson_nano
jetson nanoの環境は
Jetpack 4.3 [L4T 32.3.1]
audio の有無は無関係のようです。
jetson_nano_hung1 の方は AUDIO_OPT='--disable-echo-cancellation --disable-auto-gain-control --disable-noise-suppression --disable-highpass-filter --disable-typing-detection'
jetson_nano_hung2の方は AUDIO_OPT='--no-audio'
./momo $AUDIO_OPT --log-level 1 --resolution QVGA --framerate 20 sora --auto --video-codec H264 --video-bitrate 1000 --audio-codec OPUS $SIGNALING_URL $CHANNEL_ID --multistream --role sendonly
ログファイルがそれぞれ27MB, 29MBなのですが、10MBより大きいファイルは添付できなくなったようで、エラーで添付できません。orz
from momo.
@tetsu-koba issue ありがとうございます。こちらロングランしつつ原因を探してみます。マルチストリーム系ということで、何かありそうです。
from momo.
@tetsu-koba 送信しっぱなしと、途中で multitream 参加すると落ちる問題は切り分けて対応していこうかと思っています。まずはロングランにお付き合いいただければと思います。
from momo.
jetson_nano_hung1a.zip
jetson_nano_hung2a.zip
仕方がないので、起動から全部のログは外して、webrtc_log_* だけ添付しました。
from momo.
@tetsu-koba 7 日間配信した検証では、最後に配信は問題なくできていたようです。といっても途中で切断して再接続が走っていたという可能性はあります。
DTLSのエラー多発で通信できない状態になりました
DTLS の処理は接続時にしか行わないので、もしかすると再接続時になにかうまく動かないタイミングがあるのかもしれません。
Sora 側で「接続時間」を見てもらうことは可能でしょうか。再接続が走ってるかどうかが知りたいです。
from momo.
@tetsu-koba 頂いたログを確認させていただいただところ、やはり再接続で失敗しているようでした。
おそらく再接続のタイミングで問題が起きやすいのかもしれないです。こちらでは「再接続を積極的にやる」という検証をロングランでやってみようと思います。
from momo.
すみません。コメントいただいていたのを気がついてませんでした。
再現しやすい手順ですが、
momoを上記のコマンドラインオプションで起動した後に、テレビ会議に他に誰も参加しない状態で、10時間程度待ってから会議に参加、退出をすると発生します。
定期的に会議に参加、退出があると発生しないようです。
jetson nano では20時間待ってから別のブラウザから会議に参加して退出すると発生しました。2回試して2回とも発生しました。長時間放置しておくことがポイントのようです。
何かのカウンターが桁溢れを起こしてしまっているのかもしれません。
from momo.
Sora 側で「接続時間」を見てもらうことは可能でしょうか。再接続が走ってるかどうかが知りたいです。
お手数をかけて申し訳ないのですが、一度 WebSocket が切れて再接続が走っているようなので実質 20 時間繋ぎっぱなしという感じではなさそうです。再接続の頻度で実質どのくらい接続していたかがわかると助かります。
ちなみにカウンター関連で DTLS は発生することはないので、再接続時になにか問題が起きていると見ています。
from momo.
課題が発散気味なので、整理します。
- sora + sendonly + multistream による長時間配信で落ちる
- @torikizi の検証により、弊社では現時点では再現しないため、クローズドとします
- 長時間つないで 別のブラウザで参加すると落ちた
- 退出時に SDP 交換は sendonly の場合は発生しないため、別の原因がありそうです
長時間配信自体は検証したところ問題ないのですが、おそらくマルチストリームの挙動としておかしな挙動をしているという判断のため、一度こちらの issue は閉じて、別の issue を立てさせていただきます。
切り分けのためまずは sendonly -> recvonly での確認のみ行っているため、今後は sendonly と sendrecv で確認を行っていく予定です。
from momo.
#127 こちらに別枠として issue を立てました。長時間配信に関しては、7 日間連続で配信して、問題なかったため一旦クローズとします。
from momo.
Related Issues (20)
- Windows 版で SDL を利用した際 H.264 の映像が受信ができない HOT 1
- Ubuntu 20.04 版で画面共有が動作しない HOT 1
- Ubuntu 18.04 版で画面共有が動作しない HOT 1
- Ubuntu x86_64 で NVIDIA VIDEO CODEC SDK を利用して H.264 の Simulcast を実行する再 --hw-mjpeg-decoder オプションを使うとコアを吐いて終了してしまう HOT 1
- オーディオデバイスを指定できるようにする
- Jetson Nano, Jetpack 4.6, C920 wr HOT 1
- How to stream the output of opencv to mobile web clients via momo HOT 1
- Jpeg library error HOT 1
- Raspberry Pi 利用時に --hw-mjpeg-decoder true で H.264 サイマルキャストを送信できない
- Momo 同士で繋いだ際 --serial が利用できない HOT 1
- HWデコーダ、VP9を有効にしてFHD配信を表示すると映像下部に緑色の線が入る HOT 2
- Jetson AGX Xavier にて getDisplayMedia 受信時配信対象がFHDとは異なるアスペクト比になった場合、縦または横に線が発生する HOT 2
- Raspberry Pi armv8 向けビルドで SDL2 を有効にする HOT 1
- NVIDIA Jetson 向け Jetpack 5.1 対応 HOT 1
- --show-me コマンドの削除 HOT 1
- Raspberry Pi OS 64 bit で H.264 が動作しない HOT 4
- Stream directly out of momo HOT 1
- 画面共有の問題 HOT 1
- windows_x86_64環境でビルドする場合、webrtc.libを差替える方法 HOT 1
- Ubuntu で SDL を利用した際、正常に動作しないことがある
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from momo.