从 0 打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
32579 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
WebRTC 1对1通话 (23讲)
从 0 打造音视频直播系统
15
15
1.0x
00:00/00:00
登录|注册

26 | 为什么编译Medooze Server这么难?

Make/Ninja
GYP
node-gyp
npm install medooze-media-server --save
media-server 目录
external 目录
lib 目录
src 目录
与 node-gyp 的关系
生成不同平台的 IDE 工程文件或编译文件
由 Chromium 团队开发的构建工具
生成 Node.js 中运行的 C/C++ Native 插件的工具
构建过程
构建命令
目录结构
源码及 Demo 可以进行深入学习
支持音视频多方会议、录制回放、直播等流媒体技术
与 make 的关系
CMake 在项目编译中的作用
Ninja
编译media-server
编译common_audio
下载代码
安装依赖库
GYP
node-gyp
Media-server-node 项目
主要介绍Medooze是如何编译和构建的
详细讲述 Medooze 的架构、实现以及应用
Medooze 是很好的选择
对比 Licode、Janus、Mediasoup以及Medooze 四个 WebRTC 开源流媒体服务器的实现
思考时间
单独构建media-server项目
Node-gyp & GYP
构建Medooze
为什么编译Medooze Server这么难?

该思维导图由 AI 生成,仅供参考

上一篇文章中,我们对 Licode、Janus、Mediasoup 以及 Medooze 四个 WebRTC 开源流媒体服务器的实现进行对比,对于想研究音视频多方会议、录制回放、直播等流媒体技术的开发人员来说,Medooze 是很好的选择。因为它支持所有这些功能,通过它的源码及其 Demo 就可以对 Medooze 进行深入学习了。
从本文开始,在接下来的四篇文章我会向你详细讲述 Medooze 的架构、实现以及应用。而本文主要介绍 Medooze 是如何编译和构建的。
也许你会觉得 Linux 下的程序编译有什么可讲的呢,直接在 Linux 系统下执行一下 build 命令不就行了,还需要专门理解系统的编译过程和构建工具的使用吗?实际上,根据我多年的工作经验来看,理解项目的编译过程、熟悉各种构建工具的使用是非常有必要的。下面我就举几个例子,通过这几个例子,我想你就会对它们有一个深刻感悟了。
第一个例子,伴随着技术的飞速发展,构建工具也有了很大的变化,从最早的手动编写 Makefile,逐渐过渡到使用 Autotools、CMake、GYP 等构建工具来生成 Makefile,这些构建工具可以大大提高你的工作效率。比如,通过 Andorid Studio 创建 JNI 程序时,在 Android Studio 底层会使用 CMake 来构建项目,你会发现使用 CMake 构建 JNI 非常方便。然而像 Chrome 浏览器这种大型项目也用 CMake 构建就很不合适了,因为 Chrome 浏览器的代码量巨大,使用 CMake 构建它会花费特别长的时间(好几个小时),为了解决这个问题 Chrome 团队自己开发了一个新的构建工具,即 GYP,来构建这种大型项目,从而大大提高了构建的效率。由此可见,不同的项目使用不同的构建工具对开发效率的提升是巨大的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了编译Medooze Server的挑战以及解决方法。作者首先强调了理解项目的编译过程和熟悉各种构建工具的使用的重要性,并通过几个例子阐述了这一点。文章详细介绍了Media-server-node项目的目录结构,并强调了其中几个重要目录的作用。在介绍如何构建Media-server-node项目时,作者指出了构建重点在于对C/C++目录中的Native代码的构建,以及调用node-gyp命令将C++代码编译成Node.js的Native插件。最后,文章提到了node-gyp是如何构建C++ Native代码的。整体来看,本文通过介绍Medooze Server的编译过程和构建工具的使用,为开发人员提供了实用的技术指导。文章还介绍了node-gyp和GYP的关系,以及如何单独构建media-server项目。同时,还详细介绍了安装依赖库、编译common_audio和编译media-server的步骤。另外,还介绍了Ninja工具的作用和使用方法。整体而言,本文内容丰富,对于需要了解Medooze Server编译过程和构建工具使用的开发人员具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 打造音视频直播系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(20)

  • 最新
  • 精选
  • Jason
    很赞,不但能学到视频知识,还熟悉了很多工具

    作者回复: 谢谢!

    2019-09-22
    4
  • helloa
    medooze支持手机吗?

    作者回复: medooze是WebRTC流媒体服务器, 所有使用 WebRTC的终端都可以与它进行连接

    2019-09-17
    3
  • 颜广杰
    老师,我用这个optimizations分支也编译失败,能麻烦帮我看一下吗? root@iZwz9isydglfcdgnqd84a4Z:/home/media-server# make mkdir -p /home/media-server/build/debug mkdir -p /home/media-server/build/debug/test mkdir -p /home/media-server/bin/debug [CXX] debug /home/media-server/src/mcu.cpp In file included from /home/media-server/include/participant.h:14:0, from /home/media-server/include/multiconf.h:9, from /home/media-server/include/mcu.h:6, from /home/media-server/src/mcu.cpp:5: /home/media-server/include/rtpsession.h:10:10: fatal error: srtp2/srtp.h: No such file or directory

    作者回复: 下载的时候使用git的循环下载,它里边依赖其它子项目,平常的 git clone 方法无法将依赖的子项目代码下载下来,从而导致的问题

    2019-12-28
    4
    2
  • piboye
    怎么这么多人叫李工啊😂

    作者回复: 李姓是大户,哈哈

    2020-12-31
    1
  • 火哥
    李工,你好,Medooze支持多路合成吗?

    作者回复: 它的商业版支持

    2020-01-02
    1
  • 一支箭💯¹⁰²⁴
    Media-server-go这个项目有什么教程吗?

    作者回复: 没有,你可以到网上搜索我的 mediasoup的课程

    2019-10-29
    1
  • Geek_82d1fd
    老师,medooze有没有什么集成开发工具可以断点调试

    作者回复: 我一般直接用gdb,我想做服务端开发的同学对它都不陌生

    2021-05-21
  • 阿良
    老师好,我需要浏览器端的WebRTC与小程序端进行视频通话,小程序端推拉流采用的是rtmp协议(使用的是node-media-server),请问Medooze能否满足这个需求?

    作者回复: 这个不支持

    2021-04-23
  • 宇宙之王
    老师近期有计划整理一套在CentOS下的Medooze部署教程吗??

    作者回复: 看作者的github,那上边应该有方法

    2020-10-09
  • sam
    在media-server-node目录下执行npm install medooze-media-server --save 出现这个错误 npm ERR! code ENOSELF npm ERR! Refusing to install package with name "medooze-media-server" under a package npm ERR! also called "medooze-media-server". Did you name your project the same npm ERR! as the dependency you're installing? npm ERR! npm ERR! For more information, see: npm ERR! <https://docs.npmjs.com/cli/install#limitations-of-npms-install-algorithm>

    作者回复: 你直接用 npm install 试试

    2020-07-10
收起评论
显示
设置
留言
20
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部