我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python moviepy 的用法入门篇

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python moviepy 的用法入门篇

python 中的视频处理模块,有一个叫做 moviepy,今天我们就来唠唠它。

模块安装使用如下命令即可

pip install moviepy

接下来完成第一个 Demo,为后续学习提高信心,截取视频中的一段。

截取视频

下述代码重点使用的是 subclip 方法,但需要提前声明一个 VideoFileClip 对象, VideoFileClip 类的构造函数在代码后进行说明。

from moviepy.editor import *
import time
clip = VideoFileClip('./1644974996.mp4').subclip(10, 20)
new_file = str(int(time.time())) + '_subclip.mp4'
clip.write_videofile(new_file)

代码运行结果如下所示:

在这里插入图片描述

subclip(t_start,t_end) 方法中的时间参数可以用 (t_start=10) ,以秒的时间来表示,也可以用 (t_start=(1,20)) ,以1分20秒的形式来表示,还可以 (t_start=(0,1,20)) 或者 (t_start=(00:01:20)) , 以小时: 分钟: 秒的形式表示, t_end 的默认值就是视频的长度

VideoFileClip 类的构造函数如下所示:

__init__(self, filename, has_mask=False,
	audio=True, audio_buffersize=200000,
	target_resolution=None, resize_algorithm='bicubic',
	audio_fps=44100, audio_nbytes=2, verbose=False,
	fps_source='tbr')

其中只有 filename 为必填项,其余都为选填内容。

  • filename:视频文件名,一般常见格式都支持;
  • has_mask:是否包含遮罩;
  • audio:是否加载音频;
  • audio_buffersize:音频缓冲区大小;
  • target_resolution:加载后需要变换到的分辨率;
  • resize_algorithm:调整分辨率的算法,默认是 bicubic,可以设置为 bilinearfast_bilinear
  • audio_fps:声音的采样频率;
  • audio_nbytes:采样的位数;
  • verbose:是否输出处理信息。

subclip(t1,t2) 方法的含义为截取t1到t2时间段内的片段。
write_videofile() 方法用于视频输出。

提取A视频的音频,注入到B视频中

from moviepy.editor import *

# 读取2个视频文件 
videoclip_a = VideoFileClip("1644974996.mp4")
videoclip_b = VideoFileClip("1644974998.mp4")
# 提取A视频文件的音频部分
audio_a = videoclip_a.audio
# 给B设置音频,注意视频最终合成的大小会依据长的为准
videoclip_c = videoclip_b.set_audio(audio_a)
# 输出新的视频文件
videoclip_c.write_videofile("videoclip_c.mp4")

使用 VideoFileClip 对象的 audio 属性,可以获取视频的音频部分,然后调用 set_audio() 方法对文件进行音频设置,这里要注意一点,合成的音频和视频等于长度的。

去掉视频声音

from moviepy.editor import *

video = VideoFileClip('1644974996.mp4')
video = video.without_audio()
video.write_videofile('cc.mp4')

without_audio() 方法见名知意 - 去除声音。

获取视频信息

视频的分辨率和时间可以直接通过属性读取

from moviepy.editor import *

video = VideoFileClip('1644974996.mp4')
print(dir(video))
print(video.size) # 获取分辨率
print(video.duration) # 获取视频总时长

获取文件大小就比较简单了,使用 os 模块的 os.path.getsize() 方法即可,得到的是字节大小。

from moviepy.editor import *

video = VideoFileClip('1644974996.mp4')
size = os.path.getsize('1644974996.mp4')
print(size)

设置视频倍速播放

读取视频,调用 speedx() 方法,其中设置要加速到的倍数。

from moviepy.editor import *
clip = VideoFileClip('./1644974996.mp4')

video_1 = clip.speedx(2)
video_1.write_videofile('sss.mp4')

截取视频封面

很多时候我们需要生成视频的封面,直接使用下述几行代码,即可实现。

from moviepy.editor import *

clip = VideoFileClip('./1644974996.mp4')
clip.save_frame("frame.jpg")  # 保存第1帧
clip.save_frame("frame.png", t=2)  # 保存2s时刻的那1帧

提取视频中的音频内容

如果想要把目标视频中的某段音频截取出来,可以使用如下代码

from moviepy.editor import *

clip = VideoFileClip('./1644974996.mp4').subclip(10, 20)
audioclip1 = clip.audio  # 从视频对象中提取音频
audioclip1.write_audiofile('a.mp3')  # 写入音频文件

截取视频中的一段,将其保存为 gif

from moviepy.editor import *

clip = VideoFileClip('./1644974996.mp4').subclip(10, 20)
# clip.write_gif('demo.gif',fps=15) # 生成之后的文件大
clip.write_gif('demo.gif',fps=5) # 生成之后的文件小

写在后面

到这里,相信你能顺着这个思路去学习 moviepy 更多的高级用法啦。

到此这篇关于python moviepy 的用法入门篇的文章就介绍到这了,更多相关python moviepy用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python moviepy 的用法入门篇

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python入门篇(二)

1、Python模块### sys模块#!/usr/bin/python# _*_ coding:utf-8 _*_# Aothr: Kimimport sys #导入sys模块print (sys.path) #打印python环境变量p
2023-01-31

Python入门篇(一)

python学习博客:http://www.cnblogs.com/haiyan123/p/8387770.html#lable1http://www.cnblogs.com/alex3714http://www.cnblogs.com/l
2023-01-31

Python_实用入门篇_01

运行Python程序,变量,常量,注释 1.运行Python程序的几种方法(前提是已经装上了Python解释器):  ①我们可以在命令提示符(cmd)中输入"Python"命令来启动Python解释器,通过以下命令执行该脚本:python3
2023-01-30

Python_实用入门篇_12

Python内置序列类型之集合类型详解  1.集合概念    具有某种特定性质的事物的总体,集合里的东西叫作元素。Python中,集合(set)是一个无序不重复元素的序列。 2.集合的创建    可以使用大括号 { } 或者 set() 函
2023-01-30

Python_实用入门篇_11

Python内置类型之字典类型详解1.字典的概念    字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型。字典是另一种可变容器模型,且可存储任意
2023-01-30

Python_实用入门篇_03

用户交互以及格式化输出 1.用户交互  ①input函数    input函数等待用户输入,然后前面的变量指向输入的内容,注意,input函数出来的数据类型全是字符串类型x= input(“此括号里的内容会直接打印出来:”)print(x)
2023-01-30

Python_实用入门篇_00

Python历史1.Python的诞生  Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Pyth
2023-01-30

Python_实用入门篇_05

编码及运算符 1.编码   1.编码的概念    在计算机硬件中,编码(coding)是指用代码来表示各组数据资料,使其成为可利用计算机进行处理和分析的信息。代码是用来表示事物的记号,它可以用数字、字母、特殊的符号或它们之间的组合来表示。 
2023-01-30

Python_实用入门篇_08

Python序列内置类型之列表类型详解 1.Python序列概念    数学上,序列是被排成一列的对象(或事件)这样每个元素不是在其他元素之前,就是在其他元素之后。这里,元素之间的顺序非常重要。序列是Python中最基本的数据结构。序列中的
2023-01-30

Python_实用入门篇_07

Python内置类型之数字类型以及Python之禅1.数字类型概念    Python 数字数据类型用于存储数值,数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。 看图,数字类型是不可变的,假设你创建了一个数
2023-01-30

Python_实用入门篇_13

目前学习的Python基础的一次总结 一.列表,元组,集合,字典,字符1.Python中最常见的序列类型为:列表,元组,字符类型特点:①所有序列都支持迭代注意:generator也是可迭代对象,generator是生成器,后面博主会讲。②序
2023-01-30

Python_实用入门篇_02

Python对象类型 包括数字、字符串、列表、字典、元组、集合本篇将对这些基本的内置对象类型进行简介1.对象类型:  ①对象类型的概念:    对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物
2023-01-30

Python_实用入门篇_04

Python中的if和while语句1.if流程控制     1.语法结构                                         if 条件测试为 true:                           
2023-01-30

python正则表达式入门篇

本文主要为没有使用正则表达式经验的新手入门所写。转载请写明出处引子首先说 正则表达式是什么?正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、
2023-01-31

python入门学习之变量篇

【前言】在公司内部wiki上看到一个不错的学习网站,遂开始了我这慢悠悠的学习之旅。网站链接:https://www.codecademy.com1.理解布尔值一种数据类型。简单来说,正如你家里的电灯有开关两种状态一样,布尔值同样也有两个值,
2023-01-31

一篇文章入门Python生态系统(Python新手入门指导)

译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍。文中提到了一些第三方库,但是Python社
2022-06-04

python web自动化测试,入门篇

自动化测试入门篇本次实现自动化是用python语言进行实现,所以需要有一点python基础,其实python还是比较简单入门的,下面开始。安装python,我安装的是最新版本的python,传送门https://www.python.org
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录