FFmpeg开发笔记(八十六)基于Node.js的国产视频编辑开源框架OpenCut
《FFmpeg开发实战:从零基础到短视频上线》一书的“第 12 章 FFmpeg的移动开发”介绍了如何使用FFmpeg在手机上剪辑视频,方便开发者更好地开发类似剪映那样的视频剪辑软件。那么在桌面系统上还有一款国产的开源视频编辑框架OpenCut,通过该框架可以更快地加工编辑视频文件,下面就来介绍如何在桌面系统中使用OpenCut。
OpenCut是一款开源、跨平台的新兴国产视频剪辑工具,支持时间轴、多轨编辑、色彩校正等功能,并支持硬件加速,界面简洁友好,特效资源库丰富且免费。虽然OpenCut的视频编辑操作用到了FFmpeg,但它基于Web服务,不论何时何地,只要能打开浏览器,就能使用OpenCut剪辑视频。
OpenCut的官网地址为https://opencut.net/,源码托管地址为https://github.com/OpenCut-app/OpenCut(星星数32k),国内镜像地址是https://gitee.com/mirrors_trending/OpenCut。2025年7月10日,OpenCut被GitHub评为社区日榜最佳项目,可见该框架的源码更新十分及时。
OpenCut采用Node.js开发,可在Node.js v18或更高版本上运行,详细的编译运行过程说明如下:
一、安装Node.js
Node.js的官网为https://nodejs.org/en/,下载页面为https://nodejs.org/en/download,找到对应系统的Node.js安装包,下载并安装到桌面系统。
二、安装Bun
除了安装Node.js之外,还要安装它的一体化工具Bun。打开桌面系统的命令行窗口,执行以下命令安装bun:
npm install bun -g
有关Windows系统的命令行操作说明可参考《FFmpeg开发实战:从零基础到短视频上线》一书的“8.1 Windows环境编译FFmpeg”。
三、启动OpenCut
先解压下载后的OpenCut源码包,再打开桌面系统的命令行窗口,依次执行下列命令:
cd OpenCut源码目录
cd apps/web
copy .env.example .env.local
# 安装FFmpeg等依赖包
bun install
# 启动开发服务器
bun dev
命令行回显如下的启动日志,说明OpenCut的Web服务正常启动:
$ next dev --turbopack
▲ Next.js 15.4.5 (Turbopack)
- Local: http://localhost:3000
- Network: http://192.168.2.145:3000
- Environments: .env.local
Starting...
四、访问OpenCut
打开浏览器,输入OpenCut默认的Web地址http://localhost:3000,打开OpenCut的欢迎页面如下图所示:

点击页面下方的“try early beta”按钮,打开OpenCut的项目页面如下图所示:

点击项目页面右上角的“New Project”按钮,打开OpenCut的编辑页面如下图所示:

编辑页面左上角的Upload区域可上传待编辑的视频文件,接下来就能对视频做各种编辑操作了。编辑完成后,点击页面右上角的Export按钮,即可保存修改后的视频文件。
更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
FFmpeg开发笔记(八十六)基于Node.js的国产视频编辑开源框架OpenCut的更多相关文章
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
- [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...
- Nodejs学习笔记(十五)—Node.js + Koa2 构建网站简单示例
前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还 ...
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- 开发轻量级REST API样板 基于Node.js、MongoDB 通过Mongoose驱动
ZY.Node.Mongodb https://gitee.com/Z568_568/node.mongodb.git https://github.com/ZHYI-source/ZY.Node.M ...
- .net开发笔记(十六) 对前部分文章的一些补充和总结
补充有两个: 一个是系列(五)中讲到的事件编程(网址链接),该文提及到了事件编程的几种方式以及容易引起的一些异常,本文补充“多线程事件编程”这一块. 第二个是前三篇博客中提及到的“泵”结构在编程中的应 ...
- 安卓开发笔记(十六):'Request(okhttp3.Request.Builder)' has private access in 'okhttp3.Request
当出现了'Request(okhttp3.Request.Builder)' has private access in 'okhttp3.Request的错误的时候,实际上是我们在写代码的时候少打了 ...
- Java开发笔记(十六)非此即彼的条件分支
前面花了大量篇幅介绍布尔类型及相应的关系运算和逻辑运算,那可不仅仅是为了求真值或假值,更是为了通过布尔值控制流程的走向.在现实生活中,常常需要在岔路口抉择走去何方,往南还是往北,向东还是向西?在Jav ...
- Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用
一个Form里经常会有好几个Tab,有时要根据一些条件设置哪些Tab可用,可见.下面就介绍下如何用JS对Tab进行控制. 1. 控制可见 function setTabVisableByName( ...
- 十六、【适合中小企业的.Net轻量级开源框架】EnterpriseFrameWork框架核心类库之单点登录SSO
回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U 单点登录(Single Sign ...
随机推荐
- DockQuery x 达梦 国产数据库生态“加速跑”
「数字化」是当今社会最先进和最具穿透力的生产力,近十年里开展着气势磅礴的发展.而信创产业则是保障中国经济数字化转型平稳健康发展的基础. 随着信创产业规模不断扩大,国产数据库市场释放出前所未有的活力.达 ...
- Linux C编程之五 gdb调试
摘自:https://www.cnblogs.com/xuejiale/p/10788379.html 一.整体大纲 二.gdb调试 1. 启动gdb start -- 只执行一步 n -- n ...
- linux - ip route 操作主机路由
在Linux中,我们经常会涉及到修改主机的路由列表,以前都是使用route这个命令,但是在CentOS7中默认已经不安装net-tools这个包,所以默认是没有route这个命令的,可以使用ip ro ...
- 将 Docker虚拟磁盘文件ext4.vhdx迁移出C盘 ,更换到D盘
ext4.vhdx 是个虚拟磁盘,会占用很大磁盘空间,可将其改到其它磁盘或分区,如D分区 默认情况下,Docker Desktop for Window 将创建以下 2 个发行版. docker-de ...
- [快速阅读十一] 伊拉克团队的TAGC(低光增强效果)算法实现。
原论文信息如下: 论文标题: Tuning adaptive gamma correction (TAGC) for enhancing images in low light 发表日期: 2025年 ...
- D - Tokitsukaze and Multiple
https://vjudge.net/contest/386223#problem/D Tokitsukaze has a sequence of length nn, denoted by aa ...
- 从数据感知到决策优化:MyEMS 开源能源管理系统的技术架构与实践效能解析
在全球 "双碳" 目标与能源安全战略的双重驱动下,企业对能源管理的需求已从 "单纯降本" 升级为 "安全可控.高效利用.低碳协同" 的综合诉 ...
- 项目中Spring Security
我在项目中使用到了Spring Security,记录一下使用的好处以及他的使用方法. 首先Spring Security是分为认证和授权两方面的,授权,我在项目中使用到的是JWT动态生成Token认 ...
- [笔记]线性dp常见模型及拓展
本文主要用于记录\(dp\)学习中的一些线性模型(模板问题讲解较少,只有结论性内容和代码,而拓展会有较详细的讲解). \(dp\)的线性模型指的是状态转移有明显线性顺序(如一维二维数组.队列.栈等)的 ...
- 减少Spring boot启动内存(开发环境)
在学习cloud的过程中,因为启动了多个服务,发现电脑(8G内存)卡成狗啦....看下图: 想到每个服务都只是简单的使用了cloud的功能,内存怎么会这么大呢?头疼 扒拉扒拉一大堆文章后 大佬们给出了 ...