news 2026/8/29 11:40:36

基于PyQt和FFmpeg的开源视频剪辑器OpenShot

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于PyQt和FFmpeg的开源视频剪辑器OpenShot

penShot的全称是OpenShot Video Editor,它是一款跨平台的开源视频编辑器,适用于Linux、Mac和Windows等系统,且提供了高质量编辑视频和动画的解决方案。编译之后的OpenShot工具环境叫做OpenShot Studios,采用类似剪映的操作界面,方便用户通过它剪辑视频。

OpenShot的官网地址为https://www.openshot.org/,源码托管地址为https://github.com/OpenShot/openshot-qt(星星数5k),国内镜像地址是https://gitee.com/mirrors/openshot,最新版本为2024年12月发布的OpenShot v3.3.0,可见该框架的源码更新十分及时。

一、OpenShot的运行条件

OpenShot基于Python 3.*编写,它的编译环境需要满足下列条件:

1、安装了Python 3.0或更高版本(Python的官网为http://www.python.org)

2、安装了PyQt5(PyQt5的下载页面为http://www.riverbankcomputing.co.uk/software/pyqt/download5)

3、安装了libopenshot库(该库的源码托管地址为https://github.com/OpenShot/libopenshot)

4、安装了libopenshot-audio库(该库的源码托管地址为https://github.com/OpenShot/libopenshot-audio)

5、安装了FFmpeg库或者Libav库(FFmpeg的官网为http://www.ffmpeg.org/,Libav的官网为http://libav.org/)

6、Linux或MAC系统需要安装GCC构建工具,Windows系统需要安装MinGW工具

可见OpenShot主要采用PyQt5结合FFmpeg编码开发,有关Qt+FFmpeg的桌面开发可参考《FFmpeg开发实战:从零基础到短视频上线》一书的“第 11 章 FFmpeg的桌面开发”。

二、OpenShot的运行方式

OpenShot有两种运行方式:运行已编译的可执行程序和从源代码编译运行,分别说明如下:

1、运行已编译的可执行程序

如果系统已经安装libopenshot,则可执行以下命令运行OpenShot:

cd openshot-qt所在目录

python3 src/launch.py

2、从源代码编译运行

若要从源码编译构建libopenshot,则需将环境变量PYTHONPATH设置为内部Python的绑定位置。详细的编译命令如下:

cd libopenshot所在目录

cmake -B build -S .

cmake --build build

cd openshot-qt所在目录

export PYTHONPATH=libopenshot所在目录/build/bindings/python

python3 src/launch.py

OpenShot成功运行后的启动界面如下所示,可见该工具的操作界面类似剪映,十分方便用户快速上手视频剪辑。

openshot1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 8:20:17

大模型面试经验汇总:22家大厂面试实录+高频考点解析

本文详细记录了作者2023年参加的22家科技公司大模型岗位面试经验,包括面试流程、问题及感悟。文章总结了高频考点:多头注意力机制、框架并行方式、主流模型细节、大模型训练技巧、数据预处理和模型评估等。作者指出大模型领域竞争激烈,岗位对…

作者头像 李华
网站建设 2026/8/29 8:00:42

Java计算机毕设之基于springboot的村务管理系统的设计与实现springboot+mysql村务档案管理系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/8/29 8:04:47

Lock()与TryLock():并发锁机制核心差异

在共享内存或并发编程中,lock()与tryLock()是两种不同的锁获取机制,核心差异体现在阻塞行为、返回值、中断处理及适用场景上,具体分析如下:1. 阻塞行为lock():是阻塞式操作。若锁已被其他线程持有,调用线程…

作者头像 李华
网站建设 2026/8/29 0:12:06

springboot 分布式验证码登录的通用方案

为了防止世界被破坏,为了守护世界的和平。。。说错了,重来~ 为了防止验证系统被暴力破解,很多系统都增加了验证码效验,比较常见的就是图片二维码,业内比较安全的是短信验证码,当然还有一些拼图验证码&…

作者头像 李华