webrtc这个坑

原创 2016年08月31日 13:46:21

         像这种成熟开源项目没有必要百度google,直接去官网就行了,官网上的资料都很详细。当然需要翻墙。我用的是expressvpn,这是一个外国的vpn,还比较靠谱。我之前用的是国内的cocovpn,这个vpn在一个多月前用不了了。不知是封了还是老板跑路了。


        由于当前用的回声抑制库的CPU使用率过高,于是开始研究webrtc。运行了WebRTCDemo,看了一看单纯音频处理这一块的CPU使用率并不高。webrtc也是google的开源项目,下载代码的方式和Crosswalk应该是一样的。在Android源码中和Crosswalk中都有webrtc的源码,理论上在他们的代码中也能够编译webrtc,我在crosswalk中运行了webrtc中生成gyp的脚本gyp_webrtc提示依赖chromium,我觉得这是个坑,还是下载源码吧。wenrtc用到chromium中的基础库和编译工具,所以也要下载chromium。这个项目下载下来22G,大大出乎我的意料,因为单纯的webrtc代码才100多M。

        接下来开始编译了,还是出现了新的坑。python webrtc/build/gyp_webrtc,提示一个java文件找不到,我在webrtc issue上搜到这个问题,这个问题的状态是Fixed,表明已经解决了。我下载的代码已经是最新的,我看看了针对这个问题改动的文件和我下载下来的也一样,理论上不应该出现这个问题。错误是某个模块依赖的文件找不到,正好这个文件在test目录中,我想应该无关紧要,打开chromium/src/base/base.gyp,搜索这个文件,发现它属于junit_test这个模块,junit是一个自动测试的框架。注释掉应该无关紧要。注释掉之后这个错误过去了,但是出现新的错误,pkg-config找不到gobject gtk等。编译Android版的肯定不需要gtk。首先想到是不是下错了,但是已经gclient config过了,.gclient 也是Android。文件应该没有下载错误。代码仓库在master,这是开发中的版本,应该不问题。应该在稳定版本上编译,果然官网上提到了如何在分支上工作,我选择在branch-heads/43,这是一个靠中间的版本。切换完分支后再次运行python webrtc/build/gyp_webrtc,还是原来的错误。想到GYP_DEFINES是以环境变量的形式存在,除了config时用到,其他的命令也许同样会用到,于是export GYP_DEFINES="OS=android"。再执行python webrtc/build/gyp_webrtc通过。

编译后又出现下面这个错误:

-compile:
    [javac] Compiling 4 source files to /mnt/sda/project/android_webrtc/src/webrtc/examples/android/opensl_loopback/bin/classes
    [javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
    [javac] error: warnings found and -Werror specified
    [javac] 1 error
    [javac] 3 warnings

BUILD FAILED
/mnt/sda/project/android_webrtc/src/third_party/android_tools/sdk/tools/ant/build.xml:720: The following error occurred while executing this line:
/mnt/sda/project/android_webrtc/src/third_party/android_tools/sdk/tools/ant/build.xml:734: Compile failed; see the compiler error output for details.
我想是不是和jdk的版本有关,系统中用的是jdk1.6和jdk1.8,官网上用的是1.7。我从jdk1.6换到jdk1.8,虽然不是1.7感觉应该和这无关。

opensl_loopback编译不过也许我要的WebRTCDemo能够编译过。ninja -C out/Release WebRTCDemo,编译过了。


成功!


后续问题

我将media_demo导入进eclipse,失败了。对比了一下其他的工程发现少了.project文件和.settings文件夹,补上之后仍然不行。折腾了一阵终于好了,两个原因:

1、代码目录不能拷贝到workspace目录下面。

2、一个workspace下面不能有两个相同名称的工程。


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zmc1216/article/details/52382747

webrtc零基础教程

-
  • 1970年01月01日 08:00

WebRTC漏洞可泄露VPN用户真实IP

 Sphinx 2015-02-04 共128181人围观 ,发现 22 个不明物体 漏洞资讯 <img src="http://image.3001.net/imag...
  • dj0379
  • dj0379
  • 2016-08-19 10:29:46
  • 2114

实现WebRTC的几个想法

不借助第三方应用,快速且安全地在浏览器中传输视频——这有可能实现吗?根据你的需求,有不止一种方式能够将WebRTC添加到你的站点之中。 WebRTC(Web实时通信,Web Real-Time ...
  • u012635648
  • u012635648
  • 2017-05-27 10:02:22
  • 917

webrtc官方下载(windows)

为了生命,为了健康,过来看下xiaoc的博客,太繁杂了!xiaoc现在开始一步一步重新下载一遍。现在跟大家的时间是同步,2016年9月14开始下载,咱们看看到底啥时候下载完毕~~~~本文也可以从我网盘...
  • mandagod
  • mandagod
  • 2017-02-19 23:11:22
  • 2643

webrtc最新源码

  • 2016年12月29日 09:51
  • 8.7MB
  • 下载

webrtc 官网编译步骤

  • 2015年01月29日 16:08
  • 42KB
  • 下载

WebRTC项目库打包小工具

  • 2014年07月22日 20:05
  • 724B
  • 下载

全世界的webrtc开发者开发者都在吐槽为什么谷歌不能给个小的代码或者包装好的库,而不是几十G的代码!

全世界的webrtc开发者开发者都在吐槽为什么谷歌不能给个小的代码或者包装好的库,而不是几十G的代码!...
  • yangzhenping
  • yangzhenping
  • 2016-08-30 13:18:01
  • 2487

webrtc媒体库封装与测试

先将webrtc的代码进行剥离,提取出媒体处理部分,再进行简单的封装成媒体库,主要函数类似如下:  /*音频相关*/ int audio_init(); int audio_deinit(); int...
  • quitehandsome
  • quitehandsome
  • 2015-11-18 12:54:14
  • 1342

基于webrtc的媒体库封装代码

  • 2016年03月22日 22:06
  • 19.36MB
  • 下载
收藏助手
不良信息举报
您举报文章:webrtc这个坑
举报原因:
原因补充:

(最多只允许输入30个字)