- 博客(385)
- 资源 (41)
- 问答 (1)
- 收藏
- 关注

原创 一文详解RTMP协议:直播推流拉流核心实现协议
在当今数字化信息飞速传播的时代,音视频内容已成为人们获取信息、娱乐休闲的重要载体。无论是网络直播、在线视频会议,还是视频点播服务,流畅且实时的音视频传输体验至关重要。而在这背后,RTMP(Real Time Messaging Protocol)协议扮演着不可或缺的角色。接下来,让我们一同揭开 RTMP 协议的神秘面纱,探寻它在流媒体世界中发挥的关键作用。
2025-03-18 14:08:48
487

原创 一文解析FFmpeg常用命令:轻松驾驭多媒体内容处理
在当今数字化的世界中,多媒体文件无处不在,而处理这些文件的能力变得至关重要。无论是视频剪辑、音频转换还是流媒体直播,FFmpeg都提供了强大的功能来满足各种需求。本文将带您快速了解FFmpeg的一些最常用的命令,帮助您轻松驾驭多媒体内容处理。
2025-01-07 15:42:02
330

原创 一文详解LibTorch环境搭建:MacOS基于CLion配置LibTorch机器学习开发环境
对于希望在本地环境中进行深度学习开发的开发者来说,配置合适的工具链是至关重要的一步。本文旨在帮助您在 macOS 操作系统上,利用 CLion IDE 和 PyTorch 的 C++依赖库——libtorch,快速搭建起一个高效的开发环境。这里我们将一步步地讲解如何下载必要的库、设置集成开发环境(IDE),以及编写和运行简单的代码示例来验证配置是否成功。
2024-12-27 11:05:37
1433

原创 一文详解MacOS使用VSCode搭建SpringBoot+Gradle开发环境
开发后端Java应用时,大多数开发者使用的是IntelliJ IDEA,但该软件是一个付费软件,所以希望可以使用开源且免费的VSCode来创建和开发后端项目。本文为本人在 Mac 上使用 Visual Studio Code(简称 VSCode)集成开发环境来搭建一个基于 Spring Boot 和 Gradle 的开发环境的记录笔记。无论你是刚刚接触 Spring Boot 的新手还是有经验的开发者,这篇教程都将帮助你顺利开始你的 Spring Boot 之旅。
2024-11-11 14:55:01
1781

原创 一文详解视频参数:FFmpeg -i选项下的视频参数解析
随着多媒体内容在网络上的日益普及,对视频文件的处理需求也变得越来越重要。FFmpeg 是一款强大的跨平台音视频编解码库及工具集,能够帮助开发者实现对音频、视频文件的转码、剪辑、合并等多种功能。本文将重点探讨如何利用 ffmpeg -i xxx.mp4 来获取视频文件的基本信息,并对这些信息进行解析,以便更好地理解和使用视频资源。
2024-10-24 17:08:06
654

原创 一文速成AI模型:基于PyTorch构建你的第一个线性回归模型
随着人工智能技术的迅猛发展,机器学习成为了现代科技领域中最炙手可热的话题之一。然而,对于初学者来说,机器学习似乎总是充满了复杂的理论和难以理解的概念。本文将带你从零开始,使用PyTorch深度学习框架,构建一个最简单的线性回归模型,一步步揭开机器学习的神秘面纱。无需预先的专业背景知识,只需跟随本文的指导,你就能亲手实现一个可以预测数据的机器学习模型!
2024-10-24 16:57:05
1594

原创 一文详解ETC1压缩纹理:OpenGL中ETC1纹理加载与渲染实践
ETC1(Ericsson Texture Compression)是一种有损纹理压缩技术,2005年初由爱立信研究院参与研发,目的是用于减少移动设备和嵌入式系统中纹理存储的内存占用,应用场景见于游戏、VR、AR等需要大量的纹理资源来创建高质量的视觉效果以及复杂的动画效果场景。
2024-08-14 18:23:19
391
1

原创 一文详解ETC1压缩纹理:移动平台纹理加载高性能解决方案
ETC1(Ericsson Texture Compression)是一种有损纹理压缩技术,2005年初由爱立信研究院参与研发,目的是用于减少移动设备和嵌入式系统中纹理存储的内存占用,应用场景见于游戏、VR、AR等需要大量的纹理资源来创建高质量的视觉效果以及复杂的动画效果场景。
2024-08-14 18:20:21
470

原创 一文详解ExternalOES与TEXTURE_2D纹理:两种纹理使用、区别与联系
在使用OpenGL ES进行图形图像开发时,我们常使用GL_TEXTURE_2D纹理类型,它提供了对标准2D图像的处理能力。这种纹理类型适用于大多数场景,可以用于展示静态贴图、渲染2D图形和进行图像处理等操作。另外,有时我们需要从Camera或外部视频源读取数据帧并进行处理。这时,我们会使用GL_TEXTURE_EXTERNAL_OES纹理类型。其专门用于对外部图像或实时视频流进行处理,可以直接从 BufferQueue 中接收的数据渲染纹理多边形,从而提供更高效的视频处理和渲染性能。
2024-07-05 16:36:00
398

原创 运营商名称 是如何显示到 手机通知栏上的?
在我们日常使用手机的过程中,经常会在通知栏或设置菜单中看到特定的运营商名称,例如"中国移动"、"中国联通"或"中国电信"等。那么,这些运营商的名称是如何出现在我们手机上的呢?手机又是如何区分不同运营商的网络呢?当我们漫游到海外时,手机显示的是国外还是国内的运营商名称呢?
2024-04-09 19:10:08
3094

原创 一文详解RTSP协议:流媒体传输控制协议
RTSP由RFC2326规范,是一种实现实时流媒体传输与播放的控制协议,可用于流媒体的点播和直播场景。RTSP主要有两个方面的作用:一是用于协商客户端与服务端之间的实时媒体通道。二是在建立媒体通道后,通过RTSP协议定义的控制方法(Method),实现流媒体的播放、暂停、停止、快进、倒退等控制操作。
2024-02-02 14:33:40
828

原创 一文详解MSRP协议:IM多媒体信息的传输协议
MSRP(Message Session Relay Protocol)消息会话中继协议,由RFC4975规范,是一种基于文本的、面向连接的协议。常用于在IM实时通信会话中传输或交换多媒体数据(文本、图片、音视频文件等)。支持点对点和多点传输,并提供了扩展性,可以适应不同的应用场景和需求。
2024-02-02 10:27:58
929

原创 一文探索OpenGL纹理转换:纹理写入FRAMEBUFFER后的镜像现象
在OpenGL中,将一个 GL_TEXTURE_2D 纹理写入到 GL_FRAMEBUFFER ,然后从GL_FRAMEBUFFER读取为GL_TEXTURE_2D纹理后,发现GL_TEXTURE_2D纹理变为了输入纹理的镜像纹理。本文将探讨这个问题的原因,并提出解决方案
2024-01-02 20:24:09
1210

原创 一文详解ExternalOES与TEXTURE_2D纹理:两种纹理的转化方式
在实际应用中,我们通常将TEXTURE_2D和TEXTURE_EXTERNAL_OES纹理类型分开使用,并且它们互不干扰。实际上,这种情况占据了80%的使用场景。然而,有时候也会遇到一些特殊情况,需要将TEXTURE_EXTERNAL_OES纹理转化为TEXTURE_2D纹理进行视频处理。这里对此情况,一般我们可以通过一些技术手段,如离屏渲染或FrameBuffer帧缓冲区对象,将TEXTURE_EXTERNAL_OES纹理转换为TEXTURE_2D纹理,再进行后续的处理和计算。
2023-12-21 18:50:10
4248

原创 一文学会WebRTC API:掌握实时通信利器
WebRTC(Web Real-Time Communication)是一项开放标准和技术集合,由 W3C 和 IETF 等组织共同推动和维护,旨在通过Web浏览器实现实时通信和媒体流传输。WebRTC于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准,其提供了一组API和协议,使开发者能够在浏览器中构建实时音视频通信、数据传输和协作应用。目前WebRTC已得到包括主流的Web浏览器(如Chrome、Firefox、Safari)和移动设备平台的广泛的
2023-10-17 15:03:25
1570

原创 一文详解常见标准化组织
从事软件研发工作多年,在工作中有时会查阅一些通信相关的国际标准。然而,对于制定这些标准的组织,一直缺乏一个系统的了解。本文将对几个常见的标准化组织进行介绍,其中包括ITU、3GPP、GSMA和CCSA,了解它们的背景、成立目的和主要任务。
2023-07-14 10:26:54
2463

原创 一文详解 Okio 输入输出流
Okio最初是作为OkHttp的一个组件出现,是 OkHttp 实现HTTP协议数据构建、解析中使用到的底层 IO 库。其相比于传统的 java.io 和 java.nio ,其在文件、网络等数据读写操作更加便捷、高效。
2023-07-14 09:53:20
967

原创 一文实现TextureID到Surface:TextureID正确输出到离屏Surface
将一个GL_TEXTURE_2D类型的纹理ID写入到ImageReader生成的Surface中。具体实现是使用 EGL 提供的 eglCreateWindowSurface() 函数,将 EGLSurface 与 Surface 对象关联起来。然后就可以通过 OpenGL ES 将渲染结果绘制到 EGLSurface 中,最终渲染到Surface上。
2023-07-12 15:30:17
1252
1

原创 一文详解Mac搭建Vulkan开发环境
本文为Vukan系列的第二篇文章,上一篇文章对Vulkan进行了简单介绍,并对其与OpenGL的优劣势进行了比较,为应用开发人员在选择图形API方面提供了建议。下边开始本文的主要内容,详细介绍在Mac操作系统中,如何搭建Vulkan开发环境。
2023-06-30 16:42:50
2526
1

原创 OpenGL不够用?为何还要开发Vulkan?
对于许多图形开发者来说,OpenGL是一个非常熟悉和广泛使用的图形API接口。然而,随着计算机图形处理的需求越来越高,OpenGL也逐渐显露出一些不足,例如驱动程序开销较高、多线程支持不足等。为了解决这些问题,并更好地满足现代计算机图形处理的需求,新一代图形API接口Vulkan应运而生。
2023-06-30 13:09:28
2803

原创 一文详解IPv4与IPv6:协议解析与报文对比
前段时间的工作大多与通信协议相关,随着协议相关工作的不断深入,相关数据包的分析占据了不少工作时间。在数据报文分析中,发现大学期间IP协议内容已经重新还给了老师,相关知识完全没有了印象,这篇文章算是一篇复习文,对相关IP协议进行重学习。
2023-06-12 17:34:10
6318
1

原创 一文详解 SCTP 协议:高可靠网络传输的协议基石
SCTP(Stream Control Transmission Protocol)流控制传输协议,由 RFC2960 定义。SCTP的设计目的是提供一种可靠的、面向消息的数据传输服务,以便于支持多点通信以及满足传输的可靠性需求。SCTP 目前广泛应用于VoIP、移动通信和云计算等领域。
2023-05-05 21:26:02
3110

原创 一文详解 DTLS 协议:安全传输的协议基石
DTLS (Datagram Transport Layer Security)数据包安全传输协议,用于在不可靠的数据包传输协议上 (如UDP)提供数据的安全传输,DTLS1.2版本由 RFC6347 定义。DTLS为TLS协议的一个变体,因TLS不能用来保证UDP上传输的数据的安全性,Datagram TLS试图在现存的TLS协议架构上提出扩展,成为TLS的一个支持数据包传输的版本。DTLS常用于保护实时通信 (如VoIP和视频会议) 以及IoT设备通信的信息安全。
2023-03-27 10:31:07
3060

原创 一文读懂字符编码ASCII、Unicode与UTF-8
最近在写一个Http协议栈当涉及CRLF控制字符写入时,发现自己对CRLF与\r\n的关系不太了解,因此决定详细学习一下;查阅资料的同时,又遇到UTF-8与ASCII编码的疑问。
2023-03-13 18:07:45
1008

原创 一文详解 Synology NAS搭建Git Server
业余时间完成一些代码工程,需要一个代码管理工具,由于此类项目大多要求一定的保密性,此时使用类似Github这种必须开源的gitServer就不太适合了,正好手里有一台群辉NAS,用群辉配置一个Git Server来满足这个要求。
2023-02-22 16:44:47
10132
5

原创 一文详解jitpack多渠道maven库发布
JitPack 是一 个构建与发布 Git 存储库的便捷服务,可用于在 GitHub、GitLab 上打包、发布与部署依赖库,便于使用者通过maven依赖的形式引用开发者发布的依赖库。
2023-02-21 22:33:35
956

原创 一文详解Linux Crontab的安装与使用:Python3基于Crontab轻松管理定时任务
在Linux环境中,Crontab是一个调度守护进程,可以按分钟、小时、每月的某天、每月、每周的某天来执行特定任务,这些特定的任务被称为 Cron 作业,基于这个特点,Crontab 经常被用于自动执行系统维护与管理。
2023-01-12 20:50:59
1892

原创 一文详解Paramiko安装与使用:Python3中的SSH远程管理利器
Python的Paramiko依赖库,可以帮助开发者 通过代码的方式 完成 对远程服务器的文件上传 、 文件下载操作 ,也可以 对远程服务器输入操作命令 。
2023-01-10 18:06:57
6209

原创 Android 13(API 33)新特性及适配指南
Android 13(API 33)于 2022年8月15日正式发布(发布时间较往年早了一些),正式版Release源代码也于当日被推送到AOSP Android开源项目。截止到笔者撰写这篇文章时,国内部分应用软件开发厂商已逐步接到手机厂商(华米OV等)的新版本适配要求。当前,对于Android应用开发者来说,Android 13 的软件兼容适配已需提上工作日程。
2022-10-24 15:39:34
13191
7

原创 一文详解 implementation api embed
最近使用 Android Studio 从事项目开发时,发现对 implementation、api、embed 的用法了解的不是很清楚,这里准备一篇文章对其使用场景或者说是使用方式进行一个总结。
2022-08-10 10:57:55
2772
1

原创 一文详解 WebSocket:双向长连接数据传输协议
WebSocket 是一种应用层网据传输协议,可在单个TCP连接上进行全双工数据通信。WebSocket 诞生于2008年6月,2011年底成为国际标准,其最初被应用于HTML5规范中。WebSocket协议相比于Http协议,其最大的特点是`允许服务端主动向客户端推送数据`,`客户端也可以主动向服务端请求数据`。在WebSocket API中,浏览器和服务器只需要`完成一次握手`,两者之间就可以建立持久性的连接,并进行双向数据传输。
2022-05-20 00:13:28
1191
1

原创 一文详解openpyxl和xlrd的安装与使用:Python3 Excel表格处理利器
最近工作中需要统计APP线上终端用户 `手机品牌`、`手机型号`与`对应型号的用户量`,并生成Excel表格汇报项目组。因线上手机品牌、型号数量过于庞大,手动操作过于消耗时间,所以搞了一个 python3 的脚本来生成所需要的表格。
2022-04-01 23:07:17
4859

原创 Android 12(API 31)新特性及适配指南
Android 12(API 31)于2021年10月4日正式发布,正式版源代码也于当日被推送到AOSP Android开源项目。截止到笔者撰写这篇文章时,国内各终端厂商的在售Android设备,已经逐步开启了Android 12正式版本的更新。当前,对于Android应用开发者来说,Android 12 的软件兼容适配已迫在眉睫。
2022-03-19 22:08:09
15940
2

原创 Android 12(API 31)适配指南——SplashScreen
Android 12(API 31)引入了 SplashScreen 相关API,用于开发Android应用的启动页。SplashScreen相关API的引入影响在Andorid 12设备上运行的所有应用。若开发者未进行SplashScreen的适配工作,在应用冷启动和温启动时,可能会呈现两个启动页先后出现的情况(Android SplashScreen启动页 + Android应用自定义开发的启动页或引导页)。
2022-03-16 11:34:56
16872
2

原创 一文学会 使用Kotlin Coroutine协程
关于线程、协程两者的对比,可以简要叙述如下:线程:线程由操作系统调度,线程切换或线程阻塞由操作系统和CPU调度实现;协程:协程运行于操作系统的用户态,其依赖于线程来实现,通过用户态程序控制,尽量`减少或避免因线程阻塞造成的操作系统与CPU开销`。与线程相比不同点在于,`协程挂起时不需要阻塞其运行的线程`。`协成挂起`期间,其对应的`线程可以被分配其他协程任务来执行`,待`该协程任务挂起结束再次开始时,将该协成再次交由某个线程来继续执行`(挂起期间,`类似于将该协程任务添加到了某个任务队列中`)
2022-03-09 18:16:23
7298

原创 一文详解 RTP/RTCP协议:流媒体数据传输的协议基石
RTP协议 运行于传输层UDP协议之上,与RTCP协议协作 常用于流媒体数据传输,例如:直播、远程摄像头流媒体播放、流媒体视频播放、视频会议等应用场景。其规定了在互联网上传递音频和视频的标准数据包格式,最初被设计为一个多播协议,但后来被常被应用在很多单播应用中。
2022-01-17 18:23:39
4403

原创 一文详解 MySQL 安装与使用
最近开始接触服务端开发,先从配置开发环境开始,这一篇文章是对安装配置MySQL的过程、注意点、可用配置信息做一个笔记。
2021-12-24 11:12:59
1135
3

原创 一文详解OpenGLES纹理混合:实现半透明、叠加与滤镜效果
在OpenGL中绘制的时候,有时候想使新画的颜色和已经有的颜色按照一定的方式进行混合。例如:想使物体拥有半透明的效果,或者绘制叠加光亮的效果,这时候就需要用到OpenGLES混合。如上图所示,为石头墙、绿色矩形、蓝色云彩 三个矩形混合后的展示效果。三个矩形(Z轴深度由深到浅)分别为,石头墙、绿色矩形、蓝色云彩。一、混合API在OpenGLES中若使用混合,需要用到API函数方法(Java):void glBlendFunc( int srcfactor, int destfactor );(1)
2021-11-30 15:51:17
1789

原创 一文详解Shading Language:从零开始编写高效着色器
从OpenGL ES2.0开始,OpenGL ES由固定渲染管线更改为可编程渲染管线。因此开发人员若使用OpenGL ES2.0版本及以上API进行图形渲染,必须使用着色语言(OpenGL ES Shading Language)编写顶点着色器与片元着色器的代码。与OpenGL ES1.x固定渲染管线相比:顶点着色器 取代了固定渲染管线中的 变换和光照;片元着色器 取代了固定渲染管线中的纹理环境和颜色求和、 雾 以及 Alpha测试。OpenGL ES 着色语言(OpenGL ES Shadin
2021-11-29 17:29:10
460

原创 一文详解 OpenGLES 3.x 渲染管线:解析OpenGL的渲染流程
OpenGL ES 构建的三维空间,其中的三维实体由许多的三角形拼接构成。如下图左侧所示的三维实体圆锥,其由许多三角形按照一定规律拼接构成。而组成圆锥的每一个三角形,其任意一个顶点由三维空间中 x、y、z 三个坐标分量来定义。对于我们日常使用的移动手持设备,手机屏幕窗口由不连续的有限的二维像素小格子构成的,每一个像素格子有x、y两个分量来定义。因此在OpenGL ES绘制流程中,其主要工作是将三维空间中的坐标点(x,y,z)构成的三维图形,转化为手机屏幕上的二维像素点。这个转化过程主要分为两个步骤:
2021-11-22 10:55:30
1726
百度地图附近商铺信息
2014-05-20
SIMalliance_OpenMobileAPI2_02.rar
2021-07-30
Xml本地格式化工具(Java代码显示,图形操作)
2014-08-10
Android_surfaceView与layout屏幕适配总结
2014-10-27
ES_001_Triangle
2015-11-14
capture.pcap
2020-06-12
shader中uniform变量的if或for会降低帧率
2014-10-27
Android端 网易公开课3D动画勋章 实现源码
2021-11-02
android静默卸载指定包名APP
2014-07-02
SIP-RFC3428.doc
2020-03-07
android静默卸载data/app下的应用程序
2014-07-03
Gson简单与复杂json数据解析案例
2014-11-26
Android用SAX2解析xml
2014-08-07
完善程序地图poi搜索
2014-11-26
png转pkm“Mali-Texture-Compression-Tool-v4Windows-x64”和“pkm.zip”资源
2024-08-13
OpenGLES2.0中加载".pkm图片资源"组成的“zip压缩包”,并以帧动画的渲染播放ETC1格式纹理数据
2024-08-08
Android工程OpenGL ES中YUV420转化RGB工程实现源码
2024-07-22
ExternalOES纹理数据 转换为 TEXTURE-2D纹理数据 工程代码
2023-12-21
OpenGLES渲染播放Sdcard中的视频资源
2023-11-02
Android使用MediaCodeC与OpenGL硬解码 录制mp4音视频实现源码
2021-11-02
Android平台OpenGLES3将GL-TEXTURE-2D纹理id渲染到ImageReader提供的Surface上
2023-06-28
监听Android系统软键盘的弹出与关闭(案例代码)
2023-06-20
TCP与TLS数据报文抓包
2023-03-18
Android使用 jitpack 发布 maven 多渠道AAR依赖库 案例实现
2023-02-21
Android录制屏幕生成mp4文件
2022-07-07
Python3使用openpyxl、xlrd依赖库操作Excel案例源码
2022-04-15
Python3使用xlrd修改Excel数据映射关系
2022-04-01
Android12 SplashScreen使用案例代码下载
2022-03-16
安卓Kotlin Coroutine协程使用案例代码
2022-03-09
OpenGLES三种抗锯齿实现案例
2021-12-06
Android veridex 非SDK接口检测工具
2022-02-16
Android平台OpenGLES生成使用Mipmap纹理
2021-12-08
Android平台 使用OpenGLES3.0实现纹理纹理、颜色混合
2021-12-15
Android平台 OpenGL ES3.0绘制点、线、三角形实现源码
2021-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人