自定义博客皮肤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.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

原创 无锁队列的好文章

无锁队列介绍以及实现

2020-06-04 23:14:26 157

原创 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

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

2016-09-20

空空如也

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

TA关注的人

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