Daiius / videmus

小規模・低遅延の動画配信サーバ・クライアント
0 stars 0 forks source link

技術調査時と異なり動画再生ができない #1

Closed Daiius closed 8 hours ago

Daiius commented 3 days ago

1対多通信を複数並列に行うため、サーバ側mediasoup関連のrouter, transport, producer, consumer を辞書型や配列 + リソース用のIDで管理するように変更した際、

何かmediasoup関連のリソースに触る際の処理を変更してしまったのか、動画が再生できなくなった。

Daiius commented 3 days ago

デバッグ、状況把握に使用しているツール

mediasoup関連のリソースをラップして、「何がどのタイミングで何をされたか」ログ出力できるようにするべきか。 そうすれば動作するバージョンとの差がもっとわかるかも...?

Daiius commented 8 hours ago

原因と対処方法が両方判明した。 技術調査時にはサーバ側のconsumerがpausedで作成されていなかった。 videmusでは正しくpausedでconsumerが作成されており、その場合にはサーバ側でresume()を呼び出さないといけない。

対処方法は2つある

  1. consumer を paused で作成しないことにすると、クライアント側の変更なしで動画が再生される
    • ソースコード中のコメントによると、真っ黒な画面が送信されるので最適解ではないとのこと
  2. consumer を paused で作成した上で、クライアント側でconsumerを作成後にサーバ側のconsuer.resume() を呼び出す
    • HTTPリクエストがもう1往復必要だが、一応mediasoupの意図する最適解となる