码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用python库moviepy完成视频剪辑


    1.关于moviepy和原理

    moviepy事github上面的一个开源项目,地址是:GitHub - Zulko/moviepy: Video editing with Python

    官方文档地址:

    User Guide — MoviePy 1.0.2 documentation

    中文版文档可参考:

    MoviePy中文手册 — moviepy-cn 文档

    底层是调用其他开源的视频、图片等开源软件,操作视频使用的ffmpeg,地址为:

    https://github.com/FFmpeg/FFmpeg

    操作图片使用ImageMagick,地址为:

    https://github.com/ImageMagick/ImageMagick

    2.windows上安装

    a.下载和安装FFmpeg,地址为:Download FFmpeg ,安装完成后设置环境变量

    b.下载和安装ImageMagick,地址为:ImageMagick – Download

    c.安装moviepy,使用命令 pip install moviepy

    d.修改 moviepy/config_defaults.py 中的IMAGEMAGICK_BINARY的值为本地magic.exe的绝对路径

    3.实操和代码示例

    1. from moviepy.editor import *
    2. inPath = r'E:\songhq\video\car_concatenate.mp4'
    3. outPath = r'E:\songhq\video\car_concatenate_word.mp4'
    4. clip = VideoFileClip(inPath)
    5. print(TextClip.list('font'))
    6. # 添加文本
    7. text_clip = TextClip("端午节六折大甩卖!", fontsize=70, color="red", font='simfang.ttf')
    8. text_clip = text_clip.set_position((800, 50)).set_duration(3)
    9. final_clip = CompositeVideoClip([clip, text_clip])
    10. final_clip.write_videofile(outPath)
    11. if __name__ == '__main__':
    12. # processors.reverse_video(r'E:\songhq\video\login.mp4',r'E:\songhq\video\aa.mp4')
    13. # clip = VideoFileClip(r'E:\songhq\video\login.mp4').rotate(180)
    14. # clip.write_videofile(r'E:\songhq\video\login_180.mp4')
    15. # font = TextClip.list('font')
    16. # for a in font:
    17. # print("字体" + a)
    18. inputPath = r'E:\songhq\video\login.mp4'
    19. inputPath2 = r'E:\songhq\video\video.mp4'
    20. outPath = r'E:\songhq\video\login_hebing.mp4'
    21. musicPath = r'E:\songhq\video\追光者.mp3'
    22. start_time = 0
    23. end_time = 7
    24. video = VideoFileClip(inputPath)
    25. video2 = VideoFileClip(inputPath2)
    26. # 对视频进行剪辑
    27. clipped_video = video.subclip(start_time, end_time)
    28. video2 = video2.subclip(0, 3)
    29. final_clip = concatenate_videoclips([clipped_video, video2])
    30. # 添加文字
    31. # txtclip = TextClip(inf, font='仿宋_GB2312.ttf', fontsize=18, color='blue', bg_color='white', transparent=True).set_duration(30).resize((clip.size[0], clip.size[1] * 2)).set_fps(clip.fps)
    32. text = TextClip("MyHolidays", fontsize=90, color='white', font='simfang.ttf')
    33. # 插入图片
    34. text = text.set_position('center').set_duration(5)
    35. # 添加音乐 .subclip(0, 7) 可以截片段
    36. audio = AudioFileClip(musicPath).subclip(40, 50)
    37. # 将文字和音乐添加到视频中
    38. final_video = CompositeVideoClip([final_clip, text])
    39. final_video = final_video.set_audio(audio)
    40. final_video.write_videofile(outPath)
    
                    
  • 相关阅读:
    yolo训练时遇到GBK编码问题
    FastAPI 学习之路(八)路径参数和数值的校验
    「C#」异步编程玩法笔记-Thread、ThreadPool、Task
    消费品的「轻重」权衡术
    18.EC实战 新建项目工程并配置各个引脚的工作方式(持续更新)
    基于Spring Boot的留学服务管理平台的设计与开发-计算机毕业设计源码
    【1】初识 Python
    KY11 二叉树遍历
    stm32Cubemx USB虚拟串口
    c++学生管理系统
  • 原文地址:https://blog.csdn.net/weixin_42739473/article/details/139744131
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号