2017-10-08 3 views
1

REST APIを使用してFlaskと書かれています。アップロードされたビデオを読み込み、JSONを返します。ビデオは、コンテンツタイプがapplication/x-www-form-urlencodedのPOSTリクエストによってファイルとして送信されます。バイトからビデオを読む

opencvを使用して処理しますが、生のバイナリ文字列から読み取る方法はわかりません。 私が思いついた唯一の解決策は、ビデオをファイルに保存し、opencv VideoCaptureクラスを使用してそれを読み取ることです。しかし、IO操作を避けたいのは、私のAPIが遅くなると思うからです。

だから私の質問は次のとおりです。

私はopencv表現(numpyのアレイのリスト)に生のバイト表現からビデオを変換できますか?

答えて

1

ビデオをファイルとしてサーバーにアップロードする場合は、既にファイルに保存しているように聞こえます。この場合、単にファイルから読み込むだけでは効率的ではありません。

ビデオは通常、メモリに収まりきらないほど大きいので、いずれにしても、ディスクに戻ってくる可能性があります。

ストリーミングビデオを直接受け入れることを希望する場合は、処理を行い、次に何をしてもかまいません(ファイルへの保存、表示、他の場所へのストリーミングなど)。可能であればOpenCVプログラムにビデオを送り、OpenCVを使って直接ストリームを読む:

VideoCapture cap; 
cap.open(yourStreamURL); 
関連する問題