用go写自己的多媒体服务器也有一段时间了,但基本上都是靠自己发挥了ctl c v的优势,离大佬还有相当长的路要走,决定还是研究一下元老级的的几个多媒体服务器的代码(说来惭愧,虽然学习多媒体音视频有一些时间了,这几个项目还没有真正的去学习过),向行业高手学习总是那条最捷径的路,现在虽然我绕了一点路,但还好没偏的太远,继续上路,srs zlm mediasoup janus
先从简单的编译运行开始
SRS
srs 简单的编译脚本开始,记得加上--ffmpeg-opus=on 不然会出现找不到opus pkgconfig的报错,网上大佬好像都不屑回到这个问题
export PKG_CONFIG_PATH=/home/data/mediaserver/srs/trunk/objs/Platform-Linux-5.4.0-GCC9.4.0-SRS5-x86_64/opus/lib/pkgconfig:$PKG_CONFIG_PATH
export CC=gcc
export CXX=g++
export AR=ar
export LD=ld
export CROSS_COMPILE=
./configure --full --ffmpeg-opus=on --rtc=on --gb28181=on --x86-64 && make -j4
./objs/srs -c conf/srs.conf
zlmediakit
#build zlmediakit
rm -rf build
mkdir build
cd build
cmake .. -DENABLE_WEBRTC=on \
-DOPENSSL_CRYPTO_LIBRARY=$openssl_path \
-DOPENSSL_INCLUDE_DIR=$openssl_path \
-DOPENSSL_SSL_LIBRARY=$openssl_path \
-DSCTP_INCLUDE_DIRS=$sctp_path/usrsctplib \
-DSCTP_LIBRARIES=$sctp_path/build/usrsctplib \
-DSRTP_INCLUDE_DIRS=$srtp_path \
-DSRTP_LIBRARIES=$srtp_path \
-DPKG_CONFIG_EXECUTABLE=$pkg_path \
../
make -j4
./release/linux/Debug/MediaServer
闫华大佬的mediasoup sfu
cur_dir=$(cd "$(dirname "$0")"; pwd)
parent_dir=$(dirname $(pwd))
export CC=gcc
export CXX=g++
export AR=ar
export LD=ld
export CROSS_COMPILE=
cd script
#./buildzlib.sh
#./buildopenssl.sh
#./buildboringssl.sh
#./buildboost.sh
#./buildlibressl.sh
./buildopenssl.sh
./buildoatpp.sh
./buildoatppwebsocket.sh
./buildoatppopenssl.sh
#./buildspdlog.sh
./builduv.sh
./buildjson.sh
./buildnetstring.sh
./buildcatch.sh
./buildsrtp.sh
./buildusrsctp.sh
#./buildboost.sh
./buildabsl.sh
./buildsdp.sh
./buildwebrtc.sh
cur_dir=$(cd "$(dirname "$0")"; pwd)
parent_dir=$(dirname $(pwd))
export CC=gcc
export CXX=g++
export AR=ar
export LD=ld
export CROSS_COMPILE=
if [ -e /etc ]; then
/bin/rm -rf build
/bin/rm -rf CMakeCache.txt
/bin/rm -rf cmake_install.cmake
else
echo "is window"
rm build -recurse
rm CMakeCache.txt
rm cmake_install.cmake
fi
if [ -e release/ ]; then
#/bin/rm -rf release/bin/*
echo "not rm"
fi
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${cur_dir}/release ..
make
make install
好了,我已经成功了一半了