をストリーミングしながら、私はsocketioを経由してWebアプリケーションにIPカメラからの映像データをストリーミングするPythonスクリプトを書いています。問題はここにある:camera_bufferはffmpegの形式のバイナリデータを表してここUnicodeDecodeErrorがビデオ
sio.emit('my response', {'data': camera_buffer},
namespace='/test')
は、上げUnicodeDecodeErrorです。私の質問は、これはバイナリデータであり、文字列ではないことをPythonにどのように伝えることができますか?または、それを復号化するのを防ぐ方法は?
(camera_buffer)をbinascii.hexlify使用されてきた、これまで働いていた唯一の事、私はそれが私に不要なオーバーヘッドが発生すると、この問題を回避したいと思います。 私もbytearrayとしてデータを送信しようとしました。 私のOSはUbuntu 15.10です。
EDIT:ない文字列としてではなく、バイナリ形式でパイプからデータを読み取る方法はありますか?私はこれが助けることができると思います。私はio=open('name_of_pipe','rb')
を試しましたが、これを読むと 'str'が返されます。何か案は?
'data'はemit関数の名前付き引数であるため、これは機能しません。そして、私は私の問題は少し早く、私はパイプからデータを読み込む際に表示されていることを考える - 私はちょうどそれが可能である場合、バイナリではなく、文字列として扱うためにはPythonを必要としています。コメントを – JochoM
おかげで、私は別のアイデアを提案してきた - os.fdopenを使用しては「rb」 – Yaron
が解決すべきオープンを設定するであろう - 私は、Python 3の代わりに、Pythonの2と純粋なWebSocketを代わりにsocketioを使用しています。 – JochoM