- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 mesonbuild wrap
问题:编译mediasoup 下载warp中url失败 在编译mediasoup的时候, 需要下载一些第三方库, 比如openssl sctp 等, 由于网路原因, 这些可能会下载失败, 导致失败. mediasoup 使用meson构建编译, 引用第三库是用mesonbuild 的wrap方式 原有的wrapfile 使用url 下载文件 [wrap-file] directory = openssl-1.1.1l source_url = https://www.openssl.org/source/o
2021-11-14 17:52:18
2329
5
原创 ffmpeg amerge 使用
ffmpeg amerge 使用 简介 本文从命令行和api分别介绍下amerge使用,并且说下api使用遇到的一个坑 amerge介绍 合并两个或两个以上的音频流到一个多通道流 滤镜接受下面的选项: inputs 设置输入数量,默认为2 如果输入的通道布局是不相交的,因此可兼容,输出将设置相应的通道布局和渠道,并在必要时重新排 序。如果输入的通道布局是不可分离的,则输出将会是第一个输入的所有通道,然后第二个输入的所 有通道,在这种顺序下,输出的通道布局将默认通道数设为总数。 例如:如果第一个输入是 2.1
2021-08-03 07:59:43
1177
原创 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
904
原创 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
2054
原创 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
450
原创 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
1238
原创 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
788
原创 ngx_shmtx_lock 分析
作用 在nginx中,此锁用于共享内存分配时上锁,用于进程互斥以及进程内线程互斥。 初始化 ngx_shmtx_create 函数实现 ngx_int_t ngx_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
843
原创 nginx 自旋锁学习
用途 spin_lock的使用场景是你预知很快能获得资源,快速把cpu用起来。 nginx源码: void ngx_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
440
原创 nginx 线程池详解
nginx 线程池详解 基础知识: 需要了解队列、条件变量相关知识。 nginx异步思想,线程池设计同样如此。 A线程准备任务-----post任务-------线程池唤醒一个线程处理--------通过回调通知A线程处理完毕。整体就是这个样子的 以下是更详细的流程,有点长,捡着你想看的看。 线程池初始化 代码如下: static ngx_int_t ngx_thread_pool_init(ngx_thread_pool_t *tp, ngx_log_t *log, ngx_pool_t *pool)
2020-05-17 22:00:40
1578
转载 转载:ffmpeg+wasm显示H264
有没有那么一种可能,在前端页面处理音视频?例如用户选择一个视频,然后支持他设置视频的任意一帧作为封面,就不用把整一个视频上传到后端处理了。经过笔者的一番摸索,基本实现了这个功能,一个完整的demo:ffmpeg wasm截取视频帧功能: 支持mp4/mov/mkv/avi等文件。基本的思想是这样的: 使用一个file input让用户选择一个视频文件,然后读取为ArrayBuffer,传给ffmp...
2019-01-28 16:31:27
6226
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
353
oracle-instantclient11.2-precomp-11.2.0.4.0-1.x86_64.rpm
2016-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅