最近想用python剪辑、组合视频,发现了这样一个库,好像是15年才发布的库。挺好用的。但是中文资料几乎没有,终于有机会逼自己尝试一下英文文档了哈哈哈。
由于MoviePy
某些功能要用到requests
,但是目前直接用pip
安装MoviePy
时并不会自动帮你安装这个依赖包,还需要自己安装requests
。所以安装MoviePy
需要两行。
pip install MoviePy
pip install requests
安装完后,pip list
查看一下,已安装的库必须包括:
Package Version
certifi 2018.4.16
chardet 3.0.4
decorator 4.3.0
idna 2.6
imageio 2.3.0
moviepy 0.2.3.4
numpy 1.14.3
Pillow 5.1.0
pip 10.0.1
requests 2.18.4
setuptools 39.1.0
tqdm 4.23.1
urllib3 1.22
wheel 0.31.0
安装完成MoviePy
之后,已经可以写程序了。但是它第一次运行时,还会为电脑安装ffmpeg
这个软件到C:\Users\用户名\AppData\Local\imageio\ffmpeg\ffmpeg-win32-v3.2.4.exe
。具体步骤如下:
先随便写个用到MoviePy
的代码:(下面代码含义是,读取某个视频文件,并且原样输出这个文件到new.mp4
,相当于复制了一下)
from moviepy.editor import *
video = VideoFileClip("你的某个视频文件.mp4")
result = CompositeVideoClip([video])
result.write_videofile("new.mp4")
当使用MoviePy
,但是你电脑没有安装ffmpeg
时(或者环境变量设置不对),它就会为你自动安装ffmpeg
。并且会提示你安装到的位置。
安装完上述功能,就已经可以使用MoviePy很多功能了,但是某些函数,还需要用到这个叫ImageMagick
的软件。如果你不安装它会提示这样的错误:
Traceback (most recent call last):
File "F:\Tool\PythonVE\Movie\lib\site-packages\moviepy\video\VideoClip.py", line 1156, in __init__
subprocess_call(cmd, verbose=False)
File "F:\Tool\PythonVE\Movie\lib\site-packages\moviepy\tools.py", line 42, in subprocess_call
proc = sp.Popen(cmd, **popen_params)
File "f:\tool\python36\Lib\subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "f:\tool\python36\Lib\subprocess.py", line 997, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "F:/A/MoviePy/Cut.py", line 14, in
txt_clip = TextClip("字幕", fontsize=70, color='white')
File "F:\Tool\PythonVE\Movie\lib\site-packages\moviepy\video\VideoClip.py", line 1165, in __init__
raise IOError(error)
OSError: MoviePy Error: creation of None failed because of the following error:
[WinError 2] 系统找不到指定的文件。
.This error can be due to the fact that ImageMagick is not installed on your computer, or (for Windows users) that you didn't specify the path to the ImageMagick binary in file conf.py, or that the path you specified is incorrect
划重点:
.This error can be due to the fact that ImageMagick is not installed on your computer, or (for Windows users) that you didn’t specify the path to the ImageMagick binary in file conf.py, or that the path you specified is incorrect
我们需要自己下载,在官网 http://www.imagemagick.org/script/download.php 可以根据不同的操作系统来下载,Windows在最下面。
下载好后,选择自己喜欢的位置,来安装,疯狂点击Next
就行,不需要配置环境变量。
安装了还不够,还要让MoviePy
能够找到它的位置。
进入到你的python
根目录,打开MoviePy
的配置环境变量的文件:\Python36\Lib\site-packages\moviepy\config_defaults.py
你会看到:
import os
FFMPEG_BINARY = os.getenv('FFMPEG_BINARY', 'ffmpeg-imageio')
IMAGEMAGICK_BINARY = os.getenv('IMAGEMAGICK_BINARY', 'auto-detect')
按照它的提示改就好了。ffmpeg
不用改,因为是MoviePy
帮我们装的,它肯定知道它的位置了。主要是改IMAGEMAGICK_BINARY
。把原来的注释掉,改成下面的样子:(当然你要根据你刚才安装的目录来选择)
IMAGEMAGICK_BINARY = r"E:\Software\ImageMagick-7.0.7-Q16\magick.exe"
# IMAGEMAGICK_BINARY = os.getenv('IMAGEMAGICK_BINARY', 'auto-detect')
现在,再次运行上面的程序,成功了!至此,MoviePy
安装和配置都完成了!