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

http://www.asciitable.com/