OpenMontage:用FFmpeg与开源工具链构建视频自动混剪流水线
各位做视频的朋友,今天聊一个我最近玩得比较深的思路——OpenMontage。别被这个英文名唬住,它不是一个现成的软件安装包,而是一套“开放式蒙太奇”的创作方法论:完全基于开源工具链,把素材整理、智能分割、自动混剪、字幕生成、成片导出这一整条流水线搭起来,用脚本和参数把重复劳动力省掉,让剪辑回归到“表达”本身。这套东西能解决什么问题?最典型的就是你手里攒了一堆素材,想剪一条混剪视频,但手动切割、对齐、排序、加字幕一做就是四五个小时,而用这套工作流,前期配置好之后,十分钟就能出一版可用的初剪。适合谁参考?一个是接商单需要快速出预览片的小团队,另一个是想系统化学习剪辑工具链、不想被某个付费剪辑软件绑死的独立创作者,哪怕你只是视频号、B站、抖音的日常创作者,里面很多镜头处理和字幕技巧也能直接用上。
我最早尝试OpenMontage是被一个真实场景逼出来的。当时手上有十几条不同来源的素材,拍摄参数乱七八糟,有的4K 60帧,有的1080P 30帧,还有几条竖屏的,要剪成一个3分钟的旅行混剪。手动拖进剪辑软件里,光是统一格式、切割精彩片段、对齐节奏就花了我一整个下午。做完之后我就在想,这里面其实大量步骤是高度重复且模式化的:检测画面切换、砍掉冗余片段、按时间线排序、音频响度统一、字幕压制。这些完全可以交给程序去干,人只负责定脚本、定节奏、定风格。顺着这个思路,我把整套方案跑通之后,回剪效率提升了至少三倍。
1. 内容整体设计与思路拆解
1.1 为什么把“蒙太奇”和“开源”绑在一起
蒙太奇这个词,学过剪辑的朋友都知道,它不只是转场和拼接,更是通过镜头的组接来创造新的叙事含义。一个特写接一个全景,观众心里会自动补全空间关系;一个笑脸接一个蛋糕,观众就会联想到生日。传统剪辑软件里,这些组接全靠手指头一点点拖,靠眼睛一帧帧盯。而OpenMontage的核心思路是:把蒙太奇的“组接逻辑”拆解成可量化的规则,然后用开源工具去执行这些规则。
比如你要做一个“日出到城市苏醒”的序列,规则可以拆成:找逆光镜头、找街道空镜、找行人脚步特写、找车流动向、时长控制在0.8到1.5秒之间、相邻镜头尽量从不同景别切换。这些规则一旦定下来,就等于给脚本写了注释。FFmpeg能做镜头分割,Python能按规则排序,最后再用Kdenlive或者Shotcut做精细调整。这整套东西之所以强调“开源”,是因为任何环节卡住了,你都能看到源码、改参数、写插件,不受商业软件的功能边界限制。
还有一个现实原因:开源的命令行工具在处理批量任务时,性能表现非常稳定。我实测过,用FFmpeg做300个短视频片段的批量转码,比在GUI软件里逐条导出的速度快很多,而且不会因为一次操作卡死就丢了全部进度。对于内容创作者来说,这已经不是“省一点时间”的问题,而是能不能在截止日期前交付的问题。
1.2 核心需求拆解:一个典型的OpenMontage流水线长什么样
按照我自己的使用习惯,一套完整的OpenMontage工作流包含七个环节:素材盘点、格式归一化、镜头边界检测、粗剪时间线生成、音频响度统一、字幕生成与压制、封面与元数据输出。每一个环节都可以独立运行,也可以串成一条命令链。
我画不出来流程图,也别指望截图软件给你画,但你可以把这个流水线想象成一条汽车装配线:素材进库后先做质检和体检(格式归一化),然后机器人把车壳切割成车门、引擎盖、后备箱盖(镜头边界检测),接着按照图纸把零件排到传送带对应的工位上(粗剪时间线生成),再给每个螺丝打上标准扭矩(音频响度统一),最后喷漆、贴标、质检出货(字幕压制和封面输出)。
这七个环节里,最容易被新手忽略的是“素材盘点”。很多人拿到素材就直接丢进剪辑软件,结果剪到一半发现有一条素材的编码格式不兼容,或者有一条音频是单声道,混进去之后音量小得听不见。在我的工作流里,第一件事永远是跑一个脚本把所有素材的编码信息列成表格:分辨率、帧率、时长、音频采样率、声道数、码率。这张表决定了后面所有环节的参数怎么设置。
1.3 为什么这种方案比直接剪辑更适合特定场景
直接打开剪辑软件,手动拖拽,这个过程本身没有错,我平时也这么干。但OpenMontage更适合三类场景。第一类是批量素材处理,比如你有一百个产品卖点视频,每个视频要剪出五秒的精华片段,手动操作会剪到怀疑人生,脚本可以一条命令全跑完。第二类是团队协作,你负责处理素材,同事负责调色配乐,如果素材编码格式不统一,同事那边打开就是花的、卡的、甚至是黑的,而自动归一化能抹平这种环境差异。第三类是“模板化创作”,你做了一个城市混剪的模板,里面定义了镜头长度、转场间隔、字幕样式,之后换任何素材套进来,都能产出风格一致的片子。
当然,这套方案也有它的短板,比如在精修调色、复杂关键帧动画、多轨道嵌套这些方面,命令行工具做起来很别扭,需要人工介入。所以我的建议非常明确:OpenMontage不是用来替代剪辑软件的,它是用来完成剪辑软件里那些“脏活累活”的,把时间还给创作。
2. 核心细节解析与实操要点
2.1 素材盘点:用FFprobe批量读取编码信息
这一节我直接分享可用的命令和脚本思路。FFprobe是FFmpeg家族里的“体检医生”,它不转码,只负责读取多媒体文件的封装格式、编码格式、宽高、帧率、时长、音频参数这些信息。
在Windows下打开终端,在Linux/macOS下打开Shell,先进到素材目录,然后运行这行命令:
for f in *.mp4; do echo "=== $f ==="; ffprobe -v error -show_entries format=duration,bit_rate -show_entries stream=codec_type,codec_name,width,height,r_frame_rate,sample_rate,channels -of default=noprint_wrappers=1 "$f"; done跑完之后,你会看到每个文件的详细信息。比如有一条素材显示codec_name=h264、width=1920、height=1080、r_frame_rate=30/1,另一条显示codec_name=hevc、width=3840、height=2160、r_frame_rate=60/1,一眼就能看出画面比例是否统一、帧率差异有多大。
这个环节的实操要点是:千万不要跳过。我见过太多人直接拿Unity工程里的原素材、手机拍的竖屏视频、网上下载的横屏样片混在一起剪,结果导出的视频左右有黑边,或者人物明明是16:9的结果被拉伸成方的。先花三分钟跑一遍盘点,后面能省掉一个小时的反复导出检查。
2.2 格式归一化:统一分辨率、帧率与编码标准
格式归一化是整个OpenMontage流水线里最“枯燥”但最关键的环节。所谓归一化,就是把所有素材统一到一个标准:统一的封装格式(我用MP4)、统一的编码(H.264或H.265)、统一的分辨率(如1920x1080)、统一的帧率(如30fps)、统一的音频格式(AAC,48kHz采样率,双声道)。
归一化的目的有两个:一是避免剪辑软件在导入时对不兼容格式做各种奇怪的处理,二是保证后续批量处理时参数一致,不会出现一条素材是30帧、另一条是60帧导致最后导出掉帧或模糊的问题。
推荐的归一化命令如下(同样在素材目录下执行):
for f in *.mp4; do ffmpeg -i "$f" -c:v libx264 -preset medium -crf 20 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,fps=30" -c:a aac -b:a 192k -ar 48000 -ac 2 "norm_${f}"; done这条命令里要重点解释几个参数:scale=1920:1080:force_original_aspect_ratio=decrease的作用是把画面等比缩放到不超过1920x1080的范围,不会拉伸变形;pad=1920:1080:(ow-iw)/2:(oh-ih)/2会在不足的边上补齐黑边,让画面居中;fps=30强制输出30帧率;crf 20是H.264的恒定质量参数,数值越小画质越高,20是一个画质和体积比较平衡的甜点值,再小就是18以下,肉眼几乎看不出差别,但文件体积会明显变大。
有一个坑必须提醒:如果素材是竖屏的(比如手机拍的1080x1920),强行缩到1920x1080再补边,画面会变得很小,左右全是黑。更好的做法是先判断原始分辨率的宽高比,如果宽小于高,说明是竖屏素材,就输出到独立的竖屏目录,在后面的剪辑环节里单独处理,不要混进横屏的主线流程。
2.3 镜头边界检测:自动找到每一刀的位置
混剪最耗时间的工作之一就是切镜头。素材里一个镜头拍了十秒,你要用的可能只有三秒,但手动找那个“切入点”真的靠肉眼硬看。OpenMontage的解法是用FFmpeg的scdet滤镜来做镜头边界检测。
scdet是一个场景检测滤镜,它会逐帧分析画面内容,计算相邻帧之间的差异,差异超过阈值就认为是一个新的镜头。命令如下:
ffmpeg -i norm_素材1.mp4 -vf "scdet=threshold=0.30,metadata=print:file=scenes_素材1.txt" -f null -这里的关键参数是threshold,取值范围通常建议在0.1到0.5之间。数值越低越敏感,会把画面里的光照变化、人物小幅度移动都当作镜头切换;数值越高越迟钝,两个明显不同的镜头可能被当作一个连续镜头处理。0.30这个经验值适合大部分实拍场景,如果素材大量是PPT式静态画面,建议降到0.15,如果是剧烈运动的体育镜头,建议提高到0.40。
跑完之后,scenes_素材1.txt里会记录每一处场景切换的时间点。把这些时间点提取出来,就得到了这个素材的“可剪辑点”列表。配合我之前在实战里发现的技巧:把这些时间点前后各再放宽六帧,通常能避免画面接缝处的闪帧问题。因为scdet的切点检测偶尔会卡在两个画面的过渡帧上,直接切过去会看到一个短暂的模糊画面,放宽几帧可以兜住这个问题。
2.4 音频响度统一:让每一段素材听起来在一个音量层级
做混剪的时候,最影响观感的除了画面就是声音。不同素材的录音电平差异很大,有的素材人声特别小,有的素材环境音特别吵,如果直接拼在一起,观众会把音量键按烂。
FFmpeg有一个专门处理响度的滤镜叫loudnorm,它遵循的是EBU R128响度标准。简单说,这个标准把人耳感知的音量统一到目标值,而不是简单地看波形高度。命令示例:
ffmpeg -i norm_素材1.mp4 -af "loudnorm=I=-16:TP=-1.5:LRA=11" -c:v copy -c:a aac "audnorm_素材1.mp4"参数含义:I=-16表示整体响度目标为-16 LUFS,这是比较适合网络视频传播的一个经验值;TP=-1.5是真实峰值上限,避免削波爆音;LRA=11是响度范围,控制动态范围不会忽大忽小。如果你做的是电影感的短片,响度可以调到-14甚至-11,但要注意-14在手机外放上听起来会偏大,建议多设备试听后再定。
这里我犯过的一个低级错误是:只统一了视频分轨,没有处理背景音乐。结果人声清楚了,音乐却忽大忽小。后来我做了一步补充处理,在素材进入混剪之前,把每条素材拆成视频轨和音频轨,音频轨统一经过loudnorm之后再合并回去。唯一的副作用是耗时有所增加,但稳定性的收益非常明显。
3. 实操过程与核心环节实现
3.1 工具链选型:我实际在用什么
OpenMontage不是一个单体应用,它是一套工具链的组合。我目前最顺手的组合是:FFmpeg(含FFprobe)做底层音视频处理,Python写调度脚本,Audacity做音频精修,Kdenlive做最终的时间线拼装,GIMP和ImageMagick做封面和缩略图处理。
这套组合不是唯一解,你可以把Kdenlive换成Shotcut,把Python换成Node.js,核心的FFmpeg几乎无可替代,因为它的滤镜体系和处理生态最成熟。我用过的商业软件也不止一个,但FFmpeg在批量处理上的速度和灵活性,目前没有任何GUI软件能匹敌。
工具选型上再补一句个人体会:不要一上来就追求复杂的Python框架。很多人喜欢用某个封装好的视频处理库,但那玩意环境依赖装起来有时候很折腾。我的建议是先用纯FFmpeg命令把流程跑通,再考虑用Python做一个薄封装层,让命令行调用更规范、参数不必反复手敲。
3.2 快速生成粗剪时间线:从脚本到XML
流程走到这一步,你已经有了若干段归一化的素材,以及每一段素材的镜头切点列表。接下来要解决的是:怎么把这些片段快速排成一条时间线。
我采用的方案是让Python脚本生成一个EDL(Edit Decision List,剪辑决策列表)或者XML工程文件,然后直接导入到Kdenlive。Kdenlive支持导入多种工程文件格式,其中XML是最直接的途径。脚本的核心逻辑很简单:按顺序读取每组素材的切点时间,挑选出符合时长的片段,把片段的入点、出点、素材路径写入XML,再按预设的“镜头长度列表”(比如先1.2秒,再0.8秒,再1.5秒,循环)控制每个片段在时间线上占用的时长。
这里必须强调:脚本只负责给你一版“初剪”,它不理解情绪、不理解叙事重点,它只执行你设定的规则。比如你在脚本里定义一个规则是“所有片段的平均长度在1.2秒左右”,那么脚本就会在符合切点条件的区间里挑最近似这个秒数的片段。最后由人来做的事情,是在Kdenlive里打开这个工程,删掉几个不合适的,换一换顺序,加几个转场,这整个过程大概五分钟。
生成XML的关键是确保每个clip的in和out时间基准与素材的实际帧率一致,否则导入后会出现时间漂移。比如30fps的素材,时间戳就要换算成帧数(1.2秒就是36帧),而不是直接写秒数。这个细节我在初版脚本里忽略过,导进去之后整条时间线对不上,后来低头看文档才解决的。为了避免类似问题,脚本里处理时间时统一用帧数 = 秒数 乘以 帧率的换算,最后再乘以一个时间基准(通常是90000,这是很多非编软件的默认时基)做归一化。
3.3 字幕生成与烧录:先做时间轴,再做样式
混剪视频很少不带字幕,而且字幕的正确率直接决定观众能不能顺畅看完。OpenMontage的做法通常分两步:先用语音识别生成带时间轴的字幕文件,再把这个字幕文件烧录到视频里。
语音识别这块,开源玩家优先考虑本地方案,比如whisper.cpp,它可以把音频切片转成带时间戳的SRT文本。装好之后,对已经做好的成片输出音频峰波,然后执行识别。实测下来,只要原始音频说话比较清晰、环境噪音不大,识别准确率可以达到九成以上,剩下的一成靠人工过一遍字幕文本。
字幕生成之后是烧录,FFmpeg的subtitles滤镜可以吃SRT文件。常见命令长这样:
ffmpeg -i 成片.mp4 -vf "subtitles=subtitle.srt:force_style='FontName=Microsoft YaHei,FontSize=16,PrimaryColour=&H00FFFFFF,Outline=1,Shadow=0,OutlineColour=&H00101010'" -c:v libx264 -crf 20 -c:a copy 成片_带字幕.mp4这里最容易出问题的是中文字体名。Linux环境里不装中文字体的话,烧录出来的字幕就是方框。解决方法是先确认系统里有可用的中文字体,比如Noto Sans CJK SC,然后在FontName里填这个字体的标准名称。另外,FontSize的数值要结合视频分辨率来调。1920宽的片子我用16,1080宽的片子用9到11,太小看不清,太大挡画面。如果你追求更好的排版,更推荐用ASS字幕替换SRT,ASS支持逐条字幕独立控制位置、颜色、描边,做出来的字幕有“设计感”而不是默认清水风格。
3.4 成片导出:参数怎么设才兼顾画质与体积
导出这一步虽然看起来是最后一步,但参数设置不当会前功尽弃。我给出的常规导出参数组如下,适合B站、YouTube这种平台:
ffmpeg -i 最终工程.mp4 -c:v libx264 -preset slow -crf 19 -pix_fmt yuv420p -c:a aac -b:a 192k -movflags +faststart 发布版.mp4逐项解释:-preset slow牺牲一点编码速度换取更好的压缩效率,同码率下画质更好;-crf 19在1080P成片上属于“比较难看出压缩痕迹”的档位;-pix_fmt yuv420p是为了兼容几乎所有播放器和视频平台,如果漏了这个参数,部分手机和网页播放器会花屏;-movflags +faststart把元数据挪到文件头部,这样观众在网页上点开视频时不用等完整下载就能快速起播。
如果视频里包含大量快速运动的画面(比如运动混剪、舞蹈混剪),码率需求会飙升,此时可以改成-crf 18甚至-crf 16。如果空间紧张或者平台对文件大小有限制,则把preset改为medium,同时对视频码率设置一个上限,比如-maxrate 8M -bufsize 16M。这个特意设置的上下限码率,能防止画面在复杂背景下突然糊成一团。
4. 常见问题与排查技巧实录
4.1 转场生硬、卡顿感明显
很多人做完OpenMontage初剪之后反映:单看每个镜头都没问题,但拼在一起就是“一卡一卡”的,没有流畅感。这通常有两个原因:一个是镜头内容的时间点选得不对,落在了人物动作的中段,另一个是缺少动作衔接或匹配剪辑。
排查思路一般是先检查切点。把时间线切到硬切位置,往前退两帧、往后进两帧,逐帧看一下第一个镜头的尾帧和第二个镜头的收帧,如果画面主体位置变化超过一定幅度,看起来就会跳。经验做法是把片段的边界放宽到动作速度接近的位置再切。如果确实找不到合适的切点,就使用非常短的交叉淡化,时长控制在4到6帧,视觉上只是非常快速的闪切,不会显得拖沓。
另一个常见问题是:两个素材虽然都是30帧,但一个是逐行扫描、一个是隔行扫描,转场附近会有横向条纹。归一化阶段把fps=30统一之后通常就解决了,如果还有,就考虑在命令里加yadif=1这个反交错滤镜处理一遍。
4.2 音画不同步:时间戳冲突与采样率不匹配
我遇到过的最抓狂的问题是:单独播放素材时音画完全同步,一旦导入时间线导出成片,音频就会慢慢偏移,到后面越来越明显。排查下来,罪魁祸首通常是音频的采样率不统一。某条素材是44100Hz,另一条是48000Hz,在时间线里非编软件为了兼容会把所有音频统一重采样,但如果工程设置不正确,重采样过程中的时间基准与视频时基产生偏差,就会导致累积延迟。
解决办法是在归一化阶段就统一音频规格:-ar 48000强制输出48kHz采样率。另外,导出设置里注意检查时间基准,Kdenlive里通常默认是25fps时基,如果你的素材是30fps,建议在工程设置里把时间基准设置为30fps,否则逐帧对齐时会出现每N帧错一帧的现象。这不是玄学,是底层时基换算产生的累积误差。
还有一类偏移是字幕产生的:如果你用subtitles滤镜在编码阶段就烧录字幕,但编码命令里的帧率与字幕文件的时间轴基准不一致,字幕会比声音提前或滞后几帧。正确的做法是确保-r 30这样的输出帧率参数与字幕SRT里的时间轴基准一致,或者在专门的字幕轨道软件里做音画同步后再一起渲染。
4.3 批处理中断与进度恢复
跑批处理脚本,最怕的就是处理到一半程序崩掉或者断电,前面生成的文件白白浪费。我的做法是给每个处理步骤都写一个“进度标记文件”。比如归一化完成后,在对应素材旁边生成一个_normalized.ok的空文件;下一次脚本运行时,先检查这个标记文件是否存在,存在就直接跳过这一步。这样哪怕跑了一百个文件后中途断掉,重新启动时自动从上次断掉的地方继续,不需要重新处理前面九十九个。
这个思路看起来简单,但真的管用。我一开始没有这个机制,有一次跑一个两百多段素材的归一化,到第一百八十段的时候终端被系统报错中断,重启后把前面一百七十九条全部重新跑了一遍,白白烧掉半小时。后来补上标记文件之后,再也没为中断的事烦躁过。
4.4 素材版权与合规使用
OpenMontage作为一把“利器”,剪起来容易,但用起来要反复提醒自己合规。我在接商单或者公开平台发布时,所有素材要么是自己拍摄的,要么是明确授权CC0协议或平台明确允许商用的素材库。做混剪的时候,如果用了别人的影视片段、音乐片段,即使剪辑手法再巧妙,版权风险依然存在。平台可能调低推荐、限流,权利人还可能直接发函。
所以我通常在脚本的开头注释里写明每个素材的来源和授权状态,不为别的,就是为了日后能追溯。这也算OpenMontage的一个隐形好处——它把素材处理变成了数据流,每一步都有记录,反而比纯手动剪辑更容易做版权合规审查。
4.5 参数速查:我的常用配置表
| 用途 | 关键参数 | 备注 |
|---|---|---|
| 归一化分辨率 | scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2 | 保持比例不拉伸,黑边自动补齐 |
| 统一帧率 | fps=30 | 混剪默认值,网络视频适配好 |
| 场景检测阈值 | scdet=threshold=0.30 | 实拍素材通用值,运动场景调0.40以上 |
| 响度统一 | loudnorm=I=-16:TP=-1.5:LRA=11 | 适合网络传播,电影感可调-14 |
| 音频统一采样 | -ar 48000 -ac 2 | 避免音画时间戳漂移 |
| 字幕烧录 | 中文字体用Noto Sans CJK SC | Linux系统必须先装字体,否则变方框 |
| 发布导出 | -crf 19 -preset slow -pix_fmt yuv420p -movflags +faststart | 1080P均匀画质的基线 |
这张表不是金科玉律,而是让你有一个“已知能跑”的起点。真正用起来,每一次调节都应该以“在目标设备上的实际观感”为准。
5. 从初剪到精修:OpenMontage的进阶玩法
整套流水线搭好之后,你不一定每次都只做“素材→粗剪→导出”这种线性流程。我这里分享几个进阶思路,都是我在实战中验证过有效的玩法。
第一个玩法是“节奏映射”。把一段你喜欢的参考视频的镜头时长序列提出来,比如它前20秒的镜头分布是1秒、0.8秒、1.2秒、0.6秒、1.5秒,然后把这个序列作为你自己的素材排序模板。Python脚本读取这个序列,按同样的节奏逻辑从素材库里挑片段。出来的片子,节奏感与参考视频一致,但内容完全是你的。这个玩法特别适合模仿头部创作者的主流节奏,又不至于直接抄袭画面。
第二个玩法是“自动配对”。如果你有两个素材库,A库是航拍空镜,B库是人物动作特写,你希望在A出现一个城市全景后马上接一个B里的行人过马路的特写,形成一种“城市中有人在生活”的隐喻蒙太奇。脚本可以通过识别画面运动方向来配对:A库素材的全局运动是向右的,B库素材的局部运动也尽量匹配向右。虽然识别精度不完美,但筛选掉大量明显不搭的选项是没问题的,剩下的微调人工几分钟就完成。
第三个玩法是“版本批量生成”。接商单的时候经常碰到甲方说“我还是更喜欢另一种节奏”。传统做法是重新导出整条片子,费时费力。而OpenMontage由于整套流程是脚本化的,你可以把镜头时长序列、转场参数、背景音乐路径做成三个变量,一次跑出三到五个不同版本,让甲方在预览时就锁定方向。实测下来,这种“多版本试片”方式给甲方的体验非常好,因为你展示的不再是“一条片”,而是一整套可调整的方案。
6. 一些实际操作中的心得体会
写到这里,整套OpenMontage的思路、工具、命令、坑,基本都摊开讲了。最后分享几句我自己的感觉,不打算总结什么大道理,就是几个字:把工具链理顺之后,剪辑反而变纯了。
我最开始接触这套东西时,满脑子都是“自动化能不能把什么都干了”。后来跑多了才意识到,自动化和手动拖拽从来不是对立关系,它们各干各擅长的部分。批量格式化、场景检测、响度统一、字幕时间轴,这些是纯体力活,交给脚本我完全不心疼;但镜头排序、情绪曲线、调色的风格倾向,这些是审美判断,交给脚本反而会得到一个“四平八稳但没有灵魂”的成品。所以我现在的做法是,OpenMontage负责产出所有“选项”,我负责从这些选项里做“选择”。效率大幅提升,创作乐趣一点没少。
再分享一个小技巧给卡在“素材够多但剪不出层次”的朋友。你可以用这个思路:把所有素材按“大景、中景、特写、空镜、声音素材”建立五个文件夹,然后脚本在粗剪时,强制按“大景→中景→特写→空镜→声音素材”的次序循环排列。这是最基础的蒙太奇语法,但仅凭这个简单的规则,剪辑节奏就会比随机拼接明显有设计感。等你习惯这个流程之后,再慢慢打乱规则,加入你自己的节奏偏好。那时候你手里的OpenMontage就不再是一套工具,而是真正属于你自己的剪辑助手了。