操作系统 :CentOS 7.9_x64 apr库版本:apr-1.7.4 & apr-util-1.6.3 gcc 版本:4.8.5 队列功能在C++或Python等脚本语言里面,是很容易就可以使用的,但C语言里面,标准库里面没有。 在使用C语言开发新应用时,就会遇到这个问题。阅读FreeSWIT ...
音视频技术的一个主要用途是直播,包括电视直播、电脑直播、手机直播等等,甚至在线课堂、在线问诊、安防监控等应用都属于直播系统的范畴。由于直播系统不仅涉及到音视频数据的编解码,还涉及到音视频数据的实时传输,因此直播领域采用的网络技术标准比较高,实现起来也比一般的WEB系统复杂。 一、直播系统的概念结构 ...
一,运算符 自变运算符: ++/-- 使变量的值自动加1或者减1 前自变:++num/--num 立即生效 后自变:num++/num-- 下一行语句才有效 注意:不要在一行代码中多次使用自变运算符 * ++ -i 这样对吗? 这样不对 在这里-i是表达式,自增自减只能针对一个变量进行运算! -i+ ...
概论 1.1 基本概念和术语 1.1.1 基本概念 计算机处理的的是数值性数据,当计算机处理用户信息表中的数据的时候,需要弄清3个问题 1.数据的逻辑结构 数据之间存在怎样的内在联系,数据中,有且只有一个是首节点/尾结点,其他节点有且只有一个相邻的位于它之前和之后的结点 2.数据的存储结构 数据在计 ...
经个人实践,C语言中使用 \t 会从下一个制表位开始继续输出,即会输出一个 8 个(32 位架构下 4 个,64 位架构下 8 个)格数的组合,当 \t 之前的内容达到 8 * n 格时,后续内容出现在 8 * (n + 1) + 1 格。(式中 n >= 1,且为整数) 而使用 \b 会根据 sh ...
一、第一个C语言程序 1、vim xxx.c 创建.c源文件 2、编写代码,并保存退出 3、gcc xxx.c 编译.c源文件,成功会得到a.out可执行文件 4、./a.out 运行可执行文件 注意:可以合并3、4 gcc xxx.c && ./a.out #include <stdio.h> 程 ...
不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。 除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用WebRTC技术,有关We ...
SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。 相比之下,另一款APP直播框架RTMP Streamer支 ...
内存拷贝 - memcpy 描述 C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。 memcpy 是最快的内存到内存复制子程序。 它通常比必须扫描其所复制数据的strcpy ...
# 字符串长度 - strlen() 描述 C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。 声明 下面是 strlen() 函数的声明。 size_t strlen(const char *str) 参数 s ...
strcat 描述 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 声明 下面是 strcat() 函数的声明。 char *strcat(char *dest, const char *src) ...
memset() 描述 C 库函数 void *memset(void *str, int c, size_t n) 用于将一段内存区域设置为指定的值。 memset() 函数将指定的值 c 复制到 str 所指向的内存区域的前 n 个字节中,这可以用于将内存块清零或设置为特定值。 在一些情况下,需 ...
C 库函数 - strcmp() 描述 C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。 声明 下面是 strcmp() 函数的声明。 int strcmp(const cha ...
内存移动 - memmove 也是拷贝函数,源字符串可能会被覆盖,但保证目标是想要的 描述 C 库函数 void *memmove(void *str1, const void *str2, size_t n) 从 str2 复制 n 个字符到 str1,但是在重叠内存块这方面,memmove() ...
C 库函数 - strcpy() 目录C 库函数 - strcpy()描述声明参数返回值模拟实现1.02.03.04.05.0 描述 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。 需要注意的是如果目标数组 dest ...
C 字符串查找 - strstr() 描述 C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 '\0'。 声明 下面是 strstr() 函 ...
strcat 描述 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 声明 下面是 strcat() 函数的声明。 char *strcat(char *dest, const char *src) ...
《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi ...
简介 assert 是 C 语言中的一个宏,用于在程序运行时进行条件检查,主要用于调试目的。它在 <assert.h> 头文件中定义,用于验证程序中的假设条件是否成立,如果不成立,程序将打印错误信息并终止执行。 特点 调试用途:主要用于捕获程序中的逻辑错误或不期望的条件。 可移除:通过定义 NDEB ...
《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi ...