热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【webrtc】demo测试peerconnection_server和peerconnection_client

文章目录前言启动服务器启动客户端1启动客户端2注意事项总结技术参考前言参考vs2019下载编译WebRTC最新源码编译完成后进入webrtc-checkout\src\out\p


文章目录

    • 前言
    • 启动服务器
    • 启动客户端1
    • 启动客户端2
    • 注意事项
    • 总结
    • 技术参考



imge




前言

参考 vs2019 下载编译 WebRTC 最新源码
编译完成后进入webrtc-checkout\src\out\project 目录,编译好的库文件和exe都在这个目录下面。


  • peerconnection_server.exe
  • peerconnection_client.exe

启动服务器

双击 peerconnection_server.exe 启动服务器

控制台显示以下内容表示服务器启动成功

(field_trial.cc:140): Setting field trial string:
Server listening on port 8888

也可以指定端口号启动,默认端口号:8888

./peerconnection_server --port=8888

启动客户端1

双击 peerconnection_client.exe 启动客户端1,默认server是本地地址。

**注意事项:**默认启动后是 localhost ,不知道为什么我必须改成 127.0.0.1 才可以连接服务器成功。

翻阅资料得出结果是因为 windows 把 localhost 解析为 ipv6 地址 ::1 而不是 127.0.0.1。查了hosts 把ipv6已经屏蔽了,127.0.0.1 localhost 也有,就是不能正常解析。

在这里插入图片描述


启动客户端2

在局域网的另一台电脑启动第二个客户端,填写运行 server 的主机 ip 地址
在这里插入图片描述
为了方便截图,我将两个客户端都运行再一台主机(需要有两个摄像头设备),一个客户端分配一个摄像头。如果只有一个硬件摄像头,可以安装 obs studio 启动虚拟摄像头作为第二个摄像头。

然后双击用户名进入 p2p 通话

在这里插入图片描述


注意事项

如果 p2p通话时候发生闪退,需要修改以下代码并重新编译

编译webrtc
ninja -C out/project -j 8

webrtc-checkout\src\modules\video_capture\windows\sink_filter_ds.cc

STDMETHODIMP CaptureInputPin::Receive(IMediaSample* media_sample) {//RTC_DCHECK_RUN_ON(&capture_checker_); // 这行代码注释掉&#xff0c;解决 p2p 连接闪退问题CaptureSinkFilter* const filter &#61; static_cast<CaptureSinkFilter*>(Filter());if (flushing_.load(std::memory_order_relaxed))return S_FALSE;if (runtime_error_.load(std::memory_order_relaxed))return VFW_E_RUNTIME_ERROR;if (!capture_thread_id_) {// Make sure we set the thread name only once.capture_thread_id_ &#61; GetCurrentThreadId();rtc::SetCurrentThreadName("webrtc_video_capture");}

sink_filter_ds.cc


总结

如果需要下断点调试则在另一台主机运行 peerconnection_client客户端1&#xff0c;调试主机打开 vs2019 将 peerconnection_client 项目设置为启动项目&#xff0c;F5 启动调试。




技术参考


  1. 本文部分技术点出处&#xff1a;FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发


推荐阅读
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
author-avatar
用户r8l5835vd6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有