第二个:https://github.com/mpromonet/webrtc-streamer

这个是c++的,比上面的go的麻烦一些。

目录

总结、有效指令

一、webrtc-streamer cmake

二、CMake+MinGW

三、下载depot_tools

四、fetch webrtc

五、gclient代理设置

总之需要的指令有

六、下载webrtc

七、下载编译webrtc-streamer。

八、windows编译webrtc


总结、有效指令

1.下载depot_tools并初始化gclient

git config --global http.proxy "localhost:25378"  //下次cmd打开不用再输入
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
//设置环境变量path,添加depot_tools目录//假如上面的git clone指令出现问题:
//bad numeric config value 'purper' for 'color.ui': invalid unit
//使用 git config --global color.ui false//打开另一个管理员权限的cmd
netsh
winhttp
set proxy 127.0.0.1:25378 "<local>" //"<local>"有什么用不清楚
exit
set http_proxy=127.0.0.1:25378
set https_proxy=127.0.0.1:25378
gclient
//会下载东西,但是没有任何提示,10分钟左右吧,depot_tools文件夹会从50m变成500m多。
//下载完后(看文件夹是否不再变化)如果还是卡着,需要按ctr+c一下//set DEPOT_TOOLS_UPDATE=0   //gclient前面加上这个的话,会出现python的问题

2.下载编译webrtc

set GYP_MSVS_VERSION = 2017 # 指定vs版本
set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise  #vs安装路径,替换成自己的
set GYP_GENERATORS=msvs-ninja,ninja 
//找个目录
mkdir webrtc
cd webrtc
fetch --no-history webrtc
mkdir webrtc-checkout #这是创建一个目录,创建之前最好cd到合适的地方
cd webrtc-checkout  # 进入到我们刚刚创建的目录中
fetch --nohooks webrtc  # 获取代码
gclient sync  # 当过程中断时,我们可以使用该命令恢复并继续
cd src
gn gen out/Default --ide=vs2017
ninja -C out/Default

3.下载编译webrtc-streamer

下面是摸索的过程,虽然有很多资料,但还是会与自己环境不同,会碰到各种问题。

一、webrtc-streamer cmake

下载下来后

cmake . -DWEBRTCBUILD=<Release or Debug> -DWEBRTCROOT=<path to WebRTC>
make

安装cmake。Git Bash cd到下载后的目录,然后

cmake . -DWEBRTCBUILD=Debug -DWEBRTCROOT="D:\RTSPtoWebRTC\webrtc-streamer-master"
make

结果

查了一下,感觉可能是环境的问题。

我的环境是window10+vs2015+vs2017+unity2017+unity2019

--------------------------------------------------------------------------------------------------------------------

二、CMake+MinGW

参考:WINDOWS下CMake+MinGW64搭建C/C++编译环境

参考:windows+CMake+mingw 搭建c c++开发环境

按教材下载并按照MinGW,并用mingw编译。

cmake -G"MinGW Makefiles" .

碰到问题:

1.找不到MinGW

发现是用下载器安装后,没有添加环境变量,找到安装目录,把bin目录加到Path里面。

2.文件夹名称必须是webrtc,不然无法进行下去。像下载下来是是webrtc-streamer-master.zip,解压到当前文件夹,是webrtc-streamer-master,要改名为webrtc。

按我理解因为CMakeLists.txt里面的开头部分

3.子文件夹中是空的,如解压后live555helpler里面就是空的,因为我是从网页上下载下来的。

live555helpler本身是另一个github地址的东西,相当于链接。

我是用GitHub Desktop下载下来就是完整的了,用git在命令行下载应该也是可以的吧

4.cmake执行导致最后出错。

进行不下去了

-------------------------------------------------------------------------------------------------------------------------------

三、下载depot_tools

发现无忽略了前面两步

fetch webrtc实际上是下载webrtc库,可能和那个WEBRTC_LIBRARY有关。

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

下载depot_tools,结果不行,还是被墙了 Timed out。

关键是网页(vpn)访问 https://chromium.googlesource.com/chromium/tools/depot_tools.git 是可以访问的

好像要设置git的代理,参考:https://blog.csdn.net/natahew/article/details/82627364

git config --global http.proxy "localhost:1080"

我也是用shadowsocks的啊,不行。

设置后变成:

Connection was reset

vpn+git 走不下去

--------------------------------------------------------------------------------------------------------------------

四、fetch webrtc

总之目的是下载webrtc吧 google一下fetch webrtc

https://webrtc.org/native-code/development/

https://webrtc.org/native-code/development/prerequisite-sw/

http://dev.chromium.org/developers/how-tos/install-depot-tools,接下来要vpn了....

在最后一个,初始化gclient出问题了....哭

又是网络连接,

然后现在vpn还连不上了.....哭

后来一次能连上vpn,再次测试,结果

总之还是不行

-----------------------------------------------------------------------------------------------------------------------------------

五、gclient代理设置

参考:win10安装depot_tools

有人碰到一样的问题,参考:gclient运行更新CIPD一直失败,求高手指点

参考:gclient 设置代理问题

参考:How to fetch chromium codes on windows with proxy.

这个应该可以的才对啊,很好的描述的问题,还有具体的指令。

还是不行,问题出在哪里?ip?端口?

现在的问题是命令行下无法使用vpn。

本来,vpn连接上的了话,应该都能连接上的。

我的vpn有问题?实际上我用的是Jikess-windows.zip,但按我理解他底层也是用Shadowsocks才对啊

弄不懂设置代理时端口应该用1080还是25378。

------------------------------------------------------------------------------------------------------

参考:https://github.com/shadowsocks/shadowsocks-windows/issues/1489(windows终端命令行下如何使用代理?)

首先ping不能做测试依据,ping通网络应该是通的,ping不通,不说明vpn不通。

用curl测试,要先下载一个window版本,放到环境变量的path里面。

结论来说,启动Jikess时应该设置25378,启动Shadowsocks时设置1080,怪不得网上的都是1080呢。

那我在前面使用Jikess的情况下,大部分设置1080,偶尔也有设置25378测试一下,说不定错过了正确的方法。

还真的是.......

这里这么设置起来,就能git下载了。

接下来是关键的gclient

结果卡着了,还取消不了。

关闭还会弹出这样的

---------------------------------------------------------------------------------------------------------

用cmd试试,参考的是How to fetch chromium codes on windows with proxy.

gclient前还要加上set DEPOT_TOOLS_UPDATE=0,参考:depot_tools更新失败

不然会卡一下,虽然也没关系,好像也能把东西下载下来,gclient第一次运行主要是要下载git 和 python

下载成功了 有500多m,多了个bootstrap-3_8_0b1_chromium_1_bin文件夹

------------------------------------------------------------------------------------------------------------------

删除重新尝试,结果不设置代理的话超时,设置代理的话说python不是命令.......怎么回事?

操作过程中好像也有碰到过,cmd重新打开一个,就能够下载了,没注意怎么回事。

试着重新下载一下,发现git 返回503错误。

然后发现网页、钉钉都无法上网了。

说明哪里设置错了,导致直接不能上网了?

而且很奇怪,这时候cmd里面,ping www.baidu.com可以,curl www.baidu.com可以。git bash里面,ping www.baidu.com可以,curl www.baidu.com不行,返回的内容提示一串字符串,好像是说应该代理的关系,不能上网。

重启电脑,可以上网,git下载了,

再打开一个管理员的cmd

总之需要的指令有

git config --global http.proxy "localhost:25378"  //下次cmd打开不用再输入
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
//设置环境变量path,添加depot_tools目录//打开另一个管理员权限的cmd
netsh
winhttp
set proxy 127.0.0.1:25378 "<local>" //"<local>"有什么用不清楚
exit
set http_proxy=127.0.0.1:25378
set https_proxy=127.0.0.1:25378
gclient
//会下载东西,但是没有任何提示,10分钟左右吧,depot_tools文件夹会从50m变成500m多。
//下载完后(看文件夹是否不再变化)如果还是卡着,需要按ctr+c一下//set DEPOT_TOOLS_UPDATE=0   //gclient前面加上这个的话,会出现python的问题

好了 总算是完成了第一步,下载depot_tools并初始化gclient。

使用gclient和代理下载Chromium代码,这个资料比前面的都全面,没有早点找到它,

-----------------------------------------------------------------------------------------------------------------

后来在另一台电脑上执行

git config --global http.proxy "localhost:25378"  //下次cmd打开不用再输入
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

时出现问题

需要使用 git config --global color.ui false

不同环境,不同问题,这个是最麻烦的。

-----------------------------------------------------------------------------------------------------------------------------------------------------

六、下载webrtc

//找个目录
mkdir webrtc
cd webrtc
fetch --no-history webrtc

27%就停着了...这时depot_tools的大小有3.79G了,而webrtc文件夹则是空的....

按一下ctr+c,然后就继续了

这算是下载好了吧,depot_tools大小有快10G了,多了个src文件夹,

用treesize分析一下,发现大部分是.git文件夹的空间

都说fetch的文件是当前的文件夹,但是我的是到depot_tools里面的,然后看来一下,注意到不知怎么的调到depot_tools里面了

两个选择,拷贝文件到webrtc中,和重新在fetch一下。

前面的下载了10G吧,从早上11点到下午3点,4小时。重新下载倒也没关系。我先试试手动来。

----------------------------------------------------------------------------------------------------------------------------

七、下载编译webrtc-streamer。

在cmd中用git clone指令下载,因为有链接其他子模块,再加上下载子模块的指令

参考:github上使用git clone下载所有链接到的子模块

https://github.com/mpromonet/webrtc-streamer.git
cd webrtc-streamer
git submodule update --init --recursive

在下载live555helper时卡了一下,需要按ctr-c

下载完webrtc-streamer后,现在有了三个文件夹webrtc-streamer,webrtc(空的),depot_tools(10G)。

先把depot_tools里面的全部复制一份到webrtc中,删除.git文件夹,剩下3.2G,压缩一下,备份。压缩后大小时1.03G,压缩率37%。

接下来的问题是,webrtc-streamer要不要改名webrtc呢,原来我不知道有个fetch webrtc,现在有了,感觉不用改名把。

cd webrtc-streamer
cmake -G"MinGW Makefiles" .

结果:

和前面fetch webrtc最后的错误相关,要想办法处理一下了。

Toolchain is out of data。Run "gclient runhooks" to update toolchain,
or set DEPOT_TOOLS_WIN_TOOLCHAIN=0 to use the locally installed toolchain.

查资料,百度DEPOT_TOOLS_WIN_TOOLCHAIN,马上就出来一堆的DEPOT_TOOLS_WIN_TOOLCHAIN=0,看来这一部缺少了。

参考:VS2017 编译 chromium和webrtc

DEPOT_TOOLS_WIN_TOOLCHAIN = 0
GYP_MSVS_VERSION = 2017
GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2017\Community

我先只设置DEPOT_TOOLS_WIN_TOOLCHAIN = 0

然后cmake,结果:

考虑到CMakeLists.txt里面的

set (WEBRTCOBJS ${WEBRTCROOT}/src/out/${WEBRTCBUILD}/obj)
...
find_library(WEBRTC_LIBRARY NAMES webrtc PATHS ${WEBRTCOBJS})
target_link_libraries (${PROJECT_NAME} ${WEBRTC_LIBRARY}) 

现在算是知道什么意思了,预计在文件夹F:\git\webrtc\src\out\Release里面应该有个webrtc文件夹,这个就是要找的WEBRTC_LIBRARY了。也就是我要先编译成功webrtc。

--------------------------------------------------------------------------------------------------------------------------------------------------------------

八、windows编译webrtc

设置环境变量

GYP_MSVS_VERSION = 2017
GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2017\Community

生成解决方案

gn gen out/Default

结果

这台电脑上的VS2017是安装Unity2019时装的,没装C++环境吧。

修改VS2017,安装C++后

google资料,参考 https://blog.sdlsj.net/archives/cef/chromium-embedded-framework-complie/

编译时可能会出现找不到LASTCHANGE.committime这一文件,
在C:\code\chromium_git\chromium\src\build\util下
执行python lastchange.py -o LASTCHANGE即可。

运行后:

在删除过.git的webrtc里面执行的话,不行。

那说明这个过程中不能删除.git文件夹

那还得再拷贝一下,再gn一下。

生成的是

没有上面教程(https://www.cnblogs.com/Forever-Kenlen-Ja/p/7653144.html)的.sln文件。

编译生成可执行文件 执行 ninja -C out/Default chrome

使用指令

ninja -C out/Default webrtc

结果:

后面也是找不到***.obj文件

使用指令,参考:在windows上vs2017 编译webrtc

ninja -C out/Default

结果:

在刚刚的参考的页面里面看到一个

测试一下,

gn gen out/Default --ide=vs2017

结果,

有all.sln文件,上上个参考页面写的是生产all.sln,但是命令里面没有加--ide=vs2017

环境变量我也都有设置的......................

---------------------------------------------------------------------------------------------------------------------------------------

下一步,ninja -C out/Default

找不到noise_tracks/city.wav,在我的下载文件中找到city.wav.sha1...

找不到相关资料 虽然有一些missing and on known rule to make it。

用vs2017打开all.sln,生成结果也是失败

卡住了....

----------------------------------------------------------------------------------------------------------------------------------------

参考:webrtc源码编译+vs2017+生成sln - 静夜思2012 - 博客园

这台电脑为了做UWP开发,安装过Window SDK 10

关于编译这里说的比较详细

-----------------------------------------------------------------------------------------------------------------------------------------

视频服务器(4) webrtc-streamer(windows下卡住了)相关推荐

  1. 开源实时音视频技术WebRTC在Windows下的简明编译教程

    1.前言 随着音视频技术的不断普及,Google推出的 WebRTC 越来越受到大家的喜欢.现在很多直播产品都是基于WebRTC 进行二次开发做出来的. WebRTC是提供了一整套处理实时音视频的开源 ...

  2. 音视频开发(4)---Windows下Red5安装与使用入门

    Windows下Red5安装与使用入门 简介 Red5是一个采用Java开发开源的Flash流媒体服务器.它支持:把音频(MP3)和视频(FLV)转换成播放流: 录制客户端播放流(只支持FLV):共享 ...

  3. 存储设备映射Linux服务器,在linux和Windows下配置HP FC存储设备多路径驱动

    主机安装HBA卡驱动,一般光纤卡的厂家就是QLogic和Emulex的.Linux下查看光纤卡驱动模块是否加载通过lsmod|grepqla2xxx#查看是否加载了QLogic的光纤卡模块lsmod| ...

  4. svn服务器如何删文件,windows下 svn服务器端 无法删除文件,只能删除文件夹,这是怎么回...

    windows下 svn服务器端 无法删除文件,只能删除文件夹,这是怎么回 (2011-06-22 22:32:46) 标签: 情缘 咖啡机 杂谈 念删除文件时,右键后没有瞥见有删除的选项!敬辞谁理解 ...

  5. 海康摄像机视频rtsp转rtmp,windows下搭建nginx流媒体服务器,使用ffmpeg推流。

    1.运行nginx服务: cmd命令运行切换目录 cd/ e: cd E:\nginx nginx.exe -c conf/nginx-win.conf 2.ffmpeg视频推流 cmd命令切换目录 ...

  6. 视频 服务器运行时失败,Windows Media Player服务器运行失败的解决办法讲解

    当大家遇到Windows Media Player服务器运行失败,怎么解决呢?小编给大家分享一个Windows Media Player服务器运行失败的解决办法讲解,希望可以帮到大家. Windows ...

  7. 用vbs往服务器发送文件,[转] Windows 下命令行/VBS脚本,发送带附件邮件.

    利用VBScript发送邮件,以前从网上找的代码,不知原来的出处了.也不知作者是何人-.. 挺有用的脚本,我就一直在使用这个脚本来发邮件,还可以带附件.放在这里做个备份,免得到时又找不到了. 目前我就 ...

  8. 国内邮件服务器 评测,Windows下的邮件服务器性能评测(组图)

    <Windows下的邮件服务器性能评测(组图)>由会员分享,可在线阅读,更多相关<Windows下的邮件服务器性能评测(组图)(15页珍藏版)>请在人人文库网上搜索. 1.前言 ...

  9. 【学习笔记】在windows下进行基于TCP的本地客户端和服务端socket通信

    文章目录 socket介绍 java中使用socket 基于tcp的socket通信 使用ServerSocket类创建一个web服务器:(java) windows下的基于tcp的socket编程( ...

最新文章

  1. matlab分割字,matlab字符分割方法
  2. 网易智慧企业 Node.js 实践(3)| 灰度环境和应用监控
  3. 依赖注入_引用其他的bean
  4. 拦截游戏窗口被移动_Ruined King官网版-拳头rpg Ruined King游戏最新版下载v1.0
  5. 电脑入门完全自学手册_电气自动化自学宝典——看过人人都是工程师
  6. Microsoft Project学习系列(一)
  7. LinkedHashMap+Iterable实现LRU算法(简单易懂)
  8. cadz轴归零命令_CAD的Z轴归零的插件分享
  9. Linux面试题附答案
  10. C#常用 API函数大全
  11. dev分支clone时git报错:'origin/dev' is not a commit and a branch 'dev' cannot be created from it
  12. IIS7安装URLReWrite的妙用
  13. 零基础入门:基于开源WebRTC,从0到1实现实时音视频聊天功能
  14. 创建AWS个人账户享用一年免费套餐
  15. Java BigDecimal 的舍入模式(RoundingMode)详解
  16. 架构漫谈(八):从架构的角度看如何写好代码 + 我的思考
  17. Microsoft Surface 平板电脑
  18. Xilinx的智能门控时钟技术你了解吗?
  19. 用matlab实现熵权法,熵权法原理及matlab代码实现
  20. 企业如何实现OA办公系统的最大化应用价值?

热门文章

  1. 【MWC 2022观察】华为绿色智简全光网:让联接释放数字化转型新动能
  2. 微信小程序上传文件到阿里OSS教程
  3. 在ros中使用glog
  4. 方法finalize()的应用
  5. 信息系统安全等级保护(简称“等保”)
  6. 不写一行代码,让Excel轻松制作动态图表​
  7. 两个高斯分布乘积的理论推导
  8. LoadRunner技巧之思考时间设置
  9. RSF-Center,集群模式下-协调数据结构
  10. 金九银十,测试思维面试题最新整理