在数字电视中,有一些用于信令的表。这个表可以在.py文件中定义,以后转换为.sec,最后转换为.ts,这样它们就可以复用。为此,使用下一个代码:
out = open("./pat.sec", "wb")
out.write(pat.pack())
out.close
out = open("./pat.sec", "wb") # python flush bug
out.close
os.system('sec2ts 0 < ./pat.sec > ./pat.ts')
os.remove('pat.sec')
...其中PAT是表的名称,sec2ts是来自OpenCaster的命令(用于复制TS用于数字电视的软件),最后我删除了.sec文件,因为它不再重要
现在,从一个多路复用的.ts文件中,我以.sec格式提取了一个表(PAT),然后我需要将它返回到.py,这样我就可以分析它的代码了,或者看一下用来定义它的代码首先。
我的问题是:如何从.sec文件中提取代码并将其保存在.py文件中?我上面做了什么反过程?
这里是.py文件的其余部分,以防万一:
#!/usr/bin/python
import os
from dvbobjects.PSI.PAT import *
from dvbobjects.DVB.Descriptors import *
from dvbobjects.MPEG.Descriptors import *
pat = program_association_section(
table_id = 0,
section_syntax_indicator = 1,
current_next_indicator = 1,
transport_stream_id = 22,
version_number = 1,
section_number = 0,
last_section_number = 0,
program_loop = [
program_loop_item(
program_number = 47,
PID = 0x0010,
),
program_loop_item(
program_number = 49,
PID = 0x0013,
),
program_loop_item(
program_number = 51,
PID = 0x0014,
),
],
)
out = open("./pat.sec", "wb")
out.write(pat.pack())
out.close
out = open("./pat.sec", "wb") # python flush bug
out.close
os.system('sec2ts 0 < ./pat.sec > ./pat.ts')
os.remove('pat.sec')