自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 mesonbuild wrap

问题:编译mediasoup 下载warp中url失败在编译mediasoup的时候, 需要下载一些第三方库, 比如openssl sctp 等, 由于网路原因, 这些可能会下载失败, 导致失败.mediasoup 使用meson构建编译, 引用第三库是用mesonbuild 的wrap方式原有的wrapfile 使用url 下载文件[wrap-file]directory = openssl-1.1.1lsource_url = https://www.openssl.org/source/o

2021-11-14 17:52:18 1671 5

原创 ffmpeg amerge 使用

ffmpeg amerge 使用简介本文从命令行和api分别介绍下amerge使用,并且说下api使用遇到的一个坑amerge介绍合并两个或两个以上的音频流到一个多通道流滤镜接受下面的选项:inputs设置输入数量,默认为2如果输入的通道布局是不相交的,因此可兼容,输出将设置相应的通道布局和渠道,并在必要时重新排 序。如果输入的通道布局是不可分离的,则输出将会是第一个输入的所有通道,然后第二个输入的所 有通道,在这种顺序下,输出的通道布局将默认通道数设为总数。例如:如果第一个输入是 2.1

2021-08-03 07:59:43 831

原创 Wirshark 解析rtcp数据包 显示错误

背景:浏览器使用webrtc推流,转包发现rtcp的sr包 ntp timestamp显示错误,排查原因。使用wirshark看抓取的数据包,发现rtcp的 发送者报告也就是sr中的ntp时间以及timestamp都不正确,无法和数据包对上,但是ssrc是正确的,这是为什么呢?Wirshark抓包如下图:Webrtc规定,传输使用srtcp在程序中加日志,在生成rtcp的sr的代码以及加密srtcp后的数据 打印字节流,作为对比Rtcp sr原始数据和加密数据对比将srt

2020-11-01 11:22:39 527

原创 chrome浏览器无法播放音频的排查

1、使用流媒体,通过ice方式,给chrome推流,只有音频opus,无法播放2、通过wirshark抓包 以及chrome://webrtc-internals/ 查看 发现已经接收流3、通过导出一路相同流,使用ffmpeg播放,声音清晰,说明流没有问题4、查看sdp,sdp中既有音频也有视频,但是推流只有音频,可能和这个有关5、修改sdp,使视频无效sb.append("m=video 0 UDP/TLS/RTP/SAVPF 0").append("\r\n");sb.appen

2020-09-13 23:05:18 1517

原创 tcp/udp 发送流程

这是一篇持续的博客,了解局限,慢慢补充(1)数据报大小IPv4的数据报最大大小是65535字节,包括IPv4首部。因为首部中说明大小的字段为16位。IPv6的数据报最大大小是65575字节,包括40字节的IPv6首部。同样是展16位,但是IPv6首部大小不算在里面,所以总大小比IPv4大一个首部(40字节)。(2)MTU许多网络有一个可由硬件规定的MTU。以太网的MTU为1500字节。有一些链路的MTU的MTU可以由认为配置。IPv4要求的最小链路MTU为68字节。这允许最大的IPv4首部(包括2

2020-06-08 22:28:59 321

原创 无锁队列的好文章

无锁队列介绍以及实现

2020-06-04 23:14:26 76

原创 ice流程

本文谈到的技术点,表达可能不太严谨,主要是说明流程。本文主要介绍一下ice的流程ice交互难点ice交互难得原因,是Nat技术所导致,为了克服这个,有了stun、turn方法,图中 Nat规则 不太严谨,是一个大体意思。这种一对多、多对多的情况,导致A、B之间的不通。一般来讲,分为对称型NAT和圆锥形NAT,其中圆锥形NAT又分为完全圆锥型NAT、IP限制圆锥型NAT、Port限制圆锥型NAT。1 完全圆锥型NAT完全圆锥型NAT是指同一个内网IP1+Port1向任何外网发送数据,在NAT会

2020-05-31 23:59:21 1029

原创 mutex互斥锁属性说明

mutex互斥锁属性版权声明:本文为CSDN博主「一缕阳光a」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/zgaoq/article/details/54926915在线程实际运行过程中,我们经常需要多个线程保持同步。这时可以用互斥锁来完成任务;互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthread_mutex_lock,pthread_mut

2020-05-27 22:48:14 530

原创 ngx_shmtx_lock 分析

作用在nginx中,此锁用于共享内存分配时上锁,用于进程互斥以及进程内线程互斥。初始化ngx_shmtx_create 函数实现ngx_int_tngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr, u_char *name){ mtx->lock = &addr->lock; if (mtx->spin == (ngx_uint_t) -1) { return NGX_OK

2020-05-21 23:50:47 635

原创 nginx 自旋锁学习

用途spin_lock的使用场景是你预知很快能获得资源,快速把cpu用起来。nginx源码:voidngx_spinlock(ngx_atomic_t *lock, ngx_atomic_int_t value, ngx_uint_t spin){#if (NGX_HAVE_ATOMIC_OPS) ngx_uint_t i, n; for ( ;; ) { if (*lock == 0 && ngx_atomic_cmp_set(lock

2020-05-19 23:45:10 305

原创 nginx 线程池详解

nginx 线程池详解基础知识:需要了解队列、条件变量相关知识。nginx异步思想,线程池设计同样如此。A线程准备任务-----post任务-------线程池唤醒一个线程处理--------通过回调通知A线程处理完毕。整体就是这个样子的以下是更详细的流程,有点长,捡着你想看的看。线程池初始化代码如下:static ngx_int_tngx_thread_pool_init(ngx_thread_pool_t *tp, ngx_log_t *log, ngx_pool_t *pool)

2020-05-17 22:00:40 1341

转载 转载:ffmpeg+wasm显示H264

有没有那么一种可能,在前端页面处理音视频?例如用户选择一个视频,然后支持他设置视频的任意一帧作为封面,就不用把整一个视频上传到后端处理了。经过笔者的一番摸索,基本实现了这个功能,一个完整的demo:ffmpeg wasm截取视频帧功能:支持mp4/mov/mkv/avi等文件。基本的思想是这样的:使用一个file input让用户选择一个视频文件,然后读取为ArrayBuffer,传给ffmp...

2019-01-28 16:31:27 5896 2

转载 使用wirshark windons下抓取网络内环包

转载自https://blog.csdn.net/renwotao2009/article/details/49329713步骤一windows下,在命令行中输入以下语句:// 增加一条路由表项// 192.168.1.106是本机ip, 192.168.1.1是路由网关route add 192.168.1.106 mask 255.255.255.255 192.168.1.1 me...

2018-11-12 17:17:40 278

oracle-instantclient11.2-precomp-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-precomp-11.2.0.4.0-1.x86_64.rpm

2016-09-20

空空如也

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

TA关注的人

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