【发布时间】:2016-05-23 06:54:41
【问题描述】:
我正在编写一个 python 脚本来通过 socketio 将视频数据从 ip 摄像机流式传输到 Web 应用程序。问题出在这里:
sio.emit('my response', {'data': camera_buffer},
namespace='/test')
这是引发的 UnicodeDecodeError,因为 camera_buffer 表示 ffmpeg 格式的二进制数据。我的问题是,我如何告诉 Python 这是二进制数据而不是字符串?或者只是如何防止解码?
到目前为止唯一有效的方法是使用 binascii.hexlify(camera_buffer),但我想避免这种情况,因为它会给我带来不必要的开销。 我还尝试将数据作为字节数组发送。 我的操作系统是 Ubuntu 15.10。
编辑:有没有办法从管道中读取数据而不是字符串,而是二进制形式?我想这会有所帮助。我试过io=open('name_of_pipe','rb'),但从中读取仍然返回'str'。有什么想法吗?
【问题讨论】:
标签: python python-2.7 encoding socket.io