moviepy合成视频出错:
- 问题一:导入moviepy.editor找不到editor,No module named moviepy.editor
- 问题二:合成的视频没有声音
问题一:导入moviepy.editor找不到editor,No module named moviepy.editor
from moviepy.editor import *
改为
from moviepy import *
或者
from moviepy import VideoFileClip,AudioFileClip,CompositeVideoClip
问题二:合成的视频没有声音
视频没有声音 导出文件时设置audio_codec=‘aac’
运行环境:
MAC + Python3.12 + moviepy-2.1.1
安装moviepy
> pip install moviepy
如果提示moviepy安装成功, import 语句做了修改也不行的话。完整代码见末尾。以下是问题处理步骤。
首先查看moviepy安装信息
> pip show moviepy
结果显示如下:
Location: /Users/rose/pythonProject1/.venv/lib/python3.12/site-packages
Requires: decorator, imageio, imageio_ffmpeg, numpy, pillow, proglog, python-dotenv
去上面显示的Location路径/Users/rose/pythonProject1/.venv/lib/python3.12/site-packages中查看是否有Requires信息中显示的这些库。如果不全,执行对应的安装命令,已经有的就不需要再安装了。这一步是保证有需要的其他依赖库。
> pip install decorator imageio imageio_ffmpeg numpy pillow proglog python-dotenv
把Location路径/Users/rose/pythonProject1/.venv/lib/python3.12/site-packages下的 editor 和 moviepy文件夹删除,重新执行命令安装moviepy
> pip show moviepy
安装成功后,重启 Pycharm.
//注意操作.venv目录时,.venv默认是隐藏文件夹,
//MAC下显示隐藏文件夹命令
defaults write com.apple.finder AppleShowAllFiles -bool true
//重启 Finder,使更改生效
killall Finder
//处理完对应的文件删除和安装后,重新恢复文件夹隐藏
//MAC 下恢复隐藏文件夹命令
defaults write com.apple.finder AppleShowAllFiles -bool false
//重启 Finder,使更改生效
killall Finder
完整代码如下:
#以前的写法
#视频音频合并
from moviepy.editor import *
#加载视频音频素材
videoData = VideoFileClip('video.mp4')
audioData = AudioFileClip('audio.mp4')
#往视频中添加音频
finalVideo = videoData.set_audio(audioData)
#导出文件
finalVideo.write_videofile('final.mp4')
#修改后的写法
#视频音频合并
from moviepy import *
#加载视频音频素材
videoData = VideoFileClip('video.mp4')
audioData = AudioFileClip('audio.mp4')
#往视频中添加音频
finalVideo = videoData.with_audio(audioData)
#导出文件
finalVideo.write_videofile('final.mp4',codec='libx264',audio_codec='aac')
注意:
MAC合并后生成的视频没有声音是因为没有添加audio_codec='aac'