视频切片算子将视频按固定时长、场景切换或对话轮次进行切片,生成多个视频片段。本文介绍视频切片算子的配置方法。
前提条件
-
当前实例购买非结构化数据功能后,方可使用工作流功能。
-
已完成工作流的创建,详细创建步骤请参见创建工作流。
背景信息
-
视频切片算子支持处理以下格式文件:mp4、mov、mkv、avi、flv、wmv、webm、mpeg、mpg、ts、m2ts、mts、3gp、3g2、asf、rm、rmvb、vob、ogv、dv、f4v、mxf、nut、y4m、m4v、mpv、mjpeg。
-
视频切片算子默认分配1Core、4GB资源。
权限说明
Basic项目的项目管理员、开发者、分析师以及拥有数据集-使用权限的自定义项目角色,可在算子的输入和输出数据集中使用该项目下的所有数据集。
操作步骤
-
在Dataphin首页的顶部菜单栏中,选择研发 > 数据研发。
-
在开发页面的顶部菜单栏选择项目。
-
在左侧导航栏中选择数据处理 > 工作流,在左侧工作流列表中单击目标工作流,打开工作流画布,在左侧算子库中拖动视频切片算子至画布中,并在右侧视频切片面板中配置以下参数。
参数
描述
步骤名称
输入当前算子名称,支持任意字符,不超过256个字符。
输入配置
数据集
选择需处理的数据集,仅可选择混合数据集。数据集选择完成后还需选择其版本,默认为该数据集正序的第一个版本。
当前算子作为其他算子的下游时,此处所选数据集通常与上游算子的输出数据集一致。
输入字段
待处理视频文件的存储URL,需选择输入数据集中来源字段,仅可选择输入数据集中是否URL参数为是的字段。
过滤条件(非必填)
使用SQL语法,仅需输入where语句后的过滤条件,支持使用系统全局变量,例如业务日期${bizdate}。
算子配置
切分方式
-
按固定时长切分:将视频按指定切片时长均匀切分为多个片段,最后一个片段时长可能不足设定值。
-
按场景切分:基于PySceneDetect库,自动识别视频中的镜头切换点(如画面突变、转场等),按场景边界切分为多个片段,适用于影视剪辑、会议录像、教学视频等有明确镜头切换的内容。
选择按场景切分后,还需配置检测灵敏度和最小片段时长。
-
按对话切分:先提取视频中的音频,再通过语音识别模型检测人声的起止时间点,按对话轮次切分并区分说话片段与非说话片段,适用于会议、访谈、客服等对话类视频,背景音乐与环境噪声不影响判定。
选择按对话切分后,还需配置模型、对话片段最小时长和输出方式。
切片时长
按固定时长切分时,需指定切分时长,支持输入正整数,单位秒。
检测灵敏度
判定镜头切换的阈值,值越小越灵敏(检测出更多切点),值越大越保守(仅检测明显的镜头切换),默认为27。
一般情况下,快节奏视频推荐设为20~25;普通视频推荐使用默认值27;长镜头视频可设为30~40。
说明仅按场景切分方式支持配置此项。
最小片段时长
切分后每个片段的最小时长,单位秒,默认为5秒。短于此时长的片段会与相邻片段合并,避免产生时长过短的碎片片段。
说明仅按场景切分方式支持配置此项。
模型
为当前算子选择所使用的模型,仅可选择智能应用管理 > 模型配置中模型类型包含音频、音频能力包含人声检测且已启用的模型。
说明仅按对话切分方式支持配置此项。
对话片段最小时长
单个对话片段的最小时长,单位秒,默认为5秒。短于此时长的片段会与相邻片段合并为连续片段,避免产生无上下文的碎片片段。
说明仅按对话切分方式支持配置此项。
输出方式
-
仅说话片段:仅输出有人说话的片段,可显著减少切片数量与存储占用,默认为该方式。
-
全部:输出全部片段(包含非说话片段)。
说明仅按对话切分方式支持配置此项。
输出配置
数据集
可选择一个混合数据集作为输出数据集;同时,支持选择来源数据集的其他版本。数据集选择完成后还需选择其版本,默认为该数据集正序的第一个版本。
切片文件目录
前缀固定为所选数据集文件存储的目录,您可输入指定存储的子目录,每一个来源视频文件都需存放在独立的子目录中。
加载策略
若所选输出数据集的元数据表中存在主键,则默认选择主键冲突时更新;若不存在主键,则默认选择追加数据。
-
追加数据:直接向目标表新增追加数据,当主键/约束冲突时,会提示错误。
-
主键冲突时更新:当主键/约束冲突时,会先删除整行主键重复的旧数据,再插入新数据。
-
覆盖:先删除目标表的数据,再写入数据。
字段映射
视频切片算子将固定输出以下字段:
-
source_video_url:原始视频的存储URL。 -
segment_sequence:切片序号。 -
segment_video_path:切片视频存储URL。 -
video_id:切片视频文件的唯一ID,用于下游进行唯一识别。 -
start_time:切片在原始视频中的起始时间,单位秒。 -
end_time:切片在原始视频中的终止时间,单位秒。
在实时工作流和在线工作流中,视频切片算子按1:N模式输出,即单条输入事件将产出多个视频片段,切片结果以
video_segments数组字段承载,可作为ForEach循环算子的遍历来源,将每个视频片段交由下游算子逐个处理,ForEach循环算子的迭代变量默认为video_segment。算子输出字段默认映射至输出数据集的同名字段,您也可以手动选择目标字段进行自定义映射。此外,支持将来源数据集的透传字段映射至目标数据集。您可以通过以下方式管理字段映射:
-
新增输出字段:单击后新增一行空白字段映射关系。
-
批量映射:单击后可选择批量手动映射、同名映射或同行映射。
-
删除映射:单击删除图标可删除对应行的字段映射,但算子固定输出字段的映射不支持删除。
-
-
配置完成后,单击画布顶部菜单栏中的保存,保存此次配置。
单个算子配置完成后,可继续为其选择上游或下游算子来完成完整工作流的配置。