首页 > 其他分享 >moviepy操作

moviepy操作

时间:2023-05-16 15:22:30浏览次数:33  
标签:BINARY moviepy ImageMagick 视频 水印 mp4 操作 数据

 

 

1.首先下载安装moviepy    使用指令 pip install moviepy (加源) 

 注:可以选择在terminal安装,也可以在cmd安装  个人喜欢在cmd安装  有时候pycharm安装需要重启软件

 

2.导入俩个库

import requests

from moviepy import *  

 

3.首先爬取一个视频并且保存

伪装 = {

  'user-agent':' '

  'refere':'  '

}

 

res = requests.get(url,headers = headers)

open('.mp4').write(res.content)

 

4.打水印 

# 导入素材
# 视频数据 = VideoFileClip('年轻不懂爱.mp4')
# 音频数据 = AudioFileClip('dance.mp3')
# 处理素材
# 最终数据 = 视频数据.set_audio(音频数据)
# 导出成品
# 最终数据.write_videofile('完整的视频.mp4')

 

# 打水印
# 1.导入素材
视频数据 = VideoFileClip('年轻不懂爱.mp4')
# 2.打什么水印? 内容? 大小? 颜色?
text = TextClip('mengyao', fontsize=120, color='red')
# 3.水印出现在哪里? 持续多长时间?
text = text.set_position(['left', 'top']).set_duration(10)
# 4.把准备好的水印加到视频上
最终视频 = CompositeVideoClip([视频数据, text])
# 5.导出成品
最终视频.write_videofile('年轻不懂爱(水印)1.mp4')
# E:\Python\Lib 解决方法:https://www.cnblogs.com/tkuang/p/16830598.html

5.四宫格
# 带水印的视频.mp4 做成4宫格! 镜像!
视频数据1 = VideoFileClip('年轻不懂爱(水印)1.mp4')
视频数据2 = 视频数据1.fx(vfx.mirror_x) # x镜像
视频数据3 = 视频数据1.fx(vfx.mirror_y) # y镜像
视频数据4 = 视频数据2.fx(vfx.mirror_y) # 视频数据2的y镜像

最终数据 = clips_array([
[视频数据4, 视频数据3],
[视频数据2, 视频数据1]
])

最终数据.resize(width = 1920).write_videofile('年轻不懂爱(四宫格).mp4')



注意: 打水印的时候会出现一个路径(path)的错误。

  注:在 Windows 上执行以上脚本,执行到 editor.TextClip() 时,会报出如下错误:
 
            OSError: MoviePy Error: creation of None failed because of the following error:
            
            [WinError 2] 系统找不到指定的文件。.
            
            .This error can be due to the fact that ImageMagick is not installed on your computer,
            or (for Windows users) that you didn't specify the path to the ImageMagick binary in file conf.py,
            or that the path you specified is incorrect
 
        以上错误是因为缺少 ImageMagick 造成的,访问 http://www.imagemagick.org/script/download.php 下载 Windows 版的 ImageMagick,本文下载 ImageMagick-7.1.0-51-Q16-HDRI-x64-dll.exe。
        
        下载后,双击 *.exe 文件,安装到 C:\Applications\ImageMagick-7.1.0-Q16-HDRI 目录。

        Moviepy 的配置文件 C:\Applications\Python-3.8.1\Lib\site-packages\moviepy\config_defaults.py, 在文件的尾部有如下内容:

            import os
            
            FFMPEG_BINARY = os.getenv('FFMPEG_BINARY', 'ffmpeg-imageio')
            IMAGEMAGICK_BINARY = os.getenv('IMAGEMAGICK_BINARY', 'auto-detect')

        环境变量 IMAGEMAGICK_BINARY 对应的是 ImageMagick 的可执行文件,这里有两种修改方法。

            方法1:直接修改 config_defaults.py 文件,修改代码如下:

                import os
                
                FFMPEG_BINARY = os.getenv('FFMPEG_BINARY', 'ffmpeg-imageio')
                IMAGEMAGICK_BINARY = r'C:\Applications\ImageMagick-7.1.0-Q16-HDRI\magick.exe'  

            方法2:添加 Windows 系统变量 IMAGEMAGICK_BINARY,步骤如下:

                右击 “我的电脑” → “属性” → “高级系统设置” → “高级” → “环境变量”

                新建系统变量(点击 “系统变量” 下方的 “新建” 按钮)

                    变量名:IMAGEMAGICK_BINARY
                    变量值:C:\Applications\ImageMagick-7.1.0-Q16-HDRI\magick.exe

                点击 “确定”

        建议使用方法2,即添加系统变量 IMAGEMAGICK_BINARY,打开一个新的命令行控制台,再次执行以上 Python 脚本,完成视频编辑。

标签:BINARY,moviepy,ImageMagick,视频,水印,mp4,操作,数据
From: https://www.cnblogs.com/netspiderman/p/17405729.html

相关文章

  • OpcenterExecutionSemi安装操作顺序
    1.安装|配置WindowsServer2019英文版操作系统a.安装VMwareWorkstationPro15.5(15.X以前的版本无法识别WindowsServer2019)b.用VMware创建WindowsServer2019VMc.激活操作系统;关闭防火墙;添加微软KM-TestLoopbackAdapterd.添加OpcenterEXCR_V8所需的角色权限 2.安......
  • nodejs 入门基本操作
    操作fs模块constpath=require("path");constfs=require("fs");/*相对路径是命令窗口执行的目录node提供了path模块来操作路径相关的api,其中__dirname是一个内置的变量,返回当前文件所在的目录*/constgetDirUrl=dir=>{returnpath.resolve(__dirname,dir)......
  • 基于STM32的BMS电池管理系统,源代码配官方参考原理图-带实时操作系统,基于stm32的BMS电
    基于STM32的BMS电池管理系统,源代码配官方参考原理图-带实时操作系统,基于stm32的BMS电池管理系统源代码-带ucos操作系统,代码规范,注释齐全,便于移植!学习参考开发必备利器ID:117676950715609......
  • 使用NEST简单操作Elasticsearch
    .NetCore中使用NEST简单操作Elasticsearch C#中访问Elasticsearch主要通过两个包NEST和Elasticsearch.Net,NEST用高级语法糖封装了Elasticsearch.Net可以通过类Linq的方式进行操作,而Elasticsearch.Net相比之下更为原始直接非常自由。注意:ES的8.X以上的版本有新的包Elastic.C......
  • C++黑马程序员——P207-209. deque容器 插入和删除,数据存取,排序操作
    P207.deque容器——插入和删除P208.deque容器——数据存取P209.deque容器——排序操作P207.deque插入和删除 ————————————————————————————————————————————————————————1#include<iostream>2#......
  • Linux操作系统分析-课程总结
     结合虚拟化技术分析Linux系统的一般执行过程一、     Linux系统运行一般场景:用户进程之间切换                     (1)用户态进程X调用系统调用或触发异常用户态进程X需要进行进程切换时,可以通过调用一些特定的系统调用(例如fork、exec等)或者......
  • C语言位域操作底层发生了什么?
    我们知道CPU对内存访问的最小单位是字节,1个字节是8个位,但是有时候我们需要的变量只需要不到8个位就能存的下,为了节省内存就会使用位域。比如我只需要1个变量的低2位变成10b,而其他位不受影响,我们会这么写:1voidmain(void)2{3volatilechara;4a&=0xFC;......
  • python 操作 PostgreSQL 数据库,线程并行修改 5w 条数据,性能优化
    python操作PostgreSQL数据库,线程并行修改5w条数据,性能优化110 娃哈哈店长的个人博客 /  433 /  0 / 创建于 3年前  获取新xls表中的所有数据并整理为列表形式返回其实修改的代码量不大,但是要考虑保留之前我们用的函数和方法还要继续能使用。excel2......
  • python openpyxl 操作excel
     openpyxl是从1开始计数,遍历操作时请用1为起始点,且总数加一,例:foriinrange(1,n+1) 单元格样式所需导入模块fromopenpyxl.stylesimportAlignment,Font,Border,Side,PatternFill样式#设置边框线align=Alignment(horizontal='center',vertical='c......
  • 23-5-15--c++文件基本操作--dog
    定义一个Dog类,包括体重和年龄两个数据成员及其成员函数,声明一个实例dog1,体重5,年龄10,使用I/O流把dog1的状态写入磁盘文件。再声明一个实例dog2,通过读取文件dog1的状态赋给dog2。分别用文本方式和二进制方式操作文件。#include<iostream>#include<fstream>#include<string>usin......