自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宝安小雨

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

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

原创 函数模板和类模板

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

2024-08-10 17:12:46 158

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

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

2024-07-16 19:57:44 434

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

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

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

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

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

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

2024-06-26 09:26:51 377

原创 如何给目录打patch

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

2024-06-05 09:26:37 167

原创 yangwebrtc x86_64环境搭建

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

2024-05-30 11:56:13 595

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

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

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

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

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

2024-05-13 17:21:54 219

原创 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 855 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 511 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 388

原创 如何查看chrome里network的payload

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

2024-03-19 13:43:18 1433

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

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

2024-03-12 11:40:20 864

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

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

fs报错 Reason: Q.850;

2024-01-19 14:40:59 456

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

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

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

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

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

原创 FS的application和基础概念

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

2023-12-13 17:30:28 105

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

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

2023-12-10 19:02:29 411

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

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

2023-12-10 18:00:27 1198

原创 freeswitch webrtc MCU三个配置文件,及conference全命令解释

原本如下,以上是指定为moderator,指定后verto界面会多显示信息,比如有几人在会议,设置布局等,这样设置后所有呼叫35开头的比如3500都是管理员了,可以自定义的精确设置。可以看到默认使用的是group:grid,上面还有对视频帧率,分辨率,音频参数的设置,各种铃声的设置,interval间隔设置,其中“mux”就是指mcu。播放一个视频,这个视频会多个路视频流贴到画布上,播放的视频floor=“true”,默认是up_top画布,也就是最大。video_demo 用jequre写的,

2023-12-08 19:21:10 504

原创 freeswitch编译mod_av支持webrtc MCU通话

系统环境一、FS相关网站二、第三方库安装1.apt安装2.指定版本sofia-sip安装3.指定版本spandsp安装4.指定版本libks安装5.指定版本openssl安装三、指定版本FS安装1.CPPFLAGS配置2.编译器版本3.FS配置编译四、FS,fs_cli运行,模块加载附录1.安装包,FS,编译好的两个浏览器客户端压缩包2.video-demo和Verto Communicator的github地址3.demo相关WIKI。

2023-12-08 19:16:43 1258

原创 nodejs介绍

客户端把用户名密码发送给服务器,服务器对用户名和密码加密成字符串,也就是Token,再把它发给客户端,客户端下次请求时通过请求头的Authorization字段,将Token发送给服务器,服务器受到后,把Token解密成用户名和密码,然后再验证,成功则返回给请求的内容。//中间件的一个作用,由于所有的中间件公用req和res,那么就可以在上游的中间件中添加自定义的属性或方法,供下游的中间件或路由使用。1.CORS(主流的解决方案,推荐使用,它只支持GET,POST,HEAD,不支持PUT,DELETE)

2023-12-03 21:38:57 439

原创 CURL添加HTTPS

CURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。首选删除系统自带的openssl,因为他只有可执行程序和库,没有头文件。系统也有curl库,为防止冲突,删去编译好的curl库,只用它的头文件。首选删除系统自带的curl,因为他只有可执行程序和库,没有头文件。openssl官网,笔者使用版本3.2.0。curl官网,笔者安装为7.85.0版本。

2023-11-24 15:09:25 1005

原创 ubuntu22.10更换阿里源

【代码】ubuntu22.10更换阿里源。

2023-11-23 16:59:23 971 2

原创 srs的webrtc信令分析

rtc/v1/whip-play/,这是拉流接口,作用是也是交换 SDP,只是采用的 是WebRTC 的标准信令,由 SrsGoApiRtcWhip::serve_http() 来处理。/rtc/v1/whip/,这也是推流接口,作用是也是交换 SDP,只是采用的 是WebRTC 的标准信令,由 SrsGoApiRtcWhip::serve_http() 来处理。可以看到获得了这个2个客户端详细的信息,他们的ip,name,id等,没有。这个是srs自定义的信令,更多详细见上文给到的官网。

2023-11-22 23:47:41 2618

原创 whip和whep

url为: http://192.168.1.98:8090/unsubscribe/2001/6547/4489。url为: http://192.168.1.98:8090/subscribe/2001/6547/4489。url为: http://192.168.1.98:8090/unpublish/2001/6547。url为: http://192.168.1.98:8090/publish/2001/6547。其中uid为自己的uid,remoteUid为想要订阅的远端uid。

2023-11-22 22:27:26 767

原创 srs webrtc推拉流环境搭建(公网)

关于信令的交互:我们打开这个推拉流连接,那么浏览器就去所在的ip地址去寻找srs服务,然后与其中的https服务器交互,下载页面,当我们填好URL地址,点击开始推流或播放视频按钮时,我们的浏览器客户端先与https交互信令,比如推流和拉流信令等,具体可以参考如下连接,然后进行sdp交互,之后是stun bind request/response交互,之后是DTLS握手,然后开始建立好webrtc传输通道,正式传输音视频流。如果我们准备自己开发信令服务器,我建议还是在这篇环境的基础上开发,较为灵活。

2023-11-16 17:08:18 1734 1

原创 ffmpeg5及以上-s和像素格式转换 花屏问题

拉下ffmpeg源码,6.0.1,4.3.6,5.1.4,依次安装作实验。

2023-11-14 23:29:58 522

原创 srs webrtc推拉流环境搭建(本地)

关于信令的交互:我们打开这个推拉流连接,那么浏览器就去所在的ip地址去寻找srs服务,然后与其中的https服务器交互,下载页面,当我们填好URL地址,点击开始推流或播放视频按钮时,我们的浏览器客户端先与https交互信令,比如推流和拉流信令等,具体可以参考如下连接,然后进行sdp交互,之后是stun bind request/response交互,之后是DTLS握手,然后开始建立好webrtc传输通道,正式传输音视频流。如果我们准备自己开发信令服务器,我建议还是在这篇环境的基础上开发,较为灵活。

2023-11-09 01:34:48 1103 4

原创 webrtc推拉流 srs报错:DTLS_HANG DTLS: > Hang, done=0, version=-1, arq=0

原因是因为conf/rtc.conf中candidate的配置,当推拉流浏览器在本地时,如果srs也在本地,那么可以使用官网默认。如果srs在公网上,由于srs是lite-ice端,导致他不会主动到srs获取自己的公网ip,因此需要在这里帮他指定 ,他才会把这个ip放到sdp中,发给full-ice的浏览器客户端。切忌什么时候都不可以写为127.0.0.1,也会报上述错误,如果浏览器和srs都在一个pc上,也可以使用 “*” 如"candidate *;

2023-11-08 22:31:23 637

原创 mediasoup webrtc音视频会议搭建

源码里有以下目录其中,app网页的界面终端,broadcasters是广播,也就是他支持我们用ffmpeg推流上去给所有的成员广播,server是流媒体服务器。源码包含了,https服务器用于浏览器获取界面,信令服务器用于房间管理,和流媒体服务器用于数据转发。下面先配置下server他有两个配置文件,server.js和config.js,config.example.js是一个例子,worker只线程数,默认开启的线程数 = pc内核数 x 每个内核线程数。其中是根据上两个配置文件启动。

2023-11-04 00:43:05 973

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.csdn.net/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关注的人

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