刷新
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流

博主头像 ​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKi ...

互斥锁与条件变量学习与应用小结

博主头像 互斥锁,也叫互斥量。有以下几个显著的特点: 唯一性:互斥锁保证在任何给定的时间点,只有一个线程可以获得对临界区资源的访问权。如果一个线程锁定了一个互斥量,在它解除锁定之前,没有其他线程可以锁定这个互斥量。 原子性:锁定和解锁互斥锁的操作是原子的,这意味着操作系统(或pthread函数库)保证了如果一 ...

Linux线程之读写锁小结

博主头像 读写锁(rwlock)与互斥锁(Mutex Lock)相比,有如下特点: 更加细致的区分了读和写,给共享资源分别上了“读”锁和“写”锁。 “写”独占,“读”共享,“写”锁优先级更高 如果共享资源在绝大多数情况下是“读”操作,可以提高程序的并发性能。 常用的函数原型总结如下: pthread_rwlo ...

FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp

博主头像 ​《FFmpeg开发实战:从零基础到短视频上线》一书介绍了JPEG、PNG、GIF等图片格式,以及如何通过FFmpeg把视频画面转存为这些格式。除了上述这些常见的图片格式,还有较新的WebP格式,它由VP8视频标准派生而来,VP8演进的视频格式叫做WebM,图片格式则叫WebP。 若想让FFmpeg ...

lua语言:模块热更新方案

博主头像 我们知道,lua通过package模块来管理模块的搜索和加载,当使用require首次成功加载一个模块后,模块(Table)会被存储在package.loaded中,之后的require行为会直接获取到已加载的模块缓存。 如何在程序执行时,将对模块文件的修改热更新到程序中,同时确保运行时状态的正常。 ...

Design OOP use C

博主头像 Design OOP use C 使用c语言实现面向对象特性 以底层思维来理解面向对象。我所理解的oop:为不同的数据元提供稳定的处理逻辑框架,同时提供复写的可能,支持不同数据元个性化定制有限的逻辑; 多态特性: 基类实现一组通用处理逻辑接口,子类通过改变特定接口的执行逻辑实现将子类与个性化操作绑定 ...

strcpy和memcpy

博主头像 strcpy和memcpy 目录strcpy和memcpy 复制内容: strcpy:专门用于复制字符串,它会一直复制直到遇到源字符串中的'\0'结束符。这意味着如果源字符串长度超过了目标缓冲区的大小(不包括'\0'),就会发生缓冲区溢出,这是一个常见的安全隐患。 memcpy:可以复制任意内容,如 ...

关于字符串的功能函数小结

博主头像 笔者做项目过程中,使用了很多关于字符串的C库中自带功能函数,极大便利了项目流程。再次做一个小结,之后若有增加会继续补充。 所需采用函数 序号 函数/描述 1 char *strcat(char *dest, const char *src) 【char *strncat(char *dest, co ...

条件编辑及宏定义学习小结

博主头像 ​ 条件编译(也称为预处理)是一种在编译阶段控制代码是否包含进最终编译单元的技术。这通常通过使用预处理器指令(如#if, #ifdef, #ifndef, #else, #elif, 和 #endif)来完成。而条件编译通常是和宏联系在一起,因此说宏带有不用来回切换,宏替换发生在编译的预处理阶段,省 ...

FFmpeg开发笔记(二十二)FFmpeg中SAR与DAR的显示宽高比

博主头像 ​《FFmpeg开发实战:从零基础到短视频上线》一书提到:通常情况下,在视频流解析之后,从AVCodecContext结构得到的宽高就是视频画面的宽高。然而有的视频文件并非如此,如果按照AVCodecContext设定的宽高展示视频,会发现画面被压扁或者拉长了。比如该书第10章源码playsync. ...

FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器

博主头像 ​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。 l ...

JPEG库的移植(arm平台)

博主头像 JPEG库的移植(arm平台) 目录JPEG库的移植(arm平台)介绍头文件及全局变量1、图片显示2、其他图片压缩到jpg图片3、主函数及验证程序输出结果 介绍 图解 头文件及全局变量 #include <stdio.h> #include <stdlib.h> #include <sys/type ...

FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

博主头像 ​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。 l ...

时间函数的简单理解和应用(time.h)

博主头像 目录关于时间的函数及tm结构体描述对函数的简单理解操作函数功能实现 关于时间的函数及tm结构体描述 time.h头文件中常用的几个函数描述如下: 序号 函数&描述 1 time_t time(time_t *tloc)最基础的函数,计算当前时间,并返回成 time_t(aka long int)格式 ...

顺序表的实现

博主头像 /******************************************************************************************************** * * file name: Zqh_顺序表.c * author : keyword2 ...

删除A中与B相同的元素

博主头像 删除A中与B相同的元素 目录删除A中与B相同的元素程序验证输出结果 程序 #include <stdio.h> /******************************************************************* * * file name: 删除A中与B相同的元 ...

C语言加强

博主头像 变量、指针和关键字 两个口诀: 变量变量,能变,就是能读能写,必定在内存(RAM)里 指针指针,保存的是地址,32 位处理器中的地址都是 32 位的,无论是什么类型的指针变量,都是 4 字节 指针 对于 32 位处理器里面,地址是 32 位的,所以指针的大小为 4 字节,sizeof(p) = 4 ...

<1···345···11>