自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 ZLMediaKit 源码分析——[5] ZLToolKit 中EventPoller之延时任务处理

前面两篇文章中已经讲到了EventPoller中的网络事件处理机制和异步任务处理机制,有了前面两篇文章的IO框架和异步任务的基础,今天的延时任务的内容就比较容易理解了,今天我们就一鼓作气,把ZLMediaKit中延时任务的机制和实现细节分析一下,结束掉EventPoller的分析。ZLToolKit 中的 EventPoller 提供了一套高效、灵活的延时任务处理机制。通过有序的任务队列、任务队列交换、异步插入任务等技术手段,保证了程序的高并发性能和实时性。

2025-04-04 23:11:52 922

原创 ZLMediaKit 源码分析——[4] ZLToolKit 中EventPoller之异步任务处理

在前面的文章中,我们详细剖析了 ZLToolKit 里 EventPoller 的网络事件处理机制。当深入研究 EventPoller 时,会发现它不仅负责网络事件的管理,还承担着异步任务处理的重要职责。这和 live555 里的设计类似,在事件循环中除了处理网络事件,也会执行异步任务和延时队列。今天,我们就来深入探讨一下 ZLToolKit 中 EventPoller 的异步任务处理机制。本文深入剖析了 ZLToolKit 中 EventPoller 的异步任务处理机制。

2025-04-02 18:34:26 729

原创 ZLMediaKit 源码分析——[3] ZLToolKit 中EventPoller之网络事件处理

当我在ZLToolKit里看到事件轮询管理类EventPoller的runLoop函数时,脑海中瞬间浮现出多年前live555里的设计——那里同样有一个doEventLoop()函数,在该函数里执行着网络事件的select操作、异步任务以及延时队列。出于好奇,我仔细研读了EventPoller类的代码。发现如今其IO事件驱动模型采用的是多实例epoll模型,不过网络事件、异步任务和延时队列这些概念依旧存在,这样的设计让人倍感熟悉。那么,今天我就来详细剖析一下ZLM里网络事件处理模型的具体运作机制。

2025-04-01 16:06:53 741

原创 一次系统兼容性问题解决过程记录

今天在一个centos7.9 的系统下移植一个之前在yocto 下的http web程序,这个程序在解决字符转换的问题之前用的是 C++ 标准库中的一个模板类codecvt ,之前在yocto 和ubuntu18.04和win10 VS2019下都运行正常,在centos7.9 下出现了问题,经过分析查找,发现是由于centos7.9 默认GCC 版本(4.8.5)过低造成的, 由于这个centos7.9上已经有一些程序和编译环境,如果升级怕对其它的环境产生影响,本文在不改编译环境的基础上(即升级GCC版本

2025-03-24 19:38:07 896

原创 ZLMediaKit 源码分析——[2] 从 ZLToolKit 代码看 CPU 亲和性设计

最近几天,在进行 ZLMediaKit 源码分析过程中,我深入研究底层 zlToolKit 事件框架代码时,发现了设置 CPU 亲和性的代码片段。这一细节让我意识到 CPU 亲和性在高性能编程中的重要性,但它往往可能容易被忽视。因此,我决定先撰写一篇关于 CPU 亲和性的文章,希望能帮助像我一样曾经对这部分内容不太熟悉的开发者深入了解这一设计。在现代多核处理器系统中,每个 CPU 核心都可以独立执行指令。通常,操作系统的调度器会根据一定的算法动态地将进程或线程分配到不同的 CPU 核心上运行。

2025-03-23 07:56:37 816

原创 ZLMediaKit源码分析——[1] 开篇:onceToken源码分析

onceToken类就是ZLToolKit 中的一部分,ZLMediaKit 源码中多处使用了onceToken类,理解它的设计和使用方法,将有助于我们更好地理解 ZLMediaKit 的源码。

2025-03-17 19:08:04 542

原创 WebRTC学习七:WebRTC 中 STUN 协议详解

最近在看zlmediakit源码,发现webrtc部分涉及到STUN和DTLS协议,为了更方便的看懂这部分代码,网上查了下STUN协议和DTLS协议,将STUN协议部分先做个记录,后面结合代码如果有更深入的理解,再来更新其中的内容。

2025-02-25 15:05:19 1260

原创 yocto 下基于SDK的 tcpdump 移植

tcpdump 是一个强大的网络数据包分析工具,可以捕获并显示通过网络接口传输的TCP/IP和其他协议数据包。它通常用于网络故障排查、性能监测以及安全分析等场合。在Yocto项目中,移植tcpdump到目标设备可以大大增强其网络分析能力,帮助开发者和运维人员更好地理解网络通信。

2024-10-30 17:42:13 1151

原创 WebRTC学习六:MediaStream 常用API介绍

WebRTC(Web Real-Time Communication)是一个强大的技术,可以让网页应用程序和网站进行实时音频、视频和数据共享。通过使用 WebRTC,开发者可以实现高质量的音视频通话,构建实时多媒体应用,而无需用户安装任何插件。本文将在前面文章的基础上进一步介绍 WebRTC 中的 MediaStream API,这是一组用于处理音频和视频流的常用方法。我们将深入探讨这些方法的用法,并给出一个简单的示例,帮助大家更好地理解如何在实际应用中运用这些 API。

2024-10-28 22:01:27 891

原创 WebRTC学习五:从视频中提取图片

在前几篇文章中,我们探讨了WebRTC的环境搭建、音视频数据采集、音视频约束以及如何应用视觉滤镜。本篇文章将进一步扩展我们对WebRTC的理解,介绍如何从应用视觉滤镜的实时视频流中提取一张静态图片。我们将使用HTML5的Canvas API来实现这一功能,探索相关的网页端代码和JavaScript实现逻辑。提取视频流中的静态图片在许多应用场景中非常实用,比如视频通话中的截图、实时监控的快照等。本篇文章将介绍如何使用Canvas API从WebRTC的视频流中获取一张图片,并展示其实现方法。

2024-10-19 20:26:04 1166

原创 第七篇 WebRTC学习四:WebRTC常规视觉滤镜

在实现实时媒体传输的过程中,视觉效果对于提升用户体验至关重要。通过常规视觉滤镜,我们可以对视频流进行各种效果处理,比如模糊、灰度、亮度调整等。通过应用滤镜,可以增强视频流的视觉效果,使视频内容更加吸引人,不同的滤镜可以传达不同的情感和氛围。例如,使用灰度滤镜可以营造一种复古的氛围,而模糊滤镜则可以用于隐私保护,深褐色滤镜可以营造一种怀旧的感觉,而高饱和度滤镜则可以增强视频的活力和色彩。

2024-10-08 09:25:33 1001

原创 第六篇 WebRTC学习三:WebRTC音视频约束

在现代实时通信应用中,音视频质量直接影响到用户体验。WebRTC 提供了一套强大的 API,允许开发者精细控制音视频流的参数,从而提升通信质量。在实时通信中,音视频流的质量直接关系到用户体验。高清的视频、清晰的语音以及低延迟的通信是优秀应用的关键。为了实现这些目标,开发者需要对音视频流进行精细控制。本文将进一步探讨音视频约束的背景、含义及其在实际应用中的价值,并给出示例代码。音视频约束在 WebRTC 中扮演着至关重要的角色,它们不仅提升了音视频通信的质量,还优化了带宽使用,增强了应用功能。

2024-10-06 22:46:28 1465

原创 WebRTC学习二:WebRTC音视频数据采集

在前面的博文《WebRTC获取音视频设备》中,我们介绍了如何利用WebRTC技术来获取本地的音视频设备。本文将在此基础上,进一步探讨如何使用WebRTC进行音视频数据的采集,并实时展示在网页中。我们将通过一个简单的HTML页面和对应的JavaScript代码实现这一功能。

2024-10-03 20:25:05 1709

原创 WebRTC 学习一:获取音频和视频设备

在现代 Web 应用开发中,实时通信是一个极其重要的功能。而 WebRTC(Web Real-time Communication)技术正是实现这一目标的最佳选择之一。随着关于 WebRTC 的应用场景越来越广泛,许多开发者开始关注如何在浏览器中实现音频和视频的实时传输。本文是 WebRTC 学习系列的第一篇,我将详细介绍如何获取用户设备上的音频和视频输入设备信息。WebRTC 是一种开放的网络技术,允许 Web 应用进行实时语音通话、视频聊天和数据共享,而无需依赖于中间服务器。

2024-10-02 23:45:12 853

原创 centos下基于ZLMediaKit 的WebRTC 环境搭建

本文详细记录了在 CentOS 7.9 环境下编译和安装 ZLMediaKit 的全过程,涵盖了依赖项的安装、编译步骤以及如何通过修改 hosts 文件在不同机器间实现域名解析。通过这些步骤,我们成功地搭建了一个基于 WebRTC 的流媒体服务环境。希望本文能为需要搭建类似环境的用户提供有价值的参考。如果遇到问题或有改进建议,欢迎提出讨论。你好,我是阿灿,慢慢理解世界,慢慢更新自己,每天进步一点点,成为更好的自己。

2024-09-14 15:25:48 1474

原创 基于SRS 实现RTSP接入与WebRTC播放测试

在安防领域,大多数摄像头是RTSP,SRS本身是不支持RTSP,那么基于SRS有没有什么方案让其支持RTSP接入,并基于SRS中已经实现的WebRTC的功能,使得网页端能够低延迟的播放RTSP流呢,上一篇《基于SRS 的 WebRTC 环境搭建》中已经介绍和演示了SRS可以实现RTMP的接入和WebRtc播放,可以通过ffmpeg 将RTSP流转化成RTMP流,就可以无缝对接了,本文就带着大家实操验证下。

2024-09-12 16:02:20 1639

原创 yocto下mosquitto用户名和密码配置

最近工作感觉经常在多线程切换,今天刚好要测试下盒子上移植mosquitto环境,就发现之前x86下mosquitto用户名和密码方式有点忘记了,现在记录下,供后面回顾。一般mosquitto服务器搭建成功后,可以配置下用户名和密码,增加服务安全性,更安全的做法是使用 TLS/SSL 加密,后面有时间研究下再更新一下,本章主要记录下yocto mosquitto下怎么配置用户名和密码。

2024-09-12 11:58:23 1169

原创 基于SRS的WebRTC环境搭建

在音视频领域,WebRTC 是一个关键的技术,开源srs和zlMediaKit中都含有这一块的代码,对于想要深入学习 WebRTC 的人来说,实际运行 Demo 并分析代码是非常重要的。这种实践可以帮助你更好地理解 WebRTC 的工作原理、解决实际问题并获得自己的见解,废话不说,直接行动。

2024-09-10 17:28:01 1301

原创 yocto环境构建

在一些情况下,如果公司没有能力做底层硬件PCB的封装设计和产品外观,需要用人家的硬件,那么就需要在上面进行二次开发,市面上有不少的硬件公司或团队提供二次开发网关的服务,我的工作中就遇到过这种情况,硬件用别人的,自己在上面开发软件,下面记录整理下在yocto环境盒子上进行c/c++二次开发的大致内容,供后面回顾和参考。例如:以上就是今天要讲的内容,本文主要介绍了需要构建yocto系统环境的场景以及如何构建yocto的环境,方便嵌入式软件工程师在没有硬件的情况下进行开发。

2024-09-08 15:16:06 1503 2

原创 我的第一篇博客

你好世界,我的第一篇博客!

2024-09-06 14:22:21 267

ONVIF设备发现论文

关于ONVIF标准的设备发现论文,对ONVIF设备发现流程比较的详细介绍

2014-05-13

空空如也

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

TA关注的人

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