mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
SRT: Build SRT from source by SRS. 4.0.115
This commit is contained in:
parent
262f0fc8c8
commit
90f1b482ab
115 changed files with 44513 additions and 19 deletions
|
@ -102,6 +102,23 @@ function Ubuntu_prepare()
|
|||
fi
|
||||
fi
|
||||
|
||||
if [[ $SRS_SRT == YES ]]; then
|
||||
echo "SRT enable, install depend tools"
|
||||
tclsh <<< "exit" >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Installing tcl."
|
||||
require_sudoer "sudo apt-get install -y --force-yes tcl"
|
||||
sudo apt-get install -y --force-yes tcl; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi
|
||||
echo "The tcl is installed."
|
||||
fi
|
||||
|
||||
cmake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Installing cmake."
|
||||
require_sudoer "sudo apt-get install -y --force-yes cmake"
|
||||
sudo apt-get install -y --force-yes cmake; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi
|
||||
echo "The cmake is installed."
|
||||
fi
|
||||
fi
|
||||
|
||||
pkg-config --version >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Installing pkg-config."
|
||||
require_sudoer "sudo apt-get install -y --force-yes pkg-config"
|
||||
|
@ -181,6 +198,23 @@ function Centos_prepare()
|
|||
fi
|
||||
fi
|
||||
|
||||
if [[ $SRS_SRT == YES ]]; then
|
||||
echo "SRT enable, install depend tools"
|
||||
tclsh <<< "exit" >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Installing tcl."
|
||||
require_sudoer "sudo yum install -y tcl"
|
||||
sudo yum install -y tcl; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi
|
||||
echo "The tcl is installed."
|
||||
fi
|
||||
|
||||
cmake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Installing cmake."
|
||||
require_sudoer "sudo yum install -y cmake"
|
||||
sudo yum install -y cmake; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi
|
||||
echo "The cmake is installed."
|
||||
fi
|
||||
fi
|
||||
|
||||
pkg-config --version --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Please install pkg-config"; exit -1;
|
||||
fi
|
||||
|
@ -278,6 +312,23 @@ function OSX_prepare()
|
|||
fi
|
||||
fi
|
||||
|
||||
if [[ $SRS_SRT == YES ]]; then
|
||||
echo "SRT enable, install depend tools"
|
||||
tclsh <<< "exit" >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Installing tcl."
|
||||
echo "brew install tcl."
|
||||
brew install tcl; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi
|
||||
echo "install tcl success"
|
||||
fi
|
||||
|
||||
cmake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then
|
||||
echo "Installing cmake."
|
||||
echo "brew install cmake."
|
||||
brew install cmake; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi
|
||||
echo "install cmake success"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "OSX install tools success"
|
||||
return 0
|
||||
}
|
||||
|
@ -689,16 +740,34 @@ fi
|
|||
# SRT module, https://github.com/ossrs/srs/issues/1147#issuecomment-577469119
|
||||
#####################################################################################
|
||||
if [[ $SRS_SRT == YES ]]; then
|
||||
if [[ -f /usr/local/lib64/libsrt.a && ! -f ${SRS_OBJS}/srt/lib/libsrt.a ]]; then
|
||||
mkdir -p ${SRS_OBJS}/srt/lib && ln -sf /usr/local/lib64/libsrt.a ${SRS_OBJS}/srt/lib/libsrt.a
|
||||
mkdir -p ${SRS_OBJS}/srt/include && ln -sf /usr/local/include/srt ${SRS_OBJS}/srt/include/
|
||||
fi
|
||||
if [[ -f ${SRS_OBJS}/srt/lib/libsrt.a ]]; then
|
||||
echo "libsrt-1.4.1 is ok.";
|
||||
if [[ -f ${SRS_OBJS}/${SRS_PLATFORM}/srt/lib/libsrt.a ]]; then
|
||||
echo "libsrt-1-fit is ok.";
|
||||
else
|
||||
echo "no libsrt, please run in docker ossrs/srs:srt or build from source https://github.com/ossrs/srs/issues/1147#issuecomment-577469119";
|
||||
exit -1;
|
||||
echo "Build srt-1-fit"
|
||||
(
|
||||
if [[ ! -d ${SRS_OBJS}/${SRS_PLATFORM}/openssl/lib/pkgconfig ]]; then
|
||||
echo "OpenSSL pkgconfig no found, build srt-1-fit failed.";
|
||||
exit -1;
|
||||
fi
|
||||
# Always disable c++11 for libsrt, because only the srt-app requres it.
|
||||
LIBSRT_OPTIONS="--disable-app --enable-shared=0 --enable-static --enable-c++11=0"
|
||||
# Start build libsrt.
|
||||
rm -rf ${SRS_OBJS}/${SRS_PLATFORM}/srt-1-fit && cd ${SRS_OBJS}/${SRS_PLATFORM} &&
|
||||
cp -R ../../3rdparty/srt-1-fit srt-1-fit && cd srt-1-fit &&
|
||||
PKG_CONFIG_PATH=../openssl/lib/pkgconfig ./configure --prefix=`pwd`/_release $LIBSRT_OPTIONS &&
|
||||
make ${SRS_JOBS} && make install &&
|
||||
cd .. && rm -rf srt && ln -sf srt-1-fit/_release srt &&
|
||||
# If exists lib64 of libsrt, link it to lib
|
||||
if [[ -d srt/lib64 ]]; then
|
||||
cd srt && ln -sf lib64 lib
|
||||
fi
|
||||
)
|
||||
ret=$?; if [[ $ret -ne 0 ]]; then echo "Build srt-1-fit failed, ret=$ret"; exit $ret; fi
|
||||
fi
|
||||
# Always update the links.
|
||||
(cd ${SRS_OBJS}/${SRS_PLATFORM} && rm -rf srt && ln -sf srt-1-fit/_release srt)
|
||||
(cd ${SRS_OBJS} && rm -rf srt && ln -sf ${SRS_PLATFORM}/srt-1-fit/_release srt)
|
||||
if [ ! -f ${SRS_OBJS}/srt/lib/libsrt.a ]; then echo "Build srt-1-fit failed."; exit -1; fi
|
||||
fi
|
||||
|
||||
#####################################################################################
|
||||
|
|
|
@ -447,12 +447,13 @@ function apply_detail_options() {
|
|||
SRS_X86_X64=YES; opt="--x86-x64 $opt";
|
||||
fi
|
||||
|
||||
# Enable c++11 for SRT.
|
||||
# The SRT code in SRS requires c++11, although we build libsrt without c++11.
|
||||
# TODO: FIXME: Remove c++11 code in SRT of SRS.
|
||||
if [[ $SRS_SRT == YES ]]; then
|
||||
SRS_CXX11=YES
|
||||
fi
|
||||
|
||||
# Enable FFmpeg fit for RTC to trancode audio from AAC to OPUS, if user has't disabled it.
|
||||
# Enable FFmpeg fit for RTC to transcode audio from AAC to OPUS, if user enabled it.
|
||||
if [[ $SRS_RTC == YES && $SRS_FFMPEG_FIT == RESERVED ]]; then
|
||||
SRS_FFMPEG_FIT=YES
|
||||
fi
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue