在Python中解析H.264是可以完成的,但它通常不是最好的工具。如果你真的想使用它,你应该从H.264标准开始,而不是参考软件,尽管两者兼得很有用。在
正如我所说的,Python不适合解码视频,所以没有太多的东西可以帮助你。我过去曾用它来获取或更改奇数参数,并编写了一个模块(bitstring)来提供帮助。有一个解析documentation中H.264结构的示例:
这个例子创建了一个类来解析作为H.264视频标准一部分的结构。在class seq_parameter_set_data(object):
def __init__(self, s):
"""Interpret next bits in BitString s as an SPS."""
# Read and interpret bits in a single expression:
self.profile_idc = s.read('uint:8')
# Multiple reads in one go returns a list:
self.constraint_flags = s.readlist('4*uint:1')
self.reserved_zero_4bits = s.read('bin:4')
self.level_idc = s.read('uint:8')
self.seq_parameter_set_id = s.read('ue')
if self.profile_idc in [100, 110, 122, 244, 44, 83, 86]:
self.chroma_format_idc = s.read('ue')
if self.chroma_format_idc == 3:
self.separate_colour_plane_flag = s.read('uint:1')
self.bit_depth_luma_minus8 = s.read('ue')
self.bit_depth_chroma_minus8 = s.read('ue')
# etc.
>>> s = BitStream('0x6410281bc0')
>>> sps = seq_parameter_set_data(s)
>>> print(sps.profile_idc)
100
>>> print(sps.level_idc)
40
>>> print(sps.reserved_zero_4bits)
0b0000
>>> print(sps.constraint_flags)
[0, 0, 0, 1]