自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (22)
  • 收藏
  • 关注

原创 修改PJSIP支持webrtc回声消除处理

增加两个方法处理播放和录制;支持webrtc_aec3。支持webrtc-aec。支持外部webrtc。支持外部webrtc。

2023-06-20 14:18:14 1732

原创 一个基于gfast框架的组团学习网站实现,代码已开源

计划是做一个基于翻转课堂实现的学习分享社区,让学习充满乐趣!围绕学习课程主题来展开,主题可以是一门编程语言,一本书(电子书或者字纸书均可),一个视频课程资源,互联网有很多的学习资源,如何提高自主学习的效率,用有限的时间快速的完成高质量的学习,以教为学,翻转课堂的学习方法自认为是有效解决自主学习效率的问题,座椅考虑做一个一个基于翻转课堂实现的学习分享社区;互联网有很多的学习资源,如何提高自主学习的效率,用有限的时间快速的完成高质量的学习,窃以为以教为学,翻转课堂的学习方法是当前最有效解决这..

2021-04-13 20:47:26 846 2

原创 关于开发转岗架构师的一点体会

今天看到有关于开发转岗架构师的文章,我从项目转到架构也有一年了,一点体会总结下。需要的背景和业务技能:1、已经是某一个业务领域的专家,在该领域有从设计、开发到上线,有完整的经历,业务领域被周围同事认可;2、知识的广度要能覆盖到该领域所需要的所有技能,比方对开发语言来说,如果产品涉及多端,则要有跨平台开发所需要具备的技能;转岗前的准备:1、通过一个认证或者参加一个培训...

2020-03-30 09:19:38 521

原创 视频转码服务架构说明书

需求说明视频转码服务,具备将高码率的视频转换为低码率的视频,和对不同编码格式的视频进行转换能力的后台服务;规格定义性能指标: 吞吐量和性能指标 4核 8G 1000M网卡 GeForce GT 1030 以上显卡 CPU 到 80% 网络占用率 到 70% 100路 720P 高...

2020-03-25 15:27:04 1397

原创 FFmpeg和x264的windows版本编译安装记录

网上有各种版本的介绍,建议优先参考ffmpeg官网的说明,因为更新时间关系,可能细节有差异,但差异不大:https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC1. 下载和安装YASM这一步好像已经不必要,最新版的代码中已经使用nasm来代替yasm。YASM下载地址:http://yasm.tortall.net/Download.h...

2020-03-23 17:45:53 867

原创 《Linux高性能服务器编程》读书笔记:linux服务器程序规范

服务器程序规范,需要强化和遵守的,作者给列了4条规范:1、Linux服务器程序一般以后台进程形式运行,也就是以daemon守护进程的方式,守护进程的父进程通常是init进程(PID进程为1),作者在7.6小结 服务程序后台化给出了一个程序的清单,还是很有参考意义的。后台进程形式运行,也就是通过fork一个子进程,结束父进程的方式运行,这样避免很多前台启动,随着操作终端界面的关闭而结束服务器程序的...

2020-03-06 16:42:47 231

原创 Windows端的java程序使用jni调用C++编写的库

Windows端的java程序使用jni调用C++编写的库,原来实现过在Android和Linux端通过JNI调用C++程序,在Windows端没有实现过,这里记录下几个关键的点;1、64位的dll工程,现在少有32位的平台,所以需要通过VisualStudio编译出64位的dll,注意属性页->C/C++->代码生成/运行库/选择多线程调试(/MTd),参考Linux编译选项的静...

2020-03-04 17:33:19 212

原创 char *转换为string的陷阱:char*中包含较多的'\0'

今天给团队调试一个错误,概率性的加密的数据没法做解密,现象是解密出来的结果和源数据长度不一致,很奇怪的现象,因为加密使用的数据是随机的,所以使得问题出现时表象是概率的问题;因为初次做加解密算法相关的项目,碰到这样的问题,首先是单步把解密流程过了一遍,发现解密没有问题,能正常的解密,但解密出来的长度就是不对,分析才发现加密后的数据的长度也不正常,所以考虑是加密源数据的问题,通过分析,才发现一个二...

2020-03-03 20:51:10 3005

原创 属性加解密库OPENABE多平台编译总结

OPENABE C++库 依赖库: Openssl 1.1.1 Relic 0.5.0 Flex 2.5.37 Gtest 1.8.0 Gmp 6.0.0 bison 3.4 Commits on Mar 31, 2019 https://github.com/zeutro/ope...

2019-11-25 20:30:46 1335 4

原创 Python小练习

一个小工具,发现有一个开源的诗词库(https://github.com/michaelliao/shici/tree/master/web/src/main/resources/text),考虑导入到数据库中,诗词库是通过文件夹方式组织,所以用python发现很快的实现这个需求,代码记录如下: #导入依赖库import os,sys from datetime imp...

2019-10-23 15:53:33 438

原创 webrtc中使用的QOS相关的标准协议

rtx :https://tools.ietf.org/html/rfc4588red:https://tools.ietf.org/html/rfc2198ulpfec:https://tools.ietf.org/html/rfc5109前一阵调测WebRTC的UlpFEC能力,发现一些问题,记录下来:问题1. 默认支持的音频codec type过多,出现主叫侧单方向音频类...

2019-09-23 11:00:38 277

原创 实现rtsp直播推流和拉流双向通话功能

推流端 服务器 观看端PUSH CLIENT -> DARWIN <-- PULL CLIENT15000(推流端的收发包rtp端口)5001 ...

2019-08-22 15:45:35 8805

原创 AnyRTC 的播放器类图

不得不说AnyRTC的代码架构上很好的做到了协议无关,解决了采集、编码,传输;收包、解码,显示的跨平台方案;今天尝试着做了一个RtspPull,结合live555的代码,很快就实现了一个rtsp的播放器功能;后续尝试着做一个RtspPush,实现rtsp的推流能力;...

2019-07-23 11:37:18 433 3

原创 一个一起读专业书的想法

记得李国庆有一句话说的意思是“至今为止,知识的获取方式还没有跟得上移动互联网高速发展的智能时代”,看到这句话的时候,刚好有新闻说在最近二十年脑机接口将会出现商用级产品,知识的获取方式一定会有革命性的变化,但李国庆提到的获取方式的变化,还是基于当前音频和视频形式的变化,阅读贵在坚持,坚持需要有一个合适的群体,相互推进着往前走,这或许是“樊登读书会”这么受欢迎的原因。由此想到,IT 类的专业书籍就更...

2019-06-26 20:57:23 298

原创 级联媒体转发服务器的方式部署,构建复杂网络环境下的媒体转发网络

媒体服务器就是转发UDP数据的RTP服务器,它的作用就相当于网络中路由器和交换机。我们把媒体服务器设计成一个模拟IP协议的应用服务器,构建复杂网络环境下的稳定的媒体转发网络。关于多个房间服务器,多个RTPProxy媒体转发服务器的部署方式:关于一个房间服务器,多个媒体转发服务器的部署方式:...

2019-06-06 17:13:52 1015

原创 RTPProxy代码结构说明

RTPProxy是纯C语言开发,使用面向对象的思路实现的对stream、session等的抽象,另外对象的构造、析构和引用计数机制都有实现,和doubango中对象的实现思路类似,每个对象一个c文件,提供类似rtpp_server_ctor和rtpp_server_dtor的构造和析构方法,然后提供一个结构体的实例化对象,结构体对象中第一个对象是该对象的公共接口方法指针,类似如下代码:stati...

2019-06-03 17:27:49 2484

原创 给srs长时间推流内存增长异常问题处理

使用librtmp库将拉取监控的rtsp流推送给srs服务器,发现一个异常,在长时间大概1个月后发现系统内存被srs吃满,也不知道是什么原因产生的这个现象,并且通过top去查看srs的内存在持续增长,通过ffmpeg推流没有这个现象,感觉还是librtmp使用的问题,暂时也没有很好的思路分析;通过查看srs的git库,发现srs提供了一个srs-librtmp的源码库,能完成推送h264裸流的...

2019-05-24 15:54:29 1829 1

原创 Android应用交付质量提升调查

近期我们一直在思考如何提升Android端应用的开发和交付质量,Android端应用交付质量相关表现:1.提交测试后的BUG数量;2.稳定性:测试反馈的卡顿、重启、耗电等偶发性性能问题数量;3.上线后用户评价:产品上线后反馈问题数量;4.可扩展性:定制扩展修改困难,一处修改,却导致其他功能逻辑出现问题;5.可维护性:代码规范问题,编码风格不统一,维护困难;6.流程规范性:提...

2019-05-20 16:56:39 159

原创 监控摄像头的拉流转发实现

这两天一直在调试Darwin的拉流转发功能,也就是使用Darwin服务器拉取另一个RTSP服务器的视频流(比方监控摄像头)的实时视频,然后通过Darwin服务器提供的rtsp地址进行转发播放,这个简称为拉流转发服务,基本功已经正常完成(网上有一个QTSSOnDemandRelayModule的思路可以参考:DarwinServer);现在包括海康摄像头提供的萤石云服务,其实是将这种拉流转发服务直接...

2019-04-18 16:50:17 6558

原创 实时监控视频转码处理

实时监控视频的码率通常在5M以上,如果做比方手机端的实时预览查看,对带宽是很大的考验,所以很有必要先做降分辨率,然后降码率的处理。所有的处理在后台服务器进行,大致的业务流程如下:海康监控摄像头输出的分辨率是:2560*1440 ,ffmpeg提供的方法能很好的完成这个流程,其实网上有很多例子,但都不全,去看ffmpeg源码提供的例子来实现是很好的办法,比方ffmpeg-4.1的例子代码在\...

2019-04-08 19:27:26 2963

原创 WebRTC库在Android端后台运行时内存和功耗高的问题修改

1、在房间数超过10个后,so底层库在创建socket时报文件句柄太多导致tombstone的问题怀疑是libjingle的so被加载多次,导致占用内存过大引起,解决方法:修改PeerconnectionClient中的PeerconnectionFactory对象factory为单实例对象,多个房间共享一个factory,经过验证,可以创建20多个房间都不在产生这个现象。2、后台运行时,...

2018-12-21 14:27:43 1630

原创 GB33154-2017规范讨论之公共安全视频监控联网信息安全技术要求

     

2018-12-17 20:54:44 1332

原创 一个小程序从零到上线记录全过程

PS:以前写过简单的 js,所以入门不算太难;有同学说微信小程序的开发过程让开发者很爽。依赖完全原生的体验,小程序的开发效率提高了不少,从开始到上线,确实有这种体验:开发快,加载快,体验好。0、先是将微信小程序的“简易教程”来回看了好几遍,算是明白了一个小程序的目录结构,json 配置文件,wxml 模板文件,wxss 样式文件和 js 文件的作用,以及交互逻辑,从小程序的启动到生命周期方法,...

2018-12-13 10:46:53 908 2

原创 使用Janus作为对讲服务器的后台框架和业务流程

对讲后台业务架构图如下图: 图1、对讲后台业务架构图 通过NGINX负载Janus http服务器的API接口,通过该API接口可以获取可用Janus服务器的IP和端口;客户端拿到可用对讲服务器的IP和端口后,通过WebSocket连接到该服务器,并保持长连接,客户端进入会议室时,则复用这条长连接;如果进入其他会议室,则需要重新获取可用的Janus服务器IP和端口,并重复上述过...

2018-11-21 09:44:48 3849 1

原创 读书笔记(一):《简单的逻辑学》

干程序员这行,给计算机读的编程语言,如果缺少哪怕一个分支的逻辑,计算机的执行结果绝对是超预期的,轻则跑飞,重则崩溃,所以逻辑思维严谨是程序员这个职业基本的素养;那作为一个资深的码农,为什么会去看《简单的逻辑学》,缘由是逻辑思维的推荐,逻辑学作为底层临界知识的一部分,如何清晰高效地思考,如何不犯低层次的归因错误,在面对充斥大量繁杂信息的互联网世界,如何有独到性的思考,就需要对逻辑思考的能力进...

2018-11-16 17:03:57 1750

原创 如何避免后台服务的单点故障&动态增加服务扩容能力

   

2018-11-01 09:30:28 1279

原创 Freeswitch和东方网力平台的GB28181国标上下级对接

一、Freeswitch作为国标下级1、主要工作:注册到上级平台、心跳上报GB28181终端设备目录上报(查询上报和主动上报)东方网力平台调取终端实时视频(一对一)东方网力平台调取终端实时视频(一对多)东方网力平台调取某个终端回传的历史视频2、大致实现:在/usr/local/freeswitch/conf/sip_profiles/external配置外部网关,网...

2018-09-05 10:26:02 4006 3

原创 修改Janus,支持datachannel通过rtp通道传输

Janus的datachannel支持的协议主要是:“DTLS/SCTP”、"UDP/DTLS/SCTP",而RTP通道使用的是"UDP/TLS/RTP/SAVPF",修改的思路包括SDP返回的修改,RTP数据包中提取datachannel包对应SSRC的包。1、给janus_ice_stream结构体添加data的ssrc字段和初始化: guint32 data_ssrc_pee...

2018-09-04 21:22:12 2790 3

原创 基于Janus房间服务器的POC对讲实现

一、理解Janus插件janus_videoroom的包转发实现该插件模式具备SFU的包转发能力,每一个进入房间的与会者,可以通过Publish发布自己的音视频,也可以通过Subscribe订阅其他人的音视频,转发能力由libnice库提供二、理解POC对讲半双工模式下的包转发实现POC,是PTT Over Cell 的简写,PTT是按下讲话的意思,要么说,要么听别人说,不会出现同时讲话&...

2018-08-20 16:25:14 2076 3

原创 Janus客户端修改WebRTC源码支持会议室功能

Janus客户端使用最新版本的WebRTC的so,发现subscribe组时,不能看到火狐客户端推送的视频分析日志,原因是接收rtp包的receiver的sink中没有被注册任何接受者,所以解码后的数据帧没有被回调到应用层。 经过分析,刚开始以为是mid不一致所致,后来发现,是底层库对sendonly做了特殊处理:火狐的SDP:mid为video字符串a=group:BUN...

2018-07-31 20:51:34 1787

原创 licode 环境搭建

1、根据安装指南安装(参考:http://licode.readthedocs.io/en/master/from_source/ 即可),如果顺利的话,应该都能正常过去,有失败可能是网络问题,所以先得有个好的网络;2、运行basicExample,发现起来后看不到视频,主要是ice等服务器信息配置不对,修改licode根目录下的配置文件licode_config.js,主要修改其中的stun服务...

2018-05-08 14:56:36 4512

原创 Doubango SIP和WebRTC的融合

1、融合基础:熟悉WebRTC媒体流采集、编解码和发送流程熟悉SIP信令和协商流程2、完成SIP信令和WebRTC的对接,实现音、视频通话3、具体实现步骤:采用webrtc的demo部分代码,jni还是用Peerconnection封装的接口,因为webrtc demo采用的jingle协议还是比较好理解的,客户端CreateOffer、CreateAnswer,然后就是ICE的通信和交互流程,最...

2018-04-02 20:13:50 952

原创 WebRtc中关于rtp-mux的实现!

测试对比发现在开启rtp-mux和不开启rtp-mux时,视频卡顿的现象改善更加明显,先记录下,后续研究rtp-mux的作用! rtp-mux简单说是视频流和音频流使用同一个端口发送和接收,在接收后做解复用识别音频和视频包,然后扔给指定的解码器。...

2018-03-19 15:46:06 896

原创 freeswitch 1.7分支代码编译记录

1、 执行./bootstrap.sh生成configure等脚本2、openssl的版本不能太新 也不能太老,最低版本是1.0.1e,建议只安装1.0.1e3、因为openssl的安装路径在/usr/local/ssl/目录下,所以只需configure需要指定openssl的头文件和库路径:./configure --prefix=/usr/local CFLAGS='-I/usr/local...

2018-03-19 15:18:29 322

原创 Doubango RTP包传输使用UDT可靠传输协议,解决RTP丢包问题

使用SIP做过VOIP通话的同学,肯定被RTP丢包弄的焦头烂额,必定尝试过不少的办法,比方:1、丢包重传(NACK)2、前向纠错(FEC)3、丢帧处理但效果往往不尽如人意,那有没有一劳永逸的方法?确实,网络发展到现在,家庭带宽随随便便都是百兆的今天,为什么还有让人困扰不已的丢包问题?为何不换成TCP传输,假如延时容许的情况下,UDT就是为了解决这个问题的。UDT建立于UDP

2017-04-20 17:02:54 3696 5

原创 混合应用开发框架Cordova源码学习总结

有说法是,采用混合模式的WEBVIEW来开发界面,通常适用于需要经常变更的页面,比方活动页,或者其他展示页面;相对警务行业应用来说,哪些使用原生界面开发,哪些使用WEBVIEW来开发,需要从我们当前的痛点出发来考虑,当前警务行业应用主要是开发周期相对长,采用WEBVIEW的方式来开发,在通用基础则框架的基础上,则能缩短在UI上的开发时间,提升交付效率;但对WEBVIEW开发应用的体验的提升,是我们

2017-02-15 19:59:54 1183

原创 Freeswitch的mod_av模块优化

最近在解决一个Freeswitch录制视频后出现视频灰色方块区域的问题,找到问题是和编码packet的PTS/DTS有关系,当然也考虑了对这个模块的优化。AVStream的time_base   AVCodecContext 的time_baseAVStream->time_base比AVCodecContext->time_base精度要高(数值要小),比如AVS

2017-01-19 09:54:27 4451

原创 我的2016,成长之路总是充满坎坷

秋风起,落叶黄,满头白发,一夜诉凄凉0、值得怀恋一年里,有几件值得怀恋的事,工作上,我们主导的视频回传应用,终于有了第一个客户,居然在两个星期的时间里,第一次GB28181对接海康平台,就成功的实施,简直是一种意外,但总的来说,还是需要感谢团队同事们的努力;而第二个客户的东方网力平台,却没有对接成功,虽然将责任指向了对方厂家的不配合,但多少有遗憾,如果考虑或者准备的更充分些,有经验更丰

2016-12-26 17:27:59 2369 6

原创 关于程序员团队管理?

期望有一种团队,就如同Scrum开发模式中提到的,每个人都能进入自组织模式,自我管理,自我约束,积极主动沟通,清楚需求,构建方案并发起评审,高效开发,组织代码Review,完善的自我验证手段和方法,提供高质量的交付,测试后,完美通过验收;临近下班了,和同事闲聊下班后惬意的生活;

2016-12-11 11:05:04 3472

原创 我期望的Android APP开发方式

其实写了这么多的Android APP后,越发觉得好多代码都是技术含量很低的重复的复制、粘贴,项目上的实现已经越来越没有挑战性和并能激起开发兴趣,那么这些重复的工作是否能在未来的开发中简化并且提升开发质量呢,这可能是我最近在想的问题。1、代码基础库的构建,GITHUB上有很多这种类似的基础库,关于网络请求、DB操作、公共方法等等,关于可以提取出一套作为公共资产;2、基础框架的搭建,

2016-12-05 16:37:51 614

UWB测距工程,基于DECAWAVE EVK1000官方源代码的分槽位测距实现

UWB测距工程,基于DECAWAVE EVK1000官方源代码的分槽位测距实现

2022-07-15

蓝牙AOA高精度定位技术白皮书.pdf

蓝牙AOA高精度定位技术白皮书

2021-03-15

2020年数字安全十大产业方向、十大技术赛道研究报告.pdf

产业安全方向研究报告

2021-03-15

面向物联网信息安全保护的轻量化密钥体系设计.pdf

面向物联网信息安全保护的轻量化密钥体系设计

2021-03-15

消费级物联网安全基线.pdf

小米AIOT安全实验室 2020-12发布主要描述了针对消费级物联网终端设备的安全基线要求

2021-03-15

可信计算TPM标准2015

TCG发布的标准2.0, 包括:c066510_ISO_IEC_11889-1_2015 c066511_ISO_IEC_11889-2_2015 c066512_ISO_IEC_11889-3_2015 c066513_ISO_IEC_11889-4_2015

2020-11-11

GB35114分析文档

主要对GB35114协议过程中使用到的密钥,密钥生成规则,作用,以及密钥关系做了完整性分析,对实现GB35114的同学可以参考!

2019-03-14

关于软件和架构的思考

最近转岗到架构部,对软件、系统,和软件架构系统性的看了一些书,做了简单的整理

2019-03-14

后台服务可靠性架构讨论

后台服务如何避免单点故障,以及动态增加服务扩容,这是一个后台架构的探讨性PPT

2018-11-01

curl源码包

curl 的最新版本源码包,上传CSDN方便下载使用 可以直接下载!

2018-03-19

opus的源码

opus最新的源码,最近发现官网不好访问,上传到CSDN方便下载

2018-03-19

GB28181(SPVMN 视频监控联网调测软件)使用说明

GB28181(SPVMN 视频监控联网调测软件)使用说明! 调试GB28181平台的符合性测试工具!

2016-06-02

crtmpserver创建指南和程序包

包括:编译和使用指南 xampp-win32-1.8.3-0-VC11-installer_12489_BDdl VCam_v5.1 虚拟摄像头工具 openssl-0.9.8zg.tar flashmedialiveencoder_3.2_wwe_signed crtmpserver-master_build.tar

2015-11-19

android火车票查询源码

android火车票查询源码 代码结构清晰,值得学习

2012-02-29

Android应用之信用卡管家源代码

Android应用之信用卡管家源代码分享 作为学习使用

2011-06-06

BREW SDK TOOLS 111 SP02 e

BREW SDK TOOLS,包括BREW应用程序向导,BREW MIF 编辑器, BREW资源编辑器。

2010-06-05

PHP 网页抓取程序 源码

PHP 网页抓取程序 源码清晰, 很有参考价值哦

2010-05-29

领域驱动设计软件核心复杂性应对之道--- 领域驱动 的必读书

领域驱动设计这个过程就是对领域的分解、提炼,从而整理出领域中包含的问题和概念。 在整理过程中,我们会找出解决问题的方法和流程,这些方法和流程就是我们常说的“业务逻辑”。而领域中包含的概念则大多会抽象为“模型”。 领域驱动设计的本质就是从领域包含的问题和知识中抽象出软件需要的那部分。而领域驱动开发则是以领域驱动设计思想为基础的开发方式。 对领域驱动的理解将极大的提高你的面向对象思微和软件设计开发能力

2009-08-01

设计模式可复用面向对象软件的基础

设计模式可复用面向对象软件的基础 :本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。

2009-03-31

Linux1.0核心游记

Linux1.0 代码,很专业、并且是用风趣的语言来分析 Linux1.0 内核代码 pdf文档

2009-01-08

数字电视一体机的软硬件架构参考模型设计

随着中国数字电视地面广播标准的执行,与之相关的数字电视一体机的开发就成为了电视厂商新产品开发的热点。本文在分析数字电视概念和原理的基础上,设计了数字电视一体机硬件构成与软件架构的参考模型,并对软硬件层实现的关键技术,如软件层模拟频道和数字频道的全自动切换,CA条件接收系统的实现,和硬件层的相关技术做了具体的分析。

2009-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除