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:videoWinBasedWorkHard_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:videoWinBasedWorkHard_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博文目录

原文地址:https://www.cnblogs.com/LaoYuanPython/p/13643472.html