一、安装

1、安装模块

pip install pydub

2、安装插件

云盘中下载文件ffmpeg

打开电脑上的控制面板-系统-高级系统设置-环境变量

python 流视频播放 python视频播放模块_pydub


然后双击path,看到如下的界面:

python 流视频播放 python视频播放模块_python 流视频播放_02


然后点新建会出现一个新建的地址栏,你需要在这个新建地址栏里输入一个文件地址:打开你下载的ffmpeg文件中的 bin 文件,你应该可以看到一个这样的界面,把这个界面中地址栏中的地址复制粘贴到上面图片新建的地址栏中,然后点确定,来保存设置。

python 流视频播放 python视频播放模块_pydub_03


接下来,在CMD(win+R调出CMD黑框框)中,输入ffmpeg -version,如果你看到这样的界面,说明你的ffmpeg正式安好了。

python 流视频播放 python视频播放模块_pydub_04


最后,ffmpeg中的三个文件要和你的代码文件在一个保存路径下,这一步很重要,必须这样代码才能运行。

二、模块的使用

1、打开一个音频文件

from pydub import AudioSegment

song = AudioSegment.from_mp3("xxx.mp3")

AudioSegment的方法除了from_mp3,还有wma,flv,等等,以及文件通用的from_file。
2、对音频段切片

# pydub做任何操作的时间尺度都是毫秒
ten_seconds = 10 * 1000

first_10_seconds = song[:ten_seconds]
last_5_seconds = song[-5000:]

3、让开头更响和让结束更弱
使开头十秒的声音变得更响并使结束的五秒声音变弱:

# 声音增益6dB
beginning = first_10_seconds + 6

# 声音减弱3dB
end = last_5_seconds - 3

4、连接音频段
连两个接音频段(把一个文件接在另一个后面)

without_the_middle = beginning + end

5、音频段长度
音频段有多长呢?

without_the_middle.duration_seconds == 15.0

6、固定音频段不可变

# 音频不可以被修改
backwards = song.reverse()

7、交叉淡化
交叉淡化(再一次强调,beginning和end都是不可变的)

# 1.5秒的淡入淡出
with_style = beginning.append(end, crossfade=1500)

8、重复

# 将片段重复两遍
do_it_over = with_style * 2

9、淡化
淡化(注意一下,你可以把许多运算符连成一串使用,因为运算符都会返回一个AudioSegment对象)

# 2秒淡入, 3秒淡出
awesome = do_it_over.fade_in(2000).fade_out(3000)

10、保存结果
保存编辑的结果(再说一下,支持所有ffmpeg支持的格式)

awesome.export("mashup.mp3", format="mp3")

保存带有标签的结果(元数据)

awesome.export("mashup.mp3", format="mp3", tags={'artist': 'Various artists', 'album': 'Best of 2011', 'comments': 'This album is awesome!'})

你也可以通过指定任意ffmpeg支持的比特率来导出你的结果

awesome.export("mashup.mp3", format="mp3", bitrate="192k")

更多其他的ffmpeg所支持的参数可以通过给’parameters’参数传递一个列表来实现,列表中第一个应该是选项,而第二个是对应的参数。
特别注意一下,这些参数没有得到确认,支持的参数可能会受限于你所使用的特定的 ffmpeg / avlib 构建

# 使用预设MP3质量0(相当于lame -V0)
# ——lame是个MP3编码器,-V设置的是VBR压缩级别,品质从0到9依次递减(译者注)
awesome.export("mashup.mp3", format="mp3", parameters=["-q:a", "0"])

# 混合到双声道并设置输出音量百分比(放大为原来的150%)
awesome.export("mashup.mp3", format="mp3", parameters=["-ac", "2", "-vol", "150"])