使用 Python 从 MPEG 传输流中提取第一个 188 字节的数据包,但看不到同步字节
Using Python to extract the first 188-byte packet from MPEG Transport Stream but do not see the sync byte
我在Python中有以下代码:
with open("my_transport_stream_file.ts", "rb") as f:
data = f.read(188)
print(data)
在我看来,我相信我正在从文件中提取前 188 个字节,即第一个传输流数据包。这是我得到的:
b'G@\x00\x10\x00\x00\xb0\r\x00\x01\xc1\x00\x00\x00\n\xe0e\x8d,\xa3\xec\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
虽然这非常令人兴奋,因为我可以看到一些数据,但我没有看到我期望看到的 0x47 同步字节。
我错过了什么?
我在那里看到了,这是第一个字节。
0x47 是大写字母 G 的 ASCII 码。
无论您使用什么来打印该字符串,都会按原样打印 ASCII 字符,但会将不可打印的值(小于 0x20 且大于 0x7e 的值)转换为十六进制或其他转义码,例如 \r 是 0x0d 和 \ n 是 0x0a
我在Python中有以下代码:
with open("my_transport_stream_file.ts", "rb") as f:
data = f.read(188)
print(data)
在我看来,我相信我正在从文件中提取前 188 个字节,即第一个传输流数据包。这是我得到的:
b'G@\x00\x10\x00\x00\xb0\r\x00\x01\xc1\x00\x00\x00\n\xe0e\x8d,\xa3\xec\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
虽然这非常令人兴奋,因为我可以看到一些数据,但我没有看到我期望看到的 0x47 同步字节。
我错过了什么?
我在那里看到了,这是第一个字节。
0x47 是大写字母 G 的 ASCII 码。
无论您使用什么来打印该字符串,都会按原样打印 ASCII 字符,但会将不可打印的值(小于 0x20 且大于 0x7e 的值)转换为十六进制或其他转义码,例如 \r 是 0x0d 和 \ n 是 0x0a