zoukankan      html  css  js  c++  java
  • 实战|惊呆了,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为例,这个视频是辰哥之前录制的一个视频

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

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

    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

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

    最终效果:

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

    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

    打开后如下:


    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:上面代码只是演示合并两个视频,实际是可以合并多个的

    原视频:

    最终合并视频:

    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。

    最终效果:

    05

    小结



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

    1. 添加字幕

    2. 追踪人脸,打马赛克

    3. 炫酷的特效

    4. 阴影效果

    5. ............

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

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

    最后说一声:原创不易,求给个赞、在看、评论

    推荐阅读

    实战|教你用Python玩转Redis

    520情人节|用Python跟‘喜欢的人’表白

    实战|教你用Python玩转Mysql

    照片模糊?辰哥手把手教你用Python让照片高清化

    耐得住寂寞,才能登得顶
    Gitee码云:https://gitee.com/lyc96/projects
  • 相关阅读:
    Raid磁盘阵列更换磁盘时另一块盘离线恢复案例(v7000存储数据恢复)
    服务器SQL server数据库被加密恢复方案
    Vsan分布式文件系统逻辑架构损坏恢复过程
    Linux服务器数据恢复案例,服务器瘫痪数据恢复成功
    数据库执行truncate table CM_CHECK_ITEM_HIS
    服务器ocfs2文件系统被误格式化的数据恢复过程
    内蒙古某公司XFS文件系统服务器数据恢复报告
    关于vsan分布式服务器数据恢复成功案例分享
    北京某公司存储数据恢复成功案例;存储崩溃数据恢复方法
    IBM X3850服务器数据恢复成功案例
  • 原文地址:https://www.cnblogs.com/chenlove/p/14827047.html
Copyright © 2011-2022 走看看