moviepy音视频剪辑:输出文件前预览剪辑和视频帧的preview和imdisplay方法
☞ ░ 前往老猿Python博文目录 ░
一、引言
由于moviepy合成剪辑后,输出需要较多的时间,那么在输出前预览一下有助于提高处理效率。moviepy提供了预览的工具,这个工具是基于pygame实现的moviepy.video.io.preview,因此在使用前必须安装pygame。
参考安装指令:pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
二、预览函数preview语法
调用语法:
def preview(
clip,
fps=15,
audio=True,
audio_fps=22050,
audio_buffersize=3000,
audio_nbytes=2,
fullscreen=False,
)
其中参数clip是已经加载到内存中的剪辑,fullscreen为是否全屏播放,其他参数请参考《moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解》write_videofile方法的参数说明。
三、剪辑预览案例
from moviepy.editor import *
from moviepy.editor import VideoFileClip
from moviepy.video.io.preview import preview
if __name__=='__main__':
threads = 8
clip = VideoFileClip(r"F:\video\WinBasedWorkHard_src.mp4").subclip(0,10)
newclip = clip.fx(vfx.loop).set_duration(50)
preview(newclip)
四、视频帧预览案例
moviepy.video.io.preview除了提供剪辑视频的预览方法外,还提供了对应帧画面的预览方法,这个方法是imdisplay。具体就不介绍了。参考如下代码:
import pygame as pg
from moviepy.editor import *
from moviepy.editor import VideoFileClip
from moviepy.video.io.preview import imdisplay
import time
clip = VideoFileClip(r"F:\video\WinBasedWorkHard_src.mp4").subclip(0,10)
screen = pg.display.set_mode(clip.size)
for t in range(5,10):
imdisplay(clip.get_frame(t), screen)
time.sleep(1)
更多moviepy的介绍请参考《PyQt+moviepy音视频剪辑实战文章目录》或《moviepy音视频开发专栏》。
关于收费专栏
老猿的付费专栏《使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏加起来只需要19.9元,都适合有一定Python基础但无相关专利知识的小白读者学习。这2个收费专栏都有对应免费专栏,只是收费专栏的文章介绍更具体、内容更深入、案例更多。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。
跟老猿学Python、学5G!
☞ ░ 前往老猿Python博文目录 ░
moviepy音视频剪辑:输出文件前预览剪辑和视频帧的preview和imdisplay方法的更多相关文章
- Android开发 获取视频中的信息(例如预览图或视频时长) MediaMetadataRetriever媒体元数据检索器
前言 在Android里获取视频的信息主要依靠MediaMetadataRetriever实现 获取最佳视频预览图 所谓的最佳就是MediaMetadataRetriever自己计算的 /** * 获 ...
- input file实现多选,限制文件上传类型,图片上传前预览功能
限制上传类型 & 多选:① accept 属性只能与 <input type="file" /> 配合使用.它规定能够通过文件上传进行提交的文件类型. ② mu ...
- FileReader与URL.createObjectURL实现图片、视频上传前预览
之前做图片.视频上传预览常用的方案是先把文件上传到服务器,等服务器返回文件的地址后,再把该地址字符串赋给img或video的src属性,这才实现所谓的文件预览.实际上这只是文件“上传后再预览”,这既浪 ...
- file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- Java实现文件的预览
最近项目需要用到文件的预览功能,就开始在网上收集资料,学习了几种文件预览的方法.我集成到我项目内测试的有以下三种,最后使用的是第三种: 直接使用别人提供的服务 例如:office web 365 使用 ...
- 基于开源方案构建统一的文件在线预览与office协同编辑平台的架构与实现历程
大家好,又见面了. 在构建业务系统的时候,经常会涉及到对附件的支持,继而又会引申出对附件在线预览.在线编辑.多人协同编辑等种种能力的诉求. 对于人力不是特别充裕.或者项目投入预期规划不是特别大的公司或 ...
- hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images, 本例子主要是使用HTML5 的File API,建立一個可存取到该file的url, 一个空的img标签,ID为img0,把 ...
- html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- 【转】HTML5 jQuery图片上传前预览
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该 file的url,一个空的img标签,ID为img0,把选 ...
随机推荐
- 【Kata Daily 190906】Vasya - Clerk(职员)
题目: The new "Avengers" movie has just been released! There are a lot of people at the cine ...
- angularJS 小记
刚刚接触angularJS,网上学习了一遍菜鸟教程(http://www.runoob.com/angularjs/angularjs-tutorial.html),做了些基础知识的笔记. Angul ...
- 对于STM32F103的USART的通讯调试
USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发 ...
- 周末我把HashMap源码又过了一遍
为什么在Java面试中总是会问HashMap? HashMap一直是Java面试官喜欢考察的题目,无论应聘者你处于哪个级别,在多轮的技术面试中似乎总有一次会被问到有关 HashMap 的问题. 为什么 ...
- VMware虚拟机 - 解决主机每次重启后 VMWare 都无法上网的问题
背景 每次重启自己电脑,重新打开 Vmware 虚拟机,再 ping 百度时,又显示无法 ping 通 但明明已经把 Vmware 的虚拟网卡重置了 那到底要如何解决呢? 解决方案 进入服务界面 将 ...
- gdb调试入门(下)
GDB调试主要包括: 1.查看运行时数据 2.程序错误 3.gdb调试逻辑错误 4.gdb调试段错误 5.core文件调试 一.查看运行时数据 1.print 查看变量值 2.ptype 变量: 查看 ...
- JAVA内存模型和Happens-Before规则
前言 上一篇文章王子给大家介绍了并发编程中比较关心的三个核心问题,可见性.有序性和原子性. 今天我们继续来探索并发编程的内容,聊一聊JAVA的内存模型和Happens-Before规则. JAVA内存 ...
- ceph luminous bluestore热插拔实现
需求描述 在某些测试场景下面,需要满足能够拔盘以后在插入的时候能够自动上线磁盘,这个需求实际在生产中是不建议使用的,原因是插入的磁盘如果本身存在问题,那么拉起的操作可能会破坏了本身集群的稳定性,所以这 ...
- go get以后下载的包不在src下而在pkg的问题
我的GOPATH是这样的 但是当我go get下载包之后 下载的却不在src,而是在 $GOPATH$/pkg 下 原因可能是之前第一次go get下载, GitHub的速度太慢了,我更改了代理,使用 ...
- Vue-router插件使用
单页面原理 Vue是单页面开发,即页面不刷新. 页面不刷新,而又要根据用户选择完成内容的更新该怎么做?Vue中采用锚点来完成. 如访问http://127.0.0.1#/index就是主页,而访问ht ...

