使用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