如何使用ONLYOFFICE+ffmpeg来给视频文件打马赛克

如何使用ONLYOFFICE+ffmpeg来给视频文件打马赛克

我这里之前写过很多关于ONLYOFFICE使用、安装的系列图文,也写过很多关于ffmpeg使用的图文,那么这次继续,把这两个开源软件放在一起,能碰撞出什么火花般的功能来。

这就是给视频文件添加马赛克效果!遮挡不想显示出来的内容。

当然了,会有很多人建议我,那么多商业视频非线性编辑软件的破解版都可以给视频文件打马赛克,那么多免费视频编辑软件似乎也可以打马赛克,但是我就是不用,即使是那些免费的国产软件,他们免费的目的就是夹带私货控制你的电脑,我就是完全采用安全可控的开源软件来打马赛克,就是功能强大的开源视频处理软件ffmpeg和办公软件ONLYOFFICE。

 

在ffmpeg的几种打码方式中选择OverLay功能打码

boxblur

这个参数是正经的给视频打马赛克,因此我就不贴效果图了,大家都知道马赛克什么样。在众多的参数中,指定所打马赛克的大小、颜色、粗糙度等参数,指定打码到原始视频画面的横纵坐标处,等等,但是我没有选择这种方式,是因为我这个视频要打码的位置有好几个,就得用这个方式反复多次打码,或者一次打码手撸非常长的命令行参数,太麻烦了,弃用该方法,当然,这里给出boxblur的官方参考手册见文末的参考文献。

delogo

这个参数本来不是打马赛克的功能,而是抹除视频中的电视台标、各处角落的徽标logo使用的功能,比方说,暑期旅游旺季时节,你去旅游胜地旅游,海南三亚、河北北戴河的沙滩上,录了短视频,短视频的画面中间是你的主角,背景是蓝天碧海金色的沙滩,似乎很美好,但是视频中就必然会有其他的游客闯入背景画面,或者坐在沙滩上看海,或者跳进海浪里面扑腾,那么你就用delogo这个参数,加到这个偷脸的游客身上,然后ffmpeg就会自动的插值运算,把delogo范围外地画面,就是干净的金色的沙滩的典型的纹理给贴补扩展到偷脸游客的身上,用旁边的画面来贴补中间的区域,还原蓝天大海的纯净的背景。

因此某些场合也可以用delogo来打码,但是,我们电视里面常见的井茶抓捕犯罪嫌疑人的画面,他会只给井茶和犯罪嫌疑人的面部打码,如果也用delogo给警察和犯罪嫌疑人的面部打码,那就会把这些人的脑袋给抹除了,直接看到背景画面,就变成了好多无头人的惊悚恐怖片的效果了。

当然,这里给出delogo的官方参考手册见文末的参考文献。最后我选择的是下面的打码方式

overlay

overlay的原理是在要打马赛克的地方上面叠加渲染一层,图片,图片随便绘制一些纹理打乱线条、颜色并设置为半透明,就相当于给下面一层的原始视频打了马赛克,有多个地方要打马赛克也不麻烦,无非是直接做一张全画幅的图片,要打几处马赛克就在几处地方画上半透明的纹理图像,其余地方都设为纯透明,并且overlay参数比较简单,最终,我上面视频所用的命令是:

ffmpeg -i "南海机器人01打码前.mp4" -i mytouma.png -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2" 南海机器人01打码后.mp4

上面既然原理讲明白了,那么这个命令的参数我就不细讲了,这里给出overlay的官方参考手册见文末的参考文献。

上述命令中的mytouma.png就是打码所用的马赛克图片:

这个文件如何制作呢?

ONLYOFFICE制作打码图片

我用了很久的微软Office以后,发现就像游戏打通关一样,周围没有比我更精通微软Office的人了,孤独是多么的寂寞,于是,果断转换到开源的ONLYOFFICE了,在Office类软件的武林中,OO和MO才是真正的巅峰双煞!ONLYOFFICE最近新出了协作空间,于是赶紧申请了一个试试,在协作空间里面创建了一个叫做ADS-B的房间,在这个房间里面来开展工作,未经授权的任何其他人都是无法访问这里的,既能确保内容安全,又能让房间成员协作办公。简言之,ONLYOFFICE协作空间是一个协同工作平台,帮助您更好地与客户、业务合作伙伴、承包商及第三方进行文档协作。在此平台内,您可以创建自定义房间,设置灵活访问权限。支持设置以下级别的访问权限:

  • 仅查看

  • 可评论

  • 可审阅

  • 可填写表单

  • 可编辑

  • 高级用户

  • 房间管理员

更多介绍,我把文末放到介绍文章里面了欢迎调查研究,下载使用。

先在里面创建一个用来画马赛克的演示文稿,然后把自己手撸的视频截取一张原图,用来对照绘制马赛克的原图,上传到协作空间里

然后就可以在演示文稿里面插入图片,选择第三项,图片来自存储,

找到刚刚上传到虚拟办公室里面的图片,就可以插入了。

插入的图片,是默认缩放到幻灯片画幅的大小,对于1920*1080分辨率的视频,默认的ppt演示文稿A4纸的幅面大小,就是如上图所示是宽度33.87厘米高度19.05厘米,但不能以此来绘制上层蒙盖的马赛克图层,这里要点击实际大小按钮,还原到视频截图的原始视频画面大小:

宽度50.80高度28.57厘米。绘制马赛克图层,大部分区域是透明的,只需要给需要打码的部位绘制放置马赛克,但是不能真的不绘制透明画幅,需要绘制透明框来定义马赛克图层的大小尺寸,因此插入一个矩形框:

然后鼠标拖动矩形框的左下角靠近演示文稿的画面的左下角,接近边缘的时候,自动贴附上左下角,非常自动方便

然后拖动矩形框右上角贴合到演示文稿的右上角:

这个矩形就是精确的视频画面的大小尺寸了,它是要设为透明的,非常简单:

选择它,在属性里面选择没有填充,就是纯透明的,主意下面的矩形框线形也要选择没有线条:

这样,这个矩形就彻底隐身了,虽然它还存在。

然后就可以开始添加马赛克了,方法很简单,就是参考我之前的ONLYOFFICE打马赛克的图文来做就可以了,在插入图形里面选择圆角矩形:

然后把这个圆角矩形拖动到要打码的地方,拖动四角调整尺寸,覆盖住要打码的部位,然后再图片属性中,选择用图片或纹理来填充,然后从纹理选择下拉框任选一款,比如我选择了下图中的纹理,然后在不透明度位置调节滑块,比如我调节为80%,边框线选择没有线,基本上就是比较好的马赛克遮盖效果了:

同样操作,可以添加多个马赛克遮挡视频画面的多个部位:

都调节满意后,就像上一期马赛克教程一样,来一个釜底抽薪!选择所有的马赛克和那个看不见的透明矩形,把它们安排到最下面去:

露出原图后删掉原图!

原图去无踪,马赛克更出众!

然后把马赛克图层所有零件组合到一起:

然后就可以选中这个最终的这个对象,选择另存为图片:

就可以生成上面ffmpeg打码所用的mytouma.png马赛克图片文件了。

协作空间云SAS服务与本地部署

马赛克图片下载到本地电脑上用ffmpeg进行处理。在协作空间的虚拟办公室里面的这些文件,虚拟办公室之外的人是无法访问的,即使是虚拟办公室内的人,也可以灵活设置权限让他不能修改只能查看:

如上图所示,目前,自托管 ONLYOFFICE 协作空间提供三种不同的资费方案:家用版、企业版和免费社区版(适合经验丰富的用户,需自行安装、配置和维护)。

企业版

此方案适合所有商业需求。提供可扩展性和专业支持,价格根据同时连接的数量来决定。您能得到:

  • 房间数量不限

  • 文本文档、电子表格、演示文稿和表单的在线编辑器

  • PDF阅读器和转换器

  • 移动网页编辑器

  • 桌面和移动应用程序

  • 增强的安全功能

  • 1年更新

  • 1年专业支持

免费试用

免费试用

家用版

此方案适合家庭使用,进行非商业的文档共享与协作。与企业版不同,它的价格是根据付费类型的用户数量来决定的。您能得到:

  • 管理员/高级用户数量:5

  • 房间数量不限

  • 文本文档、电子表格、演示文稿和表单的在线编辑器

  • PDF阅读器和转换器

  • 移动网页编辑器

  • 桌面和移动应用程序

  • 增强的安全功能

  • 单服务器部署

  • 终身许可

  • 1年更新

立即购买

立即购买

社区版

ONLYOFFICE协作空间-社区版完全免费,可以在自己的网络上使用协作空间的所有功能,最多可有 20 个同时连接。您能得到:

  • 免费的开源解决方案

  • 房间数量不限

  • 文本文档、电子表格、演示文稿和表单的在线编辑器

  • PDF阅读器和转换器

  • 桌面和移动应用程序

  • 增强的安全功能

  • 通过 GitHub 和论坛获得支持

  • 定期更新

立即下载

立即下载

动态打码

视频不是图片,视频是运动变化的,正如我这最终视频,只有视频前多少秒需要打马赛克,之后的都不需要打马赛克,或者别的要打码的视频里面打码的部位随时在移动,那怎么处理?其实很简单,先把视频按照时间分割成多个小视频,需要打马赛克和不需要的,打码后再合并起来就好了。

视频分割和合并也是使用ffmpeg来处理,不涉及转码,不需要重新编译,就仅仅是分割和合并,那么ffmpeg的处理速度就会非常快。

ffmpeg.exe -i Recorded.mp4 -ss 00:00:07 -to 01:38:25 -c copy Clipped.mp4

这是切割视频的命令,ss或to省略的时候默认是头尾。

对于这里的由一个大视频分割成多个小视频处理完后再合并,这个合并的操作时可以免去重新编译的,速度非常快,命令参数是concat和copy:

ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg

或者可以更简化:

ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

参考文献

boxblur的官方用法参考

delogo的官方用法参考

overlay的官方用法参考

相关阅读

你还在用U盘和聊天工具来处理文档吗?ONLYOFFICE的协作空间来解决你的痛点了!icon-default.png?t=N6B9https://blog.csdn.net/VincentYoung/article/details/131103779

ONLYOFFICE协作空间是什么?icon-default.png?t=N6B9https://blog.csdn.net/zyy26/article/details/130364276?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%8D%8F%E4%BD%9C%E7%A9%BA%E9%97%B4&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-130364276.142^v92^control

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/22497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用爬虫代理IP速度慢是什么原因?

你们有没有遇到过使用爬虫代理IP速度慢的问题呢?相信很多使用爬虫抓取的人都曾经陷入过这个烦恼,今天我们就来聊聊这个话题。 首先,我们得明白为什么爬虫代理IP速度会变得慢。其实,原因有很多,比如代理服务器过多的连接…

glut实现雪花动态效果

glut实现雪花动态效果 实验题目总体思路3.2主要函数说明按键操作实验结果 实验题目 1.绘制雪花 2.在屏幕的多个随机位置绘制雪花 3.使每朵雪花绕自己的中心旋转 4.使每朵雪花下降 5.翻页键控制相机视野,按UP键增加物体与观察者的距离,按DOWN键缩短。 …

Centos更换网卡名称为eth0

Centos更换网卡名称为eth0 已安装好系统后需要修改网卡名称为eth0 编辑配置文件将ens33信息替换为eth0,可在vim命令模式输入%s/ens33/eth0/g替换相关内容 修改内核文件,添加内容:net.ifnames=0 biosdevname=0 [root@nova3 ~]# vim /etc/default/grub 使用命令重新生成g…

LabVIEW使用DSA技术从X射线图像测量肺气容量

LabVIEW使用DSA技术从X射线图像测量肺气容量 相衬X射线(PCX)成像技术利用相邻介质之间折射率的微小差异来增强传统X射线成像通常不可见的物体的边界。事实证明,这一进展在一系列生物医学和材料科学中非常有益于材料表征、疾病检测以及解剖形…

Layui实现OA会议系统之会议管理模块总合

目录 一、项目背景 二、项目概述 1. 概述 2. 环境搭建 3. 工具类引用 4. 功能设计 4.1 会议发布 4.2 我的会议 4.3 会议审批 4.4 会议通知 4.5 待开会议 4.6 历史会议 4.7 所有会议 5. 性能优点 5.1 兼容性好 5.2 可维护性和可扩展性 5.3 轻量灵活 5.4 模块化设计…

QT - 建立页面

一、生成页面 二、实现 1.LineEdit 是一个单行输入文本框,为用户提供了比较多的编辑功能,例如选择复制、粘贴。 修改echomode属性为password Push Button(常规按钮) 三、程序 声明全局变量,属于MainWindow private: // 定义了一个指向Ma…

MySQL做分布式锁

分布式锁mysql实现方式 方式1:唯一索引 创建锁表,内部存在字段表示资源名及资源描述,同一资源名使用数据库唯一性限制。多个进程同时往数据库锁表中写入对某个资源的占有记录,当某个进程成功写入时则表示其获取锁成功其他进程由于…

配置root账户ssh免密登录并使用docker-machine构建docker服务

简介 Docker Machine是一种可以在多种平台上快速安装和维护docker运行环境,并支持多种平台,让用户可以在很短时间内在本地或云环境中搭建一套docker主机集群的工具。 使用docker-machine命令,可以启动、审查、停止、重启托管的docker 也可以…

vue使用拖拽功能实现仓库存放货物的需求

效果&#xff1a; 代码 <template><div><div class"bigTitle">xxxxxxxxxxxxxx仓库拖拽系统</div><div class"container2 flex-j-space-between"><div class"product-list"><div class"leftTree h…

【Spring框架】Spring AOP

目录 什么是AOP&#xff1f;AOP组成Spring AOP 实现步骤Spring AOP实现原理JDK Proxy VS CGLIB 什么是AOP&#xff1f; AOP&#xff08;Aspect Oriented Programming&#xff09;&#xff1a;⾯向切⾯编程&#xff0c;它是⼀种思想&#xff0c;它是对某⼀类事情的集中处理。⽐如…

【Jenkins】Jenkins 安装

Jenkins 安装 文章目录 Jenkins 安装一、安装JDK二、安装jenkins三、访问 Jenkins 初始化页面 Jenkins官网地址&#xff1a;https://www.jenkins.io/zh/download/ JDK下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/ 清华源下载RPM包地址&#xff…

【Excel】记录Match和Index函数的用法

最近一直用到的两个处理EXCEL表格数据的函数向大家介绍一下&#xff0c;写这篇博文的目的也是为了记录免得自己忘记了&#xff0c;嘻嘻。 先上百度的链接 Match函数的用法介绍&#xff1a;https://jingyan.baidu.com/article/2fb0ba40b4933941f3ec5f71.html 小结&#xff1a;…

架构训练营学习笔记:5-1 计算架构模式之多级缓存架构

序 本节主要是计算架构。 多级缓存架构 缓存与缓冲&#xff1a;通常场景是读缓存&#xff0c;写缓冲。 缓存技术的本质&#xff1a;空间换时间&#xff0c;因此缓存架构属于高性能计算 架构。 缓存设计框架 主要考虑存什么&#xff1f;存多久&#xff1f;存哪里&#xff1f;如…

2023华数杯数学建模竞赛C题思路解析

如下为&#xff1a;2023华数杯数学建模竞赛C题 母亲身心健康对婴儿成长的影响 的思路解析 C题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c;还为婴儿提供情感支持和安全感。母亲心理健康状态的不…

【LNMP】LNMP

LNMP&#xff1a;是目前成熟的企业网站的应用模式之一&#xff0c;指的是一套协同工作的系统和相关软件&#xff1b;能够提供静态页面服务&#xff0c;也可以提供动态web服务 L Linux系统&#xff0c;操作系统N Nginx网站服务&#xff0c;前端&#xff0c;提供前端的静态…

神策新一代分析引擎架构演进

近日&#xff0c;神策数据已经推出全新的神策分析 2.5 版本&#xff0c;该版本支持分析模型与外部数据的融合性接入&#xff0c;构建全域数据融合模型&#xff0c;实现从用户到经营的全链路、全场景分析。新版本的神策分析能够为企业提供更全面、更有效的市场信息和经营策略&am…

Springboot部署ELK实战

Springboot部署ELK实战 1、部署docker、docker-compose环境安装docker安装docker-compose 2、搭建elk1、构建目录&&配置文件1、docker-compose.yml 文档2、Kibana.yml3、log-config.conf 2、添加es分词器插件3、启动 3、Springboot项目引入es、logStash配置1、引入依赖…

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

Django实现音乐网站 ⑷

使用Python Django框架制作一个音乐网站&#xff0c;在系列文章3的基础上继续开发&#xff0c; 本篇主要是后台歌曲类型表、歌单表模块功能开发。 目录 表结构设计 歌曲类型表结构 歌单表结构 创建表模型 创建表 后台注册表模型 引入表模型 后台自定义 总结 表结构设计…

SpringBoot使用JKS或PKCS12证书实现https

SpringBoot使用JKS或PKCS12证书实现https 生成JKS类型的证书 可以利用jdk自带的keytool工具来生成证书文件&#xff0c; 默认生成的是JKS证书 cmd命令如下: 执行如下命令&#xff0c;并按提示填写证书内容&#xff0c;最后会生成server.keystore文件 keytool -genkey tomcat…