Skip to main content

LICENSE

SRS用到了一些第三方库,可能是有自己的LICENSE,这个WIKI介绍了SRS和相关库的LICENSE问题。

免责声明:注意我不是个律师,所以这不是法律建议,最终还是请找相关专业人士确认。

SRS

SRS v1/v2/v3/v4/v5

SRS v1/v2/v3使用的是MIT协议,非常宽松,可以在商业化中使用的。

SRS v4(以及后续版本),简化和规范了LICENSE申明,参考Use SPDX-License-Identifier: MITSPDX是Linux基金会的规范,被POCOLinux Kernel等广泛使用。

SRS v5授权可以选择MITMulanPSL-2.0协议。MulanPSL-2.0是兼容Apache-2.0协议,详细请看这里

State Threads

State Threads库是由Netscape发起的项目,采用双LICENSE授权,可以用MPL 1.1,或者GPL v2(或更新)。

你可以选择这两个授权中的任意一个LICENSE,商业应用可能会选择MPL,而开源软件也可以选择GPL。

SRS自己是MIT,所以选择的ST的LICENSE也是MPL,这样协议上才能兼容。

更多信息请参考StateThreads的LICENSE

ST(State Threads)的上游是SourceForge, SRS使用patched ST

ST使用GPLv2 或者 MPL 双协议授权。MPL是对商业化友好的授权,请参考 #907.

注意SRS如果需要使用State Threads的MPL授权,那么要开启./configure --shared-st=on,采用库的方式链接。

OpenSSL

OpenSSL是BSD风格的LICENSE,如果有疑问可以用动态库链接./configure --use-sys-ssl

http-parser

http-parser是NGINX的一部分,授权是用的2-clause BSD-like license授权。

JSON

SRS2

NXJSON使用LGPL

SRS2用到了NXJSON,是用的LGPL授权。SRS3已经替换成了json-parser,它是BSD授权。

SRS3+

json-parser使用BSD 2-clause "Simplified" License授权。

SRS3换成了json-parser,是用的BSD授权,参考#904

SRT

SRS4

libsrt 是MPL 2.0授权,参考#1147

可以用./configure --srt=on --shared-srt=on动态库链接。

FFmpeg

SRS4

FFmpeg是LGPL,如果用--enable-gpl开启了GPL就是GPL了。

SRS支持./configure --ffmpeg-fit=on --shared-ffmpeg=on来动态库链接FFmpeg。

  • Opus 是 BSD 授权,用来转WebRTC(Opus)到直播流(AAC)。

USRSCTP

SRS4

usrsctpBSD-3-Clause授权。

用在支持DataChannel中,参考#1809

LIBUUID

libuuid 是 BSD-3 LICENSE. 参考 SRS2, SRS3, SRS4+.

Utility

SRS启动了FFmpeg进程实现转码和Ingest,可以替换成其他工具。启动进程方式,没有LICENSE问题。

SRS2

SRS2以下函数有LICENSE问题,已经在SRS3+替换成了LICENSE兼容的版本:

  1. ff_hex_to_data: RTSP转换HEX字符串。SRS3参考Go的实现替换了它,请看41c6e833 以及 #917.
  2. srs_av_base64_decode: RTSP解析Base64的编码。SRS3参考Go的实现替换了它,请看84f81983 以及 #917.
  3. srs_crc32_mpegts: TS实现CRC32校验。SRS3参考pycrc的实现替换了它,请看0a63448 以及 #917.
  4. srs_crc32_ieee: Kafka协议实现CRC32校验。SRS3参考pycrc的实现替换了它,请看0a63448 以及 #917.

SRS2有些函数用到了FFmpeg的函数,这些是有LICENSE问题;在SRS3之后全部改掉了。请看:#917