- 博客(50)
- 问答 (2)
- 收藏
- 关注

原创 GB28181协议简介以及学习GB28181协议所涉及的名词汇总(入门篇)
GB28181协议简介以及学习GB28181协议所涉及的名词汇总(入门篇) 近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪费。各地视频大规模建设后,省级、国家级集中调阅,对重特大事件通过视频掌握现场并进行指挥调度的需求逐步涌现,然而不同平台间缺乏统一的互通协议。在这样的产业背景下,基于终端标准化、平台互联互通的需求,GB/T28181应运而生。
2023-05-05 11:18:54
10881
1

原创 什么是C语言,C语言包含什么,C语言基础讲解
C语言是一门广泛应用于系统编程、嵌入式开发、科学计算等领域的编程语言,具有高效、灵活、可移植等特点。C语言的基础概念包括变量、数据类型、运算符、流程控制、函数、文件操作、预处理器、指针等,熟练掌握这些概念对于学好C语言非常重要。在学习C语言时,可以通过阅读相关书籍、视频教程、实践编程等方式提高自己的编程水平。同时也要注意规范编程风格,避免出现一些常见的错误,例如数组越界、内存泄漏、空指针访问等。总的来说,C语言是一门非常重要的编程语言,在计算机科学领域发挥着巨大的作用。
2023-02-23 14:03:49
6836
原创 Socket编程简介
Socket编程是网络通信的基础,它允许不同主机间通过网络进行数据传输。通过套接字(socket),应用程序可以发送和接收数据,实现客户端与服务器之间的通信。套接字(socket)是支持网络通信的API,它为不同进程之间提供了一种基于网络的通信机制。
2025-02-10 17:11:37
358
原创 GDB 简介及其基础用法:GDB是 Linux 环境下用于调试程序的强大工具,特别适用于 C 和 C++ 代码。它允许开发者在程序运行时进行调试,比如设置断点、单步执行、查看变量值等。
GDB 是 GNU 工具链中的调试器,用于分析程序运行时的状态,找出导致程序崩溃或行为异常的原因。查看代码执行流程设置断点来暂停程序检查和修改变量的值单步执行代码GDB 是一个功能强大的调试器,可以帮助你发现并修复程序中的错误。通过设置断点、单步执行、查看变量值等功能,你可以深入了解程序的执行过程并快速定位问题。
2024-09-12 10:10:18
1206
原创 Valgrind 是一款强大的程序分析工具,广泛用于检测内存错误、内存泄漏等问题
Valgrind 是一款强大的程序分析工具,广泛用于检测内存错误、内存泄漏等问题。它特别适合用于 C/C++ 项目的调试和优化工作。下面,我们将详细讲解 Valgrind 的基础用法,并重点说明常用的参数以及它们的作用。
2024-09-11 16:06:38
1228
原创 在Linux终端中如何对文件夹进行打包,以及如何对其进行解包;tar命令打包,解包常用法;
在Linux终端中如何对文件夹进行打包,以及如何对其进行解包;tar命令打包,解包常用法;
2024-08-01 15:19:15
384
1
原创 如何查看cpu架构,查看CPU架构的方法
查看CPU架构的方法有很多,具体取决于你使用的操作系统。以下是一些常见的操作系统中查看CPU架构的方法:
2024-07-27 17:24:36
3959
原创 临时更改服务器或Linux终端的IP及网关
在某些情况下,我们需要临时更改服务器或Linux终端的IP地址和网关,以便进行网络调试或临时连接网络。这种更改是临时的,不会影响到系统的永久配置。以下是具体步骤及示例命令,并展示了每一步的输出结果。本文介绍了如何通过临时更改服务器或Linux终端的IP地址及网关,使其能够连接到网络。这种方法确保了更改在重启后失效,避免永久更改导致的潜在问题。尝试ping一个外部地址,由于旧的默认网关还没有被移除,ping操作可能会失败。以上步骤在重启后会失效,因为更改是临时的。在更改网关之前,查看当前的路由表。
2024-07-27 17:08:15
838
1
原创 linux终端中启用IPv4转发功能步骤如下:解决IPv4 forwarding is disabled. Networking will not work.告警步骤如下:
linux终端中启用IPv4转发功能步骤如下:解决IPv4 forwarding is disabled. Networking will not work.告警步骤如下:避免因 IPv4 转发问题导致的网络问题;
2024-07-27 16:10:15
849
原创 RFC3984: RTP Payload Format for H.264 Video英文版官方文件,H.264视频的RTP荷载格式中文版;RFC3984中文版;
RFC3984: RTP Payload Format for H.264 Video英文版官方文件,H.264视频的RTP荷载格式中文版;RFC3984中文版;
2024-04-30 16:18:23
857
原创 基于H.264的RTP打包中的组合封包以及分片封包结构图简介及抓包分析;FU-A FU-B STAP-A STAP-B简介;
基于H.264的RTP打包中的组合封包以及分片封包结构图简介及抓包分析; FU-A FU-B STAP-A STAP-B简介;
2024-04-29 14:33:11
1576
原创 RFC3984: RTP Payload Format for H.264 Video(中英文版)官方文献,RTP协议头格式分析详解;RTP载荷H264码流;
RFC3984: RTP Payload Format for H.264 Video(中英文版)官方文献,RTP协议头格式分析详解;RTP载荷H264码流;
2024-04-28 11:34:21
625
原创 linux终端下vi文本编辑器的基础使用方法
对于更复杂的操作和详细功能,建议查阅官方文档或在线教程以获取更全面的指导。如果文件存在,则打开该文件;如果不存在,则创建新文件。要从命令模式切换到插入模式,请按。要返回命令模式,请按下。
2024-03-21 13:34:08
648
2
原创 在C++11中利用for()循环遍历迭代器的同时,也可对容器内的数据进行更改
for (auto &&it : _groups) 是一个范围-based for 循环(也称为 foreach 循环),用于遍历容器 _groups 中的元素。这种循环语法在 C++11 及更高版本中引入,允许以一种更简洁的方式遍历容器中的元素。
2024-01-04 18:19:52
710
原创 auto关键字的含义以及常见用法,C++11中的关键字
关键字在这些例子中简化了代码,使得代码更加清晰,减少了手动指定变量类型的工作量,同时保持了类型安全。关键字在 C++ 中用于自动推断变量的类型,它可以让编译器根据初始化表达式的类型推导出变量的类型。提高了代码的灵活性和可读性,但过度使用时也可能降低代码的可读性,因此应在合适的场景使用。auto:这是 C++11 引入的关键字,用于自动推断变量的类型;
2024-01-04 08:44:52
852
原创 通过WinFsp将linux目录映射到windows下,ubuntu开启SSH服务,并允许ROOT权限远程登录,WinFsp使用教程;
通过WinFsp将linux目录映射到windows下,ubuntu开启SSH服务,并允许ROOT权限远程登录,WinFsp使用教程;
2023-08-26 14:43:10
2257
原创 C语言设计实现十六进制与十进制数之间的相互转换
C语言设计实现十六进制与十进制数之间的相互转换一、十六进制数转为十进制数1.设计一个C语言代码实现十六进制数例如0xFEFF转为十进制二、十进制数转换为十六进制数1.设计一个C语言代码实现十进制转为16进制数并且16进制数的形式是0x0000000,这种形式:三、总结通过上述两个代码示例,研究进行假设不同的数据,进行进制转换过程;
2023-06-14 15:51:01
30761
1
原创 linux强制复制某文件夹到另一个文件夹下
要在Linux中强制复制一个文件夹到另一个文件夹下,你可以使用。选项来递归复制整个目录结构。命令将询问是否覆盖。为了强制覆盖而不进行任何提示,你可以使用。请注意,如果目标文件夹已经存在同名的文件夹,为实际的源文件夹和目标文件夹的路径。
2023-05-23 17:14:51
2450
转载 嵌入式工程师 面试题 集-C语言
答:预编译又称预处理 , 就是做些代码文本的替换工作。# 开头的指令,比如拷贝 #include 包含的文件代码,#define 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段。C提供的预处理功能主要有以下三种:1 )宏定义。#define2 )文件包含。#include。该指令指示编译器将xxx.xxx文件的全部内容插入此处。3 )条件编译。何时需要预编译:1 )总是使用不经常改动的大型代码体。2 )程序由多个模块组成,所有模块使用一组标准的包含文件和相同的编译选项。
2023-05-20 16:53:39
2072
1
原创 在GB28181项目中,调用eXosip_register_send_register函数并且返回值为-2或者-3的含义是什么
身份验证失败:可能由于提供的用户名或密码错误或者没有提供正确的凭据,导致服务器拒绝注册请求。在某些情况下,服务器可能只允许一次注册,如果您尝试多次注册,服务器可能会拒绝请求。该返回值的含义是注册请求被拒绝,可能是由于身份验证失败或其他原因导致的。网络连接问题:可能是由于网络连接故障或配置错误,导致无法发送注册请求。注册信息格式错误:可能是由于注册请求中提供的信息格式不正确,或者缺少必需的字段,导致服务器拒绝请求。服务器故障:可能是由于服务器发生故障或配置错误导致的。参数中提供的注册信息可能存在问题。
2023-05-19 09:28:27
934
原创 Thread线程学习(3) 了解Linux线程中的pthread_cancel()函数
Thread线程学习(3) 了解Linux线程中的pthread_cancel()函数;二、使用pthread_cancel()函数的基础示例;三、使用pthread_cancel()函数取消线程的进阶示例本文深入介绍了Linux线程的pthread_cancel()函数,该函数可以用于取消一个正在执行的线程。在使用pthread_cancel()函数时,需要合理设置线程的取消状态和取消类型,并确保线程在取消前完成必要的清理工作。
2023-05-17 14:39:07
2220
原创 Thread线程学习(2) Linux线程的创建、终止和回收
线程ID(Thread ID)是用于唯一标识一个线程的值。它是在操作系统层面上分配和管理的,用于区分不同的线程。线程ID的作用是多方面的:线程标识:通过线程ID,我们可以区分不同的线程。每个线程都被分配一个唯一的线程ID,使得我们能够对特定的线程进行操作,如创建、终止、回收等。线程控制:线程ID可以用于控制线程的执行。通过线程ID,我们可以向指定的线程发送信号、设置线程的优先级、挂起或恢复线程的执行等。线程同步:在线程同步的场景中,线程ID常用于标识要进行同步操作的线程。
2023-05-16 20:28:18
818
原创 Thread线程学习(1) 了解线程的基本知识——什么是线程
线程可以被看作是进程中的一个执行路径。在一个进程中,可以同时运行多个线程,每个线程独立执行自己的任务。与进程不同的是,线程之间共享进程的资源,如内存空间、文件句柄等。线程可以更高效地利用系统资源,并能够实现并发执行。通过本文的介绍,我们了解了线程的基础知识。线程是执行计算机程序的基本单元,它能够实现并发执行、高效利用系统资源,并在许多应用场景下发挥重要作用。理解线程对于学习并发编程是至关重要的。然而,多线程编程也带来了一些挑战,如数据竞争、死锁等问题。
2023-05-15 11:40:58
330
原创 将虚拟机的Ubuntu映射为windows的网络驱动器,将Linux下的目录映射到Windows目录下,以及如何解决映射盘更换登录用户名问题;
将虚拟机的Ubuntu映射为windows的网络驱动器,将Linux下的目录映射到Windows目录下,以及如何解决映射盘更换登录用户名问题;指定的网络文件夹目前是以其他用户名和密码进行映射的。要用其他用户名和密码进行连接,首先请与所有现有连接到该网络共享的映射断开连接。
2023-05-10 20:11:20
3940
1
原创 解决Ubuntu 20.04网络无法连接,没有网络图标
网络适配器处于NAT,并且电脑主机有网络,但是Ubuntu20.04中没有网络,或者初次启动Ubuntu20.04时是由网络的,但后来不知是何原因导致网络不通,无法用浏览器访问百度。缓存文件,重启网络后问题就解决了。如下图右上角有线网络图标消失了。右上角有线网络图标重新出现了。打开浏览器可以访问百度了。
2023-05-05 15:06:46
5446
9
原创 在Linux下安装gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tgz的步骤
在Linux下安装gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tgz的步骤如下
2023-04-25 09:54:06
3998
1
原创 C++中std::vector容器的入门讲解
本文介绍了 std::vector 的用法。 std::vector 是 C++ 标准库中的一个容器,用于存储一组具有相同类型的元素。 std::vector 具有动态分配内存、随机访问、尾部添加和删除元素等特性,是C++中常用的数据结构之一。
2023-04-20 14:54:39
3062
原创 关键字public、private、protected各自的作用,以及构造函数的定义
关键字public、private、protected各自的作用,以及构造函数的定义及其基本用法
2023-04-08 13:52:18
5324
原创 “|=“运算符用法示例讲解
运算符是 C/C++ 语言中的一个复合赋值运算符,它将位或运算和赋值操作合并在一起,用于对一个整型变量的值进行按位或运算后再将结果赋值回这个变量。提高效率:使用复合赋值运算符可以避免多次对同一变量进行赋值操作,减少中间变量的使用,从而提高代码的执行效率。简化代码:使用复合赋值运算符可以将多个语句合并成一条语句,简化代码结构,提高代码的可读性和可维护性。的二进制表示中的每一位进行逻辑或运算,将结果存储到新的整数中。,即对应二进制位上的值进行按位或运算后的结果。需要注意的是,位或运算符。
2023-03-20 11:34:39
26850
原创 c语言文件操作函数的讲解;fopen();fputs();fgets();fflush();fsync();fileno();open();fclose();等函数的含义及其作用;
在C语言编程中,文件是指在存储设备上的一个数据集合,可以包含文本、二进制或其他格式的数据。文件可以被打开,读取、写入或关闭。在C语言中,可以使用标准库函数和系统调用函数来操作文件。常见的文件类型包括文本文件和二进制文件,例如文本文件可以包含文本字符串,而二进制文件可以包含任何类型的数据,包括图像、音频、视频等。
2023-03-17 14:19:54
3763
原创 图像/短视频文件的MD5码的定义、作用以及获取方式
MD5(Message-Digest Algorithm 5)是一种常用的哈希算法,用于计算文件的哈希值。哈希值是一个固定长度的字节序列,可以用于验证文件的完整性和唯一性。
2023-03-10 18:29:01
6769
原创 H264和H265的学习笔记
(2)在每个IDR关键帧前都会有SPS,PPS,等NALU,因此将SPS,PPS,IDR的NALU封装成一个PS包,其包 结构如下:PS包 = PS header + PS system header + PS system map + PES header + h264 raw data。(5)、h264 raw data:h264原始数据以SPS(序列参数集)00 00 00 01 67开始,其中包括SPS(67)、PPS(68)、SEI(06)、 IDE(65)、P帧(61)等。
2023-03-10 13:34:35
2950
1
原创 fseek( fp, SEEK_SET, SEEK_END );的作用?以及如何获取一个文件的大小?
fseek( fp, SEEK_SET, SEEK_END );的作用?以及如何获取一个文件的大小?fseek函数的作用是设置文件指针的位置,通过offset和whence参数的组合,可以实现对文件指针的灵活定位。在本代码中,通过将whence设置为SEEK_END,将offset设置为0,实现了将文件指针指向文件末尾的目的,从而可以通过ftell函数获取文件大小。
2023-03-10 09:03:10
8816
原创 send()函数的用法;MSG_NOSIGNAL什么含义?有什么作用?以及flags中参数类型有哪些各自又起到什么作用?
send()函数的用法;MSG_NOSIGNAL什么含义?有什么作用?以及flags中参数类型有哪些各自又起到什么作用?
2023-03-01 16:55:42
4701
空空如也
在java中如何写方法签名
2023-02-07
如何用C语言实现计时重传(超时检测重传)机制:
2023-01-07
为代码添加注释讲解一下
2023-01-05
获取系统时间函数,输出错误,如何修改
2022-08-18
给std::vector这一句代码添加注释,可简要分析
2022-08-12
gb28181场景中,map用法分析,对其进行代码注释说明
2022-08-10
char xml_body[4096];是什么意思
2022-08-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人