- 博客(25)
- 收藏
- 关注
原创 浅谈WebSocket-FLV
websocket前端在收到flv封装的视频数据后,可以直接使用第三方js进行播放,也可以自行解封flv,得到视频帧数据,通过wasm进行解码播放。在WebSocket的url请求中,包含了需要请求设备的视频相关信息,在视频数据到达时,按照flv封装后,通过websocket推送到前端。基于进一步的扩展,可以在websocket中增加私有的上下行指令,以完成暂停、快进、单步等控制指令,以实现本地化播放器效果。FLV是一种视频数据封装格式,这种封装被标准通信协议HTTP-FLV和RTMP协议应用。
2025-03-27 16:06:33
188
1
原创 SDP(Session Description Protocol,会话描述协议)
SDP通过简洁的文本格式描述了会话的各种参数,使得会话参与者能够根据这些信息正确配置和参与会话。在现代多媒体通信系统中,SDP与SIP、RTSP等协议的结合使用,为实现高效的多媒体通信提供了坚实的基础。
2025-03-27 11:23:52
782
原创 基于代理(http\https\socks)的网络访问逻辑重定义
主要用于处理基于HTTP/HTTPS协议的数据传输,支持网页浏览等应用。它不仅能够加速数据加载速度,还能提高安全性(特别是在使用HTTPS时)。通过代理服务器,可以对DNS查询结果进行自定义,改变客户端原本预期的目标地址。例如,当用户尝试访问`example.com`时,代理服务器可以根据预设规则将其解析为不同的IP地址,从而让客户端实际连接到另一个服务器上。
2025-03-26 11:15:21
987
原创 两个整数变量交换数值
第三行: a变更为当前a异或当前b,当前a为原始a和原始b的异或值,当前b为原始a,所以最终也就是原始a异或原始b,再异或原始a,得到结果是原始b。第二行: b变更为当前a异或原始b,也就是原始a异或原始b,再异或原始b,得到结果是原始a。第一行: a变更为原始a和原始b的异或值。
2025-03-26 10:53:51
109
原创 历史上未公开或失传的重大发明事件
社会反思:部分案例揭示科学成果与商业利益、个人偏执间的冲突,例如奥格尔化油器因威胁石油产业遭扼杀,而沃德因过度保密使人类错失航天材料突破。失传原因:实验室突遭破坏,所有设备和研究资料被销毁,里夫本人离奇死亡(疑似药物与酒精过量),技术彻底失传。失传关键点:发明者死亡(斯洛特、里夫)、资本打压(奥格尔)、保密偏执(沃德)是技术湮灭的主因。资本干预:因威胁石油巨头利益,奥格尔遭威胁与诉讼,最终拒绝合作并销毁原型,技术未商业化。技术颠覆性:这些发明均突破当时技术认知,可能引发行业革命。
2025-03-25 11:21:49
300
原创 宇宙(从宏观到微观)
**玻色子**:传递基本力的粒子,比如光子(电磁力)、胶子(强核力)等。- 如地球这样的岩石行星、木星这样的气态巨行星,以及其他如矮行星、卫星等。- **质子** 和 **中子**:位于原子核内,由夸克组成。- **夸克**:构成质子和中子的基本粒子。- **电子**:围绕原子核旋转。- **轻子**:如电子和中微子。8. **量子场与弦理论预测的更基础实体**1. **星系团和超星系团**4. **行星及其它天体**5. **分子和晶体**7. **亚原子粒子**3. **恒星系统**
2025-03-24 17:43:44
221
原创 使用UDP消息与iptables实现TCP端口敲门安全技术
通过结合UDP消息与iptables,我们可以构建一个简单但有效的端口敲门系统,增强服务器的安全性。首先,我们需要编写一个脚本来监听特定的UDP端口,并在接收到正确的敲门序列后修改iptables规则。服务端在接收到敲门消息后,可以开启端口一定的时长,在时长到达后,将取消接受白名单,所以客户端需要保持周期性推送。2. **配置iptables**:需要对iptables有一定的了解,包括如何添加规则、删除规则等基本操作。3. **选择一个未使用的UDP端口**:用于接收敲门序列中的UDP消息。
2025-03-24 16:31:30
771
原创 CA证书有效时长限制
SSL(Secure Sockets Layer)和其继任者TLS(Transport Layer Security)是用于在网络上提供安全通信的协议。它们通过加密数据传输来保护用户的敏感信息(如登录凭据、信用卡号码等)。为了实现这一点,服务器需要使用由受信任的CA签发的数字证书。这个证书包含了服务器的公钥以及一些其他信息(如域名、组织名称等),并通过CA的私钥进行签名,以证明其真实性。
2025-02-19 11:51:19
787
原创 CA证书的验证流程
浏览器内置了受信任的根证书列表(DigiCert、GlobalSign、Entrust),证书链最终能追述到根证书的才会被信任,也就是说只有由这些根证书颁发或间接颁发的证书才会被信任。签名是上级证书使用私钥对证书信息按照固定组合和算法生成的签名进行的加密,验证时需要通过公钥对签名解密,而后对信息进行签名,比对解密的签名,一致后通过签名的验证。获取上级证书,需要通过证书内的权威信息扩展内的CA Issuers的URL地址信息进行获取,而后重复递归,直到获取到根证书颁发机构。浏览器从服务器获取数字证书。
2025-02-19 11:14:18
440
原创 浅谈RTMP(Real Time Messaging Protocol)
RTMP和HTTP-FLV比较接近,也是单帧数据封装并进行推送的流程,但RTMP除了能拉流,同步也支持推流,对于一个完整的直播流程,能覆盖它的视频流上传到服务器,同时分发给用户端播放的两个流程。当然,推和拉可以采用不一样的方式。使用x11或0x14中的publish指令,创建了推流消息,通过其中的app信息,进行目标视频的关联勾记,达到了推送视频数据和真实目标的匹配。使用x11或0x14中的play指令,创建了拉流消息,通过其中的app信息,进行了目标视频的关联勾记,达到了请求视频数据和真实目标的匹配。
2025-01-15 18:15:20
472
原创 时间是什么
当我们暂停A电影或B电影时,人物A和B都是无感知的,而当我们把A电影中的人物A抓取出来放置到B电影中,它在B电影度过10小时,当前现实中0.1小时,再回到A电影中发现只过了1个小时。回到播放电影,在A电影、B电影以及当前空间的三者之间,存在三条时间轴,而A电影和B电影所在的时间轴,都是当前时间轴的一个子轴,就算子轴停止播放,当前世界的时间轴还在流动,所以静止只会发生在AB电影内,从当前世界看,从来没有静止。B电影包含的信息是A电影的十倍,同时A电影播放速度是十倍播放,B电影是百倍速率播放。
2025-01-14 16:42:46
578
原创 浅谈HTTP-FLV(HTTP-Flash Video)
接收端度chunked的数据,先按照http协议解析出chunked的数据,而后再解析flv封装的数据,最后得到裸的视音频编码数据,通过解码器进行解码后得到图片,并按照时间戳进行播放。但是HTTP-FLV只有一个Play的指令,而采用更复杂的协议,可以达成对音视频的控制(暂停、跳转等),后续将介绍RTMP协议,同样采用FLV封装,但是在外部协议上增加了更多的控制。注意上面的Transfer-Encoding这个属性,这是一个HTTP的属性,代表后续返回的视音频数据,是分块传输的还是连续传输的。
2025-01-14 13:00:24
337
原创 移动网络设备的运维方案
对于被运维设备的HTTP访问,可以直接通过外部运维设备进行代理,无需移植SDK到被运维设备上,如果被运维设备提供ssh、telnet等外部访问控制,也可通过外部运维设备进行反向代理连接,达到运维的效果。在拥有外部运维设备的情况下,能够对运维环境内多个被运维设备同时进行维护,在被运维设备具有标准的网络接口、串口等通信的方式下,使用远程配置,即可完成对本地被运维设备的配置,最终达到有效运维的目的。2. 提供外部运维设备,接入运维环境,采集和控制运维环境内的被运维设备。
2025-01-13 17:23:34
347
原创 Java之ClassLoader
原因在于虚拟机启动时,至少有如下二个类加载器,一个加载了所有java基本类,这是基类加载器,而另一个则是加载了应用类,可以称为下级类加载器,也是默认类加载器,下级类加载器中的类不允许和基类加载器冲突。Java允许额外定义类加载器,可以再定义一个类加载器,只要这个类加载器内的类不和基类加载器冲突即可,可以和默认类加载器加载同包同名的类,当然,也可以定义更多的类加载器。但对于java自身的类,不允许出现同包同名的。基于上述说明,用户自定义的类,如果存在同名同包的,可以通过两个不同的L2级别的类加载器加载即可。
2025-01-11 23:23:42
264
原创 浅谈视频数据流
视频是一个数据流,就像我们最初对这个世界的理解,像一团混沌,但是世界往下细分,会看到物种、细胞、分子、元素、质子、电子以及光子。视频这个数据流,如同世界一样,也是可以往下细分的,视频就是一帧一帧的图片,再结合运动压缩算法以及封装方法得到的序列化数据。视频内三要素:封装(MP4、PES、TS、FLV等等)、编码(H264、H265、VP8、VP9)、图片(YUV图、RGB图、ARGB图)
2025-01-08 12:47:13
799
原创 浅谈HLS(HTTP Live Streaming)
备注2: 上面是直播的情况,数据是先到服务端的,还有一种的是m3u8请求到达时,才去设备端进行视频数据获取的,那么此时可以在服务端阻塞下m3u8请求一定的时长,等到数据设备视频数据返回并至少生成一个TS数据包时,才返回首个playlist,避免返回空的playlist,导致不正常的播放行为。当请求方再次来请求时,获得之前已发送到的序号,从已发送的序号开始,把后续所有已生成的TS片段都打进playlist中进行返回,求方后续会调用palylist中的ts数据地址,来获取TS数据进行播放。
2025-01-08 09:58:49
1955
原创 进出口数据缓存管理(管道服务)
作为网络数据的中转服务,很多时候会碰到生产数据量大于消费数据量的情况,最明显的就是消费方网络带宽不足的情况下。对于这种情况的处理,通常会采用一路阻塞的模式,阻塞数据到发送端。但有时生产方的数据,消费者并不是一个,而是有多个消费者,例如直播。不能因为一个消费者的消费慢,进而影响所有消费者的数据消费。看到这里,很多人应该会想到使用kafka之类的中间件,来解决这个问题,也的确可以解决。本文将阐述思路以更特定的方案解决该问题。
2025-01-07 15:16:43
1412
原创 线程池构建思路
包括UI人机交互操作,所有的代码都运行在线程环境内,系统启动的代码运行在主线程中。撇开主线程,某种意义上来说,可以让所有的代码进行业务封装,让它们作为独立的任务或者函数,让线程去完成。线程可以理解为工作的人,而任务或函数就是待完成的工作。线程池则是整装待发的工作人员集合。
2025-01-07 13:19:21
1729
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人