SRS/4.0,Leo,是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.
SRS is licenced under MIT, but some depended libraries are distributed using their own licenses.
Run SRS by docker, images is here or there, please set the CANDIDATE (CN,EN) if WebRTC enabled:
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
--env CANDIDATE=$(ifconfig en0 inet| grep 'inet '|awk '{print $2}') -p 8000:8000/udp \
ossrs/srs:v4.0.117 ./objs/srs -c conf/srs.conf
Or build SRS from source(or mirrors), by CentOS7(or Linux(CN,EN)):
git clone -b 4.0release https://gitee.com/ossrs/srs.git &&
cd srs/trunk && ./configure && make && ./objs/srs -c conf/srs.conf
Open http://localhost:8080/ to check it, then publish stream by FFmpeg. It's also able to publish by H5 if WebRTC is enabled:
docker run --rm -it --network=host ossrs/srs:encoder \
ffmpeg -re -i ./doc/source.flv -c copy -f flv -y rtmp://localhost/live/livestream
Play the following streams by players:
- RTMP (by VLC): rtmp://localhost/live/livestream
- H5(HTTP-FLV): http://localhost:8080/live/livestream.flv
- H5(HLS): http://localhost:8080/live/livestream.m3u8
- H5(WebRTC): webrtc://localhost/live/livestream
From here, please read wikis:
- SRS 4.0 English Wiki, please read Wiki first.
- SRS 4.0 中文Wiki,不读Wiki一定扑街,不读文档请不要提Issue,不读文档请不要提问题,任何文档中明确说过的疑问都不会解答。
Fast index for Wikis:
- How to deliver RTMP streaming?(CN, EN)
- How to build RTMP Edge-Cluster?(CN, EN)
- How to build RTMP Origin-Cluster?(CN, EN)
- How to deliver HTTP-FLV streaming?(CN, EN)
- How to deliver HLS streaming?(CN, EN)
- How to deliver low-latency streaming?(CN, EN)
- How to use WebRTC? (CN, EN)
Other important wiki:
- Usage: How to publish GB28181 to SRS? #1500
- Usage: How to delivery DASH(Experimental)?(CN, EN)
- Usage: How to transode RTMP stream by FFMPEG?(CN, EN)
- Usage: How to delivery HTTP FLV Live Streaming Cluster?(CN, EN)
- Usage: How to ingest file/stream/device to RTMP?(CN, EN)
- Usage: How to forward stream to other servers?(CN, EN)
- Usage: How to improve edge performance for multiple CPUs? (CN, EN)
- Usage: How to file a bug or contact us? (CN, EN)
The ports used by SRS, kernel services:
- tcp://1935, for RTMP live streaming server(CN,EN).
- tcp://1985, HTTP API server, for HTTP-API(CN, EN), WebRTC(CN, EN), etc.
- tcp://8080, HTTP live streaming server, HTTP-FLV(CN, EN), HLS(CN, EN) as such.
- udp://8000, WebRTC Media(CN, EN) server.
For optional HTTPS services, which might be provided by other web servers:
- tcp://8088, HTTPS live streaming server.
- tcp://1990, HTTPS API server.
For optional stream caster services, to push streams to SRS:
- udp://8935, Stream Caster: Push MPEGTS over UDP server.
- tcp://554, Stream Caster: Push RTSP server.
- tcp://8936, Stream Caster: Push HTTP-FLV server.
- tcp://5060, Stream Caster: Push GB28181 SIP server.
- udp://9000, Stream Caster: Push GB28181 Media(bundle) server.
- udp://58200-58300, Stream Caster: Push GB28181 Media(no-bundle) server.
- udp://10080, Stream Caster: Push SRT Media server.
For external services to work with SRS:
- udp://1989, WebRTC Signaling server.
- Using coroutine by ST, it's really simple and stupid enough.
- Support cluster which consists of origin (CN,EN) and edge(CN, EN) server and uses RTMP as default transport protocol.
- Origin server supports remuxing RTMP to HTTP-FLV(CN, EN) and HLS(CN, EN).
- Edge server supports remuxing RTMP to HTTP-FLV(CN, EN). As for HLS(CN, EN) edge server, recomment to use HTTP edge server, such as NGINX.
- Support HLS with audio-only(CN, EN), which need to build the timestamp from AAC samples, so we enhanced it please read #547.
- Support HLS with mp3(h.264+mp3) audio codec, please read bug #301.
- Support transmux RTMP to HTTP-FLV/MP3/AAC/TS, please read wiki(CN, EN).
- Support ingesting(CN, EN) other protocols to SRS by FFMPEG.
- Support RTMP long time(>4.6hours) publishing/playing, with the timestamp corrected.
- Support native HTTP server(CN, EN) for http api and http live streaming.
- Support HTTP CORS for js in http api and http live streaming.
- Support HTTP API(CN, EN) for system management.
- Support HTTP callback(CN, EN) for authentication and integration.
- Support DVR(CN, EN) to record live streaming to FLV file.
- Support DVR control module like NGINX-RTMP, please read #459.
- Support EXEC like NGINX-RTMP, please read bug #367.
- Support security strategy including allow/deny publish/play IP(CN, EN).
- Support low latency(0.1s+) transport model, please read bug #257.
- Support gop-cache(CN, EN) for player fast startup.
- Support Vhost(CN, EN) and __defaultVhost__.
- Support reloading(CN, EN) to apply changes of config.
- Support listening at multiple ports.
- Support forwarding(CN, EN) to other RTMP servers.
- Support transcoding(CN, EN) by FFMPEG.
- All wikis are writen in Chinese and English.
- Enhanced json, replace NXJSON(LGPL) with json-parser(BSD), read #904.
- Support valgrind and latest ARM by patching ST, read ST#1 and ST#2.
- Support traceable and session-based log(CN, EN).
- High performance(CN, EN) RTMP/HTTP-FLV, 6000+ connections.
- Enhanced complex error code with description and stack, read #913.
- Enhanced RTMP url which supports vhost in stream, read #1059.
- Support origin cluster, please read #464, RTMP 302.
- Support listen at IPv4 and IPv6, read #460.
- Improve test coverage for core/kernel/protocol/service.
- Support docker by srs-docker.
- Support multiple processes by ReusePort(CN, EN), #775.
- Support a simple mgmt console, please read srs-ngb.
- [Experimental] Support playing stream by WebRTC, #307.
- [Experimental] Support publishing stream by WebRTC, #307.
- [Experimental] Support mux RTP/RTCP/DTLS/SRTP on one port for WebRTC, #307.
- [Experimental] Support client address changing for WebRTC, #307.
- [Experimental] Support transcode RTMP/AAC to WebRTC/Opus, #307.
- [Experimental] Support AV1 codec for WebRTC, #2324.
- [Experimental] Enhance HTTP Stream Server for HTTP-FLV, HTTPS, HLS etc. #1657.
- [Experimental] Support push stream by GB28181, #1500.
- [Experimental] Support DVR in MP4 format, read #738.
- [Experimental] Support MPEG-DASH, the future live streaming protocol, read #299.
- [Experimental] Support pushing MPEG-TS over UDP, please read bug #250.
- [Experimental] Support pushing FLV over HTTP POST, please read wiki(CN, EN).
- [Experimental] Support HTTP RAW API, please read #459, #470, #319.
- [Experimental] Support SRT server, read #1147.
- [Deprecated] Support pushing RTSP, please read bug #2304.
- [Deprecated] Support Adobe HDS(f4m), please read wiki(CN, EN) and #1535.
- [Deprecated] Support bandwidth testing, please read #1535.
- [Deprecated] Support Adobe FMS/AMS token traverse(CN, EN) authentication, please read #1535.
- [Removed] Support RTMP client library: srs-librtmp.
- Enhanced forwarding with vhost and variables, #1342.
- Support DVR to Cloud Storage, #1193.
- Support transmux RTC to RTMP, #2093.
- Support H.265 over RTMP and HLS, #465.
- Support IETF-QUIC for WebRTC Cluster, #2091.
- Improve RTC performance to 5K by multiple threading, #2188.
- Support source cleanup for idle streams, #413.
- Support change user to run SRS, #1111.
- Support HLS variant, #463.
Remark: About the milestone and product plan, please read (CN, EN) wiki.
- v4.0, 2021-05-28, Fix bugs for GB28181 and RTC. 4.0.123
- v4.0, 2021-05-21, Fix #2370 bug for Firefox play stream(published by Chrome). 4.0.121
- v4.0, 2021-05-21, RTC: Refine sdk, migrate from onaddstream to ontrack. 4.0.120
- v4.0, 2021-05-21, Tools: Refine configure options. 4.0.119
- v4.0, 2021-05-20, Fix build fail when disable RTC by --rtc=off. 4.0.118
- v4.0, 2021-05-19, Fix #2362: Allow WebRTC to play before publishing, for GB28181 as such. 4.0.117
- v4.0, 2021-05-18, Fix #2355: GB28181: Fix play by RTC bug. 4.0.116
- v4.0, 2021-05-15, SRT: Build SRT from source by SRS. 4.0.115
- v4.0, 2021-05-15, Rename SrsConsumer* to SrsLiveConsumer*. 4.0.114
- v4.0, 2021-05-15, Rename SrsRtcStream* to SrsRtcSource*. 4.0.113
- v4.0, 2021-05-15, Rename SrsSource* to SrsLiveSource*. 4.0.112
- v4.0, 2021-05-15, Rename SrsRtpPacket2 to SrsRtpPacket. 4.0.111
- v4.0, 2021-05-14, RTC: Remove Object Cache Pool, no effect. 4.0.110
- v4.0, 2021-05-14, Change virtual public to public. 4.0.109
- v4.0, 2021-05-14, Refine id and vid for statistic. 4.0.108
- v4.0, 2021-05-09, Refine tid for sdk and demos. 4.0.106
- v4.0, 2021-05-08, Refine shared fast timer. 4.0.105
- v4.0, 2021-05-08, Refine global or thread-local variables initialize. 4.0.104
- v4.0, 2021-05-07, RTC: Support circuit breaker. 4.0.103
- v4.0, 2021-05-07, RTC: Refine play stream find track. 4.0.102
- v4.0, 2021-05-07, RTC: Refine FastTimer to fixed interval. 4.0.101
- v4.0, 2021-05-06, RTC: Fix config bug for nack and twcc. 4.0.99
- v4.0, 2021-05-04, Add video room demo. 4.0.98
- v4.0, 2021-05-03, Add RTC stream merging demo by FFmpeg. 4.0.97
- v4.0, 2021-05-02, Add one to one demo. 4.0.96
- v4.0, 2021-04-20, Support RTC2RTMP bridger and shared FastTimer. 4.0.95
- v4.0, 2021-04-20, Refine transcoder to support aac2opus and opus2aac. 4.0.94
- v4.0, 2021-05-01, Timer: Extract and apply shared FastTimer. 4.0.93
- v4.0, 2021-04-29, RTC: Support AV1 for Chrome M90. 4.0.91
- v4.0, 2021-04-24, Change push-RTSP as deprecated feature.
- v4.0, 2021-04-24, Player: Change the default from RTMP to HTTP-FLV.
- v4.0, 2021-04-24, Disable CherryPy by --cherrypy=off. 4.0.90
- v4.0, 2021-04-01, RTC: Refine TWCC and SDP exchange. 4.0.88
- v4.0, 2021-03-24, RTC: Support WebRTC re-publish stream. 4.0.87
- v4.0, 2021-03-24, RTC: Use fast parse TWCC-ID, ignore in packet parsing. 4.0.86
- v4.0, 2021-03-09, DTLS: Fix ARQ bug, use openssl timeout. 4.0.84
- v4.0, 2021-03-08, DTLS: Fix dead loop by duplicated Alert message. 4.0.83
- v4.0, 2021-03-08, Fix bug when client DTLS is passive. 4.0.82
- v4.0, 2021-03-03, Fix #2106, #2011, RTMP/AAC transcode to Opus bug. 4.0.81
- v4.0, 2021-03-02, Refine build script for FFmpeg and SRTP. 4.0.80
- v4.0, 2021-03-02, Upgrade libsrtp from 2.0.0 to 2.3.0, with source code. 4.0.79
- v4.0, 2021-03-01, Upgrade openssl from 1.1.0e to 1.1.1b, with source code. 4.0.78
- v4.0, 2021-03-01, Enable Object Cache and Zero Copy Nack by default. 4.0.77
- v4.0, 2021-02-28, RTC: Support high performance Zero Copy NACK. 4.0.76
- v4.0, 2021-02-27, RTC: Support Object Cache Pool for performance. 4.0.75
- v4.0, 2021-02-12, RTC: Support High Resolution(about 25ms) Timer. 4.0.72
- v4.0, 2021-02-10, RTC: Improve performance about 700+ streams. 4.0.71
- v4.0, 2021-02-04, At least wait 1ms when <1ms, to avoid epoll_wait spin loop. 4.0.66
- v4.0, 2021-01-31, Enable -std=c++11 by default. 4.0.65
- v4.0, 2021-01-25, Enable --nasm and --srtp-asm by default for performance. 4.0.64
- v4.0, 2021-01-20, Support HTTP-FLV and HLS for srs-player by H5. 4.0.63
- v4.0, 2021-01-08, HTML5 video tag resolution adaptive. 4.0.59
- v4.0, 2021-01-08, Fix memory leak and bugs for RTC. 4.0.58
- v4.0, 2021-01-06, Merge #2109, Refine srs_string_split.
- v4.0, 2021-01-06, Merge #2109, Fix bugs for GB28181.
- v4.0, 2020-12-24, Support disable CherryPy. 4.0.57
- v4.0, 2020-11-12, For #1998, Support Firefox, use PT in offer. 4.0.55
- v4.0, 2020-11-11, For #1508, Transform http header name to upper camel case. 4.0.54
- v4.0, 2020-11-06, For #1657, Read cached data first in SSL. 4.0.48
- v4.0, 2020-11-06, For #1657, support HTTPS Streaming(HTTPS-FLV, etc). 4.0.47
- v4.0, 2020-11-06, For #1657, support HTTPS API. 4.0.46
- v4.0, 2020-11-03, For #1657, support HTTPS client, for http-callback. 4.0.45
- v4.0, 2020-10-31, Support gdb/srs.py to stat coroutines. 4.0.44
- v4.0, 2020-09-19, RTC: Extract resource manager. Use any UDP packet to keep alive. 4.0.43
- v4.0, 2020-09-09, RTC: Refine NACK RTT and efficiency. 4.0.42
- v4.0, 2020-09-08, Refine PLI/NACK/DTLS logs. 4.0.41
- v4.0, 2020-08-30, Fix serval bugs for RTC. Refine context API. 4.0.40
- v4.0, 2020-08-18, RTC: DTLS support ARQ, covered with utest. 4.0.39
- v4.0, 2020-08-06, RTC: Refine error check. 4.0.37
- v4.0, 2020-07-25, RTC: Support multiple address for client. 4.0.36
- v4.0, 2020-07-11, Refine log context with random string. 4.0.35
- v4.0, 2020-07-04, Fix some bugs for RTC. 4.0.34
- v4.0, 2020-07-03, Merge #1830 to fix bugs in GB28181. 4.0.33
- v4.0, 2020-06-24, Support static link c++ libraries. 4.0.32
- v4.0, 2020-06-23, Change log cid from int to string. 4.0.31
- v4.0, 2020-06-13, GB28181 with JitterBuffer support. 4.0.30
- v4.0, 2020-06-03, Support enable C++11. 4.0.29
- v4.0, 2020-05-31, Remove srs-librtmp. 4.0.28
- v4.0, 2020-05-21, For #307, disable GSO and sendmmsg. 4.0.27
- v4.0, 2020-05-14, For #307, refine core structure, RTMP base on frame, RTC base on RTP. 4.0.26
- v4.0, 2020-05-11, For #307, refine RTC publisher structure. 4.0.25
- v4.0, 2020-04-30, For #307, support publish RTC with passing opus. 4.0.24
- v4.0, 2020-04-14, For #307, support sendmmsg, GSO and reuseport. 4.0.23
- v4.0, 2020-04-05, For #307, SRTP ASM only works with openssl-1.0, auto detect it. 4.0.22
- v4.0, 2020-04-04, Merge RTC and GB28181, with bugs fixed. 4.0.21
- v4.0, 2020-04-04, For #307, refine RTC latency from 600ms to 200ms. 4.0.20
- v4.0, 2020-04-03, For #307, build SRTP with openssl to improve performance. 4.0.19
- v4.0, 2020-03-31, For #1500, support push stream by GB28181. 4.0.18
- v4.0, 2020-03-31, Play stream by WebRTC on iOS/Android/PC browser. 4.0.17
- v4.0, 2020-03-28, Support multiple OS/Platform build cache. 4.0.16
- v4.0, 2020-03-28, For #1250, support macOS, OSX, MacbookPro, Apple Darwin.
- v4.0, 2020-03-22, Welcome maintainers Runner365, John and B.P.Y(Bepartofyou). 4.0.15
- v4.0, 2020-03-22, For #307, support play with WebRTC. 4.0.14
- v4.0, 2020-03-13, For #1636, fix bug for mux AAC to ADTS, never overwrite by RTMP sampling rate. 4.0.13
- v4.0, 2020-03-07, For #1612, fix crash bug for RTSP. 4.0.12
- v4.0, 2020-03-07, For #1631, support sei_filter for SRT. 4.0.11
- v4.0, 2020-03-01, For #1621, support mix_correct for aggregate aac for SRT. 4.0.10
- v4.0, 2020-02-25, For #1615, support default app(live) for vmix SRT. 4.0.9
- v4.0, 2020-02-21, For #1598, support SLB health checking by TCP. 4.0.8
- v4.0, 2020-02-19, For #1579, support rolling update of k8s. 4.0.7
- v4.0, 2020-02-18, For #1579, support start/final wait for gracefully quit. 4.0.6
- v4.0, 2020-02-18, For #1579, support gracefully quit and force to. 4.0.5
- v4.0, 2020-02-13, SRT supports detail config for DynamicEncoding. 4.0.4
- v4.0, 2020-02-04, Update project code. 4.0.3
- v4.0, 2020-01-26, Allow use libsrt.so for SRT is MPL license. 4.0.2
- v4.0, 2020-01-24, Fix #1147, support SRT(Secure Reliable Transport). 4.0.1
- v3.0, 2021-05-12, Fix #2311, Copy the request for stat client. 3.0.162
- v3.0, 2021-04-28, 3.0 release5(3.0.161) released. 122750 lines.
- v3.0, 2021-04-28, Upgrade players. 3.0.161
- v3.0, 2021-04-24, 3.0 release4(3.0.160) released. 122750 lines.
- v3.0, 2021-04-24, Package players and console to zip and docker. 3.0.160
- v3.0, 2021-04-24, Add srs-console to research/console. 3.0.159
- v3.0, 2021-03-05, Refine usage to docker by default. 3.0.158
- v3.0, 2021-01-07, Change id from int to string for the statistics. 3.0.157
- v3.0, 2021-01-02, 3.0 release3(3.0.156) released. 122736 lines.
- v3.0, 2020-12-26, For RTMP edge/forward, pass vhost in tcUrl, not in stream. 3.0.156
- v3.0, 2020-12-17, Fix #1694, Support DVR 2GB+ MP4 file. 3.0.155
- v3.0, 2020-12-17, Fix #1548, Add edts in MP4 for Windows10. 3.0.154
- v3.0, 2020-10-31, 3.0 release2(3.0.153) released. 122663 lines.
- v3.0, 2020-10-31, Fix #509, Always malloc stack on heap. 3.0.153
- v3.0, 2020-10-31, Remove some global elements for debugging. 3.0.152
- v3.0, 2020-10-31, Use global _srs_server for debugging. 3.0.151
- v3.0, 2020-10-31, Refine source cid, track previous one. 3.0.150
- v3.0, 2020-10-25, Add hls.realtime.conf for low-latency HLS. 3.0.149
- v3.0, 2020-10-24, Refine script and startup logs. 3.0.148
- v3.0, 2020-10-23, Allow FFmpeg if exists at /usr/local/bin/ffmpeg. 3.0.147
- v3.0, 2020-10-23, Refine build script, use libssl in docker. 3.0.146
- v3.0, 2020-10-14, Fix #1987, Fix Kbps resample bug. 3.0.145
- v3.0, 2020-10-10, 3.0 release1(3.0.144) released. 122674 lines.
- v3.0, 2020-10-10, Fix #1780, build fail on Ubuntu20(focal). 3.0.144
- v3.0, 2020-09-14, Prevent stop ingest for multiple times. 3.0.143
- v3.0, 2020-09-10, RTC: Change SO_REUSEPORT fail to warning. 3.0.142
- v3.0, 2020-06-27, 3.0 release0(3.0.141) released. 122674 lines.
- v3.0, 2020-03-30, For #1672, fix dvr close file failed bug. 3.0.140
- v3.0, 2020-03-29, 3.0 beta4(3.0.139) released. 122674 lines.
- v3.0, 2020-03-28, Support multiple OS/Platform build cache. 3.0.139
- v3.0, 2020-03-28, For #1250, support macOS, OSX, MacbookPro, Apple Darwin. 3.0.138
- v3.0, 2020-03-21, For #1629, fix kickoff FLV client bug. 3.0.137
- v3.0, 2020-03-21, For #1619, configure without utest by default. 3.0.136
- v3.0, 2020-03-21, For #1651, fix return pnwrite of srs_write_large_iovs. 3.0.135
- v3.0, 2020-03-18, 3.0 beta3(3.0.134) released. 122509 lines.
- v3.0, 2020-03-12, For #1635, inotify watch ConfigMap for reload. 3.0.134
- v3.0, 2020-03-12, For #1635, support auto reaload config by inotify. 3.0.129
- v3.0, 2020-03-12, For #1630, disable cache for stream changing, and drop dup header. 3.0.128
- v3.0, 2020-03-12, For #1594, detect and disable daemon for docker. 3.0.127
- v3.0, 2020-03-12, For #1634, always check status in thread loop. 3.0.126
- v3.0, 2020-03-11, For #1634, refactor output with datetime for ingest/encoder/exec. 3.0.125
- v3.0, 2020-03-11, For #1634, fix quit by accident SIGTERM while killing FFMPEG. 3.0.124
- v3.0, 2020-03-05, 3.0 beta2(3.0.123) released. 122170 lines.
- v3.0, 2020-02-21, For #1598, support SLB health checking by TCP. 3.0.123
- v3.0, 2020-02-21, Fix bug for librtmp client ipv4/ipv6 socket. 3.0.122
- v3.0, 2020-02-18, For #1579, support start/final wait for gracefully quit. 3.0.121
- v3.0, 2020-02-18, For #1579, support force gracefully quit. 3.0.120
- v3.0, 2020-02-18, For #1579, support gracefully quit. 3.0.119
- v3.0, 2020-02-17, For #1601, flush async on_dvr/on_hls events before stop. 3.0.118
- v3.0, 2020-02-14, 3.0 beta1(3.0.117) released. 121964 lines.
- v3.0, 2020-02-14, For #1595, migrating streaming from ossrs.net to r.ossrs.net. 3.0.117
- v3.0, 2020-02-05, For #665, fix HTTP-FLV reloading bug. 3.0.116
- v3.0, 2020-02-05, For #1592, fix terminal echo off by redirect process stdin. 3.0.115
- v3.0, 2020-02-04, For #1186, refactor security check. 3.0.114
- v3.0, 2020-02-04, Fix #939, response right A/V flag in FLV header. 3.0.113
- v3.0, 2020-02-04, For #939, always enable fast FLV streaming.
- v3.0, 2020-02-02, 3.0 beta0(3.0.112) released. 121709 lines.
- v3.0, 2020-01-29, Support isolate version file. 3.0.112
- v3.0, 2020-01-29, Fix #1206, dispose ingester while server quiting. 3.0.111
- v3.0, 2020-01-28, Fix #1230, racing condition in source fetch or create. 3.0.110
- v3.0, 2020-01-27, Fix #1303, do not dispatch previous meta when not publishing. 3.0.109
- v3.0, 2020-01-26, Allow use libst.so for ST is MPL license.
- v3.0, 2020-01-26, Fix #607, set RTMP identifying recursive depth to 3.
- v3.0, 2020-01-25, Fix #878, remove deprecated #EXT-X-ALLOW-CACHE for HLS. 3.0.108
- v3.0, 2020-01-25, Fix #703, drop video data util sps/pps. 3.0.107
- v3.0, 2020-01-25, Fix #1108, reap DVR tmp file when unpublish. 3.0.106
- v3.0, 2020-01-21, 3.0 alpha9(3.0.105) released. 121577 lines.
- v3.0, 2020-01-21, Fix #1221, remove complex configure options. 3.0.104
- v3.0, 2020-01-21, Fix #1547, support crossbuild for ARM/MIPS.
- v3.0, 2020-01-21, For #1547, support setting cc/cxx/ar/ld/randlib tools. 3.0.103
- v3.0, 2020-01-19, For #1580, fix cid range problem. 3.0.102
- v3.0, 2020-01-19, For #1070, define FLV CodecID for AV1 and opus. 3.0.101
- v3.0, 2020-01-16, For #1575, correct RTMP redirect as tcUrl, add redirect2 as RTMP URL. 3.0.100
- v3.0, 2020-01-15, For #1509, decrease the fast vector init size from 64KB to 64B. 3.0.99
- v3.0, 2020-01-15, For #1509, release coroutine when source is idle. 3.0.98
- v3.0, 2020-01-10, 3.0 alpha8(3.0.97) released. 121555 lines.
- v3.0, 2020-01-09, For #1042, improve test coverage for service. 3.0.97
- v3.0, 2020-01-08, Merge #1554, support logrotate copytruncate. 3.0.96
- v3.0, 2020-01-05, Always use string instance to avoid crash risk. 3.0.95
- v3.0, 2020-01-05, For #460, fix ipv6 hostport parsing bug. 3.0.94
- v3.0, 2020-01-05, For #460, fix ipv6 intranet address filter bug. 3.0.93
- v3.0, 2020-01-05, For #1543, use getpeername to retrieve client ip. 3.0.92
- v3.0, 2020-01-02, For #1042, improve test coverage for config. 3.0.91
- v3.0, 2019-12-30, Fix mp4 security issue, check buffer when required size is variable.
- v3.0, 2019-12-29, 3.0 alpha7(3.0.90) released. 116356 lines.
- v3.0, 2019-12-29, For #1255, support vhost/domain in query string for HTTP streaming. 3.0.90
- v3.0, 2019-12-29, For #299, increase dash segment size for avsync issue. 3.0.89
- v3.0, 2019-12-27, For #299, fix some bugs in dash, it works now. 3.0.88
- v3.0, 2019-12-27, For #1544, fix memory leaking for complex error. 3.0.87
- v3.0, 2019-12-27, Add links for flv.js, hls.js and dash.js.
- v3.0, 2019-12-26, For #1105, http server support mp4 range.
- v3.0, 2019-12-26, For #1105, dvr mp4 supports playing on Chrome/Safari/Firefox. 3.0.86
- v3.0, 2019-12-26, 3.0 alpha6(3.0.85) released. 116056 lines.
- v3.0, 2019-12-26, For #1488, pass client ip to http callback. 3.0.85
- v3.0, 2019-12-25, For #1537, #1282, support aarch64 for armv8. 3.0.84
- v3.0, 2019-12-25, For #1538, fresh chunk allow fmt=0 or fmt=1. 3.0.83
- v3.0, 2019-12-25, Remove FFMPEG and NGINX, please use srs-docker instead. 3.0.82
- v3.0, 2019-12-25, For #1537, remove cross-build, not used patches, directly build st.
- v3.0, 2019-12-24, For #1508, support chunk length and content in multiple parts.
- v3.0, 2019-12-23, Merge SRS2 for running srs-librtmp on Windows. 3.0.80
- v3.0, 2019-12-23, For #1535, deprecate Adobe FMS/AMS edge token traversing(CN, EN) authentication. 3.0.79
- v3.0, 2019-12-23, For #1535, deprecate BWT(bandwidth testing). 3.0.78
- v3.0, 2019-12-23, For #1535, deprecate Adobe HDS(f4m)(CN, EN). 3.0.77
- v3.0, 2019-12-20, Fix #1508, http-client support read chunked response. 3.0.76
- v3.0, 2019-12-20, For #1508, refactor srs_is_digital, support all zeros.
- v3.0, 2019-12-19, 3.0 alpha5(3.0.75) released. 115362 lines.
- v3.0, 2019-12-19, Refine the RTMP iovs cache increasing to much faster.
- v3.0, 2019-12-19, Fix #1524, memory leak for amf0 strict array. 3.0.75
- v3.0, 2019-12-19, Fix random build failed bug for modules.
- v3.0, 2019-12-19, Fix #1520 and #1223, bug for origin cluster 3+ servers. 3.0.74
- v3.0, 2019-12-18, For #1042, add test for RAW AVC protocol.
- v3.0, 2019-12-18, Detect whether flash enabled for srs-player. 3.0.73
- v3.0, 2019-12-17, Fix HTTP CORS bug when sending response for OPTIONS. 3.0.72
- v3.0, 2019-12-17, Enhance HTTP response write for final_request.
- v3.0, 2019-12-17, Refactor HTTP stream to disconnect client when unpublish.
- v3.0, 2019-12-17, Fix HTTP-FLV and VOD-FLV conflicting bug.
- v3.0, 2019-12-17, Refactor HttpResponseWriter.write, default to single text mode.
- v3.0, 2019-12-16, For #1042, add test for HTTP protocol.
- v3.0, 2019-12-13, 3.0 alpha4(3.0.71) released. 112928 lines.
- v3.0, 2019-12-12, For #547, #1506, default hls_dts_directly to on. 3.0.71
- v3.0, 2019-12-12, SrsPacket supports converting to message, so can be sent by one API.
- v3.0, 2019-12-11, For #1042, cover RTMP client/server protocol.
- v3.0, 2019-12-11, Fix #1445, limit the createStream recursive depth. 3.0.70
- v3.0, 2019-12-11, For #1042, cover RTMP handshake protocol.
- v3.0, 2019-12-11, Fix #1229, fix the security risk in logger. 3.0.69
- v3.0, 2019-12-11, For #1229, fix the security risk in HDS. 3.0.69
- v3.0, 2019-12-05, Fix #1506, support directly turn FLV timestamp to TS DTS. 3.0.68
- v3.0, 2019-11-30, 3.0 alpha3(3.0.67) released. 110864 lines.
- v3.0, 2019-12-01, Fix #1501, use request coworker for origin cluster. 3.0.67
- v3.0, 2019-11-30, 3.0 alpha2(3.0.66) released. 110831 lines.
- v3.0, 2019-11-30, Fix #1501, use request coworker for origin cluster. 3.0.66
- v3.0, 2019-11-30, Random tid for docker. 3.0.65
- v3.0, 2019-11-30, Refine debug info for edge. 3.0.64
- v3.0, 2019-10-30, Cover protocol stack RTMP. 3.0.63
- v3.0, 2019-10-23, Cover JSON codec. 3.0.62
- v3.0, 2019-10-13, Use http://ossrs.net as homepage.
- v3.0, 2019-10-10, Cover AMF0 codec. 3.0.61
- v3.0, 2019-10-07, 3.0 alpha1(3.0.60) released. 107962 lines.
- v3.0, 2019-10-06, Support log rotate by init.d command. 3.0.60
- v3.0, 2019-10-06, We prefer ipv4, only use ipv6 if ipv4 is disabled. 3.0.59
- v3.0, 2019-10-05, Support systemctl service for CentOS7. 3.0.58
- v3.0, 2019-10-04, Disable SO_REUSEPORT if not supported. 3.0.57
- v3.0, 2019-10-04, 3.0 alpha0(3.0.56) released. 107946 lines.
- v3.0, 2019-10-04, Support go-oryx rtmplb with proxy protocol. 3.0.56
- v3.0, 2019-10-03, Fix #775, Support SO_REUSEPORT to improve edge performance. 3.0.54
- v3.0, 2019-10-03, For #467, Remove KAFKA producer. 3.0.53
- v3.0, 2019-05-14, Covert Kernel File reader/writer. 3.0.52
- v3.0, 2019-04-30, Refine typo in files. 3.0.51
- v3.0, 2019-04-25, Upgrade http-parser from 2.1 to 2.9.2 and cover it. 3.0.50
- v3.0, 2019-04-22, Refine in time unit. 3.0.49
- v3.0, 2019-04-07, Cover ST Coroutine and time unit. 3.0.48
- v3.0, 2019-04-06, Merge #1304, Fix ST coroutine pull error. 3.0.47
- v3.0, 2019-04-05, Merge #1339, Support HTTP-FLV params. 3.0.46
- v3.0, 2018-11-11, Merge #1261, Support
_definst_
for Wowza. 3.0.44 - v3.0, 2018-08-26, SRS console support both Chinese and English.
- v3.0, 2018-08-25, Fix #1093, Support HLS encryption. 3.0.42
- v3.0, 2018-08-25, Fix #1051, Drop ts when republishing stream. 3.0.41
- v3.0, 2018-08-12, For #1202, Support edge/forward to Aliyun CDN. 3.0.40
- v3.0, 2018-08-11, For #910, Support HTTP FLV with HTTP callback. 3.0.39
- v3.0, 2018-08-05, Refine HTTP-FLV latency, support realtime mode.3.0.38
- v3.0, 2018-08-05, Fix #1087, Ignore iface without address. 3.0.37
- v3.0, 2018-08-04, For #1110, Support params in http callback. 3.0.36
- v3.0, 2018-08-02, Always use vhost in stream query, the unify uri. 3.0.35
- v3.0, 2018-08-02, For #1031, SRS edge support douyu.com. 3.0.34
- v3.0, 2018-07-22, Replace hex to string to match MIT license. 3.0.33
- v3.0, 2018-07-22, Replace base64 to match MIT license. 3.0.32
- v3.0, 2018-07-22, Replace crc32 IEEE and MPEG by pycrc to match MIT license. 3.0.31
- v3.0, 2018-07-21, Replace crc32 IEEE by golang to match MIT license. 3.0.30
- v3.0, 2018-02-16, Fix #464, support RTMP origin cluster. 3.0.29
- v3.0, 2018-02-13, Fix #1057, switch to simple handshake. 3.0.28
- v3.0, 2018-02-13, Fix #1059, merge from 2.0, supports url with vhost in stream. 3.0.27
- v3.0, 2018-01-01, Fix #913, support complex error. 3.0.26
- v3.0, 2017-06-04, Fix #299, support experimental MPEG-DASH. 3.0.25
- v3.0, 2017-05-30, Fix #821, support MP4 file parser. 3.0.24
- v3.0, 2017-05-30, Fix #904, replace NXJSON(LGPL) with json-parser(BSD). 3.0.23
- v3.0, 2017-04-16, Fix #547, support HLS audio in TS. 3.0.22
- v3.0, 2017-03-26, Fix #820, extract service for modules. 3.0.21
- v3.0, 2017-03-02, Fix #786, simply don't reuse object. 3.0.20
- v3.0, 2017-03-01, For #110, refine thread object. 3.0.19
- v3.0, 2017-02-12, Fix #301, user must config the codec in right way for HLS. 3.0.18
- v3.0, 2017-02-07, fix #738, support DVR general mp4. 3.0.17
- v3.0, 2017-01-19, for #742, refine source, meta and origin hub. 3.0.16
- v3.0, 2017-01-17, for #742, refine source, timeout, live cycle. 3.0.15
- v3.0, 2017-01-11, fix #735, config transform refer_publish invalid. 3.0.14
- v3.0, 2017-01-06, for #730, support config in/out ack size. 3.0.13
- v3.0, 2017-01-06, for #711, support perfile for transcode. 3.0.12
- v3.0, 2017-01-05, Fix #727, patch ST for valgrind and ARM. 3.0.11
- v3.0, 2017-01-05, for #324, always enable hstrs. 3.0.10
- v3.0, 2016-12-15, fix #717, #691, http api/static/stream support cors. 3.0.9
- v3.0, 2016-12-08, Fix #105, support log rotate signal SIGUSR1. 3.0.8
- v3.0, 2016-12-07, fix typo and refine grammar. 3.0.7
- v3.0, 2015-10-20, fix #502, support snapshot with http-callback or transcoder. 3.0.5
- v3.0, 2015-09-19, support amf0 and json to convert with each other.
- v3.0, 2015-09-19, json objects support dumps to string.
- v3.0, 2015-09-14, fix #459, support dvr raw api. 3.0.4
- v3.0, 2015-09-14, fix #459, dvr support apply filter for ng-control dvr module.
- v3.0, 2015-09-14, fix #319, http raw api support update global and vhost. 3.0.3
- v3.0, 2015-08-31, fix #319, http raw api support query global and vhost.
- v3.0, 2015-08-28, fix #471, api response the width and height. 3.0.2
- v3.0, 2015-08-25, fix #367, support nginx-rtmp exec. 3.0.1
- v2.0, 2020-01-25, 2.0 release8(2.0.272) released. 87292 lines.
- v2.0, 2020-01-08, Merge #1554, support logrotate copytruncate. 2.0.272
- v2.0, 2020-01-05, Merge #1551, fix memory leak in RTSP stack. 2.0.270
- v2.0, 2019-12-26, For #1488, pass client ip to http callback. 2.0.269
- v2.0, 2019-12-23, Fix srs-librtmp #22, parse vhost splited by single seperator. 2.0.268
- v2.0, 2019-12-23, Fix srs-librtmp #25, build srs-librtmp on windows. 2.0.267
- v2.0, 2019-12-13, Support openssl versions greater than 1.1.0. 2.0.266
- v2.0, 2019-11-29, 2.0 release7(2.0.265) released. 86994 lines.
- v2.0, 2019-11-29, For srs-docker, install Cherrypy without sudo. 2.0.265
- v2.0, 2019-04-06, For #1304, Default HSTRS to on. 2.0.264
- v2.0, 2019-04-05, 2.0 release6(2.0.263) released. 86994 lines.
- v2.0, 2019-04-05, Merge #1312, Fix GCC7 build error, this statement may fall through. 2.0.263
- v2.0, 2019-04-05, Merge #1339, Support HTTP-FLV params. 2.0.262
- v2.0, 2018-12-01, Merge #1274, Upgrade to FFMPEG 4.1 and X264 157. 2.0.261
- v2.0, 2018-11-11, Merge #1261, Support
_definst_
for Wowza. 2.0.260 - v2.0, 2018-11-11, Merge #1263, Fix string trim bug. 2.0.259
- v2.0, 2018-10-28, 2.0 release5(2.0.258) released. 86916 lines.
- v2.0, 2018-10-28, Fix #1250, Support build on OSX10.14 Mojave. 2.0.258
- v2.0, 2018-10-08, Merge #1236, Fix sleep bug in us. 2.0.257
- v2.0, 2018-10-08, Merge #1237, Support param for transcoder. 2.0.256
- v2.0, 2018-08-12, 2.0 release4(2.0.255) released. 86915 lines.
- v2.0, 2018-08-12, For #1202, Support edge/forward to Aliyun CDN. 2.0.255
- v2.0, 2018-08-11, For #910, Support HTTP FLV with HTTP callback. 2.0.254
- v2.0, 2018-08-11, For #1110, Refine params in http callback. 2.0.253
- v2.0, 2018-08-05, Refine HTTP-FLV latency, support realtime mode. 2.0.252
- v2.0, 2018-08-04, For #1110, Support params in http callback. 2.0.251
- v2.0, 2018-08-02, For #1031, SRS edge support douyu.com. 2.0.250
- v2.0, 2018-07-21, Merge #1119, fix memory leak. 2.0.249
- v2.0, 2018-07-18, 2.0 release3(2.0.248) released. 86775 lines.
- v2.0, 2018-07-17, Merge #1176, fix scaned issues. 2.0.248
- v2.0, 2018-02-28, Merge #1077, fix crash for edge HLS. 2.0.247
- v2.0, 2018-02-13, Fix #1059, support vhost in stream parameters. 2.0.246
- v2.0, 2018-01-07, Merge #1045, fix #1044, TCP connection alive detection. 2.0.245
- v2.0, 2018-01-04, Merge #1039, fix bug of init.d script.
- v2.0, 2018-01-01, Merge #1033, allow user to add some specific flags. 2.0.244
- v2.0, 2017-06-10, 2.0 release2(2.0.243) released. 86670 lines.
- v2.0, 2017-05-29, Merge #899 to fix #893, ts PES ext length. 2.0.243
- v2.0, 2017-05-01, Fix #865, shouldn't remove ts/m3u8 when hls_dispose disabled. 2.0.242
- v2.0, 2017-04-30, Fix #636, FD leak for requesting empty HTTP stream. 2.0.241
- v2.0, 2017-04-23, Fix #851, HTTP API support number of video frames for FPS. 2.0.240
- v2.0, 2017-04-18, 2.0 release1(2.0.239) released. 86515 lines.
- v2.0, 2017-04-18, Fix #848, crash at HTTP fast buffer grow. 2.0.239
- v2.0, 2017-04-15, Fix #844, support Haivision encoder. 2.0.238
- v2.0, 2017-04-15, Merge #846, fix fd leak for FLV stream caster. 2.0.237
- v2.0, 2017-04-15, Merge #841, avoid the duplicated sps/pps in ts. 2.0.236
- v2.0, 2017-04-09, Fix #834, crash for TS context corrupt. 2.0.235
- v2.0, 2017-03-03, 2.0 release0(2.0.234) released. 86373 lines.
- v2.0, 2017-02-25, for #730, remove the test code. 2.0.234
- v2.0, 2017-02-09, fix #503 disable utilities when reload a source. 2.0.233
- v2.0, 2017-01-22, for #752 release the io then free it for kbps. 2.0.232
- v2.0, 2017-01-18, fix #750 use specific error code for dns resolve. 2.0.231
- v2.0, 2017-01-18, 2.0 beta4(2.0.230) released. 86334 lines.
- v2.0, 2017-01-18, fix #749, timestamp overflow for ATC. 2.0.230
- v2.0, 2017-01-11, fix #740, convert ts aac audio private stream 1 to common. 2.0.229
- v2.0, 2017-01-11, fix #588, kbps interface error. 2.0.228
- v2.0, 2017-01-11, fix #736, recovery the hls dispose. 2.0.227
- v2.0, 2017-01-10, refine hls html5 video template.
- v2.0, 2017-01-10, fix #635, hls support NonIDR(open gop). 2.0.226
- v2.0, 2017-01-06, for #730, reset ack follow flash player rules. 2.0.225
- v2.0, 2016-12-15, for #513, remove hls ram from srs2 to srs3+. 2.0.224
- v2.0, 2016-12-13, 2.0 beta3(2.0.223) released. 86685 lines.
- v2.0, 2016-12-13, fix #713, disable the source cleanup. 2.0.223
- v2.0, 2016-12-13, fix #713, refine source to avoid critical fetch and create. 2.0.222
- v2.0, 2016-11-09, 2.0 beta2(2.0.221) released. 86691 lines.
- v2.0, 2016-11-05, fix #654, crash when source cleanup for edge. 2.0.221
- v2.0, 2016-10-26, fix #666, crash when source cleanup for http-flv. 2.0.220
- v2.0, 2016-10-10, fix #661, close fd after thread stopped. 2.0.219
- v2.0, 2016-09-23, support asprocess for oryx. 2.0.218
- v2.0, 2016-09-23, support change work_dir for oryx.
- v2.0, 2016-09-15, fix #640, typo for rtmp type. 2.0.217
- v2.0, 2016-09-12, fix fast stream error bug. 2.0.216
- v2.0, 2016-09-09, 2.0 beta1(2.0.215) released. 89941 lines.
- v2.0, 2016-09-09, refine librtmp comments about NALUs. 2.0.215
- v2.0, 2016-09-05, fix memory leak at source. 2.0.214
- v2.0, 2016-09-05, fix memory leak at handshake. 2.0.213
- v2.0, 2016-09-04, support valgrind for patched st.
- v2.0, 2016-09-03, support all arm for patched st. 2.0.212
- v2.0, 2016-09-01, workaround #511 the fly stfd in close. 2.0.211
- v2.0, 2016-08-30, comment the pcr.
- v2.0, 2016-08-18, fix srs-librtmp#4 filter frame.
- v2.0, 2016-08-10, fix socket timeout for librtmp.
- v2.0, 2016-08-08, fix the crash by srs_info log.
- v2.0, 2016-08-06, 2.0 beta0(2.0.210) released. 89704 lines.
- v2.0, 2016-05-17, fix the sps pps parse bug.
- v2.0, 2016-01-13, fix http reader bug, support infinite chunked. 2.0.209
- v2.0, 2016-01-09, merge #559 fix memory leak bug. 2.0.208
- v2.0, 2016-01-09, merge #558 add tcUrl for on_publish.
- v2.0, 2016-01-05, add keyword XCORE for coredump to identify the version. 2.0.207
- v2.0, 2015-12-23, 2.0 alpha3(2.0.205) released. 89544 lines.
- v2.0, 2015-12-22, for #509 always alloc big object at heap. 2.0.205
- v2.0, 2015-12-22, for #418 ignore null connect props to make RED5 happy. 2.0.204
- v2.0, 2015-12-22, for #546 thread terminate normally dispose bug. 2.0.203
- v2.0, 2015-12-22, for #541 failed when chunk size too small. 2.0.202
- v2.0, 2015-12-15, default hls_on_error to continue. 2.0.201
- v2.0, 2015-11-16, for #518 fix fd leak bug when fork. 2.0.200
- v2.0, 2015-11-05, for #511 fix bug for restart thread. 2.0.199
- v2.0, 2015-11-02, for #515 use srs_freepa and SrsAutoFreeA for array. 2.0.198
- v2.0, 2015-10-28, for ExoPlayer #828, remove duration for live.
- v2.0, 2015-10-28, for ExoPlayer #828, add av tag in flv header. 2.0.197
- v2.0, 2015-10-27, for #512 partial hotfix the hls pure audio. 2.0.196
- v2.0, 2015-10-08, 2.0 alpha2(2.0.195) released. 89358 lines.
- v2.0, 2015-10-04, for #448 fix the bug of response of http hooks. 2.0.195
- v2.0, 2015-10-01, for #497 response error when client not found to kickoff. 2.0.194
- v2.0, 2015-10-01, for #495 decrease the srs-librtmp size. 2.0.193
- v2.0, 2015-09-23, for #485 error when arm glibc 2.15+ or not i386/x86_64/amd64. 2.0.192
- v2.0, 2015-09-23, for #485 srs for respberrypi and cubieboard. 2.0.191
- v2.0, 2015-09-21, fix #484 hotfix the openssl build script 2.0.190
- v2.0, 2015-09-14, 2.0 alpha1(2.0.189) released. 89269 lines.
- v2.0, 2015-09-14, fix #474 config to donot parse width/height from sps. 2.0.189
- v2.0, 2015-09-14, for #474 always release publish for source.
- v2.0, 2015-09-14, for #458 http hooks use source thread cid. 2.0.188
- v2.0, 2015-09-14, for #475 fix http hooks crash for st context switch. 2.0.187
- v2.0, 2015-09-09, support reload utc_time. 2.0.186
- v2.0, 2015-08-23, 2.0 alpha0(2.0.185) released. 89022 lines.
- v2.0, 2015-08-22, HTTP API support JSONP by specifies the query string callback=xxx.
- v2.0, 2015-08-20, fix #380, srs-librtmp send sequence header when sps or pps changed.
- v2.0, 2015-08-18, close #454, support obs restart publish. 2.0.184
- v2.0, 2015-08-14, use reduce_sequence_header for stream control.
- v2.0, 2015-08-14, use send_min_interval for stream control. 2.0.183
- v2.0, 2015-08-12, enable the SRS_PERF_TCP_NODELAY and add config tcp_nodelay. 2.0.182
- v2.0, 2015-08-11, for #442 support kickoff connected client. 2.0.181
- v2.0, 2015-07-21, for #169 support default values for transcode. 2.0.180
- v2.0, 2015-07-21, fix #435 add pageUrl for HTTP callback on_play.
- v2.0, 2015-07-20, refine the hls, ignore packet when no sequence header. 2.0.179
- v2.0, 2015-07-16, for #441 use 30s timeout for first msg. 2.0.178
- v2.0, 2015-07-14, refine hls disable the time jitter, support not mix monotonically increase. 2.0.177
- v2.0, 2015-07-01, fix #433 fix the sps parse bug. 2.0.176
- v2.0, 2015-06-10, fix #425 refine the time jitter, correct (-inf,-250)+(250,+inf) to 10ms. 2.0.175
- v2.0, 2015-06-10, fix #424 fix aggregate timestamp bug. 2.0.174
- v2.0, 2015-06-06, fix #421 drop video for unkown RTMP header.
- v2.0, 2015-06-05, fix #420 remove ts for hls ram mode.
- v2.0, 2015-05-30, fix #209 cleanup hls when stop and timeout. 2.0.173.
- v2.0, 2015-05-29, fix #409 support pure video hls. 2.0.172.
- v2.0, 2015-05-28, support srs-dolphin, the multiple-process SRS.
- v2.0, 2015-05-24, fix #404 register handler then start http thread. 2.0.167.
- v2.0, 2015-05-23, refine the thread, protocol, kbps code. 2.0.166
- v2.0, 2015-05-23, fix #391 copy request for async call.
- v2.0, 2015-05-22, fix #397 the USER_HZ maybe not 100. 2.0.165
- v2.0, 2015-05-22, for #400, parse when got entire http header, by feilong. 2.0.164.
- v2.0, 2015-05-19, merge from bravo system, add the rtmfp to bms(commercial srs). 2.0.163.
- v2.0, 2015-05-10, support push flv stream over HTTP POST to SRS.
- v2.0, 2015-04-20, support ingest hls live stream to RTMP.
- v2.0, 2015-04-15, for #383, support mix_correct algorithm. 2.0.161.
- v2.0, 2015-04-13, for #381, support reap hls/ts by gop or not. 2.0.160.
- v2.0, 2015-04-10, enhanced on_hls_notify, support HTTP GET when reap ts.
- v2.0, 2015-04-10, refine the hls deviation for floor algorithm.
- v2.0, 2015-04-08, for #375, fix hls bug, keep cc continous between ts files. 2.0.159.
- v2.0, 2015-04-04, for #304, rewrite annexb mux for ts, refer to apple sample. 2.0.157.
- v2.0, 2015-04-03, enhanced avc decode, parse the sps get width+height. 2.0.156.
- v2.0, 2015-04-03, for #372, support transform vhost of edge 2.0.155.
- v2.0, 2015-03-30, for #366, config hls to disable cleanup of ts. 2.0.154.
- v2.0, 2015-03-31, support server cycle handler. 2.0.153.
- v2.0, 2015-03-31, support on_hls for http hooks. 2.0.152.
- v2.0, 2015-03-31, enhanced hls, support deviation for duration. 2.0.151.
- v2.0, 2015-03-30, for #351, support config the m3u8/ts path for hls. 2.0.149.
- v2.0, 2015-03-17, for #155, osx(darwin) support demo with nginx and ffmpeg. 2.0.143.
- v2.0, 2015-03-15, start 2.0release branch, 80773 lines.
- v2.0, 2015-03-14, fix #324, support hstrs(http stream trigger rtmp source) edge mode. 2.0.140.
- v2.0, 2015-03-14, for #324, support hstrs(http stream trigger rtmp source) origin mode. 2.0.139.
- v2.0, 2015-03-12, fix #328, support adobe hds. 2.0.138.
- v2.0, 2015-03-10, fix #155, support osx(darwin) for mac pro. 2.0.137.
- v2.0, 2015-03-08, fix #316, http api provides stream/vhost/srs/server bytes, codec and count. 2.0.136.
- v2.0, 2015-03-08, fix #310, refine aac LC, support aac HE/HEv2. 2.0.134.
- v2.0, 2015-03-06, for #322, fix http-flv stream bug, support multiple streams. 2.0.133.
- v2.0, 2015-03-06, refine http request parse. 2.0.132.
- v2.0, 2015-03-01, for #179, revert dvr http api. 2.0.128.
- v2.0, 2015-02-24, for #304, fix hls bug, write pts/dts error. 2.0.124
- v2.0, 2015-02-19, refine dvr, append file when dvr file exists. 2.0.122.
- v2.0, 2015-02-19, refine pithy print to more easyer to use. 2.0.121.
- v2.0, 2015-02-18, fix #2304, support push rtsp to srs. 2.0.120.
- v2.0, 2015-02-17, the join maybe failed, should use a variable to ensure thread terminated. 2.0.119.
- v2.0, 2015-02-15, for #304, support config default acodec/vcodec. 2.0.118.
- v2.0, 2015-02-15, for #304, rewrite hls/ts code, support h.264+mp3 for hls. 2.0.117.
- v2.0, 2015-02-12, for #304, use stringstream to generate m3u8, add hls_td_ratio. 2.0.116.
- v2.0, 2015-02-11, dev code ZhouGuowen for 2.0.115.
- v2.0, 2015-02-10, for #311, set pcr_base to dts. 2.0.114.
- v2.0, 2015-02-10, fix the bug of ibmf format which decoded in annexb.
- v2.0, 2015-02-10, for #310, downcast aac SSR to LC. 2.0.113
- v2.0, 2015-02-03, fix #136, support hls without io(in ram). 2.0.112
- v2.0, 2015-01-31, for #250, support push MPEGTS over UDP to SRS. 2.0.111
- v2.0, 2015-01-29, build libfdk-aac in ffmpeg. 2.0.108
- v2.0, 2015-01-25, for #301, hls support h.264+mp3, ok for vlc. 2.0.107
- v2.0, 2015-01-25, for #301, http ts stream support h.264+mp3. 2.0.106
- v2.0, 2015-01-25, hotfix #268, refine the pcr start at 0, dts/pts plus delay. 2.0.105
- v2.0, 2015-01-25, hotfix #151, refine pcr=dts-800ms and use dts/pts directly. 2.0.104
- v2.0, 2015-01-23, hotfix #151, use absolutely overflow to make jwplayer happy. 2.0.103
- v2.0, 2015-01-22, for #293, support http live ts stream. 2.0.101.
- v2.0, 2015-01-19, for #293, support http live flv/aac/mp3 stream with fast cache. 2.0.100.
- v2.0, 2015-01-18, for #293, support rtmp remux to http flv live stream. 2.0.99.
- v2.0, 2015-01-17, fix #277, refine http server refer to go http-framework. 2.0.98
- v2.0, 2015-01-17, for #277, refine http api refer to go http-framework. 2.0.97
- v2.0, 2015-01-17, hotfix #290, use iformat only for rtmp input. 2.0.95
- v2.0, 2015-01-08, hotfix #281, fix hls bug ignore type-9 send aud. 2.0.93
- v2.0, 2015-01-03, fix #274, http-callback support on_dvr when reap a dvr file. 2.0.89
- v2.0, 2015-01-03, hotfix to remove the pageUrl for http callback. 2.0.88
- v2.0, 2015-01-03, fix #179, dvr support custom filepath by variables. 2.0.87
- v2.0, 2015-01-02, fix #211, support security allow/deny publish/play all/ip. 2.0.86
- v2.0, 2015-01-02, hotfix #207, trim the last 0 of log. 2.0.85
- v2.0, 2014-01-02, fix #158, http-callback check http status code ok(200). 2.0.84
- v2.0, 2015-01-02, hotfix #216, http-callback post in application/json content-type. 2.0.83
- v2.0, 2014-01-02, fix #263, srs-librtmp flv read tag should init size. 2.0.82
- v2.0, 2015-01-01, hotfix #270, memory leak for http client post. 2.0.81
- v2.0, 2014-12-12, fix #266, aac profile is object id plus one. 2.0.80
- v2.0, 2014-12-29, hotfix #267, the forward dest ep should use server. 2.0.79
- v2.0, 2014-12-29, hotfix #268, the hls pcr is negative when startup. 2.0.78
- v2.0, 2014-12-22, hotfix #264, ignore NALU when sequence header to make HLS happy. 2.0.76
- v2.0, 2014-12-20, hotfix #264, support disconnect publish connect when hls error. 2.0.75
- v2.0, 2014-12-12, fix #257, support 0.1s+ latency. 2.0.70
- v2.0, 2014-12-08, update wiki for mr(EN, CN) and mw(EN, CN).
- v2.0, 2014-12-07, fix #251, 10k+ clients, use queue cond wait and fast vector. 2.0.67
- v2.0, 2014-12-05, fix #251, 9k+ clients, use fast cache for msgs queue. 2.0.57
- v2.0, 2014-12-04, fix #241, add mw(merged-write) config. 2.0.53
- v2.0, 2014-12-04, for #241, support mr(merged-read) config and reload. 2.0.52.
- v2.0, 2014-12-04, enable #241 and #248, +25% performance, 2.5k publisher. 2.0.50
- v2.0, 2014-12-04, fix #248, improve about 15% performance for fast buffer. 2.0.49
- v2.0, 2014-12-03, fix #244, conn thread use cond to wait for recv thread error. 2.0.47.
- v2.0, 2014-12-02, merge #239, traverse the token before response connect. 2.0.45.
- v2.0, 2014-12-02, srs-librtmp support hijack io apis for st-load. 2.0.42.
- v2.0, 2014-12-01, for #237, refine syscall for recv, supports 1.5k clients. 2.0.41.
- v2.0, 2014-11-30, add qtcreate project file trunk/src/qt/srs/srs-qt.pro. 2.0.39.
- v2.0, 2014-11-29, fix #235, refine handshake, replace union with template method. 2.0.38.
- v2.0, 2014-11-28, fix #215, add srs_rtmp_dump tool. 2.0.37.
- v2.0, 2014-11-25, update PRIMARY, AUTHORS, CONTRIBUTORS rule. 2.0.32.
- v2.0, 2014-11-24, fix #212, support publish aac adts raw stream. 2.0.31.
- v2.0, 2014-11-22, fix #217, remove timeout recv, support 7.5k+ 250kbps clients. 2.0.30.
- v2.0, 2014-11-21, srs-librtmp add rtmp prefix for rtmp/utils/human apis. 2.0.29.
- v2.0, 2014-11-21, refine examples of srs-librtmp, add srs_print_rtmp_packet. 2.0.28.
- v2.0, 2014-11-20, fix #212, support publish audio raw frames. 2.0.27
- v2.0, 2014-11-19, fix #213, support compile srs-librtmp on windows, bug #213. 2.0.26
- v2.0, 2014-11-18, all wiki translated to English. 2.0.23.
- v2.0, 2014-11-15, fix #204, srs-librtmp drop duplicated sps/pps(sequence header). 2.0.22.
- v2.0, 2014-11-15, fix #203, srs-librtmp drop any video before sps/pps(sequence header). 2.0.21.
- v2.0, 2014-11-15, fix #202, fix memory leak of h.264 raw packet send in srs-librtmp. 2.0.20.
- v2.0, 2014-11-13, fix #200, deadloop when read/write 0 and ETIME. 2.0.16.
- v2.0, 2014-11-13, fix #194, writev multiple msgs, support 6k+ 250kbps clients. 2.0.15.
- v2.0, 2014-11-12, fix #194, optmized st for timeout recv. pulse to 500ms. 2.0.14.
- v2.0, 2014-11-11, fix #195, remove the confuse code st_usleep(0). 2.0.13.
- v2.0, 2014-11-08, fix #191, configure --export-librtmp-project and --export-librtmp-single. 2.0.11.
- v2.0, 2014-11-08, fix #66, srs-librtmp support write h264 raw packet. 2.0.9.
- v2.0, 2014-10-25, fix #185, AMF0 support 0x0B the date type codec. 2.0.7.
- v2.0, 2014-10-24, fix #186, hotfix for bug #186, drop connect args when not object. 2.0.6.
- v2.0, 2014-10-24, rename wiki/xxx to wiki/v4_CN_xxx. 2.0.3.
- v2.0, 2014-10-19, fix #184, support AnnexB in RTMP body for HLS. 2.0.2
- v2.0, 2014-10-18, remove supports for OSX(darwin). 2.0.1.
- v2.0, 2014-10-16, revert github srs README to English. 2.0.0.
- v1.0, 2014-12-05, 1.0 release(1.0.10) released. 59391 lines.
- v1.0, 2014-10-09, 1.0 beta(1.0.0) released. 59316 lines.
- v1.0, 2014-10-08, fix #151, always reap ts whatever audio or video packet. 0.9.223.
- v1.0, 2014-10-08, fix #162, failed if no epoll. 0.9.222.
- v1.0, 2014-09-30, fix #180, crash for multiple edge publishing the same stream. 0.9.220.
- v1.0, 2014-09-26, fix hls bug, refine config and log, according to clion of jetbrains. 0.9.216.
- v1.0, 2014-09-25, fix #177, dvr segment add config dvr_wait_keyframe. 0.9.213.
- v1.0, 2014-08-28, fix #167, add openssl includes to utest. 0.9.209.
- v1.0, 2014-08-27, max connections is 32756, for st use mmap default. 0.9.209
- v1.0, 2014-08-24, fix #150, forward should forward the sequence header when retry. 0.9.208.
- v1.0, 2014-08-22, for #165, refine dh wrapper, ensure public key is 128bytes. 0.9.206.
- v1.0, 2014-08-19, for #160, support forward/edge to flussonic, disable debug_srs_upnode to make flussonic happy. 0.9.201.
- v1.0, 2014-08-17, for #155, refine for osx, with ssl/http, disable statistics. 0.9.198.
- v1.0, 2014-08-06, fix #148, simplify the RTMP handshake key generation. 0.9.191.
- v1.0, 2014-08-06, fix #147, support identify the srs edge. 0.9.190.
- v1.0, 2014-08-03, 1.0 mainline7(0.9.189) released. 57432 lines.
- v1.0, 2014-08-03, fix #79, fix the reload remove edge assert bug. 0.9.189.
- v1.0, 2014-08-03, fix #57, use lock(acquire/release publish) to avoid duplicated publishing. 0.9.188.
- v1.0, 2014-08-03, fix #85, fix the segment-dvr sequence header missing. 0.9.187.
- v1.0, 2014-08-03, fix #145, refine ffmpeg log, check abitrate for libaacplus. 0.9.186.
- v1.0, 2014-08-03, fix #143, fix retrieve sys stat bug for all linux. 0.9.185.
- v1.0, 2014-08-02, fix #138, fix http hooks bug, regression bug. 0.9.184.
- v1.0, 2014-08-02, fix #142, fix tcp stat slow bug, use /proc/net/sockstat instead, refer to 'ss -s'. 0.9.183.
- v1.0, 2014-07-31, fix #141, support tun0(vpn network device) ip retrieve. 0.9.179.
- v1.0, 2014-07-27, support partially build on OSX(Darwin). 0.9.177
- v1.0, 2014-07-27, api connections add udp, add disk iops. 0.9.176
- v1.0, 2014-07-26, complete config utest. 0.9.173
- v1.0, 2014-07-26, fix #124, gop cache support disable video in publishing. 0.9.171.
- v1.0, 2014-07-23, fix #121, srs_info detail log compile failed. 0.9.168.
- v1.0, 2014-07-19, fix #119, use iformat and oformat for ffmpeg transcode. 0.9.163.
- v1.0, 2014-07-13, 1.0 mainline6(0.9.160) released. 50029 lines.
- v1.0, 2014-07-13, refine the bandwidth check/test, add as/js library, use srs-librtmp for linux tool. 0.9.159
- v1.0, 2014-07-12, complete rtmp stack utest. 0.9.156
- v1.0, 2014-07-06, fix #81, fix HLS codec info, IOS ok. 0.9.153.
- v1.0, 2014-07-06, fix #103, support all aac sample rate. 0.9.150.
- v1.0, 2014-07-05, complete kernel utest. 0.9.149
- v1.0, 2014-06-30, fix #111, always use 31bits timestamp. 0.9.143.
- v1.0, 2014-06-28, response the call message with null. 0.9.137
- v1.0, 2014-06-28, fix #110, thread start segment fault, thread cycle stop destroy thread. 0.9.136
- v1.0, 2014-06-27, fix #109, fix the system jump time, adjust system startup time. 0.9.135
- v1.0, 2014-06-27, 1.0 mainline5(0.9.134) released. 41573 lines.
- v1.0, 2014-06-27, SRS online 30days with RTMP/HLS.
- v1.0, 2014-06-25, fix #108, support config time jitter for encoder non-monotonical stream. 0.9.133
- v1.0, 2014-06-23, support report summaries in heartbeat. 0.9.132
- v1.0, 2014-06-22, performance refine, support 3k+ connections(270kbps). 0.9.130
- v1.0, 2014-06-21, support edge token traverse, fix #104. 0.9.129
- v1.0, 2014-06-19, add connections count to api summaries. 0.9.127
- v1.0, 2014-06-19, add srs bytes and kbps to api summaries. 0.9.126
- v1.0, 2014-06-18, add network bytes to api summaries. 0.9.125
- v1.0, 2014-06-14, fix #98, workaround for librtmp ping(fmt=1,cid=2 fresh stream). 0.9.124
- v1.0, 2014-05-29, support flv inject and flv http streaming with start=bytes. 0.9.122
- v1.0, 2014-05-28, 1.0 mainline4(0.9.120) released. 39200 lines.
- v1.0, 2014-05-27, fix #87, add source id for full trackable log. 0.9.120
- v1.0, 2014-05-27, fix #84, unpublish when edge disconnect. 0.9.119
- v1.0, 2014-05-27, fix #89, config to /dev/null to disable ffmpeg log. 0.9.117
- v1.0, 2014-05-25, fix #76, allow edge vhost to add or remove. 0.9.114
- v1.0, 2014-05-24, Johnny contribute ossrs.net. karthikeyan start to translate wiki to English.
- v1.0, 2014-05-22, fix #78, st joinable thread must be stop by other threads, 0.9.113
- v1.0, 2014-05-22, support amf0 StrictArray(0x0a). 0.9.111.
- v1.0, 2014-05-22, support flv parser, add amf0 to librtmp. 0.9.110
- v1.0, 2014-05-22, fix #74, add tcUrl for http callback on_connect, 0.9.109
- v1.0, 2014-05-19, support http heartbeat, 0.9.107
- v1.0, 2014-05-18, 1.0 mainline3(0.9.105) released. 37594 lines.
- v1.0, 2014-05-18, support http api json, to PUT/POST. 0.9.105
- v1.0, 2014-05-17, fix #72, also need stream_id for send_and_free_message. 0.9.101
- v1.0, 2014-05-17, rename struct to class. 0.9.100
- v1.0, 2014-05-14, fix #67 pithy print, stage must has a age. 0.9.98
- v1.0, 2014-05-13, fix mem leak for delete[] SharedPtrMessage array. 0.9.95
- v1.0, 2014-05-12, refine the kbps calc module. 0.9.93
- v1.0, 2014-05-12, fix bug #64: install_dir=DESTDIR+PREFIX
- v1.0, 2014-05-08, fix #36: never directly use *(int32_t*) for arm.
- v1.0, 2014-05-08, fix #60: support aggregate message
- v1.0, 2014-05-08, fix #59, edge support FMS origin server. 0.9.92
- v1.0, 2014-05-06, fix #50, ubuntu14 build error.
- v1.0, 2014-05-04, support mips linux.
- v1.0, 2014-04-30, fix bug #34: convert signal to io thread. 0.9.85
- v1.0, 2014-04-29, refine RTMP protocol completed, to 0.9.81
- v1.0, 2014-04-28, 1.0 mainline2(0.9.79) released. 35255 lines.
- v1.0, 2014-04-28, support full edge RTMP server. 0.9.79
- v1.0, 2014-04-27, support basic edge(play/publish) RTMP server. 0.9.78
- v1.0, 2014-04-25, add donation page. 0.9.76
- v1.0, 2014-04-21, support android app to start srs for internal edge. 0.9.72
- v1.0, 2014-04-19, support tool over srs-librtmp to ingest flv/rtmp. 0.9.71
- v1.0, 2014-04-17, support dvr(record live to flv file for vod). 0.9.69
- v1.0, 2014-04-11, add speex1.2 to transcode flash encoder stream. 0.9.58
- v1.0, 2014-04-10, support reload ingesters(add/remov/update). 0.9.57
- v1.0, 2014-04-07, 1.0 mainline(0.9.55) released. 30000 lines.
- v1.0, 2014-04-07, support ingest file/stream/device.
- v1.0, 2014-04-05, support http api and http server.
- v1.0, 2014-04-03, implements http framework and api/v1/version.
- v1.0, 2014-03-30, fix bug for st detecting epoll failed, force st to use epoll.
- v1.0, 2014-03-29, add wiki Performance for RaspberryPi.
- v1.0, 2014-03-29, add release binary package for raspberry-pi.
- v1.0, 2014-03-26, support RTMP ATC for HLS/HDS to support backup(failover).
- v1.0, 2014-03-23, support daemon, default start in daemon.
- v1.0, 2014-03-22, support make install/install-api and uninstall.
- v1.0, 2014-03-22, add ./etc/init.d/srs, refine to support make clean then make.
- v1.0, 2014-03-21, write pid to ./objs/srs.pid.
- v1.0, 2014-03-20, refine hls code, support pure audio HLS.
- v1.0, 2014-03-19, add vn/an for FFMPEG to drop video/audio for radio stream.
- v1.0, 2014-03-19, refine handshake, client support complex handshake, add utest.
- v1.0, 2014-03-16, fix bug on arm of st, the sp change from 20 to 8, for respberry-pi, @see commit
- v1.0, 2014-03-16, support ARM(debian armhf, v7cpu) with rtmp/ssl/hls/librtmp.
- v1.0, 2014-03-12, finish utest for amf0 codec.
- v1.0, 2014-03-06, add gperftools for mem leak detect, mem/cpu profile.
- v1.0, 2014-03-04, add gest framework for utest, build success.
- v1.0, 2014-03-02, srs-librtmp, client publish/play library like librtmp.
- v1.0, 2014-03-01, modularity, extract core/kernel/rtmp/app/main module.
- v1.0, 2014-02-28, support arm build(SRS/ST), add ssl to 3rdparty package.
- v1.0, 2014-02-28, add wiki BuildArm, FFMPEG, Reload
- v1.0, 2014-02-27, add wiki LowLatency, HTTPCallback
- v1.0, 2014-01-19, add wiki DeliveryHLS
- v1.0, 2014-01-12, add wiki HowToAskQuestion, RtmpUrlVhost
- v1.0, 2014-01-11, fix jw/flower player pause bug, which send closeStream actually.
- v1.0, 2014-01-05, add wiki Build, Performance, Forward
- v1.0, 2014-01-01, change listen(512), chunk-size(60000), to improve performance.
- v1.0, 2013-12-27, merge from wenjie, the bandwidth test feature.
- v0.9, 2013-12-25, v0.9 released. 20926 lines.
- v0.9, 2013-12-25, fix the bitrate bug(in Bps), use enhanced microphone.
- v0.9, 2013-12-22, demo video meeting or chat(SRS+cherrypy+jquery+bootstrap).
- v0.9, 2013-12-22, merge from wenjie, support banwidth test.
- v0.9, 2013-12-22, merge from wenjie: support set chunk size at vhost level
- v0.9, 2013-12-21, add players for play and publish.
- v0.9, 2013-12-15, ensure the HLS(ts) is continous when republish stream.
- v0.9, 2013-12-15, fix the hls reload bug, feed it the sequence header.
- v0.9, 2013-12-15, refine protocol, use int64_t timestamp for ts and jitter.
- v0.9, 2013-12-15, support set the live queue length(in seconds), drop when full.
- v0.9, 2013-12-15, fix the forwarder reconnect bug, feed it the sequence header.
- v0.9, 2013-12-15, support reload the hls/forwarder/transcoder.
- v0.9, 2013-12-14, refine the thread model for the retry threads.
- v0.9, 2013-12-10, auto install depends tools/libs on centos/ubuntu.
- v0.8, 2013-12-08, v0.8 released. 19186 lines.
- v0.8, 2013-12-08, support http hooks: on_connect/close/publish/unpublish/play/stop.
- v0.8, 2013-12-08, support multiple http hooks for a event.
- v0.8, 2013-12-07, support http callback hooks, on_connect.
- v0.8, 2013-12-07, support network based cli and json result, add CherryPy 3.2.4.
- v0.8, 2013-12-07, update http/hls/rtmp load test tool SB, use SRS rtmp sdk.
- v0.8, 2013-12-06, support max_connections, drop if exceed.
- v0.8, 2013-12-05, support log_dir, write ffmpeg log to file.
- v0.8, 2013-12-05, fix the forward/hls/encoder bug.
- v0.7, 2013-12-03, v0.7 released. 17605 lines.
- v0.7, 2013-12-01, support dead-loop detect for forwarder and transcoder.
- v0.7, 2013-12-01, support all ffmpeg filters and params.
- v0.7, 2013-11-30, support live stream transcoder by ffmpeg.
- v0.7, 2013-11-30, support --with/without -ffmpeg, build ffmpeg-2.1.
- v0.7, 2013-11-30, add ffmpeg-2.1, x264-core138, lame-3.99.5, libaacplus-2.0.2.
- v0.6, 2013-11-29, v0.6 released. 16094 lines.
- v0.6, 2013-11-29, add performance summary, 1800 clients, 900Mbps, CPU 90.2%, 41MB.
- v0.6, 2013-11-29, support forward stream to other edge server.
- v0.6, 2013-11-29, support forward stream to other origin server.
- v0.6, 2013-11-28, fix memory leak bug, aac decode bug.
- v0.6, 2013-11-27, support --with or --without -hls and -ssl options.
- v0.6, 2013-11-27, support AAC 44100HZ sample rate for iphone, adjust the timestamp.
- v0.5, 2013-11-26, v0.5 released. 14449 lines.
- v0.5, 2013-11-24, support HLS(m3u8), fragment and window.
- v0.5, 2013-11-24, support record to ts file for HLS.
- v0.5, 2013-11-21, add ts_info tool to demux ts file.
- v0.5, 2013-11-16, add rtmp players(OSMF/jwplayer5/jwplayer6).
- v0.4, 2013-11-10, v0.4 released. 12500 lines.
- v0.4, 2013-11-10, support config and reload the pithy print.
- v0.4, 2013-11-09, support reload config(vhost and its detail).
- v0.4, 2013-11-09, support reload config(listen and chunk_size) by SIGHUP(1).
- v0.4, 2013-11-09, support longtime(>4.6hours) publish/play.
- v0.4, 2013-11-09, support config the chunk_size.
- v0.4, 2013-11-09, support pause for live stream.
- v0.3, 2013-11-04, v0.3 released. 11773 lines.
- v0.3, 2013-11-04, support refer/play-refer/publish-refer.
- v0.3, 2013-11-04, support vhosts specified config.
- v0.3, 2013-11-02, support listen multiple ports.
- v0.3, 2013-11-02, support config file in nginx-conf style.
- v0.3, 2013-10-29, support pithy print log message specified by stage.
- v0.3, 2013-10-28, support librtmp without extended-timestamp in 0xCX chunk packet.
- v0.3, 2013-10-27, support cache last gop for client fast startup.
- v0.2, 2013-10-25, v0.2 released. 10125 lines.
- v0.2, 2013-10-25, support flash publish.
- v0.2, 2013-10-25, support h264/avc codec by rtmp complex handshake.
- v0.2, 2013-10-24, support time jitter detect and correct algorithm
- v0.2, 2013-10-24, support decode codec type to cache the h264/avc sequence header.
- v0.1, 2013-10-23, v0.1 released. 8287 lines.
- v0.1, 2013-10-23, support basic amf0 codec, simplify the api using c-style api.
- v0.1, 2013-10-23, support shared ptr msg for zero memory copy.
- v0.1, 2013-10-22, support vp6 codec with rtmp protocol specified simple handshake.
- v0.1, 2013-10-20, support multiple flash client play live streaming.
- v0.1, 2013-10-20, support FMLE/FFMPEG publish live streaming.
- v0.1, 2013-10-18, support rtmp message2chunk protocol(send_message).
- v0.1, 2013-10-17, support rtmp chunk2message protocol(recv_message).
- 2021-04-28, Release v3.0-r5, 3.0 release5, 3.0.161, 122750 lines.
- 2021-04-24, Release v3.0-r4, 3.0 release4, 3.0.160, 122750 lines.
- 2021-01-02, Release v3.0-r3, 3.0 release3, 3.0.156, 122736 lines.
- 2020-10-31, Release v3.0-r2, 3.0 release2, 3.0.153, 122663 lines.
- 2020-10-10, Release v3.0-r1, 3.0 release1, 3.0.144, 122674 lines.
- 2020-06-27, Release v3.0-r0, 3.0 release0, 3.0.141, 122674 lines.
- 2020-03-29, Release v3.0-b3, 3.0 beta4, 3.0.139, 122674 lines.
- 2020-03-18, Release v3.0-b3, 3.0 beta3, 3.0.134, 122509 lines.
- 2020-03-05, Release v3.0-b2, 3.0 beta2, 3.0.123, 122170 lines.
- 2020-02-14, Release v3.0-b1, 3.0 beta1, 3.0.117, 121964 lines.
- 2020-02-02, Release v3.0-b0, 3.0 beta0, 3.0.112, 121709 lines.
- 2020-01-21, Release v3.0-a9, 3.0 alpha9, 3.0.105, 121577 lines.
- 2020-01-10, Release v3.0-a8, 3.0 alpha8, 3.0.97, 121555 lines.
- 2019-12-29, Release v3.0-a7, 3.0 alpha7, 3.0.90, 116356 lines.
- 2019-12-26, Release v3.0-a6, 3.0 alpha6, 3.0.85, 116056 lines.
- 2019-12-19, Release v3.0-a5, 3.0 alpha5, 3.0.75, 115362 lines.
- 2019-12-13, Release v3.0-a4, 3.0 alpha4, 3.0.71, 112928 lines.
- 2019-11-30, Release v3.0-a3, 3.0 alpha3, 3.0.67, 110864 lines.
- 2019-11-30, Release v3.0-a2, 3.0 alpha2, 3.0.66, 110831 lines.
- 2019-10-07, Release v3.0-a1, 3.0 alpha1, 3.0.60, 107962 lines.
- 2019-10-04, Release v3.0-a0, 3.0 alpha0, 3.0.56, 107946 lines.
- 2017-03-03, Release v2.0-r0, 2.0 release0, 2.0.234, 86373 lines.
- 2016-11-13, Release v2.0-b3, 2.0 beta3, 2.0.223, 86685 lines.
- 2016-11-09, Release v2.0-b2, 2.0 beta2, 2.0.221, 86691 lines.
- 2016-09-09, Release v2.0-b1, 2.0 beta1, 2.0.215, 89941 lines.
- 2016-08-06, Release v2.0-b0, 2.0 beta0, 2.0.210, 89704 lines.
- 2015-12-23, Release v2.0-a3, 2.0 alpha3, 2.0.205, 89544 lines.
- 2015-10-08, Release v2.0-a2, 2.0 alpha2, 2.0.195, 89358 lines.
- 2015-09-14, Release v2.0-a1, 2.0 alpha1, 2.0.189, 89269 lines.
- 2015-08-23, Release v2.0-a0, 2.0 alpha0, 2.0.185, 89022 lines.
- 2015-05-23, Release v1.0-r4, bug fixed, 1.0.32, 59509 lines.
- 2015-03-19, Release v1.0-r3, bug fixed, 1.0.30, 59511 lines.
- 2015-02-12, Release v1.0-r2, bug fixed, 1.0.27, 59507 lines.
- 2015-01-15, Release v1.0-r1, bug fixed, 1.0.21, 59472 lines.
- 2014-12-05, Release v1.0-r0, all bug fixed, 1.0.10, 59391 lines.
- 2014-10-09, Release v0.9.8, all bug fixed, 1.0.0, 59316 lines.
- 2014-08-03, Release v0.9.7, config utest, all bug fixed. 57432 lines.
- 2014-07-13, Release v0.9.6, core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.
- 2014-06-27, Release v0.9.5, refine perf 3k+ clients, edge token traverse, 30days online. 41573 lines.
- 2014-05-28, Release v0.9.4, support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.
- 2014-05-18, Release v0.9.3, support mips, fms origin, json(http-api). 37594 lines.
- 2014-04-28, Release v0.9.2, support dvr, android, edge. 35255 lines.
- 2014-04-07, Release v0.9.1, support arm, init.d, http server/api, ingest. 30000 lines.
- 2013-12-25, Release v0.9.0, support bandwidth test, player/encoder/chat demos. 20926 lines.
- 2013-12-08, Release v0.8.0, support http hooks callback, update SB. 19186 lines.
- 2013-12-03, Release v0.7.0, support live stream transcoding. 17605 lines.
- 2013-11-29, Release v0.6.0, support forward stream to origin/edge. 16094 lines.
- 2013-11-26, Release v0.5.0, support HLS(m3u8), fragment and window. 14449 lines.
- 2013-11-10, Release v0.4.0, support reload config, pause, longtime publish/play. 12500 lines.
- 2013-11-04, Release v0.3.0, support vhost, refer, gop cache, listen multiple ports. 11773 lines.
- 2013-10-25, Release v0.2.0, support rtmp flash publish, h264, time jitter correct. 10125 lines.
- 2013-10-23, Release v0.1.0, support rtmp FMLE/FFMPEG publish, vp6. 8287 lines.
- 2013-10-17, Created.
Comparing with other media servers, SRS is much better and stronger, for details please read Product(CN/EN).
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
RTMP | Stable | Stable | Stable | Stable | Stable |
HLS | Stable | Stable | X | Stable | Stable |
HTTP FLV | Stable | X | X | X | X |
HLS(aonly) | Stable | X | X | Stable | Stable |
HDS | Experiment | X | X | Stable | Stable |
MPEG-DASH | Experiment | X | X | X | X |
SRT | Experiment | X | X | X | Stable |
HTTP Server | Stable | Stable | X | X | Stable |
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
RTMP Edge | Stable | X | X | Stable | X |
RTMP Backup | Stable | X | X | X | X |
VHOST | Stable | X | X | Stable | Stable |
Reload | Stable | X | X | X | X |
Forward | Stable | X | X | X | X |
ATC | Stable | X | X | X | X |
Docker | Stable | X | X | X | X |
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
DVR | Stable | Stable | X | X | Stable |
DVR API | Stable | Stable | X | X | X |
DVR MP4 | Stable | X | X | X | X |
EXEC | Stable | Stable | X | X | X |
Transcode | Stable | X | X | X | Stable |
HTTP API | Stable | Stable | X | X | Stable |
HTTP RAW API | Stable | X | X | X | X |
HTTP hooks | Stable | X | X | X | X |
GopCache | Stable | X | X | Stable | X |
Security | Stable | Stable | X | X | Stable |
Token Traverse | Stable | X | X | Stable | X |
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
Concurrency | 7.5k | 3k | 2k | 2k | 3k |
MultipleProcess | Stable | Stable | X | X | X |
RTMP Latency | 0.1s | 3s | 3s | 3s | 3s |
HLS Latency | 10s | 30s | X | 30s | 30s |
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
Ingest | Stable | X | X | X | X |
Push MPEGTS | Experiment | X | X | X | Stable |
Push RTSP | Experiment | X | Stable | X | Stable |
Push HTTP FLV | Experiment | X | X | X | X |
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
BW check | Stable | X | X | X | X |
Tracable Log | Stable | X | X | X | X |
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
Demos | Stable | X | X | X | X |
WIKI(EN+CN) | Stable | EN only | X | X | Stable |
Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
---|---|---|---|---|---|
ARM/MIPS | Stable | Stable | X | X | X |
Client Library | Stable | X | X | X | X |
Remark:
- Concurrency: We only benchmark the concurrency of single process.
- MultipleProcess: SRS supports multiple processes by go-oryx.
- HLS aonly: HLS supports audio only mode without video stream.
- BW check: The bandwidth check feature is used to detect the bandwidth between server and client.
- Security: The security includes access control, token authentication and referer check.
- Reload: SRS and Nginx supports reload, but nginx-rtmp doesn't.
The performance benchmark data and corelative commits are listed here.
- See also: Performance for x86/x64 Test Guide.
- See also: Performance for RaspberryPi.
- For multiple processes performance, read #775: REUSEPORT or OriginCluster(CN/EN) or go-oryx.
- For RTC benchmark, please use srs-bench.
The data for playing RTMP was benchmarked by SB:
Update | SRS | Clients | Type | CPU | Memory | Commit |
---|---|---|---|---|---|---|
2014-12-07 | 2.0.67 | 10k(10000) | players | 95% | 656MB | code |
2014-12-05 | 2.0.57 | 9.0k(9000) | players | 90% | 468MB | code |
2014-12-05 | 2.0.55 | 8.0k(8000) | players | 89% | 360MB | code |
2014-11-22 | 2.0.30 | 7.5k(7500) | players | 87% | 320MB | code |
2014-11-13 | 2.0.15 | 6.0k(6000) | players | 82% | 203MB | code |
2014-11-12 | 2.0.14 | 3.5k(3500) | players | 95% | 78MB | code |
2014-11-12 | 2.0.14 | 2.7k(2700) | players | 69% | 59MB | - |
2014-11-11 | 2.0.12 | 2.7k(2700) | players | 85% | 66MB | - |
2014-11-11 | 1.0.5 | 2.7k(2700) | players | 85% | 66MB | - |
2014-07-12 | 0.9.156 | 2.7k(2700) | players | 89% | 61MB | code |
2014-07-12 | 0.9.156 | 1.8k(1800) | players | 68% | 38MB | - |
2013-11-28 | 0.5.0 | 1.8k(1800) | players | 90% | 41M | - |
Update | SFU | Clients | Type | CPU | Memory | Threads | VM |
---|---|---|---|---|---|---|---|
2021-05-11 | SRS/v4.0.105 | 4000 | players | ~94% x1 | 419MB | 1 | G5 8CPU |
2021-05-11 | NginxRTMP/v1.2.1 | 2400 | players | ~92% x1 | 173MB | 1 | G5 8CPU |
Note: CentOS7, 600Kbps, ECS/G5-2.5GHZ(SkyLake), SRS/v4.0.105, NginxRTMP/v1.2.1.
The data for publishing RTMP was benchmarked by SB:
Update | SRS | Clients | Type | CPU | Memory | Commit |
---|---|---|---|---|---|---|
2014-12-04 | 2.0.52 | 4.0k(4000) | publishers | 80% | 331MB | code |
2014-12-04 | 2.0.51 | 2.5k(2500) | publishers | 91% | 259MB | code |
2014-12-04 | 2.0.49 | 2.5k(2500) | publishers | 95% | 404MB | code |
2014-12-04 | 2.0.49 | 1.4k(1400) | publishers | 68% | 144MB | - |
2014-12-03 | 2.0.48 | 1.4k(1400) | publishers | 95% | 140MB | code |
2014-12-03 | 2.0.47 | 1.4k(1400) | publishers | 95% | 140MB | - |
2014-12-03 | 2.0.47 | 1.2k(1200) | publishers | 84% | 76MB | code |
2014-12-03 | 2.0.12 | 1.2k(1200) | publishers | 96% | 43MB | - |
2014-12-03 | 1.0.10 | 1.2k(1200) | publishers | 96% | 43MB | - |
Update | SFU | Clients | Type | CPU | Memory | Threads | VM |
---|---|---|---|---|---|---|---|
2021-05-11 | SRS/v4.0.105 | 2300 | publishers | ~89% x1 | 1.1GB | 1 | G5 8CPU |
2021-05-11 | NginxRTMP/v1.2.1 | 1300 | publishers | ~84% x1 | 198MB | 1 | G5 8CPU |
Note: CentOS7, 600Kbps, ECS/G5-2.5GHZ(SkyLake), SRS/v4.0.105, NginxRTMP/v1.2.1.
The data for playing HTTP FLV was benchmarked by SB:
Update | SRS | Clients | Type | CPU | Memory | Commit |
---|---|---|---|---|---|---|
2014-05-25 | 2.0.171 | 6.0k(6000) | players | 84% | 297MB | code |
2014-05-24 | 2.0.170 | 3.0k(3000) | players | 89% | 96MB | code |
2014-05-24 | 2.0.169 | 3.0k(3000) | players | 94% | 188MB | code |
2014-05-24 | 2.0.168 | 2.3k(2300) | players | 92% | 276MB | code |
2014-05-24 | 2.0.167 | 1.0k(1000) | players | 82% | 86MB | - |
The RTC benchmark data, by srs-bench:
Update | SFU | Clients | Type | CPU | Memory | Threads | VM |
---|---|---|---|---|---|---|---|
2021-05-10 | SRS/v4.0.105 | 2000 | players | ~94% x1 | 462MB | 1 | G7 2CPU |
2021-05-10 | SRS/v4.0.105 | 1000 | players | ~90% x1 | 180MB | 1 | G5 2CPU |
2021-03-31 | SRS/v4.0.87 | 800 | players | ~94% x1 | 444MB | 1 | G5 2CPU |
2021-05-10 | Janus/v0.11.1 | 700 | players | ~93% x2 | 430MB | 24 | G5 2CPU |
2021-05-10 | SRS/v4.0.105 | 1700 | publishers | ~92% x1 | 334MB | 1 | G7 2CPU |
2021-05-10 | SRS/v4.0.105 | 950 | publishers | ~92% x1 | 132MB | 1 | G5 2CPU |
2021-03-31 | SRS/v4.0.87 | 550 | publishers | ~86% x1 | 1.3GB | 1 | G5 2CPU |
2021-05-10 | Janus/v0.11.1 | 350 | publishers | ~93% x2 | 405MB | 23 | G5 2CPU |
Note: CentOS7, 600Kbps, ECS/G5-2.5GHZ(SkyLake)/G7-2.7GHZ(IceLake), SRS/v4.0.87, SRS/v4.0.105, Janus/v0.11.1.
The latency between encoder and player with realtime config(CN, EN):
Update | SRS | Protocol | VP6 | H.264 | VP6+MP3 | H.264+MP3 |
---|---|---|---|---|---|---|
2014-12-16 | 2.0.72 | RTMP | 0.1s | 0.4s | 0.8s | 0.6s |
2014-12-12 | 2.0.70 | RTMP | 0.1s | 0.4s | 1.0s | 0.9s |
2014-12-03 | 1.0.10 | RTMP | 0.4s | 0.4s | 0.9s | 1.2s |
2021-04-02 | 4.0.87 | WebRTC | x | 80ms | x | x |
2018-08-05, c45f72e, Refine HTTP-FLV latency, support realtime mode. 2.0.252
We used FMLE as encoder for benchmark. The latency of server was 0.1s+, and the bottleneck was the encoder. For more information, read bug #257.
About the overhead of HLS overhead, we compared FFMPEG and SRS.
Bitrate | Duration | FLV(KB) | HLS(KB) | Overhead |
---|---|---|---|---|
275kbps | 600s | 11144 | 12756 | 14.46% |
260kbps | 1860s | 59344 | 68004 | 14.59% |
697kbps | 60s | 5116 | 5476 | 7.03% |
565kbps | 453s | 31316 | 33544 | 7.11% |
565kbps | 1813s | 125224 | 134140 | 7.12% |
861kbps | 497s | 52316 | 54924 | 4.98% |
857kbps | 1862s | 195008 | 204768 | 5.00% |
1301kbps | 505s | 80320 | 83676 | 4.17% |
1312kbps | 1915s | 306920 | 319680 | 4.15% |
2707kbps | 600s | 198356 | 204560 | 3.12% |
2814kbps | 1800s | 618456 | 637660 | 3.10% |
2828kbps | 60s | 20716 | 21356 | 3.08% |
2599kbps | 307s | 97580 | 100672 | 3.16% |
2640kbps | 1283s | 413880 | 426912 | 3.14% |
5254kbps | 71s | 45832 | 47056 | 2.67% |
5147kbps | 370s | 195040 | 200280 | 2.68% |
5158kbps | 1327s | 835664 | 858092 | 2.68% |
The HLS overhead is calc by: (HLS - FLV) / FLV * 100%.
The overhead should be larger than this benchmark(48kbps audio is best overhead), for we fix the #512.
SRS always use the simplest architecture to solve complex domain problems.
- System arch: the system structure and arch.
- Modularity arch: the main modularity of SRS.
- Stream arch: the stream dispatch arch of SRS.
+------------------------------------------------------+
| Application |
| Origin/Edge/HTTP-FLV/StreamCaster |
+---------------+---------------+-----------+----------+
| RAW API/ | EXEC/ | DVR/HLS | FLV/TS/ |
| API/hook | Transcoder | HDS/DASH | AMF0/JSON|
+---------------+---------------+-----------+ RTMP/RTSP|
| http-parser | FFMPEG/x264 | NGINX/ts | protocol |
+---------------+---------------+-----------+----------+
| Network(state-threads) |
+------------------------------------------------------+
| All Linux/Unix(RHEL,CentOS,Ubuntu,Fedora...) |
+------------------------------------------------------+
+--------------------+---------------------------------+
| SRS/SRT server | Programs in Main |
+--------------------+-------+-------------------------+
| App(For SRS) | Modules(1) |
+----------------------------+-------------------------+
| Protocol Stack(RTMP/HTTP/RTSP/JSON/AMF/Service) |
+------------------------------------------------------+
| Kernel(File, Codec, Stream, LB services) |
+------------------------------------------------------+
| Core(Macros and very low-level APIs) |
+------------------------------------------------------+
Remark:
- Modules: SRS supports code-level modularity, read modules.
+---------+ +----------+
| Publish | | Deliver |
+---|-----+ +----|-----+
+----------------------+----------------------------+----------------+
| Input | SRS(Simple RTMP Server) | Output |
+----------------------+----------------------------+----------------+
| | +-> DASH ----------------+-> DASH player |
| Encoder(1) | +-> RTMP/HDS -----------+-> Flash player |
| (FMLE,FFMPEG, -rtmp-+->-+-> HLS/HTTP ------------+-> M3U8 player |
| Flash,XSPLIT, | +-> FLV/MP3/Aac/Ts ------+-> HTTP player |
| ......) | +-> Fowarder ------------+-> RTMP server |
| | +-> Transcoder ----------+-> RTMP server |
| | +-> EXEC(5) -------------+-> External app |
| | +-> DVR -----------------+-> FLV file |
| | +-> BandwidthTest -------+-> Flash |
+----------------------+ | |
| MediaSource(2) | | |
| (RTSP,FILE, | | |
| HTTP,HLS, --pull-+->-- Ingester(3) -(rtmp)----+-> SRS |
| Device, | | |
| ......) | | |
+----------------------+ | |
| MediaSource(2) | | |
| (MPEGTSoverUDP | | |
| HTTP-FLV, --push-+->- StreamCaster(4) -(rtmp)-+-> SRS |
| GB28181,SRT, | | |
| ......) | | |
+----------------------+ | |
| FFMPEG --push(srt)--+->- SRTModule(5) ---(rtmp)-+-> SRS |
+----------------------+----------------------------+----------------+
Remark:
- Encoder: Encoder pushs RTMP stream to SRS.
- MediaSource: Supports any media source, ingesting by ffmpeg.
- Ingester: Forks a ffmpeg(or other tools) to ingest as rtmp to SRS, please read Ingest.
- Streamer: Remuxs other protocols to RTMP, please read Streamer.
- EXEC: Like NGINX-RTMP, EXEC forks external tools for events, please read ng-exec.
- SRTModule: A isolate module which run in hybrid model.
There are two types of people that have contributed to the SRS project:
- Maintainers: Contribute and maintain important features. SRS always remembers and thanks you by writing your names in stream metadata.
- Contributors: Submit patches, report bugs, add translations, help answer newbie questions, and generally make SRS much better.
Maintainers of SRS project:
- Winlin: All areas of streaming server and documents.
- Wenjie: The focus of his work is on the HDS module.
- Runner365: The focus of his work is on the SRT module.
- John: Focus on WebRTC module.
- B.P.Y(Bepartofyou): Focus on WebRTC module.
- Lixin: Focus on GB28181 module.
A big THANK YOU goes to:
- All friends of SRS for big supports.
- Genes amd Mabbott for creating st(state-threads).
- Michael Talyanksy for introducing ST to us.
Gitee: https://gitee.com/ossrs/srs, the GIT usage(CN, EN)
git clone https://gitee.com/ossrs/srs.git &&
cd srs && git remote set-url origin https://github.com/ossrs/srs.git && git pull
Remark: For users in China, recomment to use mirror from CSDN or OSChina, because they are much faster.
Gitlab: https://gitlab.com/winlinvip/srs-gitlab, the GIT usage(CN, EN)
git clone https://gitlab.com/winlinvip/srs-gitlab.git srs &&
cd srs && git remote set-url origin https://github.com/ossrs/srs.git && git pull
Github: https://github.com/ossrs/srs, the GIT usage(CN, EN)
git clone https://github.com/ossrs/srs.git
Branch | Cost | Size | CMD |
---|---|---|---|
3.0release | 2m19.931s | 262MB | git clone -b 3.0release https://gitee.com/ossrs/srs.git |
3.0release | 0m56.515s | 95MB | git clone -b 3.0release --depth=1 https://gitee.com/ossrs/srs.git |
develop | 2m22.430s | 234MB | git clone -b develop https://gitee.com/ossrs/srs.git |
develop | 0m46.421s | 42MB | git clone -b develop --depth=1 https://gitee.com/ossrs/srs.git |
min | 2m22.865s | 217MB | git clone -b min https://gitee.com/ossrs/srs.git |
min | 0m36.472s | 11MB | git clone -b min --depth=1 https://gitee.com/ossrs/srs.git |
Supported operating systems and hardware:
- All Linux, both 32 and 64 bits
- Other OS, such as Windows, please use docker.
Beijing, 2013.10
Winlin