文章目录

  • 一、背景:
  • 二、步骤:
  • 三、链接
    • 3.1 附上我的项目代码链接:
    • 3.2 附上我的效果展示视频链接
  • 四、FQA
    • 1、代码执行报错`This error can be due to the fact that ImageMagic is not installed on your computer, or (for Windows users) that you didn't specify the path to the ImageMagic binary in file conf.py, or that the path you specified is incorrect`
    • 2、没法正常显示中文的字体

一、背景:

最近周末的时候经常会拍一些vlog,然后就发现剪辑视频是挺麻烦的一件事情,而且安装和上手ae/pr那些软件不仅费时又麻烦,于是我就想到了编写一段代码来替代那些手动剪辑那些简单视频。

二、步骤:

2.1 下载moviepy模块

pip install moviepy

2.2 编写代码

分别实现对视频、音频和标题的处理,在这个过程中发现moviepy的官方文档跟网上的一些博客比起来是更有用的,毕竟api是在一直更新迭代的 → https://zulko.github.io/moviepy/ 。

show my cleanCode:

import os
import sys
import uuidfrom moviepy.audio.fx.audio_fadein import audio_fadein
from moviepy.audio.fx.audio_fadeout import audio_fadeout
from moviepy.audio.io.AudioFileClip import AudioFileClip
from moviepy.editor import VideoFileClip, concatenate_videoclips
from moviepy.video.VideoClip import TextClip
from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
from moviepy.video.fx.fadein import fadein
from moviepy.video.fx.fadeout import fadeoutAUDIO_FADE_TIME_DURATION = 2
VIDEO_SEGMENT_FADE_TIME_DURATION = 1def generate_video(dir_path, video_name, title=None):video_paths = sorted([os.path.join(dir_path, f) for f in os.listdir(dir_path) if f.endswith('.mp4')])print('发现视频: ', [os.path.basename(name) for name in video_paths])final_clip = concatenate_videoclips([fade_in_video(fade_out_video(VideoFileClip(path))) for path in video_paths[0:1]]) # 这里取一段audio_clip = get_audio_clip(dir_path)tmp_path = ''if audio_clip:sub_audio_clip = audio_clip.subclip(0, final_clip.duration)print("插入音频特效")faded_audio_clip = audio_fadein(audio_fadeout(sub_audio_clip, AUDIO_FADE_TIME_DURATION),AUDIO_FADE_TIME_DURATION)tmp_path = f"./{str(uuid.uuid1())}.mp3"faded_audio_clip.write_audiofile(tmp_path)sub_audio_clip.close()audio_clip.close()faded_audio_clip.close()audio_clip = AudioFileClip(tmp_path)if audio_clip:final_clip = final_clip.set_audio(audio_clip)if title:txt_clip = TextClip(txt=title, font='simfang.ttf', fontsize=70, color='white')txt_clip = txt_clip.set_position('center').set_duration(final_clip.duration)final_clip = CompositeVideoClip([final_clip, txt_clip])print('插入自定义标题成功')print('开始渲染出片')final_clip.write_videofile(f"{os.path.join(dir_path, 'output', video_name)}.mp4", threads=4)print('自动化剪辑成功')if tmp_path:audio_clip.close()os.remove(tmp_path)def fade_out_video(video_file_clip):print("插入视频转场")return fadeout(video_file_clip, VIDEO_SEGMENT_FADE_TIME_DURATION)def fade_in_video(video_file_clip):return fadein(video_file_clip, VIDEO_SEGMENT_FADE_TIME_DURATION)def get_audio_clip(dir_path):for f in os.listdir(dir_path):if f.endswith(".mp3"):print('发现音频: ', f)return AudioFileClip(os.path.join(dir_path, f))if __name__ == '__main__':if len(sys.argv) >= 2 and sys.argv[1]:path = sys.argv[1]else:path = r"D:\Media\bilili\myProject\自动剪辑视频\自动剪辑视频(输出)"generate_video(path, 'DreamKite使用代码自动剪辑的视频', "DreamKite使用代码自动剪辑的视频")

代码已经说明了一切了有木有?

三、链接

3.1 附上我的项目代码链接:

可戳→ autoGenerateVideo

虽然看似简单,不过我也是踩了十多个坑,花了一晚上的时间才完整打通整个流程,觉得有用的话欢迎大家点赞关注。

3.2 附上我的效果展示视频链接

由于跟视频相关的功能用文字的形式肯定是明显不足的,这里我也录制了b站视频,欢迎大家点击查看 →

代码实现自动剪辑视频

代码实现自动剪辑视频

(以上为DreamKite本人原创,转载请附上原文链接)

四、FQA

1、代码执行报错This error can be due to the fact that ImageMagic is not installed on your computer, or (for Windows users) that you didn't specify the path to the ImageMagic binary in file conf.py, or that the path you specified is incorrect

TextClip构造方法报OSError:MoviePy creation of None failed because of the following [WinError 2]系统找不到指定的文件

解决方式:

1、确保安装了ImageMagick应用,如未安装ImageMagick应用则安装

该应用对应官方下载地址为:
http://www.imagemagick.org/script/index.php,该网站从国内访问非常慢,

我是用国内的华军软件园下载的 →

https://www.onlinedown.net/soft/1111222.htm

2、 如果已经下载了之后,还要修改一下配置文件config_defaults.py
找到moviepy的config_defaults.py模块的配置代码,将下行代码:
IMAGEMAGICK_BINARY = os.getenv(‘IMAGEMAGICK_BINARY’, ‘auto-detect’)
替换为:
IMAGEMAGICK_BINARY = r"C:\Program Files\ImageMagick-7.0.8-Q16\magick.exe" (这里是你具体下载安装的地址)
具体的替换值需要确认ImageMagick安装目录进行更改。

2、没法正常显示中文的字体

由于我标题的渲染使用了中文符号,一开始出现了没有显示的问题,后面将本地的中文字符复制一份放到代码同目录下就发现搞定,

可见我的github链接~~ 参考:https://blog.51cto.com/u_15054050/4515537

(以上为DreamKite本人原创,转载请附上原文链接)

代码实现自动剪辑视频相关推荐

  1. python实现自动剪辑视频

    随机获取视频和音乐,利用python实现自动剪辑视频(粗糙版) import os import timeimport redis from moviepy.editor import * impor ...

  2. python ai自动剪辑视频_你知道吗?Python也可以剪辑视频!

    就当前看来,Python无疑是最火的编程语言之一,由于其简单易学,无数人为其写第三方库和框架,Python也得以渗透进各种行业. 很多人都听说过Python的妙用,比如: 可以用来编写网站,这方面的框 ...

  3. 制作视频剪辑,自动剪辑视频的软件如何剪辑

    我们公司主要做文案内容输出的,所以合作的短视频工作室和企业比较多,听他们说pc端的自动剪辑工具好像都效果不好,现在他们大多数都是用王者剪辑这样的工具,然后批量控制多个手机,基本每天自动剪辑的视频都是几 ...

  4. 自动剪辑视频的软件,视频自动剪辑生成软件如何剪辑视频和制作视频

    要一键成片的话,那就是智能自动剪辑工具了,我上一个公司是专门运营无真人视频的,但剪辑工作不是我负责的工作,记得我们的技术部童鞋使用的工具王者剪辑,批量制作并管控很多个手机进行自动剪辑,不过主要做的是文 ...

  5. 自动剪辑视频的软件王者剪辑剪辑的视频没有声音的问题

    看到很多朋友在问,王者剪辑制作的视频声音问题,我也在玩这个,顺便记录一下希望对大家有帮助,王者剪辑里面的"智能剪辑"主要批量自动剪辑出原创视频,这个功能制作出来的视频是没有声音的, ...

  6. AutoCut: 一款通过字幕自动剪辑视频的神器

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 今天给大家推荐的项目是「AutoCut」,用文本编辑器剪视频,AutoCut 对你的视频自动生成字幕,然后你选择需 ...

  7. Python算法自动剪辑视频,视频丝滑换装无须视频编辑器

    看到人家用PR什么编辑软件做这种丝滑一键换装的视频,自己也想尝试一下.不过PR这破玩意太难用了,还不如敲代码来的省事. 最开始想用 moviepy 的 moviepy.video.fx.all.mas ...

  8. 音频素材自动剪辑视频ae脚本Automated Video Editing

    AE脚本:Automated Video Editing是一款基于After Effects平台的视频编辑脚本,可以帮助用户快速.高效地完成视频剪辑和特效制作. 其主要特点包括: 1.自动化编辑:该脚 ...

  9. AI自动剪辑生成视频探索实践

     点击上方"LiveVideoStack"关注我们 ▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息 // 编者按:随着短视频时代的到来,以短视频作为载体进行音乐推广具备 ...

  10. ai自动配音_AI全自动剪辑视频软件4.3版,新增双语字幕条人工配音功能!

    软件名称:AI全自动剪辑原创视频软件4.3版 软件语言:简体中文 软件界面:AI全自动剪辑原创视频软件功能很强大,可以全自动剪辑视频.自动配音.自动出字幕.不仅可以剪辑横屏短视频,也可以剪辑竖屏小视频 ...

最新文章

  1. train_test_split 数据集划分,样本划分
  2. php dir类,PHP基于dir类实现目录遍历删除
  3. winform频繁刷新导致界面闪烁解决方法
  4. 日元兑换——国内兑换需要护照和签证,国外的机场有兑换ATM
  5. 【攻防世界003】re-for-50-plz-50
  6. 阿里用户体验大师教你如何让产品更加触动人心
  7. jinja Escaping
  8. JavaScript中charAt函数
  9. LeetCode 712. Minimum ASCII Delete Sum for Two Strings
  10. XLNET:换一个思路做预训练,效果杠杠滴
  11. html打开txt文件怎么打开是乱码了,使用记事本打开TXT文件变乱码的解决办法
  12. 特殊日历计算 —— C++
  13. 学计算机有那些方向,计算机专业的研究生研究方向有哪些
  14. mysql405错误_mysql - 在框架内php调用某个方法, nginx 报 405错误 Status Code:405 Method Not Allowed...
  15. 【汇编程序】编写一个在显示器上显示的一个笑脸字符的程序
  16. 【时间管理】柳比歇夫之奇特的一生
  17. Alexnet网络模型在cifar-10数据集上的实现(基于tensorflow-gpu)
  18. VSCode搭建 c 环境教程
  19. 基于java安防管理平台计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  20. a15相当于骁龙多少 A15相当于骁龙什么处理器

热门文章

  1. catia投图只投外轮廓线_catia作图小技巧
  2. learun.framework v7.0.6 — . net快速开发框架
  3. TensorRt - caffe中支持prelu
  4. eclipse 输入光标由于误操作变成小黑块如何恢复
  5. LeetCode 中文刷题手册:LeetCode Cookbook下载
  6. tecplot批量导出图片_科研画图工具Tecplot使用教程
  7. AssertionError: Incompatible version of pycocotools is installed.
  8. PHP在线预览word文档的功能
  9. 基于java+springboot+mybatis+laiyu实现学科竞赛管理系统《建议收藏》
  10. 苹果手机录屏软件_手机录屏软件哪个好 好用的手机录屏软件推荐