《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能比较简单,也不方便个性化定制,如今出现了国产的直播服务器smart_rtpmd, ...
《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了如何使用FFmpeg代码向网络推送视频流,当时的例程采用了RTSP方式推流,在向RTSP地址时推流是正常的,但向RTMP地址推流时出现了问题,下面就介绍了如何使用FFmpeg代码向RTMP地址推送视频流 ...
//请求连接 void mqtt_connect(char *clientid,char *username,char *passwd) { uint32_t clientid_len = strlen(clientid); uint32_t username_len = strlen(userna ...
记录了学习 “一生一芯” 时(更确切地说是学习 “Learn C The Hard Way” 时)遇到的 LIST_FOREACH 链表遍历宏。该宏的精髓在于使用 V 和 _node 双指针机制,以确保即使在复杂场景下(如用户误改指针),循环的健壮性和遍历的正确性也不会被破坏。 ...
FileConverter —— 一个非常简单的工具,通过使用 Windows 资源管理器的上下文菜单转换和压缩一个或多个文件。 ...
本文介绍了如何设计和定义一个新的数据类型,具体包括建立抽象、建立接口和实现接口三个部分。总结这三步法:从思考“做什么”(抽象)到规定“怎么做才对”(接口),最后才是“怎么做到”(实现),这是编写健壮、清晰、可维护代码的基石。 ...
lwip-2.1.3/src/core/ipv4/autoip.c AutoIP 通常指的是在动态网络环境中,系统自动为其网络接口分配、管理和使用一个IP地址的技术,而无需依赖中心化的服务器(如DHCP服务器)或手动静态配置 需要使用autoip,需要在opt.h头文件当中使能LWIP_AUTOIP ...
在 C 语言中,可变参数列表(Variable Argument List)通过 `stdarg.h` 头文件提供的宏和函数来实现。它允许函数接受可变数量的参数,类似于 `printf` 和 `scanf` 这样的函数。本文介绍与可变参数列表相关的函数和用法。 ...
title: C语言之文件流常用标准库函数 date: 2024-01-19 05:12:18 category: - [C语言] tags: - C语言 - 文件流 本文总结了在C语言中与文件流相关的标准库函数。 文件流常用标准库函数 使用下列文件流相关函数需要包含头文件stdio.h。 函数 作 ...
在计算机中,**原码、反码、补码** 是用于表示有符号整数的三种编码方式,主要用于解决二进制数的 **正负表示** 和 **加减运算** 问题。它们的核心区别在于 **符号位的处理** 和 **负数的表示方法**。 ...
该游戏为c语言写的练手小游戏 大致分为两部分: 菜单显示 游戏部分 主程序 首先加载菜单 用户选择人机或者双人,进入游戏函数 选择退出时,退出程序 选择不合法选项时,再次加载菜单供用户选择 菜单代码 /** * @brief 菜单函数 * * @return 无返回值 * * @code * Men ...
设计一个将24位色深的bmp图片显示到lcd屏幕上,可移植,该程序自己写过之后,又经过了ai的完善和修复后,自己又再次添加一些语句注释 /**************************************************************************** * * ...
五种基础排序-升序实现 插入排序 构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 void InsertSort(int buf[], int bufsize) { for (int i = 1; i < bufsize; i++){ int temp = buf[i ...
二叉排序树定义 二叉排序树(Binary Sort Tree),也称为二叉查找树(Binary Search Tree, BST)或有序二叉树,是一种特殊的二叉树数据结构。以下是二叉排序树的一些核心概念: 一个二叉排序树或者是一棵空树,或者是具有以下性质的二叉树: 右子树上所有结点的值均大于它的根结 ...
队列的基本操作实现 1.队列的概念 队列(Queue)—— 先进先出的数据结构 队列是一种线性数据结构,遵循 “先进先出”(FIFO, First In First Out) 的原则。如现实中的排队:先来的人先被服务,后来的人排在队尾等待。 基本操作: 入队(Enqueue):在队尾添加 ...
栈的操作实现 栈的概念 栈是一种后进先出(LIFO)的线性数据结构,只允许在一端(栈顶)进行插入和删除操作。新元素总是添加到栈顶,而删除也总是从栈顶移除最上面的元素。栈常用于函数调用、表达式求值、括号匹配等场景。 代码实现 顺序存储(Array-based Stack) #include <stdi ...
双向链表操作实现 双向链表 双向链表(Doubly Linked List)是一种链式数据结构,其中的每个节点不仅指向下一个节点,还指向前一个节点。这与单向链表不同,后者每个节点只包含到下一个节点的引用。双向链表因此允许在两个方向上遍历:向前和向后。 每个节点在双向链表中通常包含三部分: 指向前一个 ...
单链表操作实现 1.什么是单链表? 单链表是一种常见的线性数据结构,由一系列节点组成,每个节点包含两个部分:数据域 和 指针域。数据域存储实际数据,指针域指向下一个节点。在单链表中,数据元素可以非连续地存储在内存中,而节点之间通过指针相互连接。 2.代码实现 链表的创建、插入、删除、查找等常用操作。 ...
顺序表的实现与测试-C语言版 一、顺序表概念 顺序表(Sequential List)是线性表的一种存储方式,指的是采用顺序存储结构的线性表。在顺序表中,数据元素按照它们的逻辑顺序依次存放在一段地址连续的存储单元中。这种存储方式允许通过数学计算快速定位到任何一个元素的位置,从而支持随机访问。但是,顺 ...
/**************************************************************************** * * file name: 2025-07-11_CircularLinkedList.c * author : 15515376695@16 ...