TUS-OSK / bushitsuchan-PC

部室の様子を見れるシステム 部室ちゃん
0 stars 1 forks source link

docker上での写真取得の動作速度 #33

Closed ilim0t closed 5 years ago

ilim0t commented 5 years ago

Dockerコンテナ上でffmpegを用いて,streamからimageに変換する処理が異様に遅い

ffmpeg -i /dev/video0 image.jpg ffmpeg -i rtmp://streaming-server/live/bushitsuchan image.jpg などの応答が遅くレイテンシーがある

ilim0t commented 5 years ago

検証はjrottenberg/ffmpeg:ubuntu

ilim0t commented 5 years ago

ネットから取ってきたmp4ファイルだとレイテンシーが60sから数秒へ改善されるのでcodecやfpsが原因だと思う ただ比較しても特に原因になりそうな項目が見つからない

ilim0t commented 5 years ago

ホスト上 /dev/video0 -> jpg: 2.5s container上 /dev/video0 -> jpg: 2.5s

streamer, streaming-serverともにcontainer上 host上 flv -> jpg: 9.5s container上 flv -> jpg: 9.5s

streamerはhost, streaming-serverはcontainer上で host上 flv -> jpg: 9.5s container上 flv -> jpg: 10.5s

streamerはhost, streaming-serverはhost上(nodejs)で

host上 flv -> jpg: 10s

単に設計による生じるレイテンシーか?

ilim0t commented 5 years ago

flvを使った場合最速でも9sほど これだとあまりにもおそすぎるのでflvを使った仕組み自体の見直しが必要か?

ilim0t commented 5 years ago

従来の実装では実用に耐えられていたので

従来と同じ設計にして検証する必要在るかも

ilim0t commented 5 years ago

https://github.com/TUS-OSK/bushitsuchan-PC/issues/33#issuecomment-528479824 この計測は間違ったもので,

ilim0t commented 5 years ago

またffmpegコマンドのpreset, tuneオプションを本番と同じ設定にし上の計測誤りも踏まえて計測し直したところ, streamerはhost, streaming-serverはcontainer上で host上 flv -> jpg: 9.5s

streamerはhost, streaming-serverはhost上(nodejs)で host上 flv -> jpg: 一瞬

であったことからstreaming-serverがボトルネックになっていると推測する

ilim0t commented 5 years ago

tiangolo/nginx-rtmp イメージの設定を書き換えれば応答速度は改善するのであろうが,node-media-serverを使えば改善することは確認できたのでひとまずそれを使うことにする