视频片段切分-时长
更新时间:2026-05-18
视频片段切分(时长)
简介
视频按时间分段算子,基于 FFmpeg 实现,将视频按指定时长均匀分割成多个片段。
功能描述
将长视频按固定时长分割成多个短片段,可设置最小片段时长,支持输出到 BOS 存储。可选择输出片段路径列表或二进制数据。
算子参数
输入
| 输入 | 含义 |
|---|---|
| video_paths | 视频文件路径列表 |
| video_binaries | 视频二进制数据列表 |
| video_formats | 视频格式列表 |
| output_basenames | 输出基础文件名列表 |
输出
| 输出 | 含义 |
|---|---|
| segments | 分割后视频片段的路径列表 |
| segments_binary | 分割后视频片段的二进制数据列表 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| segment_duration | float | 5.0 | 片段时长(秒) |
| min_segment_duration | float | 0.0 | 最小片段时长(秒) |
| output_bosdir | str | "" | BOS 输出目录 |
| output_segments_binary | bool | False | 是否输出二进制数据 |
| output_video_format | str | None | 输出视频格式 |
调用示例
Plain Text
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_duration import VideoSplitByDuration
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 samples = {
19 "video_path": ["/tmp/long_video.mp4", "/tmp/long_video2.mp4"]
20 }
21 ds = daft.from_pydict(samples)
22
23 constructor_kwargs = {
24 "segment_duration": 10.0,
25 "min_segment_duration": 2.0,
26 }
27 ds = ds.with_column(
28 "segments",
29 aihc_udf(
30 VideoSplitByDuration,
31 construct_args=constructor_kwargs,
32 num_cpus=1,
33 concurrency=2,
34 )(col("video_path"), None, None, None),
35 )
36 ds.show()
评价此篇文章
