Skip to content

pydub

pydub是 Python 下的 ffmpeg 绑定,他提供了更加面向 Python 的接口来处理媒体文件。

安装

pydub 是依赖 ffmpeg 的因此要确保系统安装了 ffmpeg:

Bash
sudo apt install ffmepg

之后我们只需要安装 pydub 即可:

Bash
pip install pydub

基本使用

Python
from pydub import AudioSegment

# 加载音视频文件
audio = AudioSegment.from_file("example.mp4", format="mp4")

# 保存音视频文件
audio.export("output.wav", format="wav")

# 切割 10s - 20s 之间的视频
audio_segment = audio[10 * 1000: 20 * 1000]

# 拼接两个音频文件
audio1 = AudioSegment.from_file("example1.mp3")
audio2 = AudioSegment.from_file("example2.mp3")
combined = audio1 + audio2

# 增加音量
louder_audio = audio + 10  # 增加 10 dB
# 减少音量
quieter_audio = audio - 10  # 减少 10 dB

CookBook

一些常见的使用案例。

将视频转换为音频

Python
from pydub import AudioSegment

# 加载 MP4 文件
video = AudioSegment.from_file("example.mp4", format="mp4")

# 导出为 WAV 文件
video.export("output.wav", format="wav")

如果我们想要在导出时指定采样率、位长、声道等信息这需要通过在 parameters 参数来实现,可以传递任何 ffmpeg 支持的参数:

Python
# 导出为 WAV 文件,并指定采样率、位长和声道
audio.export(
    "/home/yangguodong/share/result-data/data/luyan/3850111.wav",
    format="wav",
    parameters=[
        "-ar", "44100",  # 采样率 44.1kHz
        "-ac", "2",      # 声道数 2(立体声)
        "-sample_fmt", "s16"  # 位长 16-bit
    ]
)