...
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
PKPushStreamServer.exe服务的流程如下
draw.io Diagram | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
信令线程池的实现流程图:
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
程序开发过程中常见的问题:
- 视频推流正常,但是显示视频端,视频显示的播放慢:
- 最大的原因是流的pts和dts的计算问题。每次推流的时候,都是pts和dts归0.开始推流的。在函数CalcPtsAndDts()。之前frame_index 每次多加了个1.导致视频流卡
- 在计算pts和dts的地方,程序异常:
- 调试发现:设置流的协议地方出错,setStreamInfo();使用默认参数即可。 导致out_stream的指针为空。异常。
程序异常修复记录:
2020-03-22:
- 修复解析json消息的地方。JSONMSG的消息未赋值摄像机名称。导致在打印日志的地方。异常。
2021-02-26的PKPushStreamServer的模块化重构:
- 接收VideoDispatchServer推送过来的消息的模块:分别做成动态库。对以后的通信模块做成可扩展。
需要统一的定义接收消息的公供结构体,通过回调函数回调到信令服务的接口信息。
定义结构体: cmdStruct- pkhttpserver: 直接推送httpserver的模块消息
- pksubredis:订阅redis的消息通道获取消息