- 博客(288)
- 资源 (10)
- 收藏
- 关注
原创 【[issues]】opensips 踩坑 483错误 sip: SIP: SIP/2.0 483 Too Many Hops
在公网服务上搭建开源opensips 配置ip后一直弹 483 错误。
2024-02-27 16:09:18 91
原创 grafana api创建dashboard 记录
直接在ui通过json model 导入,开发自己用还好,但对非开发人员不太友好,故考虑通过api后台自动创建。一个质量监控就搭好了 .
2023-10-13 11:37:49 1302
原创 linux c++ 非阻塞tcp socket client简单实现
需求还需上报下数据,服务本身就是单进程线程安全的,不能用阻塞socket,通过getsockopt() TCP_INFO弄了个简单判断连接存活的方法,数据不是很重要,可靠性要求不高,也可以考虑udp.
2023-07-14 15:38:59 1293
原创 webrtc QOS笔记四 Nack机制浅析
NackModule2::GetNackBatch(kTimeOnly) :kTimeOnly 根据时间判断是否发送nack,在没有打开补偿配置的情况下间隔为一个rtt时间,rtt会动态更新(默认频率1000ms), 初始值为kDefaultRttMs(100ms), 再次发送的时间 resend_delay 默认为一个rtt 时间,即一个rtt时间后没有收到重传回来的nack,就继续发送, 实验阶段增加了补偿配置,可以动态延长resend_delay 延迟, 可以作为改进方案之一, 后面有提.
2023-04-04 11:28:00 732 1
原创 webrtc QOS笔记三 RTT计算,SRS增加XR
完整NTP时间戳用64bits表示,左半32bits表示整数,右半32bits表示小数,一般为了紧凑,取中间32bits表示即可,这时整数与小数分别16bits表示)。记录着上次源SSRC_n发送SR的NTP时间,从收到的SR记录的NTP时间戳获取。记录着上次源SSRC_n发送Receiver Reference Time Report Block的NTP时间,从收到的Receiver Reference Time Report Block记录的NTP时间戳获取。记录着发送该SR的NTP时间戳。
2023-03-22 16:01:29 932
原创 [issues] webrtc 接入SRS丢包率不正确问题
SrsRtcConnection::negotiate_play_capability 里面分配 rtx_ssrc_, rtx_pt, rtx_apt。: SRS暂不支持RTX通道发送nack重传包,重传包以media形式发送,sdk没有区分开来,没有将nack重传包计入丢包统计,得到的实际丢包率远低于实际丢包率。RTX在webrtc SDK里面视频是默认打开RTX的[M88],SRS没有支持,需要先在SRS SDP协商里面解析和分配rtx相关字段.这里简单过来拉流端增加方法。
2023-03-17 09:46:59 215
原创 webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题
webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题
2023-02-23 17:56:29 288
原创 opengl helloworld vscode 调用glfw 绘制三角形
opengl helloworld vscode 调用glfw 绘制三角形
2022-07-06 18:22:28 669
转载 【issue】Git 对库文件权限的管理 git config core.filemode
Git 对库文件权限的管理 git config core.filemode
2022-06-25 13:47:15 2145
原创 k8s学习笔记一(搭建&部署helloworld应用)
k8s学习笔记一(搭建&部署helloworld应用)文章目录k8s学习笔记一(搭建&部署helloworld应用)虚拟机创建三个节点k8s install部署hello world 应用issue 汇总node 一直处理NotReady状态重启系统后虚拟机的网络不通虚拟机创建三个节点这里略过.网络模式用的hostonly系统ubuntu 20.04k8s installset -x#根据规划设置主机名(在3台机上分别运行)hostnamectl set-hostn
2022-03-23 12:01:43 2183 1
原创 [golang] go中如何监听一组channels
go中如何监听一组channelsreflect.Selectfunc Select(cases []SelectCase) (chosen int, recv Value, recvOK bool)cases := make([]reflect.SelectCase, len(chans))for i, ch := range chans { cases[i] = reflect.SelectCase{Dir: reflect.SelectRecv, Chan: reflect.Valu
2021-08-20 19:54:59 878
原创 [ffmpeg][issues] bit_equal_to_one out of range: 0, but must be in [1,1]
[ffmpeg][issues] goav Dictionary crash double free4.2版本ffmpeg在英伟达440驱动上编码,并使用h265 bsf 比特流滤镜写SEI的时候出现的一个 issues,[AVBSFContext @ 0x558a46855680] bit_equal_to_one out of range: 0, but must be in [1,1]. [AVBSFContext @ 0x558a46855680] Failed to read unit 0 (
2021-08-19 18:01:06 456
原创 ffmpeg protocol concat 进行ts流合并视频的时间戳计算及音画同步方式一点浅析
ffmpeg protocol concat 进行ts流合并视频的时间戳计算及音画同步方式浅析文章目录ffmpeg protocol concat 进行ts流合并视频的时间戳计算及音画同步方式浅析audio 10 video 5s 衔接测试audio 5s video 10s 接着音频短的片尾斜街一段小结ffmpeg 有三种常见的视频合并方式: demuxer,protocol,filter这里有介绍它的使用 :http://trac.ffmpeg.org/wiki/Concatenate#dem
2020-12-26 18:37:20 2188 2
原创 ffmpeg中的像素格式是如何存储的(AVPixFmtDescriptor)
ffmpeg中的像素格式是如何存储的ffmpeg的像素存储方式描述主要定义在了pexdesc.h中,下面看看这个结构体./** * Descriptor that unambiguously describes how the bits of a pixel are * stored in the up to 4 data planes of an image. It also stores the * subsampling factors and number of components.
2020-06-19 00:47:49 1686
原创 如何在ffmpeg中添加一个简单的filter
如何在ffmpeg中添加一个简单的filter文章目录如何在ffmpeg中添加一个简单的filterfilter大体写法yuv模型测试graph dump大体步骤如下:1. 编写filter文件, 比如vf_xxx.c, 放在libavfilter目录下2. 在libavfilter/allfilters.c +++ extern AVFilter ff_vf_xxx3. 修改libavfilter/Makefile +++ OBJS-$(CONFIG_XXX_FILTER) +=
2020-06-14 19:04:49 1055
原创 ffmpeg转码步骤源码实现的一点点浅析
ffmpeg转码步骤源码实现的一点点浅析ffmpeg转码过程对解码的处理封装在process_input()中(process_input()->decode_video()->decode()->avcodec_send_packet()),转码过程中ffmpeg会通过avformat库一包一包的读取avpacket经过avcodec_send_packet()往内部解码器送原始音视频压缩包、这里也提一下,我们都知道avpacket 和 avframe 是ffmpeg的通用帧封装 ,
2020-06-02 22:43:30 681
原创 mp4封装格式各box类型讲解及IBP帧计算
mp4封装格式各box类型讲解及IBP帧计算文章目录mp4封装格式各box类型讲解及IBP帧计算boxftyp boxmoov boxmvhd box (Movie Header Box)trak box (Track Box)tkhd(track header box)mdia (Track Media Structure)mdhd (Media Header Box)PTS和DTS的计算I P B 帧的概念stts(Decoding Time to Sample Box)ctts(Compositio
2020-05-17 22:24:34 1212
原创 mongodb pymongo api 简单测试
mongodb pymongo api 简单测试MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。不管学习什么内容,我们都应该从它的基础开始,掌握它的基础知识,才能用好它。import pymongoi...
2020-05-05 12:17:32 401
原创 dockerfile demo
dockerfile demo文章目录dockerfile demo什么是 Dockerfiledockerfile 指令build go demo镜像什么是 Dockerfile一个构建镜像的文本文件,包含了一条条构建镜像所需的指令,类似脚本。dockerfile 指令• FROM #需定制的镜像,定制的镜像都是基于 FROM 的镜像,例如:FROM ubuntu:...
2020-04-06 18:08:32 429
原创 python 操作 zookeeper 快速入门
python 操作 zookeeper 快速入门文章目录python 操作 zookeeper 快速入门什么是zookeeperpython 操作 zk 快速入门zk节点创建节点查询节点修改节点删除节点什么是zookeeper什么是zookeeper : 这篇zookeeper讲的还满清楚的python 操作 zk 快速入门今年开始接触第五门开发语言了, 以前总听说python 效率低...
2020-03-29 20:32:39 1482
原创 [整理] FFmpeg官方文档树
扫了一遍官方文档,整理张官文树。当然还有很多细节,可以慢慢沿着树根填,有需要可以联系我要ProcessON源文件,我尽量给个最新的出来。官文 : http://ffmpeg.org/documentation.html...
2020-03-25 14:29:47 256
原创 intel硬件视频加速技术简单整理
硬件视频加速技术文章目录硬件视频加速技术intel 硬件加速技术intel 的开源媒体栈**`VA-API`**安装样例**`Intel Quick Sync(QSV)`**API支持情况vaapi/mfx比较安装样例硬件视频加速(Hardware video acceleration) 通过让显卡编解码视频,从而减轻cpu负担并且还能节省电源。在linux上的几种实现:Video Ac...
2020-03-09 18:05:39 2204
原创 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)
网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)文章目录网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)简结RTP RTCP RTSP 区别与联系RTSP、RTMP、HLS 区别与联系关于直播流媒体各协议层次图基于RTP的流式媒体RTPRTCPRTSPRTSP请求例RTMPRTMP扩展HLS简结RTP RTCP RTSP 区别与联系RT...
2020-03-07 22:47:44 1002
原创 RTMP协议推流交互流程
RTMP协议推流交互流程文章目录RTMP协议推流交互流程RTMP协议推流流程RTMP握手RTMP建立连接RTMP建流&PlayWireshark抓个RTMP流想了解下直播常见协议RTMP,可是看着网文,头疼,这里记录下RTMP协议推流播放的交互流程,细节可以再看规范,感觉会舒服一些。RTMP(Real Time Messaging Protocol 实时消息传输协议)RTMP是由...
2020-03-05 17:52:43 1074
原创 go微服务框架kratos学习笔记十(熔断器)
go微服务框架kratos学习笔记十(熔断器)文章目录go微服务框架kratos学习笔记十(熔断器)什么是熔断熔断器逻辑kratos Breakerkratos 熔断逻辑kratos熔断器使用说明bladmaster client breaker配置说明test什么是熔断假设存在这样的调用链:服务A -> 服务B -> 服务C如果服C crash 或者一些原因导致不可...
2020-03-02 18:57:47 1728
原创 go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)
go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)文章目录go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)zipkin使用demo数据持久化当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,...
2020-02-25 23:21:30 1451
原创 go微服务框架kratos学习笔记八(kratos的依赖注入)
go微服务框架kratos学习笔记八(kratos的依赖注入)文章目录go微服务框架kratos学习笔记八(kratos的依赖注入)什么是依赖注入google wirekratos中的wireProvidersinjector(注入器)Binding Interfaces笔记二提过依赖注入,和如何生成,但没有细讲,本文来简单看看kratos的依赖注入。什么是依赖注入来看一个小程序,创...
2020-02-21 18:20:17 1780
原创 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)文章目录go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)demodemo serverdemo client池daoservicep2croundrobingrpc官方负载均衡工作流程源码本节看看kratos的学习负载均衡策略的使用。kratos 的负...
2020-01-19 18:56:11 3117
原创 go笔记--几个例子理解context的作用
go笔记–几个例子理解context的作用文章目录go笔记--几个例子理解context的作用context interface先看一个简单的例程context的作用派生contxt经常在http框架里面看到一个context参数,它是做什么的呢,先简单看看它的定义。context interfacetype Context interface { // Deadline ret...
2020-01-17 18:20:51 1130
原创 go微服务框架kratos学习笔记六(kratos 服务发现 discovery)
文章目录@[toc]discovery 服务服务注册服务发现简测本节介绍kratos的discovery服务发现的使用,稍微看了下grpc的服务发现接口原理,感觉挺复杂的,打算还是抽出来下次单独写一篇原理性质的文章吧。所以先看使用大致过程是1、我们先启动bilibili的discovery服务2、然后服务先向discovery注册一个appid(唯一)3、client根据ap...
2020-01-13 19:31:23 2375 2
原创 2019年终总结&小半年流媒体服务器开发经验总结
2019年终总结&小半年流媒体服务器开发经验总结文章目录2019年终总结&小半年流媒体服务器开发经验总结19年开发小结流媒体服务框架设计登录服开发ffmpeg音视频服务开发音视频控制流媒体服务开发小结rtp处理视频的合成&音视频缓冲区音视频编码回顾19展望20时间转瞬即逝,转眼间19年已经过去了,人愈来愈来老,却不见人心和物质的提升,期望2020年能有一个崭新的自己。...
2020-01-06 23:13:42 2320 3
原创 go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])
go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])文章目录go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])静态配置flag注入在线热加载配置远程配置中心本节看看kratos的配置中心paladin(骑士)。kratos对配置文...
2019-12-30 23:17:58 2245
原创 go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)
go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)文章目录go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)warden directdemo-servergrpc.toml服务注册服务发现client direct 调用...
2019-12-29 12:56:40 1284
转载 go1.13 mod 常见问题
转载于知乎 :https://zhuanlan.zhihu.com/p/980756580,go mod 要求所有依赖的 import path 的path 以域名开头,如果现有项目转1.13的go mod 模式,且不是以域名开头则需要修改。 eg: code.be.mingbai.com/tools/any_test_del_free1, 既然已经更新到...
2019-12-29 00:22:03 3785
原创 go微服务框架kratos学习笔记三(构建单独的http或者rpc demo项目)
文章目录go微服务框架kratos学习笔记三(构建单独的http或者grpc demo项目)grpchttpgo微服务框架kratos学习笔记三(构建单独的http或者grpc demo项目)前面两篇跑通了demo项目,和大概了解了kratos demo整体结构,本篇分别构建一个http和一个grpc微服务单独测试。grpc先从grpc 开始, 上篇没有测试grpc接口,这回来尝试,直接...
2019-12-26 22:01:13 2459 2
原创 go笔记--协程安全map的四种方法
go笔记–协程安全map的四种方法文章目录go笔记--协程安全map的四种方法读写锁sync.mapatomic.Valuechan读写锁这个应该是最简单的方法,读取的时候加读锁,修改的时候加写锁。type LockMap struct { m map[interface{}]interface{} sync.RWMutex}func (lm *LockMap) Get(key...
2019-12-26 12:16:32 1481
原创 go微服务框架kratos学习笔记二(kratos demo 结构)
文章目录apicmdconfigsdaodimodelserverservice上篇文章go微服务框架kratos学习笔记一(kratos demo)跑了kratos demo本章来看看demo项目的整体结构。目录结构├─api # 对外接口├─cmd # main├─configs # 配置├─internal │ ├─dao #数据访问...
2019-12-24 22:56:34 3466
原创 go笔记--rpc和grpc使用
go笔记–rpc和grpc使用文章目录go笔记--rpc和grpc使用rpcserver.goclient.go (sync)client.go (async)grpcprotocserver.goclient.gorpcRPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络细节的应用程序通信协议。RPC协议构建于T...
2019-12-19 19:29:45 775
原创 go微服务框架kratos学习笔记一(kratos demo)
文章目录kratos微服务框架学习笔记一(kratos-demo)kratos本体demokratos微服务框架学习笔记一(kratos-demo)今年大部分时间飘过去了,没怎么更博和github,现在开发任务也差不多完成了,会比较轻松,考虑到今后发展,打算看看微服务框架。常见微服务框架主要有这么几个gizmo, a microservice toolkit from The Ne...
2019-12-18 19:08:52 7296
Linux内核编码风格
2018-06-06
Sublime Text3插件控制插件
2018-04-08
win-tc win7版
2014-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人