使用Python的rtmplib绑定并遇到一些问题。解码十六进制(?)数据包
首先,
我有这样的事情:
import librtmp
conn = librtmp.RTMP(...)
conn.connect()
while True:
packet = conn.read_packet().body
print packet
这将打印数据包像图所示:
对我来说,这看起来像十六进制,并写入文件时,我得到4个字符串,如下所示:
0200 086f 6e42 5744 6f6e 6500 0000 0000
0000 0000 0500 0000 0000 0000 0000 0200
066e 6f74 6963 6500 0000 0000 0000 0000
0502 0003 2a2a 2a02 000a 5072 6f63 6573
所以我的问题是,我怎么能把这变成一个真正的字符串(或缓冲区)只有可读的文字?我已经尝试了不同的东西来解码十六进制,但结果是“\ x05”。
另外值得一提的是,当它写入它包含很多00的。
任何人都知道我怎么才能实现我早期以简单但好的方式提出的问题?
在此先感谢。
我在做一些研究后正在研究struct。使用'print repr(packet)'打印出更具可读性的东西。感谢您的建议! – 2014-10-31 06:02:35
不用担心队友 – 2014-10-31 06:03:20
接受你的答案,也发现有一个函数叫做'librtmp.amf.decode_amf'来解码它。愚蠢的我没有想到AMF,当时我曾经使用过RTMP。 – 2014-12-21 14:24:43