- 博客(9)
- 收藏
- 关注
原创 H264 NALU头部结构
H.264视频编码中的NALU头部结构解析:1字节NALU头包含3个关键字段 - 禁止位(1bit)、参考级别(2bits)和NALU类型(5bits)。其中NALU类型决定数据内容,常见类型包括:SPS(7,全局参数)、PPS(8,帧级参数)、IDR帧(5,关键帧)和SEI(6,增强信息)。SPS和PPS属于重要参数集,IDR帧具有重置解码器状态的特殊功能。三者共同构成解码基础:SPS定义全局规则,PPS细化解码参数,IDR帧提供随机访问点并清空参考帧缓存。
2025-10-23 17:33:29
318
原创 FFmpeg AVIO 内存输入/输出
本文介绍了FFmpeg AVIO内存输入/输出的核心机制,通过回调函数实现从非传统数据源(如内存、网络等)读取数据。文章对比了传统文件I/O与AVIO的差异,详细解析了代码实现流程,包括数据结构定义、回调函数实现和主函数调用。重点说明了回调函数的调用时机、绑定过程及内部调用链,并分析了AVIO的性能优势与适用场景。最后强调了内存管理注意事项和性能权衡,总结出AVIO通过灵活的回调机制为特殊数据源处理提供了高效解决方案。
2025-10-11 17:15:01
290
原创 Filter音频混流
初始化与文件打开滤镜图构建解码-滤镜-编码循环资源清理下图直观地展示了数据在整个程序中的流动路径和核心处理过程:fill:#333;color:#333;color:#333;fill:none;FrameFrame流入滤镜图流入滤镜图处理后的Frame拉取Frame写入输入文件 recv.aac解码器1解码Packet为Frame输入文件 trip.aac解码器2解码Packet为Frameabuffer源滤镜 1abuffer源滤镜 2amix 混合滤镜。
2025-09-17 17:16:19
1010
原创 C++多线程
一、补充一些知识点1.1 虚假唤醒:notify_one或者notify_all唤醒wait()后,实际有些线程可能不满足唤醒的条件,就会造成虚假唤醒,可以在wait中再次进行判断解决虚假唤醒。解决:wait中要有第二个参数(lambda),并且这个lambda中要正确判断所处理的公共数据是否存在。这里只有读取atm是原子操作,但是整个这一行代码并不是原子操作,导致最终显示在屏幕上的值是一个“曾经值”。//不可以这种拷贝初始化不可以,会报错。load()以原子方式读。
2025-03-21 17:51:13
912
原创 记录学习poll/epoll模型中的问题
学习TCP套接字变成的过程中,在虚拟机的CentOs7系统上运行了基于TCP的服务器端,但是在本机Windows系统下运行客户端却始终不能成功通信,花了很长时间才解决问题,在此记录一下。
2024-06-20 14:38:35
420
原创 句柄和指针
学习的过程中不太理解句柄是什么,和指针有什么区别,看了一个视频(指针和句柄),感觉大致理解了一点,记录一下,在实际应用中再有理解会继续补充。
2024-04-23 15:49:11
1456
2
空空如也
数字图像处理中,图像f(-x,-y)和f(x,y)是什么关系
2022-10-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅