CMX 3600编辑决策列表分析器
pycmx的Python项目详细描述
PYCMX
pycmx
包为解析cmx 3600 edl及其最常见的变体提供了一个基本接口。
功能
- cmx 3600的主要变化:标准的“file32”和“file128” 自动检测并正确读取格式。
- 保留事件和单个编辑/剪辑之间的关系。
- 阅读具有常见公认格式的备注或注释字段 客户端可用,包括剪辑名称和源文件数据。
- 象征性地解码转换和音频通道。
- 不分析或验证时间码,不强制帧速率,不 以任何方式参数化时间码或帧率。这使得解析器 对混合速率的edls的耐受性。
- 无法识别的行可以在
EditList
和Event
类上访问 与行号一起,帮助客户诊断 列出并使客户能够使用自己的 正在分析代码。
用法
打开和分析edl文件
>>> import pycmx
>>> with open("tests/edls/TEST.edl") as f
... edl = pycmx.parse_cmx3600(f)
...
>>> edl.title
'DC7 R1_v8.2'
阅读事件和编辑
EditList.events
是一个生成器…
>>> events = list( edl.events )
>>> len(events)
120
>>> events[43].number
'044'
…事件包含1…n个编辑。
>>> events[43].edits[0].source_in
'00:00:00:00'
>>> events[43].edits[0].transition.cut
True
>>> events[43].edits[0].record_out
'01:10:21:10'
接入转换和启用通道
>>> events[41].edits[0].transition.dissolve
False
>>> events[41].edits[1].transition.dissolve
True
>>> events[41].edits[0].clip_name
'TC R1 V1.2 TEMP1 DX M.WAV'
>>> events[41].edits[1].clip_name
'TC R1 V6 TEMP2 M DX.WAV'
# parsed channel maps are also
# available to the client
>>> events[2].edits[0].channels.get_audio_channel(7)
True
>>> events[2].edits[0].channels.get_audio_channel(6)
False
>>> for c in events[2].edits[0].channels.channels:
... print(f"Audio channel {c} is present")
...
Audio channel 7 is present
>>> events[2].edits[0].channels.video
False