avatar
文章
36
标签
58
分类
10

首页
时间轴
标签
分类
Ali5669
首页
时间轴
标签
分类

Ali5669

RTP与RTCP
发表于2024-08-22|音视频
RTP实时传输协议(Real-time Transport Protocol 或 RTP)是一个网络协议,用于在网络上提供端对端的实时数据传输,如音频、视频或者模拟数据。此协议在自由软件和开源环境中应用广泛。与其他传输层协议相比,RTP 并不保证传输的可靠性,但提供了实时处理的支持,如QoS(质量服务),抖动补偿,跨载体交互等。 RTP头格式如下:1234567891011 0 1 2 3+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P|X| CC |M| PT | sequence number |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| timestamp ...
回调函数中的void指针
发表于2024-08-08|服务端
函数指针主要用于将函数定义为参数类型,便于传入1234// C++typedef std::function<void(void*)>CallBack;// Ctypedef void (*Callback)(void*); Event1234void Event::handleEvent(Callback cb, void* arg){ cb(arg);} TaskTask主要定义了 Event 要使用的回调函数123456789101112void Task::callback(void* arg){ Task* task = (Task*)arg; Task->handle();}// 可能根据 Task 的类型变化而变化void Task::handle(){ // do something // 特别是要使用类成员等非 static 内容等情况} Server根据使用场景不同,可以通过回调函数的方式,在业务场景末端(顶层)如Server,灵活调整每个 Event 处理的事务12345678 ...
ifdef/ifndef与C声明冲突
发表于2024-08-07|C基础知识
ifdef 若标识符被定义,则编译ifndef 若标识符未被定义,则不编译ifdef1234567#ifdef WIN32// Windows环境下编译 printf("windows")#else// 非Windows环境下编译 printf("linux")#endif WIN32 ifndef1234567#ifndef WIN32// 非Windows环境下编译 printf("linux")#else// Windows环境下编译 printf("windows")#endif !WIN32 有了预备知识,对于.h头文件的规则也易于理解了Person.h1234#ifndef ALI5669_PROJECT_PERSON_H#define ALI5669_PROJECT_PERSON_H// Person.h内容#endif !ALI5669_PROJECT_PERSON_H在不同文件中同时引用了同一个头文件,当这些文件要合成一个可执行文件时就出现了重复引用冲突使用这个方法,就可以让.h文 ...
H264中的NAL、NALU,以及RTP封装方式
发表于2024-07-30|音视频
H.264主要由视频编码层(VCL)和网络适配层(NAL)组成NAL包格式如下12345 NAL Header NALU 0 1 2 3 4 5 6 7 8 9+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+|F|NRI| Type | a single NAL unit ... |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+NAL包由头部和NALU组成,VCL有效载荷数据被封装在NALU中123456789101112struct NalHeader{ uint8_t type : 5; // 5 位,指出NALU 的类型 SEI:6, SPS: 7, PPS: 8 uint8_t nal_ref_idc : 2; // 2 位,用来指示该NALU 的重要性等级。值越大,表示当前NALU越重要。具体大于0 时取何值,没有明确规定 uint8_t forbidd ...
C struct 中字节的存储方式
发表于2024-07-30|C基础知识
在学习音视频时学习到了RTP协议,遂定义了RTP struct RTP头格式如下:123456789101112 0 1 2 3 7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|V=2|P|X| CC |M| PT | sequence number |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
VS C++ LNK2019 无法解析的外部符号
发表于2024-07-30|环境配置
配置项目第三方库时报错:LNK2019 无法解析的外部符号 _sws_scale,函数 “int __cdecl vPlayer_sd12(char *)” (?vPlayer_sd12@@YAHPAD@Z) 中引用了该符号 按照网上教程配置多次仍未成功SDL2给出了两个编译环境(x86 x64)生成的lib,而ffmpeg仅有x64环境下的lib。来回更换SDL2的lib后发现忘记更换.dll文件的版本(x86),与.lib文件不匹配(x64)导致了LNK2019错误
1…34
avatar
Ali5669
文章
36
标签
58
分类
10
Follow Me
公告
爱你
最新文章
八股基础-JAVA2025-08-14
面试经验-拼多多一面2025-08-11
面试模拟-基础知识2025-08-06
面试模拟-架构演进与DDD实践2025-08-06
面试模拟-RocketMQ2025-07-30
分类
  • C基础知识2
  • Web1
  • WebSocket1
  • 三方库移植1
  • 人工智能1
  • 服务端1
  • 环境配置2
  • 算法5
标签
void* SFU OpenHarmony WebRTC RK3568 h264 Session RTP GC AutoTools BloomFilter 快速幂 Queue RocketMQ H264 ThreadLocal Tree LRU Spring Cloud Nacos Jetson Pub/Sub HashSet WorkFlow ubuntu SDP DDD RTSP RTMP Deque C++ WebSocket vlc C Spring Cloud Gateway Visual Studio AAC JVM 软件工程 TUS ShareDB
归档
  • 八月 20254
  • 七月 20257
  • 六月 20255
  • 五月 20251
  • 四月 20251
  • 三月 20251
  • 二月 20251
  • 一月 20251
网站资讯
文章数目 :
36
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Ali5669
框架 Hexo|主题 Butterfly