视频按时间戳切分
更新时间:2026-06-15
简介
视频时间戳切分处理器,支持按指定时间范围分割
功能描述
- 按给定的时间戳区间切分视频
- 支持片段二进制输出或BOS存储
- 提供格式自动推断与自定义
- MP4 (.mp4)
- AVI (.avi)
- MOV (.mov)
- MKV (.mkv)
- 其他常见视频格式
算子参数
输入
| 输入 | 含义 |
|---|---|
| video_paths | 包含输入视频路径的数组 默认值:None |
| video_binaries | 包含视频二进制数据的数组 默认值:None |
| video_formats | 包含输入视频格式(如 'mp4'、'avi' 等)的数组,指定 video_binaries 时可以提供格式信息 默认值:None |
| timestamp_ranges | 每行对应的时间戳范围列表,支持格式: - [(start,end), (start,end)] 或 [[start,end], [start,end]] - 单个 (start,end) 或 [start,end] |
| output_basenames | 可选,输出子目录名(文件名)数组 |
输出
| 输出 | 含义 |
|---|---|
| segments | list[str],切分后视频片段的路径列表 |
| segments_binary | list[bytes],切分后视频片段的二进制数据列表 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| output_tos_dir | str | '' | 保存视频片段的BOS路径,若为空字符串则不上传 默认值:"" |
| output_segments_binary | bool | False | 是否输出视频片段的二进制数据 默认值:False |
| output_video_format | str | None | 全局指定输出视频格式(如"mp4"、"avi"等),优先级高于输入文件后缀和video_format列 |
调用示例
Python
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.video.video_split_by_timestamps import VideoSplitByTimestamps
10
11if __name__ == "__main__":
12 if os.getenv("DAFT_RUNNER", "native") == "ray":
13 import ray
14 ray.init(dashboard_host="0.0.0.0", ignore_reinit_error=True)
15 daft.set_runner_ray()
16 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
17
18 # TODO: 根据实际场景准备样本数据
19 samples = {"video_paths": [...], "video_binaries": [...]}
20 ds = daft.from_pydict(samples)
21 constructor_kwargs = {
22 "output_tos_dir": '',
23 "output_segments_binary": False,
24 "output_video_format": None,
25 }
26 ds = ds.with_column(
27 "result",
28 aihc_udf(
29 VideoSplitByTimestamps,
30 construct_args=constructor_kwargs,
31 num_cpus=1,
32 concurrency=4,
33 batch_size=8,
34 )(col("video_paths"), col("video_binaries"), col("video_formats")),
35 )
36 ds.show()
评价此篇文章
