多媒体服务器的向高手学习之路

本文介绍了使用Go语言开发多媒体服务器的经验,作者分享了编译和运行SRS、ZLMediaKit以及MediaSoup这三个知名多媒体服务器项目的步骤,强调了学习开源项目的重要性,并提供了详细的编译配置和命令行指令。
摘要由CSDN通过智能技术生成

用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

 

好了,我已经成功了一半了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值