自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(244)
  • 收藏
  • 关注

原创 Js使用ffmpeg在视频中合成音频背景音乐

使用场景是需要在web端对视频的背景音乐进行混音合成。以下所有的使用案例均基于vue3 setup。同时由于@ffmpeg版本不同会导致使用的api不同,使用案例前需要注意。如果使用的是0.12+需要使用新的api,详情请看。

2024-01-08 10:49:58 1209

原创 浏览器加粗字体显示异常

这是由于设置普通的字体样式时需要同时设置粗体和细体的字体样式,如果没有浏览器会使用算法进行合成对应的字体,结果就会不相同。的字体会在浏览器页面中会显示模糊虚化的现象,而正常的字体没有这种情况,显示的情况根据不同的浏览器会有区别。等其他改变粗细的样式中指定对应的粗体或细体的。如果在css中设置了普通的字体样式。

2023-12-25 16:01:01 572

原创 Express中使用Swagger

Swagger 是一种规范,用于描述 API 的结构,功能和参数。使用 Swagger 可以提供清晰的可视化 API 文档,可用于 API 交互的文档驱动开发,以及 API 的自动化测试和集成。将左侧显示的内容复制到 Express 的路由文件中,并调整格式如上文所示注释格式即可。即可访问所有使用 Swagger 规范的 API 接口。可以导出 OpenAI 规范的接口文件,然后访问。等支持导出 OpenAI 规范文件的接口工具,跳转 Express 下的。如果编写接口时使用的是。

2023-12-11 11:00:25 549

原创 vue3 canvas验证码和滑块拼图验证

在一些资源下载、读取等场景添加人机认证可以防止一些简单的网络攻击。仅介绍两种原生实现。

2023-10-24 16:26:46 668 3

原创 Js使用ffmpeg在视频中添加png或gif

使用场景是需要在web端对视频进行编辑 添加图片和gif。以下所有的使用案例均基于vue3 setup。同时由于@ffmpeg版本不同会导致使用的api不同,使用案例前需要注意。如果使用的是0.12+需要使用新的api,详情请看。

2023-10-20 18:00:25 1460 6

原创 window 端口命令

netstat是一个常用的命令行工具,用于显示计算机网络连接和网络统计信息。它可以显示本地计算机TCP和UDP端口的连接情况,包括本地IP地址、远程IP地址、状态、端口号等信息。netstat -a此命令会过滤出所有处于监听状态的端口,包括TCP和UDP协议。

2023-09-29 14:58:37 149

原创 Js使用ffmpeg进行视频剪辑和画面截取

ffmpeg使用场景是需要在web端进行视频的裁剪,包括使用 在线视频url 或 本地视频文件 的裁剪,以及对视频内容的截图输出图片组合等功能。前端进行视频操作可能会导致性能下降,最好使用java,c++等或通过后端进行处理,本文的案例是备选方案。注意:以下所有的使用案例均基于vue3 setup。同时由于@ffmpeg版本不同会导致使用的api不同,使用案例前需要注意@ffmpeg版本问题。如果使用的是0.12+需要使用新的api,详情请看 文档npmnpm install @ffmp

2023-09-20 14:44:58 2493

原创 原生Js 提取视频中的音频

将视频中的音频轨道分离出来,生成wav文件播放或下载(Vue3 setup。

2023-09-11 11:39:10 635

原创 原生Js Canvas去除视频绿幕背景

这里的去除视频背景并不是对视频文件进行操作去除背景如果需要对视频扣除背景并导出可以使用ffmpeg等库,这里仅作播放用所以采用这种方法由于uniapp中的canvas经过封装,且 uniapp 的drawImage无法绘制视频帧画面,因此uniapp中不适用实现过程是将视频使用canvas逐帧截下来对截取的图片进行处理,然后在canvas中显示处理好的图片最后通过定时器高速处理替换,形成视频播放的效果,效果如下图⬇边缘仍然会有些绿幕的像素,可以通过其他的处理进行优化。

2023-09-07 13:54:17 1819

原创 uniapp 微信小程序webview 踩坑

微信小程序的存在许多功能上的限制和约束,有些情况不得不去使用webview进行开发实现需求,比如原生无法满足(例如某团队维护SDK 只提供了WEB端jsSDK,且不维护小程序SDK)H5可以同时适用多端(适用范围更广)H5可以弥补小程序部分欠缺微信生态有部分限制(包大小,设计规范等)由于最近做的需求小程序不支持播放带有透明通道的视频,所以转到了webview这里总结下完整的开发流程和现有的各种解决方案: 开发阶段需要将不校验合法域名勾选上。

2023-08-31 14:36:56 4104

原创 Java的正则

一个正则表达式,就是用某种模式去匹配字符串的一个公式正则表达式不是只有java才有,实际上很多编程语言都支持正则表达式进行字符串操作。

2023-08-28 14:27:43 539

原创 Java的JDBC

JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题。引入mysql-connector-java.jar。

2023-08-28 14:13:27 171

原创 uniapp scrollview 滚动最新位置

效果是模拟发送聊天信息,需要scrollview在收到新消息时滚动到底部最新的位置。如果恰好你需要隐藏scrollview的滚动条,那就可以加上这个代码。/*每个页面公共css */项目是vue2的,代码如下。

2023-08-23 12:00:47 1188

原创 Mysql的多表查询和索引

当两个表查询时,从第一张表中取出一行和第二张表的每一行进行组合返回结果含有两张表的所有列,一共返回的记录数第一张表行数*第二张表的行数(

2023-08-22 14:38:08 740

原创 Mysql的事务

事务用于保证数据的一致性,它由一组相关的dml(数据操作语言 增删改)语句组成该组的dml语句要么全部成功,要么全部失败。

2023-08-22 14:12:34 191

原创 Mysql的视图和管理

视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含列,其数据来自。

2023-08-22 14:11:33 220

原创 Mysql的约束

用于确保数据库的数据满足特定的商业规则。在Mysql中,约束包括:not nullunique、 和check五种.

2023-08-22 13:38:07 223

原创 Mysql函数

Count函数返回满足where条件的行数。

2023-08-22 11:49:20 86

原创 Mysql语句

所谓安装Mysql数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库。一个数据库中可以创建多个表,以保存数据(信息)。DDL:数据定义语句[create表,库…]DML:数据操作语句[增加insert,修改update,删除 delete]DQL:数据查询语句[select ]DCL:数据控制语句[管理数据库: 比如用户权限 grant revoke ]

2023-08-22 11:44:40 743

原创 vue3 点击播放audio

属性,可以看到音频文件时加载完成的,但是没有播放,因此只需要等。标签并不能解决问题,甚至。

2023-08-17 11:11:21 3602 5

原创 Java的反射

反射机制允许程序在执行期借助于取得任何类的内部信息(比如成员变量,构造器,成员方法等等),并能操作对象的属性及方法加载完类之后,在堆中就产生了一个Class类型的对象( 一个类只有一个Class对象),这个对象包含了类的完整结构信息通过这个对象得到类的结构,这个Class对象就像一面镜子,透过这个镜子看到类的结构,所以称之为:反射可以动态的创建和使用对象(也是框架底层核心),使用灵活,没有反射机制,框架技术就失去底层支撑但是使用反射基本是解释执行,对执行速度有影响Method和Field对象都有方法。

2023-08-15 13:56:15 130

原创 Java的网络编程

两台设备之间通过网络实现数据传输,将数据通过网络从一台设备传输到另一台设备两台或多台设备通过一定物理设备连接起来构成了网络用于唯一标识网络中的每台计算机/主机查看ip地址:ipconfig为了方便记忆,解决记ip的困难将ip地址映射成域名——HTTP协议用于标识计算机上某个特定的网络程序,以整数形式,端口范围0~65535[2个字节表示端口 0~2^16-1],其中0~1024已经被占用常见的网络程序端口号ssh: 22ftp: 21smtp: 25http: 80。

2023-08-15 10:20:21 463

原创 Java的IO流

文件,对我们并不陌生,文件是保存数据的地方。文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径按操作数据单位不同分为:字节流(8 bit)(二进制文件例如声音视频word等可以无损操作),字符流(按字符)(文本文件)按流的角色的不同分为:节点流,处理流 / 包装流。

2023-08-14 15:21:23 103

原创 Java的多线程

是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码。进程是指运行中的程序,是程序的一次执行过程,或是正在运行的一个程序。是动态过程:有它自身的产生、存在和消亡的过程线程由进程创建的,是进程的一个实体,一个进程可以拥有多个线程单线程:同一个时刻,只允许执行一个线程多线程:同一个时刻,可以执行多个线程并发:同一个时刻,多个任务交替执行,造成一种“貌似同时”的错觉,简单的说单核cpu实现的多任务就是并发并行:同一个时刻,多个任务同时执行。多核cpu可以实现并行。

2023-08-10 16:24:54 104

原创 Java的泛型

class 类名 <T,R..> {//..表示可以有多个泛型成员普通成员可以使用泛型(属性、方法)使用泛型的数组,不能初始化:因为没有确定类型,就不知道到底要开辟多大的空间。静态方法中不能使用类的泛型,因为静态是与类相关的,因此类的加载时对象还没有创建,因此无法指定静态方法/变量的类型。如果静态方法和静态属性使用了泛型,JVM就无法完成初始化。泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型),如果在创建对象时,没有指定类型,默认为Object。

2023-08-10 16:02:34 112

原创 Java的集合

可以动态保存任意多个对象,使用比较方便提供了一系列方便的操作对象的方法:addremovesetget等,添加/删除新元素简洁了Java 的集合类很多,主要分为两大类Collection和接口有两个重要的子接口ListSet, 他们的实现子类都是单列集合 (单列数据)Map接口的实现子类是双列集合,存放的K-V (双列数据)

2023-08-10 15:47:21 825

原创 Java的注解

all,抑制所有警告boxing,抑制与封装/拆装作业相关的警告cast,抑制与强制转型作业相关的警告dep-ann,抑制与淘汰注释相关的警告deprecation,抑制与淘汰的相关警告fallthrough,抑制与switch陈述式中遗漏break相关的警告finally,抑制与未传回finally区块相关的警告hiding,抑制与隐藏变数的区域变数相关的警告incomplete-switch,抑制与switch陈述式(enum case)中遗漏项目相关的警告。

2023-08-10 11:45:42 74

原创 Java的枚举

1.不需要提供setXxx方法,因为枚举对象值通常为只读.2.对枚举对象/属性使用 final + static共同修饰,实现底层优化.(final 和 static 搭配使用可以不导致类加载,效率更高)3.枚举对象名通常使用全部大写,常量的命名规范.4.枚举对象根据需要,也可以有多个属性//演示字定义枚举实现class Season {//类//描述//定义了四个对象, 固定.

2023-08-10 11:34:38 146

原创 Java面向对象++

1.可以直接访问外部类的所有成员,包含私有的。2.不能添加访问修饰符,因为它的地位就是一个局部变量。局部变量是不能使用修饰符的。但是可以使用。

2023-08-10 10:38:33 69

原创 Java面向对象+

面向对象编程有三大特征:封装、继承和多态。封装()就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作[方法],才能对数据进行操作。super代表父类的引用,用于访问父类的属性、方法、构造器方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础之上的。提高具有哈希结构的容器的效率!两个引用,如果指向的是同一个对象,则哈希值肯定是一样的!两个引用,如果指向的是不同对象,则哈希值是不一样的(当然也可能存在碰撞)

2023-08-08 18:14:04 121

原创 Java的Package

包的本质实际上就是创建不同的文件夹/目录来保存类文件。

2023-08-08 18:06:19 108

原创 Fabric

是一个非常好用的Javascript HTML5 canvas库,封装了canvas原生较为复杂的api,在canvas元素的顶部提供交互式对象模型,用于实现图片的变形旋转拖拉拽等功能。

2023-08-07 17:05:05 689

原创 WFPlayer

可以实现分析音视频生成音频波形图在线demo地址:WFPlayer。

2023-08-07 15:50:46 109

原创 janus的web端开发

通过janus的源码的html文件以及相应的js文件我们可以参考官方的demo,在上文服务端的部署中最后我们可以进行在线使用。

2023-07-27 17:23:14 532 2

原创 janus-Gateway的服务端部署

需求是前后端的webRTC推拉流,但是后端用的是c++,于是使用了这个库做视频流的推送和拉取,记录踩坑过程。如果你也需要自己部署janus的服务端并在前端拉流测试,希望对你有所帮助。服务端的搭建本人并不熟悉,参考的是newchenxf大佬的这篇,由于版本更新,有些报错的地方会在下文指正。

2023-07-27 16:53:54 1903

原创 vue3下的uniapp跨域踩坑

开发移动端H5的时候由于后端接口没有做跨域处理,因此需要做下服务器代理,于是百度搜索了uniapp下h5的跨域配置在manifest下的h5配置proxy但是配置完后,怎么都不生效,一直返回404,开始以为是没重启项目,端口占用等等一系列的问题逐个排查后发现,配置生效了,服务器的确是代理了,但是的地址重写不会生效查看uniapp文档是webpack的写法,因此在vue2的项目中不存在这个问题,vue3中使用的vite需要使用函数写法重写路径,但是json不支持写函数,因此无法重写路径。

2023-07-25 16:33:53 857

原创 ubantu下的前后端部署

通过ssh远程连接服务器,传输文件和执行命令首先更新软件包保证版本最新安装ssh安装完成后默认开启,也可输入命令查看ssh状态如果输入为下图,则开启成功(按q 或ctrl + c返回命令行提示符)ubuntu附带一个名为 UFW 的防火墙配置工具,如果系统启用了防火墙,请确保打开ssh端口ssh开启后可通过APP进行连接,如xshell、xftp,连接后使用用户名密码登录即可进行远程连接使用终端和传输文件。

2023-07-17 13:53:31 191

原创 vueUse拖拽

适用于一些点击后拖拽的场景。

2023-07-07 15:02:08 355

原创 本地上传图片或视频获取预览图

在我们上传图片或视频需要进行预览操作,即获取该图片或视频一帧的画面作为背景显示时。

2023-07-07 14:41:15 1689

原创 图片分辨率太大导致的网页卡顿

由于首页的UI重构发现了一个问题,新版的UI是一个多个功能板块组成的列表,相对于以前不同的是背景替换成了一整张png图片,并且加了许多大图和动态效果。刚开始开发并没有出现问题,当我做到第二个板块时加入了elementplus的轮播图之后,画面开始变卡,滚动也会出现短暂的白屏。当加载分辨率过大的图片时,浏览器需要将图片文件解码并显示在页面上。属性使用,就算其不完全显示,只显示一个屏幕的大小,也会造成卡顿。开始排查,直到把所有css删完,最总找到影响流畅度的是一个。)仍会卡顿,因此排除图片大小问题。

2023-07-07 13:59:13 499

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除