当前位置: 首页 > news >正文

Python导入moviepy找不到editor 视频没有声音设置audio_codec参数

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'
http://www.lryc.cn/news/498977.html

相关文章:

  • rsync 是一个非常强大的 Linux 工具,常用于文件和目录的同步、备份和传输。
  • 触发器案例详解
  • jwt 与 sessionid 的区别及应用场景
  • tomcat和nginx
  • 服务器带宽与数据安全的重要性与作用
  • JSON数据处理
  • FSWIND脉动风-风载时程生成器软件原理
  • 搭建高可用负载均衡系统:Nginx 与云服务的最佳实践
  • 对比git命令与TortoiseGit工具,理解git解决冲突的过程
  • guava缓存的get方法的回调函数讲解一下
  • React基础知识四 Hooks
  • 线性代数中的谱分解
  • Redis 数据结结构(一)—字符串、哈希表、列表
  • 【Python】用Python和Paramiko实现远程服务器自动化管理
  • PDF处理的创新工具:福昕低代码平台尝鲜
  • openstack创建浮动IP全过程
  • nginx漏洞修复
  • Jackson - 序列化时更改字段名称
  • 策略模式实战 - 猜拳游戏
  • AWS ECS Task 添加 Prometheus 监控采集配置详细指南
  • 5. 一分钟读懂“工厂方法模式”
  • 基于 AutoFlow 快速搭建基于 TiDB 向量搜索的本地知识库问答机器人
  • C语言学习:速通指针(2)
  • windows 上ffmpeg编译好的版本选择
  • Java设计模式笔记(二)
  • Vue CLI的作用
  • 短视频矩阵系统开发|技术源代码部署
  • Erlang socket编程(二)
  • 工业检测基础-线扫相机和面阵相机参数及应用
  • 【无标题】建议用坚果云直接同步zotero,其他方法已经过时,容易出现bug