首先当然是去官网clone官方的入口项目,具体方法可自行查看官网文档,下面主要说的是项目clone下来后,编译可能缺少的依赖在哪里.
另外声明,当前使用的环境为ubuntu18.04的桌面版
1:安装java环境, 安装maven,从apt安装就可以了
2:编译kurent-module-creator项目,进入在该项目后,通过maven打包,命令如下
mvn install
3:然后把kurent-module-creator源码中的script文件夹下的脚本文件复制到/usr/bin,把生成到target中的所有jar文件复制到/usr/lib
4:编译KMS-CAMKE-UTIL目录,首先跟目录下cmake,然后进入build文件夹make,然后make install
完整make install 后 可以看到很多.cmake的文件被安装到了cmake应用程序的默认文件夹中,这时候再把kurento-module-creator中的FindKurentoModuleCreator.cmake文件复制到这个目录.
5:编译kmsjsoncpp的模块. 需要1个kmsjsoncpp的库,这个到kurento的官网下只能找到jsoncpp的项目,需要下载后切换到kms的分支最新的版本.
下面提供kmsjsoncpp的git的路径(已经fork到个人的库)
git clone https://github.com/ywcai/jsoncpp.git
查看所有分支git branch -a
切换到分支git checkout -b origin/kms-6.3.2
查看切换后分支 是否切换成功
然后通过
cmake .
make
make install
6:编译KMS-JSONRPC
apt install libboost-all-dev(把所有的都直接安装了 ,免的单独安 后面有需要其他依赖又去找)
OK,这个时候可以进入KMS-JSONRPC项目
camke .
make &&make install
7 当然上面说的组件,是可以有直接安装的源不用自己编译的.但如果需要修改这些源码,也可以通过上面的方式自己编译
现在可以开始进入下载的入口项目根目录进行主程序所需要依赖的下载和服务器的编译安装,安装钱,先添加kurento的存储库
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 # Get Ubuntu version definitions source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release # Add the repository to Apt sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF # Kurento Media Server - Nightly packages deb [arch=amd64] http://ubuntu.openvidu.io/dev $DISTRIB_CODENAME kms6 EOF sudo apt-get update
8 进入kms-omni-build目录
Cmake,看看还缺什么库或其他东西,却的话camke会提示
另外核心的几个子项目最好不要用官方打好包的源,否则就失去了从源码安装的意义,服务器核心功能的处理主要是在ksm-core和ksm-element的子项目中
以下是kms-core依赖
apt install kms-cmake-utils
apt install kms-jsonrpc-dev //以上这两个可以直接安装官方大号包的源,当然也可以按照上面的方式从源码安装.
apt install kurento-module-creator
apt install libgstreamer1.5-dev
apt install libboost-all-dev //这里为了方便,直接就全安装了.
apt install libsigc++-2.0-dev libvpx-dev uuid-dev
以下是kms-element依赖
apt install ffmpeg//2选1 安装ffmepg即可
//以下这些gst的包都是作者维护的gstreamer分支,如果要修改可能会比较麻烦,如果有BUG最好联系作者处理了.
apt install gstreamer1.5-nice
apt install gstreamer1.5-plugins-bad gstreamer1.5-plugins-good gstreamer1.5-x libgstreamer-plugins-base1.5-dev
apt install libglibmm-2.4-dev libnice-dev libsigc++-2.0-dev libsoup2.4-dev libssl1.0-dev
apt install openwebrtc-gst-plugins-dev
//如果只做媒体转发,这个没什么用,但也的加进来编译
以下是kms-filters
apt install libopencv-dev
启动项目 kurento-mdedia-server 所需要的依赖
apt install libwebsocketpp-dev
好了,接下来可以在你的IDE中编译运行了. 不需要在去运行源码中提供的编译脚本
当然如果你使用正好也是vscode, launch.json配置如下
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
// "--logs-path=/usr/jdsj/log/", 如果需要设置日志保存路径,则加载下面的args中,这里为了调试,没有选择存日志.
"version": "0.2.0",
"configurations": [
{
"name": "cpp - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": " ${workspaceFolder}/build/kurento-media-server/server/kurento-media-server",
"args": [
"--gst-debug=3,Kurento*:4,kms*:4,sdp*:4,webrtc*:4,*rtpendpoint:4,rtp*handler:4,rtpsynchronizer:4,agnosticbin:4",
"--conf-file=${workspaceFolder}/build/config/kurento.conf.json",
"--modules-config-path=${workspaceFolder}/build/config",
"--modules-path=$PWD:/usr/lib/x86_64-linux-gnu/kurento/modules",
"--gst-plugin-path=${workspaceFolder}",
"--gst-disable-registry-fork",
"--gst-disable-registry-update"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}