python moviepy教程,Moviepy
Moviepy教程一、编辑结果二、遇到的问题三、分享moviepy方法一、音频编辑方法二、视频编辑方法
一.编辑结果
将来的
第二,遇到问题
试试ffmpeg,moviepy,pydub,其中pydub主要处理音频,moviepy处理视频和音频,ffmpeg视频和音频都可以,但是ffmpeg是命令行,pycharm没有用。moviepy和pydub是基于ffmpeg的python模块。
Ffmpeg还有python命令调用模块——。ffmpeg-Python是ffmpeg的命令调用库。链接:ffmpeg-python。
但是csdn大部分都是moviepy教程,关于ffmpeg-python的教程很少,所以我又用moviepy了。
Moviepy和pydub可以直接用pip安装。
安装pip movieppip安装py dub有问题:
attribute error:“str”对象没有属性“decode”unicode decode error:“utf-8”编解码器无法解码位置7处的字节0x80:起始字节无效
第一个错误比较容易解决,就是去掉了解码,但是造成了第二个错误。两个错误互相循环,在github提问没有回复。后来下载了python3.8(原来是python3.7),重新pip安装程序moviepy后就好了,pudub也是。
3.moviepy方法的分享方式已经推送到github。下载地址:链接:video_method。
一、音频剪辑方法从pydub导入音频段从工具导入音频类py dub _ method():def _ _ init _ _(self,path1,path2,path3): # 1秒=1000毫秒自我。秒=1000#单位必须是毫秒自我。路径1=路径1自身。路径2=路径2自我。path 3=path 3 def get _ audio(self,start_time,end_time): 音频剪辑“”歌曲=音频片段。from _ file(self。路径1,格式= MP3 )# song _=音频段。from _ file(r j:\ \视频\ \管理器\ \音频\ \千秋令和朝代歌\\弥撒与千秋令混合。mp3 ,格式=mp3)-6 # song_=song_ .淡入(5000)。fade _ out(5000)# new song _ 1=song[:55 *秒]#新歌=新歌_ 1宋_宋[60 *秒:] newsong=song[start_time* self .第二:结束时间*自身.第二首】新歌。导出(自我。路径2)def audio _ concat(self): 音频混合 声音1=音频段。from _ file(self。路径1)-1声音2=音频段。from _ file(self。路径2)-6声音2。淡入(5000).fade _ out(5000)played _ together=sound 1。叠加(声音2)一起播放。导出(自我。路径3)def audio _ fade(self,start_time,end_time): 音频淡入淡出“”歌曲=音频片段。from _ file(self。路径1)song _ 1=song。淡入(开始时间*自身).第二)。淡出(结束时间*自我。第二)宋_ 1。导出(自我。路径2)def audio _ fast(self,speed): 音频加速,没有找到pydub中的音频加速 audio.a_speed(self.path1,speed,self.path2)二、视频剪辑方法来自电影py。编辑器导入*类电影py _ method():def __init__(self,path1,path2,path3=j:\vedio,path4=j:\vedio\original):赛尔夫。输入路径=路径1。剥离( \ u202a )自身。路径2=路径2。剥离( \ u202a )自身。路径3=路径3。剥离( \ u202a )自身。路径4=路径4。strip( \ u202a )def getaudio(self): 音频提取 视频1=视频文件剪辑(自身。输入路径。strip( \ u202a ))音频1=视频1。音频音频1。write _ audio文件(自我。路径2)定义获取视频(自身,开始时间,结束时间): 视频提取视频1=视频文件剪辑(自我输入路径)#视频2=视频1 .无音频()视频2=视频1.subclip(开始时间,结束时间)#视频4=视频2 .子剪辑(9,-1)视频2 .write _ video文件(自。路径2)定义视频_fast(self,number): 视频加速 clip video=视频文件剪辑(self。input _ path)新剪辑=剪辑视频。fl _ time(lambda t:number * t,apply_to=[mask],keep _ duration=True)duration=int(剪辑视频。持续时间/2)新剪辑=新剪辑。子片段(0,时间长度)新片段。write _ video文件(自。路径2)def video _ drop(self): 视频无声 video=视频文件剪辑(自身。input _ path)video=视频。无_音频()视频。write _ video文件(自。路径2)def video _ concat(self): 视频合成 视频1=视频文件剪辑(自身。输入路径).fx(vfx.resize,width=848)video 2=视频文件剪辑(self。路径2).fx(vfx.resize,width=848)video 3=视频文件剪辑(self。路径3).fx(vfx.resize,width=848)# video 4=视频文件剪辑(路径4)final _ clip=concatenate _ video clips([video 1,video2,video3),method= compose )final _ clip。to _ video文件(自身。path 4,fps=24,remove _ temp=False)def audio _ concat _ vedio(self,audio_path): 音频视频合成 video=视频文件剪辑(自身。path)audio=音频文件剪辑(audio _ path)video=video。set _ audio(音频)#不能直接是声音的的路径视频。写入_视频文件(self.path2)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。