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下面不能有两个相同名称的工程。


版权声明:本文为博主原创文章,未经博主允许不得转载。

webrtc官方下载(windows)

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

WebRTC现状及实现概要

摘要: Google 通过把 WebRTC 项目开源,希望浏览器厂商能够将该技术内建在浏览器中,从而使Web应用开发人员能够通过HTML标签和JavaScript API就实现Web音频、视频通信功能...
  • hh2000
  • hh2000
  • 2014年09月02日 08:49
  • 4974

WebRTC开源项目一览

一、重点参考 1.1 知乎 原文链接: http://www.zhihu.com/question/25497090 可以用WebRTC来做视频直播吗? 经常看到WebRTC的点对点的视频, ...

WebRTC开源5周年了,Google怎么看?

 WebRTC中文网(blacker) · 2016-08-18 19:36 2016年6月9日是WebRTC开源5周年的日子,Google WebRTC负责人Harald在社区里面写了一...
  • dj0379
  • dj0379
  • 2016年08月24日 12:50
  • 710

跨平台的WebRTC客户端框架:OpenWebRTC

Webrtc的ios框架编译 http://www.th7.cn/Program/IOS/201502/390418.shtml OpenWebRTC 是基于 Gstreamer 实现...

WebRTC开源项目一览之二

四、Kurento视频直播系统 4.1  应用实例 搞视频会议就会涉及一对多、多对多、广播、转码、混音、合屏、录制,这就需要用到流媒体服务器,而kurento就具有这些功能。 他主要用来作为we...

编译WebRTC

编译WebRTC  理论上这是作者吧?http://white313.blog.163.com/blog/static/2102620116314827580/ 在这转的 在某篇对goo...

为何一直推荐WebRTC

本文为了缅怀为音视频通讯做出突出的年轻英才-雷霄骅,真是天妒英才!!!   开头有点伤感,做为一名工作在前线的IT技术人员,听到这个消息心里总是有点不好受的,如果各位有幸读到这篇文章请牢记:注意休息...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:webrtc这个坑
举报原因:
原因补充:

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