音频转MP3
更新时间:2026-05-18
音频转MP3
简介
音频转 MP3 处理器,将各种格式的音频文件转换为 MP3 格式,基于 FFmpeg 实现。
功能描述
- 支持将 WAV、FLAC、AAC、OGG 等音频格式转换为 MP3
- 可配置码率(bitrate)、采样率(sample_rate)和质量系数(quality)
- 支持通过 extra_params 传递自定义 FFmpeg 参数
- 支持本地路径、BOS、S3 等存储路径(自动下载后转换再上传)
- 失败时输出列返回 None
算子参数
输入
| 输入 | 含义 |
|---|---|
| input_col | 输入音频文件路径数组(支持本地路径、BOS、S3) |
| output_col | 输出 MP3 文件路径数组(支持本地路径、BOS、S3) |
输出
| 输出 | 含义 |
|---|---|
| convert_result | 转换后的 MP3 文件路径,失败时返回 None |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| bitrate | str | "192k" | MP3 输出码率,如 "128k"、"192k"、"320k" |
| sample_rate | int 或 None | None | 输出采样率(Hz),None 表示保留原始采样率 |
| quality | int | 2 | libmp3lame 质量系数(0-9,值越小质量越高),对应 FFmpeg -q:a 参数 |
| extra_params | list[str] 或 None | None | 额外的 FFmpeg 参数列表,拼接在编码参数之后 |
| timeout | int 或 None | None | FFmpeg 执行超时时间(秒),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.audio.audio_convert_to_mp3 import AudioConvertToMp3
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 "input_path": [
20 "/tmp/test_audio1.wav",
21 "/tmp/test_audio2.flac",
22 ],
23 "output_path": [
24 "/tmp/test_output1.mp3",
25 "/tmp/test_output2.mp3",
26 ],
27 }
28 ds = daft.from_pydict(samples)
29 constructor_kwargs = {
30 "bitrate": "192k",
31 "sample_rate": 44100,
32 "quality": 2,
33 }
34 ds = ds.with_column(
35 "convert_result",
36 aihc_udf(
37 AudioConvertToMp3,
38 construct_args=constructor_kwargs,
39 num_cpus=1,
40 concurrency=4,
41 batch_size=8,
42 )(col("input_path"), col("output_path")),
43 )
44 ds.show()
评价此篇文章
