刷新
FFmpeg开发笔记(八十九)基于FFmpeg的直播视频录制工具StreamCap

博主头像 ​随着推拉流技术的发展,现在网络直播应用很普及了,打开许多App都能看到各式各样的直播节目,包括抖音、快手、虎牙、斗鱼、B站、小红书、YY、映客等等。 有关视频推拉流的FFmpeg实现参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”,使用FFmpeg结合专 ...

用C语言和文本文件实现一个简单的,可保存的通讯录

博主头像 我们先思考一个通讯录都有那些信息,很明显通讯录记录的是人 人有哪些信息呢 这里我就写5个吧,分别是姓名,年龄,电话,性别,地址 然后我们把他们写成一个结构体,最好定义在头文件里,这样在使用的时候更方便 我们还可以把要使用的一些常用的或者要修改的常量定义成枚举,后续有什么要添加的,直接就能在枚举中添加 ...

C语言中的库函数feof和ferror

博主头像 我们来详细解释一下 C 语言中的 ferror 和 feof 这两个库函数。 1. ferror 函数 int ferror(FILE *stream); 功能:检查指定文件流(stream)上是否发生了错误。 返回值: 如果文件流上有错误发生,返回一个非零值(true)。 如果没有错误发生,返回 ...

C语言中的数组名的隐式转换

博主头像 1.数组名的隐式转换规则 在C语言中数组名在绝大多数表达式场景中,会自动转换成指向数组首元素的指针 1.1触发条件 当数组名作为表达式使用时,除两种情况外,都会发生该隐式转换 1.2触发结果 数组名会转化为指向数组首元素的指针,指针的类型由数组元素的类型决定 例外 1.数组名作为sizeof的操作数 ...

C中单向链表之增删改查

博主头像 C中单向链表之增删改查 // 链表(Linked List)是一种基础但至关重要的数据结构。它通过动态内存分配实现数据的非连续存储,解决了数组的固定长度和插入/删除低效的问题。无论是算法面试还是实际开发,链表都是高频考点和核心技能之一。 #include <iostream> #include <s ...

C语言中的数据存储

博主头像 1.数据类型 c语言自带的一些数据类型 char //字符型 1byte short //短整型 2byte int //整型 4byte long //长整型 4 or 8byte long long //更长的整型 8byte float //单精度浮点数 4byte double //双精度浮 ...

C语言中的算术类型转换

博主头像 1.寻常算数转换 在C语言中,当不同类型的操作数参与到算术运算时,编译器会将操作数转换成同一类型,再运算。这一过程被称为寻常算术转换,由于这个过程我们程序员看不见,所以它也是一种隐式类型转换(见整型提升) 1.1寻常算数转换的过程 1.1.1整型提升 若操作数是小整数类型(字节大小小于int),会自 ...

C语言中的整型提升

博主头像 整型提升 什么是整型提升?为什么要使用整型提升?整型提升是如何进行的? 1.整型提升 在c语言中,一些表达式在求值的过程中,操作数可能需要转换为其他类型,这种转换,我们程序员是看不见的,称其为隐式类型转换,而整型提升就是之一 1.1什么是整型提升 在C语言中计算整数的时候,会将整型家族中小于4字节的 ...

c语言中的操作符

博主头像 1.算数操作符 a.+ 加号 b.- 减号 c.* 乘号 d./ 除号 当 / 的两边都为整形时,计算结果默认为 int 。当 / 两边任意一边出现小数,计算结果为float or double e.% 取模 % 计算的是两数相除后的余数,其两边必须为 int ,整除时结果为 0 2.移位操作符 使 ...

使用RNNoise进行音频降噪

博主头像 操作系统:Debian 12.5_x64 & Windows10_x64 rnnoise版本:0.2 gcc版本:12.2.0 python版本: 3.9.13 RNNoise是一个将传统数字信号处理与深度学习相结合的开源实时音频降噪库,可在消耗极少计算资源的情况下实现毫秒级降噪,今天整理下这方面的 ...

C_结构体学习_1

博主头像 这里记录一下怎么为结构体成员变量实现内存连续且为动态 #include <iostream> #include <conio.h> #include <stdlib.h> #include <string.h> #include <stdio.h> using namespace std; // 今 ...

FFmpeg开发笔记(八十一)FFmpeg代码对RTSP和RTMP的推流区别

博主头像 《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了如何使用FFmpeg代码向网络推送视频流,当时的例程采用了RTSP方式推流,在向RTSP地址时推流是正常的,但向RTMP地址推流时出现了问题,下面就介绍了如何使用FFmpeg代码向RTMP地址推送视频流 ...

MQTT协议

博主头像 //请求连接 void mqtt_connect(char *clientid,char *username,char *passwd) { uint32_t clientid_len = strlen(clientid); uint32_t username_len = strlen(userna ...

一生一芯中有趣的C语言宏:LIST_FOREACH 链表遍历宏

博主头像 记录了学习 “一生一芯” 时(更确切地说是学习 “Learn C The Hard Way” 时)遇到的 LIST_FOREACH 链表遍历宏。该宏的精髓在于使用 V 和 _node 双指针机制,以确保即使在复杂场景下(如用户误改指针),循环的健壮性和遍历的正确性也不会被破坏。 ...

C语言之如何定义一个数据类型

博主头像 本文介绍了如何设计和定义一个新的数据类型,具体包括建立抽象、建立接口和实现接口三个部分。总结这三步法:从思考“做什么”(抽象)到规定“怎么做才对”(接口),最后才是“怎么做到”(实现),这是编写健壮、清晰、可维护代码的基石。 ...

123···6>