1

我在弄清楚如何在我的第一个真正有用的 python 程序中执行最后一个 for 循环时遇到问题。我正在尝试根据一堆逻辑用 ffmpeg 分割视频以找出编辑点。

我有一个字典'cut_list'列表,我已经像这样排序了

[{'Cutstart': '01:00:00:00', 'CutEnd': '01:00:05:00'}, {'Cutstart': '01:00:10:01', 'CutEnd': '01:00:15:00'}, {'Cutstart': '01:00:20:01', 'CutEnd': '01:00:25:01'}]

然后我试图将这些值提供给 ffmpeg,像这样遍历字典列表:

cutcounter=1
for Cutstart & CutEnd in cut_list:
    for k in Cutstart.items() & v in CutEnd.items() :
        print(k)
        print(v)
        intime=Timecode(fps_real, k)
        intime.set_fractional(True)
        outtime=Timecode(fps_real, v)
        outtime.set_fractional(True)
        cutfile=str(cutcounter)+".mxf"
        print(k)
        print(v)
        subprocess.call(['ffmpeg', '-i', "C:\\path\\to\\file\\BaseFile.mxf", '-ss', k, '-to', v, '-c:v', 'copy', '-c:a', 'copy', cutfile])
        cutcounter=cutcounter+1

我的预期输出是遍历列表,并在这些特定时间码处分割视频块并编号为 1.mxf,并为每个 for 循环计数,以便与对这些时间跨度的插入修复重新组合。我想在我弄清楚 for 循环之后,我还需要将时间码值输入为 HH:mm:ss:mss 而不是 HH:mm:ss:ff 但这不是我无法弄清楚的部分。现在我只是无法理解为每个时间码获取 cutstart 和 cutend 以输入 ffmpeg 脚本的逻辑。

当我试图变得更聪明时,当前的错误是:Syntax Error: cannot assign to operator

我绝对没有经验,并且从许多其他有用的帖子中一起破解了这个,但是在排序和列表、字典列表、元组等以及何时何地使用每个方面都在苦苦挣扎。

4

0 回答 0