视频提取音频
更新时间:2026-06-15
简介
视频音频抽取处理器,支持多流分离
功能描述
- 支持从本地、BOS、HTTP等多种路径或二进制输入的视频中抽取音频流
- 支持多音频流选择、只取第一个流或全部流
- 支持输出音频到BOS、返回二进制、采样率等
- 支持抽取指定时间区间(start_second, end_second)
- 所有输出音频均为 mp3 格式
算子参数
输入
| 输入 | 含义 |
|---|---|
| video_paths | 视频文件路径数组(本地、BOS、HTTP等) |
| video_binaries | 视频二进制数据数组(可选) |
| video_formats | 视频格式字符串数组(可选) |
| output_basenames | 可选,输出子目录名(文件名)数组 |
输出
| 输出 | 含义 |
|---|---|
| audio_paths | 包含音频 BOS 路径的列 |
| audio_arrays | 包含音频 array 数据的列(可选) |
| binaries | 包含音频二进制数据的列(可选) |
| original_audio_sampling_rates | 始终返回,包含每个音频流的原始采样率,和audio_paths/binaries一一对应 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| output_tos_dir | str | '' | 将从视频中抽取出的音频保存到该 BOS 目录中,如果为空,则不保存音频 |
| output_audio_binary | bool | False | 是否返回音频的二进制内容,默认为 False |
| output_audio_array | bool | False | 是否返回音频的 numpy array 格式,默认为 False |
| stream_indexes | list[int] | None | 指定抽取哪些音频流,默认全部。超出范围的索引会被自动忽略 |
| return_first_stream | bool | True | 如果为 True,则只返回第一个音频流,否则返回所有流的列表,默认为 True |
| start_second | float | None | 从视频的第几秒开始抽取音频,None 表示从头开始,单位为秒 |
| end_second | float | None | 到视频的第几秒结束抽取音频,None 表示到结尾,单位为秒 |
| output_format | str | 'mp3' | 输出音频格式,默认 "mp3" |
| output_sample_rate | int | 48000 | 输出音频采样率,默认 48000 |
调用示例
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_extract_audio import VideoExtractAudio
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_audio_binary": False,
24 "output_audio_array": False,
25 "stream_indexes": None,
26 "return_first_stream": True,
27 }
28 ds = ds.with_column(
29 "result",
30 aihc_udf(
31 VideoExtractAudio,
32 construct_args=constructor_kwargs,
33 num_cpus=1,
34 concurrency=4,
35 batch_size=8,
36 )(col("video_paths"), col("video_binaries"), col("video_formats")),
37 )
38 ds.show()
评价此篇文章
