这篇文章主要介绍”怎么用Python实现多个MP4合成视频”,在日常操作中,相信很多人在怎么用Python实现多个MP4合成视频问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“怎么用Python实现多个MP4合成视频”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
<编辑类="目录">目录编辑>- <李>
开始安装使用
一、安装Python
二、安装moviepy
三、安装ffmpeg
四,开始写拼接脚本
五,等待运行完毕,完结撒花?
六、补充内容
开始安装使用
主要是利用moviepy这个库,里面提供了丰富的功能,我们只需要使用简单的拼接函数
一、安装Python
这个就不多说了,直接去官网下载对应的安装包:https://www.python.org/downloads/release/python-364/
然后双击运行,记得点添加到路径然后,一路下
二、安装moviepy
命令行执行:
pip install moviepy
三、安装ffmpeg
我们先使用如下命令来尝试安装:
pip install ffmpeg pip install  imageio-ffmpeg
把以上代码保存为xx。py,然后在相同目录执行命令:
python3 xx。py
如安装不成功,可以试一试以下操作:
如果之前没安装过ffmpeg,这个时候导入moviepy开始使用会报错的,所以我们可以先用imageio自带的方法下载ffmpeg
新建文本文件:
import imageio ssl import #,下面这一句不是必须的,,但是某些情况下访问,https 会报SSL证书不受信任,,加上这一句可以允许通过 ssl._create_default_https_context =ssl._create_unverified_context #,下载,ffmpeg 组件 imageio.plugins.ffmpeg.download ()
四,开始写拼接脚本
#,主要是需要moviepy这个库 得到moviepy.editor import * import 操作系统 #,定义一个数组 时间=L [] #,访问,video 文件夹,(假设视频都放在这里面) for 根,dirs, files 拷贝os.walk (“。/video"): ,,,#,按文件名排序 ,,,files.sort () ,,,#,遍历所有文件 ,,,for file 拷贝文件: ,,,,,,,#,如果后缀名为,mp4 ,,,,,,,if os.path.splitext(文件)[1],==,& # 39;mp4 # 39;: ,,,,,,,,,,,#,拼接成完整路径 ,,,,,,,,,,,filePath =, os.path.join(根,,文件) ,,,,,,,,,,,#,载入视频 ,,,,,,,,,,,video =, VideoFileClip (filePath) ,,,,,,,,,,,#,添加到数组 ,,,,,,,,,,,L.append(视频) #,拼接视频 时间=final_clip concatenate_videoclips(左) #,生成目标视频文件 final_clip.to_videofile (“。/target.mp4", fps=24日,remove_temp=False)
把上面代码的源文件夹和目标文件名改成你自己需要的,然后把以上代码保存为连接。py文件,然后在相同目录执行命令:
python3 连接。py
五,等待运行完毕,完结撒花?
等待输出走到100%,视频就合并好了。
Moviepy 作用;Building video 。/target.mp4。 MoviePy 安康;Writing audio  targetTEMP_MPY_wvf_snd.mp3拷贝 MoviePy 女人做。 Moviepy 安康;Writing video 。/target.mp4 Moviepy 安康;Done ! Moviepy 安康;video ready 。/目标。mp4
其实moviepy还有很多方便的方法,比如截取视频:
video =, VideoFileClip (“xxoo.mp4") #,剪辑视频,截取视频前20秒 时间=video video.subclip (0, 20) #,剪辑视频,从10秒开始到视频结尾前12秒 时间=video video.subclip (10, video.duration-12)
六、补充内容
上面的拼接代码实际上有点小问题,files.sort()把文件排序,实际上排出来的结果是不符合我们正常思维的,比如:1。mp4、10。mp4, 2。mp4。因为他是从前往后逐字符比较的,而我们想要的结果一般是:1。mp4, 2。mp4、10。mp4。这个问题除了自己写各种逻辑代码来处理,也可以直接用一个第三方库:作用,这个库提供了优秀的自然排序方法。