- 博客(120)
- 资源 (8)
- 收藏
- 关注
原创 2023.12.27数据包分析技术与网络基础
发起连接:谁发起,真正通信前做了啥 协商连接参数:加密、如何传输 数据格式:数据如何排列、数据包的顺序。理解PDU的传输过程:PDU沿着OSI模型向下时,PDU逐渐变化、增长、各层协议均将头部或者尾部的信息加进去,到物理层时,最终形式发给计算机;-广播流量:广播数据包会发送到一个网段上的所有端口。用来实现目标:网络特征、通信主体、谁在占用带宽、高峰时间、恶意活动攻击、寻找不安全以及滥用资源的应用。数据封装过程将创建一个协议数据单元(PDU):正在发送的网络数据、增加的头部与尾部数据;
2023-12-27 19:13:33
426
原创 【2023-03-04】QProcess启动进程后继承父进程fd导致的现场问题
在Linux系统上,父进程创建子进程时需要注意资源的继承,本场景中,socket文件描述符就是其中一个。
2023-03-04 23:04:45
823
原创 【2022-12-16】使用 fork-exec模型编写守护进程一个注意点
在编写 fork-exec模型的守护进程时,在while循环中,使用fork创建子进程,在pid=0的条件下,使用execvp函数替换当前程序;
2022-12-16 13:28:18
208
原创 2022-10-22 下载安装编译使用Google_Protobuf一篇到位
该库的介绍自行百度,项目中使用到的话,参考这篇文档;PS:本人编写的时候,也是第一次编译,请跟随我的脚步依次进行探索。期间可能会遇到多种多样的问题,我会分享我的解决方法和思路;
2022-10-25 17:13:58
2527
原创 2022-10-17 我帮你踩了libcurl接收json数据的一些坑
libcurl接收json数据时候的一些坑,以及对应的处理方法、代码;本文贴出了详细的排查跟踪过程;
2022-10-17 14:47:29
1202
原创 2022-08-12 Linux下epoll模型-高性能网络IO
本文结合代码和理论,将epoll的相关知识娓娓道来,希望对读者有用。同时对我个人也是总结和提高。
2022-08-12 16:20:37
372
原创 2022-05-18 使用std::future解决std::thread的局限性(异步等待线程结束、获取一次性事件)
使用future解决一次性事件,等待线程异步结束
2022-05-18 10:08:58
726
原创 2022-05-13【webrtc应用】yangrtc/metaRTC开源库源码分析(四)
标题yangrtc/(又名metaRTC)源码分析(四)这一次,我们解决了一个通信系统中常见的问题。语音播放数据的延迟问题。项目场景:业务流程大致如下:yangrtc拉取OPUS流,解码存入队列之后;业务线程从队列取出数据,进行编码修改后丢入编码后队列;Play业务取出编码后数据进行消费。问题描述在使用yangrtc库,进行二次开发的过程中,出现了一个问题,语音数据随着“拉流时间持续时间越来越长”,播放端出现了延迟越来越大的情况?原因分析:当右侧的编码后队列,不停的膨胀,
2022-05-13 15:48:58
577
原创 Linux下QProcess不产生finished信号、waitforfinished阻塞超时【defunct进程】
项目场景:涉及Linux下的多进程编程,比较让人绕晕。初步以为,是由于在子进程中,又创建了子进程,导致的最后创建的子进程异常。问题描述使用fork函数,创建子进程A;A主要 调用execvp函数拉起QT主程序B;主程序B中调用QProcess::start函数调用进程C(ffmpeg的命令);B中connect进程C的finished信号,或者waitforfinished均失败;异常有:1. finished信号不触发; 2. ffmpeg转码明明结束了,进程却不推出; 3.
2022-04-28 22:25:56
3962
原创 【经验分享】为什么视频画面解码失败之后显示的是绿幕?
项目场景:项目场景:我们在处理视频数据解码时,经常会遇到解码失败出现绿幕的情况,这个时候一般我们会去检查解码端的程序代码。问题描述在出现问题的时候,是否有考虑过以下的问题:“为什么是绿幕,不是黄幕、蓝幕或者其他颜色的?”原因分析:视频数据解码之后,是YUV格式,即分别由Y\U\V分量组成;最终画面显示的话,是需要由YUV格式转为RGB,RGB是三原色的red、green、blue的简称;当我们进行解码时,通常将YUV视频画面的数据初始化为0;当解码失败时,根据YUV与RGB的转
2022-04-22 13:37:03
1611
原创 2022-4-21 【webrtc应用】yangrtc/metaRTC开源库源码分析(三)
yangrtc/(又名metaRTC)源码分析(三)这一次,我们主要还是针对webrtc拉流操作,进行大胆的尝试,主要做了以下工作:简要归纳下一篇,将对核心代码进行分解,抽取出主流程,单独编译。文章目录yangrtc/(又名metaRTC)源码分析(三)前言一、归纳源码从SRS拉流的“粗”流程前言这次是一次大胆的尝试,做了一些归纳,希望有不足之处或者理解不对的地方,欢迎指正。同时后续随着对代码的越发深入了解,会不停的更新此文章,欢迎大家收藏。提示:以下是本篇文章正文内容,下面案例可
2022-04-21 16:32:55
690
原创 2022-04-19 【webrtc应用】yangrtc/metaRTC开源库源码分析(三)
源码在Linux场景下,播放webrtc流,能否与声卡剥离?我们的服务器,只需要执行拉流操作。
2022-04-19 10:15:58
1001
原创 【2022-04-18】 浅谈由window异常处理方法转向Linux下的异常编程处理
后端服务器开发经验分享在开发Windows程序时我们在开发Windows服务器时,除了在开发阶段尽可能的处理掉“程序异常”时,经常会遇到程序在客户机上跑时,各种各种奇葩的未经处理的异常,导致我们的程序core dump; 可以看下, Windows下C++异常处理,也可以看下《Windows核心编程》中有专门一章对齐进行解释。这种情况下,必须要求服务器对常用的异常进行“捕捉”、“分析”、“过滤“、”处理”;根据经验,通常可做以下一些操作:忽略异常;执行异常处理代码后,局部恢复动作;程序进入异常结
2022-04-18 12:06:48
744
原创 2022-04-03 【webrtc应用】yangrtc/metaRTC开源库源码分析(二)
接第一篇内容,分析一下play函数的大致业务流程;同时分享一种 “ 如何将yangrtc接收解码后音频数据进行二次利用”的方法?文章目录yangrtc/(又名metaRTC)源码分析(二)前言一、分析源码play函数二、使用步骤1.引入库2.读入数据总结前言开门见山:分析源码play函数;改造代码,使得自己能够单独取出音频数据(PS:这个需求应该非常通用)一、分析源码play函数关键函数palyRtc,从下图中可以看到,在de
2022-04-03 12:00:15
2713
1
原创 2022-03-31 Amr-nb格式字节对齐、非字节对齐的转换和解码处理(含源码)
开发音频解码时,amr-nb的非字节对齐如何转换成字节对齐,不会处理或者没有头绪的话,看我这一篇。满满的源码,有助于你理解协议格式的区别哦!!
2022-03-31 15:19:19
6641
原创 2022-03-15 【srs流媒体】rtmp超时中断场景解决,如何增加srs配置文件conf的配置项
教你如何配置SRS。解决问题场景:librtmp推流时,因短暂未推送导致与SRS的连接中断;产生的Broken pipe错误,如何解决?
2022-03-15 13:49:38
4135
2
原创 2022-03-13 今天谈谈我自己对于工厂模式的理解和使用
本文主要与大家闲聊抽象工厂模式在实际中的应用,并且用我通俗易懂的语言让大家明白。如果讲的不好,还望指点。文章目录前言一、紧耦合问题二、导致什么问题二、抽象工厂模式中心思想1.引入库2.读入数据总结前言设计模式的出现,让程序员大大提高了开发效率;好的应用,也可以使得代码既简洁又可复用性高。可以说,它是前人经验的完美总结,用它不会错。提示:以下是本篇文章正文内容,下面案例可供参考一、紧耦合问题开发C++程序时,在类A中,创建其他类B\C\D的时候,经常会使用new一个对象;由于程序是随需.
2022-03-13 22:53:38
1096
原创 2022-3-12 【webrtc应用】yangrtc/metaRTC开源库源码分析(一)
学习webrtc一定要结合源码。理解webrtc基础之后,用yangrtc/metaRTC这个库去实践和检验认知。webrtc的原始api实在太大了,听我的跟我一起边分析源码,边豁然开朗吧。
2022-03-12 16:02:44
4467
原创 2022-3-11 基于libevent/evhttp模块的简易http服务器归纳小结-与前端同事的互侃
libevent的单个base对象并不能处理多并发应用请求;libevent的多线程http服务器,实际就是tcp的多线程并发处理;libevent接收请求似乎是并发接过来,但是处理的时候会报异常;
2022-03-11 21:06:00
1308
原创 2021-09-23 基于ffmpeg+nginx+rtsp的http-flv点播方案-推流失败问题分析
项目场景:使用ffmpeg拉取rtsp服务器的码流,并且推rtmp流到nginx,web前端使用flv码流进行点播;拉流以及推流使用的是ffmpeg原生接口;点播服务器使用是NGINX,并集成了http-flv模块(可以参考我的其他文档。)问题描述:ffmpeg打开rtsp的url,从in_stream的码流中,复制所需要的h264编码信息;然后写入对应的rtmp流(out_stream)中,结果发现写入函数av_interleaved_write_frame一直异常,无法写入?并且错误信
2021-09-23 17:11:48
4476
原创 2021-09-18 编译nginx带http-flv-module模块的小结
nginx编译http-flv-module模块基于nginx-1.8.0编译带http-flv-module模块步骤方法;并打开nginx的debug日志登记,捕捉调试信息;文章目录nginx编译http-flv-module模块前言一、编译准备二、编译步骤1.引入库2.打开日志登记调整为debug总结前言记录几个细节一、编译准备1. nginx1.8.0代码2. http-flv-module-master源码;3. 将http-flv-module-master源码复制到
2021-09-18 11:11:13
483
原创 2021-09-18 稍微写一些关于RTSP协议分析后的小结
RTSP协议(Real Time Streaming Protocol)偷懒了,好久没更新了。近日,在做一些视频推流方面的工作,大致的内容,就是利用ffmpeg拉取rtsp流,推送至nginx服务器,由nginx实现rtmp的视频流点播功能。遇到了一些问题是关于RTSP协议的,下面就对协议结合数据包做一些分析和总结;下面跟着我的思路一起学习和理解RTSP协议吧。文章目录RTSP协议(Real Time Streaming Protocol)前言一、什么是RTSP协议,与RTP\RTCP什么关系?二
2021-09-18 10:51:58
906
amr-nb格式的使用,非字节对齐转换成字节对齐的源码。
2022-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人