实战|惊呆了,Python竟然能剪辑视频!

Posted 程序员启航

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战|惊呆了,Python竟然能剪辑视频!相关的知识,希望对你有一定的参考价值。

大家好,我是程序员启航。

之前就想着Python可不可以剪辑视频(提取视频的音频,视频截取等等),然后在网上一搜,还真找到了Python的一个处理音频的库-MoivePy

MoivePy能干嘛呢,下面来给大家简单介绍一下。

 

  1. 提取音频

  2. 视频截取

  3. 视频合并

  4. 视频叠加

  5. 添加字幕

  6. 追踪人脸,打马赛克

  7. 炫酷的特效

  8. 阴影效果

  9. .......

 

01

提取音频

平时我们在刷短视频或者看到一些视频的时候(视频里才有,网上搜不到这种剪辑的音频时),希望能够把视频里面的音频提取出来当背景音乐或者想平时听听但是不想打开视频时。

 

那么就用python教大家如何去提取一个视频里面的音频。

 

在开始之前,先把Moivepy库安装一下,通过下面的命令即可安装

pip install moviepy

 

安装好之后,接着咱们就开始对视频进行处理了。

 

from moviepy.editor import *
video = VideoFileClip('七次人口普查.mp4')
audio = video.audio
audio.write_audiofile('七次人口普查.mp3')

 

这里以视频:七次人口普查.mp4为例,这个视频是辰哥之前录制的一个视频

 

Image

 

提取好的音频保存为:七次人口普查.mp3

 

Image

 

打开音频,音质和视频中的音质一模一样(完美提取成功

 

02

截取视频

 

此外还可以将视频进行截取。截图的视频不仅可以是保存成视频还可以将截取的视频保存为gif格式

 

1.截取后保存为视频

 

同样还是以视频:七次人口普查.mp4为例(视频一共是38秒),咱们从截取其中的一段(第5s~第25s)20秒。

 

video = VideoFileClip('七次人口普查.mp4')
# 剪辑这个clip 的5s-25s,保存mp4
video2 = video.subclip(5, 25)
video2.write_videofile("七次人口普查5_25.mp4")

 

截取后的视频保存为:七次人口普查5_25.mp4

 

Image

 

运行结束之后,视频就已经保存到本地(同时视频中的音频也对应的保存过来

 

最终效果:

 

Image

 

打开之后,没问题,成功截取。

 

Image

 

2.截取后保存为gif

 

接着将截取的视频保存成gif格式

 

video = VideoFileClip('七次人口普查.mp4')
# 剪辑这个clip 的5s-25s,保存mp4
video2 = video.subclip(5, 25)
video2.write_gif("七次人口普查5_25.gif",fps=16)

 

代码中的fps是帧率,这里设置为16,fps越大,gif越清晰,同时gif也会越大。(这里设置了16,已经较为清晰了)

 

截取后的视频保存gif:七次人口普查5_25.gif

 

Image

 

打开后如下:

 

Image

 

03

视频合并

除了对视频截取外,还可以将多个视频进行合并。

 

video1 = VideoFileClip('七次人口普查.mp4')
video2 = VideoFileClip("七次人口普查5_25.mp4")
video3 = concatenate_videoclips([video1, video2])
video3.write_videofile("七次人口普查_合并.mp4")

 

视频:七次人口普查.mp4原视频(38秒),视频:七次人口普查5_25.mp4上面案例截取的视频(20秒),最后合并成:七次人口普查_合并.mp4

ps:上面代码只是演示合并两个视频,实际是可以合并多个的

 

Image

 

原视频:

 

Image

 

Image

 

最终合并视频:

 

Image

 

04

视频叠加

通常在电影中都可以看到视频中分块的部分不同的画面。这用了视频叠加的效果。接下来教大家如何用Python去实现。

video1 = VideoFileClip("七次人口普查.mp4").margin(10)
video2 = video1.fx(vfx.mirror_x)  # x轴镜像
video3 = video1.fx(vfx.mirror_y)  # y轴镜像
video4 = video1.resize(0.8)  # 尺寸等比缩放0.8
newvideo = clips_array([
    [video1, video2],
    [video3, video4]
])
newvideo.resize(width=480).write_videofile("七次人口普查_叠加.mp4")

 

这里主要是以视频:七次人口普查.mp4为例,弄成四方块的样式进行叠加。最后保存成:七次人口普查_叠加.mp4。

Image

 

 

最终效果:

Image

 

 

05

小结

ok,就介绍以上这四种剪辑视频的方法,此外还有很多方法。比如:

  1. 添加字幕
  2. 追踪人脸,打马赛克
  3. 炫酷的特效
  4. 阴影效果
  5. ............

这里就不一一演示了,感兴趣的小伙伴可以去搜索moviepy的文档教程进行学习。

最后为了大家方便学习,已经把本文的演示视频和源码上传,需要的在公众号(程序员启航)后台回复:视频剪辑

在这里插入图片描述

 文章到这里就结束了,感谢你的观看

说实在的,每次在后台看到一些读者的回应都觉得很欣慰,我想把我收藏的一些编程干货贡献给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤    Python所有知识点汇总(可以弄清楚Python的所有方向和技术)

*如果你用得到的话可以直接拿走,在我的QQ技术交流群里,可以自助拿走,群号是857113825*
在这里插入图片描述

以上是关于实战|惊呆了,Python竟然能剪辑视频!的主要内容,如果未能解决你的问题,请参考以下文章

python实战项目惊呆了,竟然能剪辑视频!

Python:运用pydub模块转换音频格式对音频进行剪辑

Python:运用pydub模块转换音频格式对音频进行剪辑

AI智能剪辑,仅需2秒一键提取精彩片段

PyQt+moviepy音视频剪辑实战1:多视频合成顺序播放或同屏播放的视频文件

AI大神李沐开源新手剪辑神器!只看字幕就能剪视频,卡壳重复片段一键删除...