自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宝安小雨

落花人独立,微雨燕双飞。

  • 博客(351)
  • 资源 (3)
  • 收藏
  • 关注

原创 打包arm gstreamer镜像

在AMD上拉取ARM的gstreamer镜像,打包/加载。//gstreamer docker官网镜像。

2025-01-09 15:07:27 256

原创 quic特性介绍

接下来的发送和接收端都是发送端:因为要发送的数据包的packet number是递增的,即使是重传包,丢掉了就后续重新传递,因此没有被ack的包不会阻塞拥塞控制窗口的滑动。这是形象的理解,真实的情况是,TCP一次可以发送一个窗口的包,但需要这个窗口的包都收到确认,才会滑动窗口,发送下一个窗口。如图一个连接中的每个流在接收端都有自己的拥塞控制窗口,当已读取数据大于总的缓存的1/2,那么开始向右滑动,把已读数据上交给应用层,在服务器端增加缓存来抗乱序,丢包,延时应该是在给这个拥塞控制窗口加缓存。

2025-01-03 13:14:07 935

原创 GCC-webrtc

webrtc M96版本的GCCsudo tc qdisc del dev eth1 root //关闭限速gcc对网络抖动和丢包很敏感,一旦出现这两种情况,就会出现估计值的剧烈下降。基于延迟的带宽估计,码率一直增长,直到RTT表示过载,此时的码率接近带宽。基于丢包的带宽估计,丢包率小于2%,继续增加码率,2-10%保持不变,10%以上降低码率。基于丢包的估计值,不能超过基于延迟的带宽估计值,基于延迟的带宽估计值不能超过吞吐量的估计值X1.5+10kbps。

2024-12-14 17:45:01 693

原创 tcpdump编译 wireshark远程抓包

以上两个库是安装 libpcap需要的库,在ubuntu下可直接apt-get install flex,apt-get install bison,不用手动编译。在官网下载最新的如下两个库。

2024-12-12 18:14:10 600

原创 令牌桶 漏桶

系统根据自己的负载能力,以一定速率把令牌放入令牌桶,直到放满为止,桶的大小是固定的,当用户请求时,需要先去令牌桶取令牌,拿到令牌后才会放行,不然延迟投递||丢包。进来的请求就是水,请求进入水桶要从低下的漏洞放行,不管进来的多少,桶底的漏洞大小是一定的。水桶大小也是一定的,水桶满了就丢包||延迟投递。令牌桶算法是以固定的速度往桶里放令牌,漏桶的算法是以固定的速度放行请求。令牌是按个的,对于服务器的令牌桶算法,一个令牌放行一次http请求,对于音视频的MTU包,基站的算法,一个令牌放行一个MTU包?

2024-12-08 11:28:10 317

原创 tc 命令

Windows Network Shaper目前只能在win10及以下版本使用,在github上有源码。sudo tc qdisc del dev eth1 root //关闭限速。webrtc M96版本的GCC。Linux tc 命令。限速 500kbps。

2024-11-30 21:12:59 336

原创 linux下实时查看网口流量

【代码】linux下实时查看流量。

2024-11-06 11:36:18 347

原创 Nginx介绍+openresty配置

其实也就是配置正向代理,代理两台服务器,这两台服务器可以跟nginx是同一局域网的,也可以是不同区域有公网IP的。nginx不关注自己代理的是客户端还是服务器,它其实代理的是它能访问到的ip,把流量转发到这些ip上。2.基于端口,很少用,比如http://www.sherlock.net //80端口为默认可以省略 http://www.sherlock.net:8080,只需要复制conf/nginx.conf里的server,然后换不同的端口即可。正向代理:从局域网访问Nginx,成功访问到公网。

2024-10-19 18:10:38 1351

原创 openresty安装

OpenResty 是一个基于 NGINX 的全功能 Web 平台,集成了大量的第三方模块和库,其中最重要的是 ngx_lua 模块,它允许在 NGINX 配置中嵌入 Lua 脚本,实现高级的请求处理逻辑、动态内容生成、访问控制等功能。这只是 OpenResty 的一小部分功能展示,实际使用中可以结合更多的模块和功能,如 ngx_http_lua_upstream、ngx_http_headers_more、ngx_stream_lua 等,以实现更复杂的 Web 应用和服务。编写第一个hellow。

2024-10-18 14:42:04 731

原创 State_Threads实现多协程服务器

/* * Portions created by SGI are Copyright (C) 2000 Silicon Graphics, Inc. * All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met:

2024-10-16 18:26:47 427

原创 ZLMediaKit编译运行

/./MediaServer -d & 守护进程运行,后台运行。//./MediaServer -h 查看。

2024-10-01 18:03:49 726

原创 C++11新特性

通过测试代码可以看出,在子类中初始化从基类继承的类成员,需要在子类中重新定义和基类一致的构造函数,这是非常繁琐的,C++11中通过添加继承构造函数这个新特性完美的解决了这个问题,使得代码更加精简。atuo定义变量时必须初始化,因为就是对变量被赋的值推到处出变量的类型,因此它不能作函数形参,类的成员是const时,才能用auto,因为const变量必须初始化。declaration表示遍历声明,当前遍历到的元素会被存储到声明的变量中,expression是要遍历的对象,可以是表达式,容器,数组,初始化列表。

2024-09-12 09:36:53 728

原创 函数模板和类模板

/模板的定义只能写在全局,命令空间和类中,不能写在函数中。

2024-08-10 17:12:46 219

原创 libwebrtc.a+exosip连接fS 环境部署tips

c就是realm数字签名的摘要改为原来是因此如果不改的话,应该这么写。

2024-07-16 19:57:44 514

原创 #if defined(WEBRTC_USE) webrtc.a的宏机制

ifndef是 if not define的缩写,#ifdef 是 if define 的缩写。3.由上可以看到#if预处理后不仅可以接define,还可以比较宏的大小。define有两种,一种是单纯宏定义,一种是定义宏为特定值。由于定义值包含定义,因此也可以与。1.2定义值作编译处理。2.单纯定义,此时和。

2024-07-11 19:13:07 317

原创 ioctl方式采集/dev/videoX

应用程序通过API接口提供的方法(VIDIOC_REQBUFS)申请若干个视频数据的帧缓冲区,申请帧缓冲区数量一般不低于3个,每个帧缓冲区存放一帧视频数据,这些帧缓冲区在内核空间。设置视频的制式,制式包括PAL/NTSC,使用ioctl(fd_v4l, VIDIOC_S_STD, &std_id)设置视频帧格式,包括帧的点阵格式,宽度和高度等,使用ioctl(fd_v4l, VIDIOC_S_FMT, &fmt)设置视频的帧率,使用ioctl(fd_v4l, VIDIOC_S_PARM, &parm)

2024-07-09 13:17:49 514

原创 webrtc m120/m126版本编译错误

src/examples/BUILD.gn中,找到stunserver,将对此工程的编译除去。不编译这个demo并不影响生成的libwebrtc.a。在g++9编译器带的库中报错,应该是与webrtc-m120版本不匹配,升级成gcc/g++11后OK。这个报错意思是为结构体内没有添加上初始化函数?在m126版本中,出现以下错误。

2024-06-27 14:43:50 335

原创 webrtc-m120编译 (m126)

目标cpu架构,ios:arm,arm64,x64,x86,Android:arm,arm64,x86(32位),x64(64位),Windows:x86、x64。is_component_build 是否使用动态运行期库,这里取false,使用静态运行期库,Release版本将对应MT,Debug版将对应MTd。是否使用动态运行期库,这里取false,使用静态运行期库,Release版本将对应MT,Debug版将对应MTd。是否是Debug版,这里取false,表示编译Release版。

2024-06-26 15:20:14 558

原创 编译exosip作为webrtc信令,连接freeswitch

官方api解释使用一下方法可以注册成功-c就是realm数字签名的摘要改为因此如果不改的话,应该这么写。

2024-06-26 09:26:51 482

原创 如何给目录打patch

目录b中文件在目录a中文件的基础上作了些新增修改,现在打patch,列出这些修改,并且把这些新增修改添加到目录c中的文件中。注意c需要也是a的改版,不然有冲突的地方,最后一步会出冲突。#生成补丁文件,比较目录 b 和 a。#应用补丁文件,将修改添加到目录 c。

2024-06-05 09:26:37 286

原创 yangwebrtc x86_64环境搭建

开启之后,无法编译,报未定义的引用,因为作者在这个版本根本就没有实现,如下类,未定义三个函数的实现。用qt打开以下两个项目的.pro。用qt打开以下两个项目的.pro。可以用metartc更高版本。编译后会生成在这个目录。编译后会生成在这个目录。版本:5.0.099。

2024-05-30 11:56:13 669

原创 MetaRTC-ffmpeg arm移植

注意这里的dl和pthread是调用交叉编译工具链中的库;当写在同一个–extra-libs里时没有顺序之分,如果用两个–extra-libs,那么就有加载的顺序之分,比如crypto里要用到dl,那么dl就需要放在它的前面加载。metartc支持mips32位,支持arm64,不支持arm32位,在arm32下报下列错误,这个错误是对内存的越界操作,然后再free(),目前metartc6和7都不支持arm32。将这两个文件放入libmetartc6。在build中到.a。

2024-05-25 13:18:44 1939

原创 ffmpeg-webrtc(metartc)给ffmpeg添加webrtc协议

后者目前还不支持whep(应该在开发中),因此推荐使用metartc的库。1.metartc6,这里有webrtc的传输协议。4.编译ffmpeg,注意下面路径改为自己的路径。首选它有三个第三方库,先编译这三个库。3.ssl和crypto。3.ssl和crypto。5.推流命令 WHIP。6.拉流命令 WHEP。5.推流命令 WHIP。6.拉流命令 WHEP。4.编译ffmpeg。

2024-05-24 14:09:34 2807

原创 MetaRTC arm32 CMake交叉编译

set(CMAKE_CXX_COMPILER “/home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux-g++”)//c++编译器。set(CMAKE_C_COMPILER “/home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux-gcc”)//c编译器。https://github.com/cisco/openh264/releases //官网有交叉编译指南。//编写cmakelist.txt。

2024-05-17 09:45:10 1043

原创 MetaRTC-play拉流客户端代码分析

当点击播放按钮后,以此调用的类如下,开始建立rtc连接,AV解码,音频渲染,视频渲染。渲染使用opengl,音频播放使用alsa。

2024-05-13 17:21:54 592

原创 MetaRTC-push推流客户端代码分析

linux/demo/metapushstream7/yangpush/YangRtcPublish.cpp//调用YangPeerConnection2类,进行推拉流。linux/demo/metapushstream7/video/YangYuvPlayWidget.h//Yang_OS_APPLE平台用,linux下废弃。linux/demo/metapushstream7/yangpush/YangPushPublish.cpp//对以上的AV的采集和编码接口再次封装。推流whip/webrtc。

2024-05-13 16:43:19 1105 1

原创 调用Mertc的接口

metaRTC5.0版本 API进行了重构,本篇文章将介绍webrtc传输调用流程和例子。2.配置metartc7/5环境,编译metapush7和metaplay7,并测试推拉流。头文件:include/yangrtc/YangPeerConnection2.h。头文件:include/yangrtc/YangPeerConnection.h。libmetartccore2工程为C版webrtc实现。3.编译demo调用metartc7 api,排查错误。MetaRTC 连接信息回调函数。

2024-05-10 17:29:01 642 2

原创 x86_64 ubuntu22.04编译MetaRTC

用QT打开demo里的metaplayer7,metapushstream7,并编译,注意QT的工程项目生成路径建议使用默认的,如果自定义的话,需要同级目录,因为.pro里用到了这个目录。下载yangh264decoder(从metartc7开始,解码由ffmpeg改为重新造的轮子yangh264decoder,这个库编译后只有1M,适合嵌入式)将上面编译的libyangh264decoder.a,放到linux/thirdparty/lib中。放到linux/thirdparty/lib中。

2024-03-29 13:29:02 711

原创 如何查看chrome里network的payload

如何查看chrome的network的请求payload,点击漏斗形状的过滤器,过滤框清空,表示检测所有,右边按钮点击“全部”,“第三方请求”不要勾选。

2024-03-19 13:43:18 2541

原创 curl c++ 实现HTTP GET和POST请求

系统也有curl库,为防止冲突,删去编译好的curl库,只用它的头文件。curl //DV2020T环境下此步骤可省略。笔者安装为7.85.0版本。Makefile文件。

2024-03-12 11:40:20 1174

原创 SDP解释

generous:假如客户端提供编码优先级为PCMA,G729,而FS支持的优先级为G729,PCMU,PCMA。假如leg A只支持PCMA,leg B只支持PCMU,FS支持的编码、先级为PCMU、PCMA,那么此时leg A发送invite后,会得到488的返回码,而不是200 OK,因为FS默认不支持转码。端口限制锥:在限制锥的基础上加了限制,外网公网主机在发送给内部主机之前,内部主机必须先向该外部公网主机的ip1:port1发送过数据,而且该外部公网主机,必须使用这个ip1:port1发才行。

2024-03-04 15:48:15 245

原创 freeswitch报错 Reason: Q.850;cause=88;text=“INCOMPATIBLE_DESTINATION“

fs报错 Reason: Q.850;

2024-01-19 14:40:59 841

原创 fs基本命令

查看版本给用户1000打电话,app是echo,就是对方能听到自己的回声。给用户1000打电话,app是echo,就是对方能听到自己的回声,主叫号码是7777主叫名称是Seven Du,由于中间有空格,所以用单引号。查看originate都支持哪些参数把所有电话都挂断hupall打印出来有哪些用户注册如果你的服务器上没有这个文件,则执行linphonec命令,此命令会自动生成该文件修改FS的sip等默认端口FS的基本概念没有学习ubuntu22.04编译需要先卸载本身的openssl。

2023-12-25 14:21:52 976

原创 nvm node npm安装

nvm uninstall 8.12.0 # 卸载指定版本,如8.12.0。nvm install 8.12.0 # 安装指定版本,如8.12.0。nvm use 8.12.0 # 使用指定的版本,如8.12.0。nvm ls-remote # 查看可安装的版本。nvm ls # 查看已安装的node版本。

2023-12-20 20:08:51 725

原创 FS的Dialplan

什么是Dialplan当一通电话拨打进来,FS是播放回音,播放声音,还是桥接到另个电话,这样选择的路由的过程就是Dialplan客户端与FS打电话其实就是在跟application交互。有三个dialplan,这个是default.xml,还有public.xml和featrues.xml,除了xml的格式,还有enum和安澜格式。features里是一些特性,它在usr/local/freeswitch/conf/dialplan/features.xml,这三个文件都在同一个目录下。 这个Test

2023-12-17 18:16:59 1024

原创 FS的sip信令

sig的信令invite(呼叫 ,会把sdp放在这里发送),ack,cancel,options,bye,refer,notify,message,subscribe,info。sip协议是信令协议,用于建立会话,它需要其他协议配合使用,比如rtp协议,用来传输数据。sdp协议,用来描述媒体信息。fs主要的信令是sip,sip默认的端口是5060。注册机制,认证,和鉴权。

2023-12-13 19:16:41 579

原创 freeswitch报错:mod_verto.c:1984 [::1]:39622 WS SETUP FAILED

verto_communicator还是video_demo都是使用wss登陆的,建立session会话使用的是sip信令。这里主要是证书的问题。把其中的localhost或者127.0.0.1改为自己的ip,用ifconfig去看。

2023-12-13 18:51:48 358

原创 FS的application和基础概念

但是有一些客户端设置,如果呼叫来的用户没有注册的话,那么不允许它打电话,不过这是客户端的设置和服务器无关,服务器也可以作这个策略,不注册不让打电话,所以一般都先注册。在/usr/local/freeswitch/conf/directory/default/下可以看到1000-1019这些默认用户,在这里可以模仿创建新用户,也可以修改默认的密码1234。作一个桥,当拨打3的时候,自动拨打1001的用户,如果此用户已经注册到服务器里,那么它就会开始振铃,这叫做呼叫字符串。

2023-12-13 17:30:28 151

原创 freeswitch webrtc video_demo客户端进行MCU的视频会议

系统环境一、编译服务器和加载模块二、下载编译video_demo三、配置verto.conf.xml1.修改配置文件2.重新启动四、MCU通话测试1.如何使用video_demo2.测试结果五、MCU的通话原理及音视频参数配置附录笔者微信,入群讨论。

2023-12-10 19:02:29 603

原创 freeswitch webrtc 两个verto_communicator客户端进行MCU的视频会议

系统环境一、编译服务器和加载模块二、下载编译verto_communicator三、开启第二个客户端四、视频通话测试结果系统环境。

2023-12-10 18:00:27 1449

tc的iproute2和内核已经两个库

tc的iproute2和内核已经两个库

2024-12-06

Qos,GCC,pacing,Nack

Qos,GCC,pacing,Nack。

2024-11-24

nginx支持的功能介绍,openresty安装配置简介

nginx支持的功能介绍,openresty安装配置简介

2024-10-19

c++2.0 srs/zlmediakit/docker教程

c++2.0 srs/zlmediakit/docker教程

2024-10-16

ubuntu22,新系统init

ubuntu22,新系统init

2024-09-02

metartc的crypto.a,libopus.a,libsrtp2.a,libssl,平台:rv1126,mstar336

编译到arm,如果最终运行报错,很可能是openssl版本或者配置参数的问题,作者有编译好的版本,有多个平台,rv1126,mstar336,js_tc,编译好的库有crypto.a,libopus.a,libsrtp2.a,libssl.a,libusrsctp.a。 官方地址:[Release v5.0-b1](https://github.com/metartc/metaRTC/releases/tag/v5.0-b1) 这些库+ffmpeg-webrtc5 在rk1126下正常运行。 这些库+Release v7.0-b0在rk1126下正常运行。

2024-05-30

fs编译好的服务器和客户端

fs编译好的服务器和客户端

2023-12-19

Freeswitch资源包

安装包,FS,编译好的两个浏览器客户端压缩包

2023-12-08

overlay-simple

overlay-simple

2023-11-15

安装盘制作工具,用于制作安装盘,下面是博客使用链接

https://blog.youkuaiyun.com/weixin_43466192/article/details/122975601?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169535278316800215017418%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169535278316800215017418&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-122975601-null-null.nonecase&utm_term=%E7%9B%98&spm=1018.2226.3001.4450

2023-09-22

脚本自动化 在N5105上配置ffmpeg+qsv环境,h264-qsv和hevc-qsv的cbr/vbr都可以使用,fdk-a

脚本自动化 在N5105上配置ffmpeg+qsv环境,h264-qsv和hevc-qsv的cbr/vbr都可以使用,fdk-a

2022-12-23

peerconnection_server和peerconnection_client

peerconnection_server是在ubuntu18上编译的,可以在centos7上运行 peerconnection_client是在ubuntu20上编译的

2022-04-22

CentOS 7系统安装操作指导书 .docx

安装Centos7系统的操作说明

2022-01-07

音视频+ffmpeg+mp4读取并推流

从mp4中读取视频信息,并rtmp推流

2021-11-26

空空如也

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

TA关注的人

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