mirror of
https://github.com/ossrs/srs.git
synced 2025-02-14 20:31:56 +00:00
Added system library option for ffmpeg, srtp, srt libraries. v5.0.193 (#3846)
--------- Co-authored-by: john <hondaxiao@tencent.com>
This commit is contained in:
parent
56a4ca3f7e
commit
a9223ebe47
5 changed files with 62 additions and 7 deletions
|
@ -432,7 +432,10 @@ fi
|
|||
#####################################################################################
|
||||
# srtp
|
||||
#####################################################################################
|
||||
if [[ $SRS_RTC == YES ]]; then
|
||||
if [[ $SRS_RTC == YES && $SRS_USE_SYS_SRTP == YES ]]; then
|
||||
echo "Warning: Use system libsrtp, without compiling srtp."
|
||||
fi
|
||||
if [[ $SRS_RTC == YES && $SRS_USE_SYS_SRTP == NO ]]; then
|
||||
SRTP_OPTIONS=""
|
||||
# To eliminate warnings, see https://stackoverflow.com/a/34208904/17679565
|
||||
# was built for newer macOS version (11.6) than being linked (11.0)
|
||||
|
@ -501,7 +504,7 @@ fi
|
|||
# For cross build, we use opus of FFmpeg, so we don't build the libopus.
|
||||
if [[ $SRS_RTC == YES && $SRS_FFMPEG_OPUS != YES ]]; then
|
||||
# Only build static libraries if no shared FFmpeg.
|
||||
if [[ $SRS_SHARED_FFMPEG == NO ]]; then
|
||||
if [[ $SRS_SHARED_FFMPEG != YES ]]; then
|
||||
OPUS_OPTIONS="--disable-shared --disable-doc"
|
||||
fi
|
||||
if [[ $OS_IS_LOONGARCH64 == YES ]]; then
|
||||
|
@ -530,7 +533,10 @@ fi
|
|||
#####################################################################################
|
||||
# ffmpeg-fit, for WebRTC to transcode AAC with Opus.
|
||||
#####################################################################################
|
||||
if [[ $SRS_FFMPEG_FIT == YES ]]; then
|
||||
if [[ $SRS_FFMPEG_FIT == YES && $SRS_USE_SYS_FFMPEG == YES ]]; then
|
||||
echo "Warning: Use system ffmpeg, without compiling ffmpeg."
|
||||
fi
|
||||
if [[ $SRS_FFMPEG_FIT == YES && $SRS_USE_SYS_FFMPEG == NO ]]; then
|
||||
FFMPEG_CONFIGURE="env SRS_FFMPEG_FIT=on"
|
||||
if [[ $SRS_FFMPEG_OPUS != YES ]]; then
|
||||
FFMPEG_CONFIGURE="$FFMPEG_CONFIGURE PKG_CONFIG_PATH=${SRS_DEPENDS_LIBS}/opus/lib/pkgconfig"
|
||||
|
@ -647,7 +653,10 @@ fi
|
|||
#####################################################################################
|
||||
# SRT module, https://github.com/ossrs/srs/issues/1147#issuecomment-577469119
|
||||
#####################################################################################
|
||||
if [[ $SRS_SRT == YES ]]; then
|
||||
if [[ $SRS_SRT == YES && $SRS_USE_SYS_SRT == YES ]]; then
|
||||
echo "Warning: Use system libsrt, without compiling srt."
|
||||
fi
|
||||
if [[ $SRS_SRT == YES && $SRS_USE_SYS_SRT == NO ]]; then
|
||||
# Always disable c++11 for libsrt, because only the srt-app requres it.
|
||||
LIBSRT_OPTIONS="--enable-apps=0 --enable-static=1 --enable-c++11=0"
|
||||
if [[ $SRS_SHARED_SRT == YES ]]; then
|
||||
|
|
|
@ -49,10 +49,13 @@ SRS_STATIC=NO
|
|||
SRS_SHARED_ST=NO
|
||||
# If enabled, link shared libraries for libsrt.so which uses MPL license.
|
||||
# See https://ossrs.net/lts/zh-cn/license#srt
|
||||
SRS_SHARED_SRT=NO
|
||||
SRS_SHARED_SRT=RESERVED
|
||||
# If enabled, link shared libraries for FFmpeg which is LGPL license.
|
||||
# See https://ossrs.net/lts/zh-cn/license#ffmpeg
|
||||
SRS_SHARED_FFMPEG=NO
|
||||
SRS_SHARED_FFMPEG=RESERVED
|
||||
# If enabled, link shared libraries for SRTP which is BSD license.
|
||||
# See https://ossrs.net/lts/zh-cn/license#srtp
|
||||
SRS_SHARED_SRTP=RESERVED
|
||||
# whether enable the gcov
|
||||
SRS_GCOV=NO
|
||||
# Whether enable cloud logging and APM(Application Performance Monitor).
|
||||
|
@ -68,6 +71,9 @@ SRS_LOG_LEVEL_V2=YES
|
|||
################################################################
|
||||
# Experts options.
|
||||
SRS_USE_SYS_SSL=NO # Use system ssl(-lssl) if required.
|
||||
SRS_USE_SYS_FFMPEG=NO # Use system ffmpeg if required.
|
||||
SRS_USE_SYS_SRT=NO # Use system srt(-lsrt) if required.
|
||||
SRS_USE_SYS_SRTP=NO # Use system srtp(-lsrtp) if required.
|
||||
SRS_VALGRIND=NO
|
||||
SRS_SANITIZER=RESERVED
|
||||
SRS_SANITIZER_STATIC=NO
|
||||
|
@ -213,7 +219,11 @@ Experts:
|
|||
--ssl-local=on|off Whether use local openssl, not system even exists. Default: $(value2switch $SRS_SSL_LOCAL)
|
||||
--shared-st=on|off Use shared libraries for ST which is MPL license. Default: $(value2switch $SRS_SHARED_ST)
|
||||
--shared-srt=on|off Use shared libraries for SRT which is MPL license. Default: $(value2switch $SRS_SHARED_SRT)
|
||||
--sys-srt=on|off Do not compile srt, use system srt(-lsrt) if required. Default: $(value2switch $SRS_USE_SYS_SRT)
|
||||
--shared-ffmpeg=on|off Use shared libraries for FFmpeg which is LGPL license. Default: $(value2switch $SRS_SHARED_FFMPEG)
|
||||
--sys-ffmpeg=on|off Do not compile ffmpeg, use system ffmpeg if required. Default: $(value2switch $SRS_USE_SYS_FFMPEG)
|
||||
--sys-srtp=on|off Do not compile srtp, use system srtp(-lsrtp) if required. Default: $(value2switch $SRS_USE_SYS_SRTP)
|
||||
--shared-srtp=on|off Use shared libraries for SRTP which is BSD license. Default: $(value2switch $SRS_SHARED_SRTP)
|
||||
--clean=on|off Whether do 'make clean' when configure. Default: $(value2switch $SRS_CLEAN)
|
||||
--simulator=on|off RTC: Whether enable network simulator. Default: $(value2switch $SRS_SIMULATOR)
|
||||
--generate-objs=on|off RTC: Whether generate objs and quit. Default: $(value2switch $SRS_GENERATE_OBJS)
|
||||
|
@ -395,7 +405,14 @@ function parse_user_option() {
|
|||
--use-shared-srt) SRS_SHARED_SRT=YES ;;
|
||||
--shared-st) SRS_SHARED_ST=$(switch2value $value) ;;
|
||||
--shared-srt) SRS_SHARED_SRT=$(switch2value $value) ;;
|
||||
--use-sys-srt) SRS_USE_SYS_SRT=YES ;;
|
||||
--sys-srt) SRS_USE_SYS_SRT=$(switch2value $value) ;;
|
||||
--shared-ffmpeg) SRS_SHARED_FFMPEG=$(switch2value $value) ;;
|
||||
--use-sys-ffmpeg) SRS_USE_SYS_FFMPEG=YES ;;
|
||||
--sys-ffmpeg) SRS_USE_SYS_FFMPEG=$(switch2value $value) ;;
|
||||
--shared-srtp) SRS_SHARED_SRTP=$(switch2value $value) ;;
|
||||
--use-sys-srtp) SRS_USE_SYS_SRTP=YES ;;
|
||||
--sys-srtp) SRS_USE_SYS_SRTP=$(switch2value $value) ;;
|
||||
|
||||
--with-valgrind) SRS_VALGRIND=YES ;;
|
||||
--without-valgrind) SRS_VALGRIND=NO ;;
|
||||
|
@ -513,10 +530,19 @@ function apply_auto_options() {
|
|||
if [[ $SRS_RTC == YES && $SRS_FFMPEG_FIT == RESERVED ]]; then
|
||||
SRS_FFMPEG_FIT=YES
|
||||
fi
|
||||
if [[ $SRS_USE_SYS_FFMPEG == YES && $SRS_SHARED_FFMPEG == RESERVED ]]; then
|
||||
SRS_SHARED_FFMPEG=YES
|
||||
fi
|
||||
if [[ $SRS_CROSS_BUILD == YES && $SRS_FFMPEG_OPUS != YES ]]; then
|
||||
echo "Enable FFmpeg native opus for cross building"
|
||||
SRS_FFMPEG_OPUS=YES
|
||||
fi
|
||||
if [[ $SRS_USE_SYS_SRT == YES && $SRS_SHARED_SRT == RESERVED ]]; then
|
||||
SRS_SHARED_SRT=YES
|
||||
fi
|
||||
if [[ $SRS_USE_SYS_SRTP == YES && $SRS_SHARED_SRTP == RESERVED ]]; then
|
||||
SRS_SHARED_SRTP=YES
|
||||
fi
|
||||
|
||||
# Enable asan, but disable for Centos
|
||||
# @see https://github.com/ossrs/srs/issues/3347
|
||||
|
@ -625,6 +651,7 @@ function regenerate_options() {
|
|||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --http-api=$(value2switch $SRS_HTTP_API)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --utest=$(value2switch $SRS_UTEST)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --srt=$(value2switch $SRS_SRT)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --sys-srt=$(value2switch $SRS_USE_SYS_SRT)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --rtc=$(value2switch $SRS_RTC)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gb28181=$(value2switch $SRS_GB28181)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --simulator=$(value2switch $SRS_SIMULATOR)"
|
||||
|
@ -632,9 +659,11 @@ function regenerate_options() {
|
|||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --cxx14=$(value2switch $SRS_CXX14)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --backtrace=$(value2switch $SRS_BACKTRACE)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --ffmpeg-fit=$(value2switch $SRS_FFMPEG_FIT)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --sys-ffmpeg=$(value2switch $SRS_USE_SYS_FFMPEG)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --ffmpeg-opus=$(value2switch $SRS_FFMPEG_OPUS)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --nasm=$(value2switch $SRS_NASM)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --srtp-nasm=$(value2switch $SRS_SRTP_ASM)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --sys-srtp=$(value2switch $SRS_USE_SYS_SRTP)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --clean=$(value2switch $SRS_CLEAN)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gperf=$(value2switch $SRS_GPERF)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gmc=$(value2switch $SRS_GPERF_MC)"
|
||||
|
@ -646,6 +675,7 @@ function regenerate_options() {
|
|||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-st=$(value2switch $SRS_SHARED_ST)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-srt=$(value2switch $SRS_SHARED_SRT)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-ffmpeg=$(value2switch $SRS_SHARED_FFMPEG)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-srtp=$(value2switch $SRS_SHARED_SRTP)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-verbose=$(value2switch $SRS_LOG_VERBOSE)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-info=$(value2switch $SRS_LOG_INFO)"
|
||||
SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-trace=$(value2switch $SRS_LOG_TRACE)"
|
||||
|
|
15
trunk/configure
vendored
15
trunk/configure
vendored
|
@ -152,6 +152,10 @@ if [[ $SRS_SHARED_ST == YES ]]; then LibSTfile="-L${LibSTRoot} -lst"; fi
|
|||
# srtp
|
||||
if [[ $SRS_RTC == YES ]]; then
|
||||
LibSrtpRoot="${SRS_OBJS}/srtp2/include"; LibSrtpFile="${SRS_OBJS}/srtp2/lib/libsrtp2.a"
|
||||
if [[ $SRS_USE_SYS_SRTP == YES ]]; then
|
||||
LibSrtpRoot=""; LibSrtpFile="libsrtp2.a"
|
||||
if [[ $SRS_SHARED_SRTP == YES ]]; then LibSrtpFile="-lsrtp2"; fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# FFMPEG for WebRTC transcoding, such as aac to opus.
|
||||
|
@ -167,6 +171,13 @@ if [[ $SRS_FFMPEG_FIT == YES ]]; then
|
|||
LibFfmpegFile="$LibFfmpegFile -L${SRS_OBJS}/opus/lib -lopus"
|
||||
fi
|
||||
fi
|
||||
if [[ $SRS_USE_SYS_FFMPEG == YES ]]; then
|
||||
LibFfmpegRoot=""
|
||||
LibFfmpegFile="libavcodec.a libswresample.a libavutil.a libopus.a";
|
||||
if [[ $SRS_SHARED_FFMPEG == YES ]]; then
|
||||
LibFfmpegFile="-lavcodec -lswresample -lavutil -lopus"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# openssl-1.1.0e, for the RTMP complex handshake.
|
||||
|
@ -188,6 +199,10 @@ fi
|
|||
if [[ $SRS_SRT == YES ]]; then
|
||||
LibSRTRoot="${SRS_OBJS}/srt/include"; LibSRTfile="${SRS_OBJS}/srt/lib/libsrt.a"
|
||||
if [[ $SRS_SHARED_SRT == YES ]]; then LibSRTfile="-L${SRS_OBJS}/srt/lib -lsrt"; fi
|
||||
if [[ $SRS_USE_SYS_SRT == YES ]]; then
|
||||
LibSRTRoot=""; LibSRTfile="libsrt.a"
|
||||
if [[ $SRS_SHARED_SRT == YES ]]; then LibSRTfile="-lsrt"; fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# the link options, always use static link
|
||||
|
|
|
@ -7,6 +7,7 @@ The changelog for SRS.
|
|||
<a name="v5-changes"></a>
|
||||
|
||||
## SRS 5.0 Changelog
|
||||
* v5.0, 2023-10-20, Merge [#3846](https://github.com/ossrs/srs/pull/3846): Added system library option for ffmpeg, srtp, srt libraries. v5.0.193 (#3846)
|
||||
* v5.0, 2023-10-17, Merge [#3840](https://github.com/ossrs/srs/pull/3840): Disable asan by default. v5.0.192 (#3840)
|
||||
* v5.0, 2023-10-17, Merge [#3837](https://github.com/ossrs/srs/pull/3837): Support set the ice-ufrag and ice-pwd for connectivity check. v5.0.191 (#3837)
|
||||
* v5.0, 2023-10-17, Merge [#3758](https://github.com/ossrs/srs/pull/3758): Refine docker detect mechenism. v5.0.190 (#3758)
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
#define VERSION_MAJOR 5
|
||||
#define VERSION_MINOR 0
|
||||
#define VERSION_REVISION 192
|
||||
#define VERSION_REVISION 193
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue