Linux
文章平均质量分 82
拖鞋爆炒猪大肠
这个作者很懒,什么都没留下…
展开
-
在Linux环境下使用ffmpeg将PCM音频数据编码成aac数据
在Linux环境下使用ffmpeg将PCM音频数据编码成aac数据程序框图代码演示程序框图将pcm数据经过aac编码器编码成aac数据,我是将从设备上采集的数据经过重采样送入aac编码器进行编码,由于我的测试设备是Ubuntu 18.04虚拟机,采样率为44100hz,采样大小为有符号16位数,满足编码器的输入数据参数要求,所以也可以直接将从设备获取的音频数据送入编码器进行编码,无需经过重采样,但是下面的示例代码我是将从设备读取的音频数据经过重采样再送入编码器进行编码,但是我设置重采样的输入输出音频三元原创 2022-03-17 17:44:25 · 4141 阅读 · 5 评论 -
基于线程池和使用openssl加密的TCP文件传输
基于线程池和使用openssl加密的TCP文件传输主函数部分代码演示部分代码讲解线程池部分代码演示部分代码讲解对接客户端代码(消费者处理接客户端请求)代码演示部分代码调试问题客户端部分代码演示部分代码调试问题程序编译和证书,密钥的生成代码运行演示主函数部分在主函数完成线程池的初始化,socket初始化,以及SSL加密算法库的初始化和加密算法的加载。在完成这些任务的初始化后,在while()循环里等待客户端的接入,一旦有客户端接入就将对接客户端所需要的参数和处理函数加入消费者任务链表,让消费者线程去处理客转载 2022-03-13 18:11:16 · 766 阅读 · 1 评论 -
在Linux环境下使用ffmpeg生成AAC数据报错Unknown encoder ‘libfdk_aac‘
我们使用ffmpeg -i ./cl.mp4 -vn -c:a libfdk_aac -ar 44100 -channels 2 -profile:a aac_he_v2 cl.aac命令采集视频的音频acc数据报错Unknown encoder 'libfdk_aac'我的解决方法是重新编译安装,在执行config的时候加上–enable-libfdk-aac选项。之前安装ffmpeg的时候没有加此选项导致没有编译出fdk。解决方法:由于此前我是使用源码的安装方式所以我就不用下载了,直原创 2022-03-10 17:00:45 · 3747 阅读 · 0 评论 -
多路IO复用与异步IO
多路IO复用与异步IO同步阻塞IO(BIO)与同步非阻塞IO(NIO)同步阻塞IO同步非阻塞IO多路IO复用select()函数使用示例代码演示poll()函数使用示例代码演示异步IO代码演示什么时多路IO复用? 多路IO复用是一种同步IO模型,,它可以实现一个线程可以同时监视多个文件描述符,一旦有某个文件描述符准备就绪,就会通知应用程序,对该文件描述符进行操作。在监视的各个文件描述符没有准备就绪的时候,应用程序线程就会阻塞,交出cpu,让cpu去执行其他的任务,以此提高cpu的利用率。同步阻塞IO(B原创 2022-03-10 16:53:42 · 1396 阅读 · 0 评论 -
使用指针与共同体测试机器的大小端
使用指针与共同体测试机器的大小端共同体与大小端的概念C语言测试机器的大小端内存分布与测试原理共同体与大小端的概念共同体:(1)共用体union和结构体struct在类型定义、变量定义、使用方法上很相似。(2)共用体和结构体的不同:结构体类似于一个包裹,结构体中的成员彼此是独立存在的,分布在内存的不同单元中,他们只是被打包成一个整体叫做结构体而已;共用体中的各个成员其实是一体的,彼此不独立,他们使用同一个内存单元。可以理解为:有时候是这个元素,有时候是那个元素。更准确的说法是同一个内存空间有多种解释方原创 2022-02-24 12:08:07 · 242 阅读 · 0 评论 -
offsetof宏与container_of宏解析
offsetof宏offsetof宏的作用container_of宏的作用offsetof宏的原理offsetof宏的原理宏的分析offsetof宏的作用用宏来计算结构体中某个元素和结构体首地址的偏移量(其实质是通过编译器来帮我们计算)。container_of宏的作用知道一个结构体中某个元素的指针,反推这个结构体变量的指针。有了container_of宏,我们可以从一个元素的指针得到整个结构体变量的指针,继而得到结构体中其他元素的指针。offsetof宏的原理我们虚拟一个type类型结构体变量原创 2022-02-23 20:28:51 · 185 阅读 · 0 评论 -
C语言结构体内存对齐
结构体内存对齐的意义代码演示及运行结果分析代码演示运行结果展示运行结果分析。gcc对结构体对齐的支持结构体内存对齐的意义(1)结构体中元素对齐访问主要原因是为了配合硬件,也就是说硬件本身有物理上的限制,如果对齐排布和访问会提高效率,否则会大大降低效率。(2)内存本身是一个物理器件(DDR内存芯片,SoC上的DDR控制器),本身有一定的局限性:如果内存每次访问时按照4字节对齐访问,那么效率是最高的;如果你不对齐访问效率要低很多。(3)还有很多别的因素和原因,导致我们需要对齐访问。譬如Cache的一些.原创 2022-02-23 13:47:01 · 902 阅读 · 0 评论 -
C程序的储存空间分布
C程序的储存空间分布正文段(代码段)一级目录一级目录一级目录一级目录正文段(代码段)一级目录一级目录一级目录一级目录原创 2022-02-22 18:38:07 · 638 阅读 · 0 评论 -
Linux——TCP/UDP网络编程
Linux网络编程TCP/UDP对比与字节序概念TCP Server实现步骤三级目录四级目录五级目录TCP/UDP对比与字节序概念TCP/UDP对比1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的即发送数据之前 不需要建立连接2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付,3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流UDP是面向报文的UDP没有拥塞控制,因此网络出原创 2021-03-30 22:53:54 · 206 阅读 · 0 评论