今天来研究python中moviepy模块的用途
近来有大量处理视频的需求,
常会碰到一个问题是下载的视频音量过小,
会需要将它调大声,
虽然有在线工具VideoLouder可以免费调整视频音量大小,
但毕竟若量很大的话一个一个上传视频也是挺麻烦的事情,
因此决定再用程序帮忙解决。
使用教学
基础程序
调整一个视频音量的代码如下:
1
2
3
4
5
6
7
|
from moviepy.editor import VideoFileClip,concatenate_videoclips
clip = VideoFileClip(“ 1.mp4 ”) #获取视频1.mp4(视频需与程序置于同一文件夹)
newclip = clip.volumex( 5 ) #将音量调整为5倍
newclip.write_videofile(“out.mp4”) #输出影片名为out.mp4
|
但实测会出现错误AttributeError: 'NoneType' object has no attribute 'stdout',
经研究后,似乎是moviepy版本的问题,
最新的版本为1.0.1,
可以于anaconda prompt中下指令pip list查看自己所有已安装的模块版本。
实测要安装moviepy版本1.0.0才可正常使用,
在anaconda prompt使用pip install moviepy==1.0.0指令即可运作上述代码。
批量修改视频音量
想要一次修改多个视频的音量,
小马的代码如下,
首先我将所有欲修改的视频放入当前程序路径下的music文件夹中,
这边关键会用到python内置模块os,
- os.getcwd()是取得当前程序的工作路径
- os.chdir()可以改变当前程序的工作路径
- os.listdir()可以取得指定路径下的所有档案名称
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import os
from moviepy.editor import VideoFileClip, concatenate_videoclips
def batch_volumex(path, x):
# 函数功能:在指定路径下,将该文件夹的视频声音调为x倍
origin_path = os.getcwd()
os.chdir(path)
for fname in os.listdir():
clip = VideoFileClip(fname)
newclip = clip.volumex(x)
newclip.write_videofile( "new_" + fname)
os.chdir(origin_path)
path = './music'
batch_volumex(path, 5 )
|
这支程序可以将music文件夹下的所有影片的音量调为5倍,
并将影片名称前加“new_”字串输出
(注:若原视频声音很小,实测音量大概要调3~5倍才会有感)
以上就是如何用python批量调整视频声音的详细内容,更多关于python批量调整视频声音的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/yuqiao668/p/12408942.html