最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Video Renderer:高性能移动 Web 端视频编辑器

  • 2019-09-05
  • 本文字数:990 字

    阅读完需:约 3 分钟

Video Renderer:高性能移动Web端视频编辑器

Video Renderer是一款针对移动 Web 应用开发的高性能视频编辑器。在 2019 伦敦全栈工程师大会(Fullstack London 2019 conference)上,Threads Styling公司的软件开发工程师Forbes Lindesay分享了 Video Renderer 的开发经验。


Canvas API支持在浏览器内编辑视频,但通常用于编辑静态图像。Canvas API 特别适合在画布内渲染单个视频帧甚至是整个视频。


下面给出的代码示例来自“video + canvas = magic”:


function draw(v,c,w,h) {    if(v.paused || v.ended) return false;    c.drawImage(v,0,0,w,h);    setTimeout(draw,20,v,c,w,h);}
复制代码


代码中定义的函数以 HTML 视频元素、Canvas 元素、当前帧的宽度和高度为输入,调用drawImage将视频当前栈复制到 Canvas 元素中,进而调用 setTimeout 设置 20 毫秒超时,形成 50 fps 的流畅视频。


图像一旦复制到 Canvas 中,就可以读取并编辑单个帧。这时,每个帧可视为静态的图像,进而可直接使用 Github 上提供的多种 Canvas 图像操作软件库。


编辑器设计提供的另一项功能是分层(Layering)。对于堆栈,在当前视频之上入栈另一个视频非常易于实现,但绘图和动画的入栈并非易事。这是因为绘图和动画通常含有透明属性,该属性不支持开箱即用。


为解决上述问题,最简单的做法是在服务器添加一步额外的操作。一旦用户上载图像,就创建该图像的黑白拷贝。其中,白色表示图像中的可见部分,黑色表示图像中的透明区域。进而,编辑器使用一种“透明指引机制”,判断图像中应绘制的区域,然后剩余的区域渲染背景视频。


为在服务器端创建上述“透明指引机制”,编辑器设计上使用了FFmpeg软件库提供的 FilterComplex 方法。FFmpeg 支持创建图像过滤器。


需指出的是,在浏览器中构建视频编辑器存在一个局限。尽管视频编辑功能在浏览器中运行得非常好,但是不推荐对压缩视频使用,尤其是在移动端。为解决这一局限,编辑器将复制服务器端编辑的视频,进而使用 FFmpeg 生成并压缩视频。为此,在向服务器发送原始视频的同时,会发送可重现用户已完成编辑操作的一系列指令。


这是一种临时的解决方案。未来,编辑器将考虑使用WebAssembly在浏览器中编译并运行 FFmpeg。事实上,对此Github上已有实验性项目,但是该项目尚未达到可适用于生产环境。


上面介绍了 Threads Styling 移动端视频编辑器的关键技术。该编辑器以 MIT 许可方式提供在Github上。


原文链接:


High Performance Video Editing for the Mobile Web


2019-09-05 08:006629
用户头像

发布了 391 篇内容, 共 126.9 次阅读, 收获喜欢 255 次。

关注

评论 1 条评论

发布
用户头像
赞,最近正好在研究这个
2020-02-23 16:25
回复
没有更多了
发现更多内容

现在甘肃等保测评机构有几家?分别是哪几家?

行云管家

等级保护 等保测评 甘肃

探秘 Spring Boot Async:解析原理与实践详解

Apifox

性能优化 Spring Boot 后端 多线程 Async

医院检验科LIS系统源码,oracle数据库、报告管理、质控管理

源码星辰

使用 Kubernetes 为 CI/CD 流水线打造高效可靠的临时环境

SEAL安全

Kubernetes CI/CD 临时环境

万界星空科技MES系统中的生产管理流程

万界星空科技

生产管理系统 mes 制造业生产管理系统 云mes 万界星空科技mes

ETL+BI结合的数据集成工具

RestCloud

BI ETL 数据集成

华秋喜获“2023深圳行业领袖企业100强”称号

华秋电子

Amazon CodeWhisperer 开箱初体验

亚马逊云科技 (Amazon Web Services)

人工智能 云上探索实验室 Amazon CodeWhisperer

工业数据存储的“四道难关”,国产数据库如何应势破局?

用友BIP

Mac电脑强大的文件夹快速访问工具:Default Folder X 最新激活

胖墩儿不胖y

Mac软件 文件访问工具 文件夹管理软件

18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的

鲁米

Mac电脑多平台数据同步推荐:SyncMate最新激活版

mac大玩家j

同步工具 Mac软件推荐 同步软件

通过线上巡检,保障生产环境质量

老张

软件测试 质量保障

AI数字人在天猫/淘宝平台开播教程!

青否数字人

数字人

五金家具行业MES解决方案

万界星空科技

mes 制造业生产管理系统 万界星空科技mes 家居设计工具 家具生产管理系统

文心一言 VS 讯飞星火 VS chatgpt (152)-- 算法导论12.2 8题

福大大架构师每日一题

福大大架构师每日一题

ACPM高效C++组件管理让音视频终端SDK性能更好、稳定性更高

阿里云视频云

云计算 视频云

华秋DFM软件荣获2023年度电子信息行业可靠性质量提升典型案例

华秋电子

软件

直播预告|StarRocks 3.2 全面解读:易用性和性能的双重提升

StarRocks

数据库 数据分析 OLAP StarRocks

Future3 Campus访谈丨资本是如何看待AI+Web3的?

Footprint Analytics

AI web3

鸿蒙原生应用开发——分布式数据对象

HarmonyOS开发者

HarmonyOS

代码混淆技术探究与工具选择

雪奈椰子

小程序开发实战案例之三 | 小程序底部导航栏如何设置

盐焗代码虾

前端 支付宝 小程序开发 导航栏

4点搞定Type-C接口的PCB可制造性设计优化!

华秋电子

PCB

中山大学数学学院 x 赛博威 | 共同成立人工智能算法产学研合作基地

赛博威科技

人工智能 赛博威 中山大学 人工智能算法

Amazon S3 Glacier 将检索大量存档数据时的还原吞吐量提升高达 10 倍

亚马逊云科技 (Amazon Web Services)

S3 API 云存储服务 Amazon S3 Glacier

一起学Elasticsearch系列-模糊搜索

Java随想录

Java 大数据 elastic

为什么6层板最好设计2个接地层?

华秋电子

强强联合!航天科技AIRIOT助力航天电工打造智慧工厂

AIRIOT

IOT Platform 智慧工厂

AI数字人直播常见问题及解决方案!

青否数字人

数字人

实战干货!基于ERNIE Bot SDK的数字诗人聊天开发教程

飞桨PaddlePaddle

人工智能 数字人 技术干货 文心一言

Video Renderer:高性能移动Web端视频编辑器_大前端_Guy Nesher_InfoQ精选文章