mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
migarate from winlinvip to srs org
This commit is contained in:
parent
9a61ddf6ed
commit
921a56db9d
77 changed files with 423 additions and 423 deletions
510
README.md
510
README.md
|
@ -1,6 +1,6 @@
|
||||||
#Simple-RTMP-Server
|
#Simple-RTMP-Server
|
||||||
|
|
||||||
SRS/1.0,开发代号:[HuKaiqun](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Product#release10)
|
SRS/1.0,开发代号:[HuKaiqun](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Product#release10)
|
||||||
|
|
||||||
SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。
|
SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。
|
||||||
|
|
||||||
|
@ -10,34 +10,34 @@ SRS定位是运营级的互联网直播服务器集群,追求更好的概念
|
||||||
下载发布版(国内阿里云镜像):
|
下载发布版(国内阿里云镜像):
|
||||||
[Centos6-x86_64](http://www.ossrs.net/srs.release/releases/files/SRS-CentOS6-x86_64-1.0.30.zip)
|
[Centos6-x86_64](http://www.ossrs.net/srs.release/releases/files/SRS-CentOS6-x86_64-1.0.30.zip)
|
||||||
其他[more...](http://www.ossrs.net/srs.release/releases/)<br/>
|
其他[more...](http://www.ossrs.net/srs.release/releases/)<br/>
|
||||||
腾讯QQ和微信:[Contact](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Contact)<br/>
|
腾讯QQ和微信:[Contact](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Contact)<br/>
|
||||||
同类产品:[BLS](https://github.com/wenjiegit/Bull-Live-Server)/[BLE](https://github.com/wenjiegit/Bull-Live-Encoder), [NGINX-RTMP](https://github.com/arut/nginx-rtmp-module), [CRTMPD](http://www.rtmpd.com/), [RED5](http://www.red5.org/), [WOWZA](http://www.wowza.com/), [FMS/AMS](http://www.adobe.com/products/adobe-media-server-standard.html)
|
同类产品:[BLS](https://github.com/wenjiegit/Bull-Live-Server)/[BLE](https://github.com/wenjiegit/Bull-Live-Encoder), [NGINX-RTMP](https://github.com/arut/nginx-rtmp-module), [CRTMPD](http://www.rtmpd.com/), [RED5](http://www.red5.org/), [WOWZA](http://www.wowza.com/), [FMS/AMS](http://www.adobe.com/products/adobe-media-server-standard.html)
|
||||||
|
|
||||||
获得源码(github): [https://github.com/winlinvip/simple-rtmp-server](https://github.com/winlinvip/simple-rtmp-server) [GIT使用方法](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git)
|
获得源码(github): [https://github.com/simple-rtmp-server/srs](https://github.com/simple-rtmp-server/srs) [GIT使用方法](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/winlinvip/simple-rtmp-server.git
|
git clone https://github.com/simple-rtmp-server/srs.git
|
||||||
```
|
```
|
||||||
|
|
||||||
获得源码(国内CSDN镜像): [https://code.csdn.net/winlinvip/srs-csdn](https://code.csdn.net/winlinvip/srs-csdn) [GIT使用方法](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git)
|
获得源码(国内CSDN镜像): [https://code.csdn.net/winlinvip/srs-csdn](https://code.csdn.net/winlinvip/srs-csdn) [GIT使用方法](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://code.csdn.net/winlinvip/srs-csdn.git
|
git clone https://code.csdn.net/winlinvip/srs-csdn.git
|
||||||
```
|
```
|
||||||
|
|
||||||
获得源码(国内OSChina镜像): [http://git.oschina.net/winlinvip/srs.oschina](http://git.oschina.net/winlinvip/srs.oschina) [GIT使用方法](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git)
|
获得源码(国内OSChina镜像): [http://git.oschina.net/winlinvip/srs.oschina](http://git.oschina.net/winlinvip/srs.oschina) [GIT使用方法](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.oschina.net/winlinvip/srs.oschina.git
|
git clone https://git.oschina.net/winlinvip/srs.oschina.git
|
||||||
```
|
```
|
||||||
|
|
||||||
报告问题(BugReport): [https://github.com/winlinvip/simple-rtmp-server/issues/new](https://github.com/winlinvip/simple-rtmp-server/issues/new)<br/>
|
报告问题(BugReport): [https://github.com/simple-rtmp-server/srs/issues/new](https://github.com/simple-rtmp-server/srs/issues/new)<br/>
|
||||||
中文资料(Wiki): [https://github.com/winlinvip/simple-rtmp-server/wiki](https://github.com/winlinvip/simple-rtmp-server/wiki) <br/>
|
中文资料(Wiki): [https://github.com/simple-rtmp-server/srs/wiki](https://github.com/simple-rtmp-server/srs/wiki) <br/>
|
||||||
使用步骤(Usage): [https://github.com/winlinvip/simple-rtmp-server#usage](#usage) <br/>
|
使用步骤(Usage): [https://github.com/simple-rtmp-server/srs#usage](#usage) <br/>
|
||||||
公用机器(LiveShow): [https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LiveShow](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LiveShow) <br/>
|
公用机器(LiveShow): [https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LiveShow](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LiveShow) <br/>
|
||||||
捐款(Donation): [GitHub](http://winlinvip.github.io/srs.release/donation/index.html)
|
捐款(Donation): [GitHub](http://winlinvip.github.io/srs.release/donation/index.html)
|
||||||
或 [阿里云镜像](http://www.ossrs.net/srs.release/donation/index.html) ,查看
|
或 [阿里云镜像](http://www.ossrs.net/srs.release/donation/index.html) ,查看
|
||||||
[捐献墙(Donations)](https://github.com/winlinvip/simple-rtmp-server/blob/develop/DONATIONS.txt)<br/>
|
[捐献墙(Donations)](https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt)<br/>
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
|
@ -54,100 +54,100 @@ Because of lack of deveoper resource, SRS only provides features which is the mo
|
||||||
for internet. SRS is simple for and only for problem domain is simplified.
|
for internet. SRS is simple for and only for problem domain is simplified.
|
||||||
|
|
||||||
SRS is a simple, RTMP(
|
SRS is a simple, RTMP(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryRTMP),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryRTMP),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_DeliveryRTMP)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryRTMP)
|
||||||
),
|
),
|
||||||
HLS(
|
HLS(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_DeliveryHLS)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryHLS)
|
||||||
),
|
),
|
||||||
high-performance(2.7k+ clients)(
|
high-performance(2.7k+ clients)(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Performance),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Performance),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Performance)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Performance)
|
||||||
),
|
),
|
||||||
single processes, edge/origin live server,
|
single processes, edge/origin live server,
|
||||||
x86/x64/arm(
|
x86/x64/arm(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SrsLinuxArm)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SrsLinuxArm)
|
||||||
),
|
),
|
||||||
compile depends on st(
|
compile depends on st(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Architecture),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Architecture),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Architecture)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Architecture)
|
||||||
)(required),
|
)(required),
|
||||||
[ssl](http://www.openssl.org/) and [http-parser](https://github.com/joyent/http-parser),
|
[ssl](http://www.openssl.org/) and [http-parser](https://github.com/joyent/http-parser),
|
||||||
use [nginx](http://nginx.org/), [ffmpeg](http://ffmpeg.org/) and
|
use [nginx](http://nginx.org/), [ffmpeg](http://ffmpeg.org/) and
|
||||||
[cherrypy](http://www.cherrypy.org/) as external tools. that is, only need st to run srs for
|
[cherrypy](http://www.cherrypy.org/) as external tools. that is, only need st to run srs for
|
||||||
minimum run. see Build(
|
minimum run. see Build(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Build),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Build),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Build)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Build)
|
||||||
).
|
).
|
||||||
|
|
||||||
SRS supports vhost(
|
SRS supports vhost(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RtmpUrlVhost),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RtmpUrlVhost),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_RtmpUrlVhost)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_RtmpUrlVhost)
|
||||||
),
|
),
|
||||||
rtmp(encoder push(
|
rtmp(encoder push(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryRTMP),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryRTMP),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_DeliveryRTMP)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryRTMP)
|
||||||
),
|
),
|
||||||
client/edge(
|
client/edge(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Edge),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Edge),
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Edge),
|
||||||
) pull),
|
) pull),
|
||||||
ingester(srs pull)(
|
ingester(srs pull)(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Ingest),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Ingest),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Ingest)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Ingest)
|
||||||
),
|
),
|
||||||
HLS(
|
HLS(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_DeliveryHLS)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryHLS)
|
||||||
),
|
),
|
||||||
HLS audio only(
|
HLS audio only(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS#hlsaudioonly),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS#hlsaudioonly),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_DeliveryHLS#hlsaudioonly)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryHLS#hlsaudioonly)
|
||||||
),
|
),
|
||||||
transcoding(
|
transcoding(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_FFMPEG)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_FFMPEG)
|
||||||
),
|
),
|
||||||
forward(
|
forward(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_FFMPEG)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_FFMPEG)
|
||||||
),
|
),
|
||||||
http hooks(
|
http hooks(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPCallback),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPCallback),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_HTTPCallback)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_HTTPCallback)
|
||||||
),
|
),
|
||||||
http api(
|
http api(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPApi),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPApi),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_HTTPApi)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_HTTPApi)
|
||||||
),
|
),
|
||||||
http server(
|
http server(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPServer),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPServer),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_HTTPServer)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_HTTPServer)
|
||||||
),
|
),
|
||||||
dvr(
|
dvr(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DVR),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DVR),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_DVR)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DVR)
|
||||||
) and
|
) and
|
||||||
SRS-librtmp(
|
SRS-librtmp(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLibrtmp),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLibrtmp),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SrsLibrtmp)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SrsLibrtmp)
|
||||||
).
|
).
|
||||||
|
|
||||||
SRS-librtmp(
|
SRS-librtmp(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLibrtmp),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLibrtmp),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SrsLibrtmp)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SrsLibrtmp)
|
||||||
)
|
)
|
||||||
is a client library, only depends on c++ and socket, with
|
is a client library, only depends on c++ and socket, with
|
||||||
examples(
|
examples(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLibrtmp#srs-librtmp-examples),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLibrtmp#srs-librtmp-examples),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SrsLibrtmp#srs-librtmp-examples)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SrsLibrtmp#srs-librtmp-examples)
|
||||||
)(to play,
|
)(to play,
|
||||||
publish, ingest flv/rtmp, inject flv,
|
publish, ingest flv/rtmp, inject flv,
|
||||||
SRS-librtmp(
|
SRS-librtmp(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLibrtmp),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLibrtmp),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SrsLibrtmp)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SrsLibrtmp)
|
||||||
)
|
)
|
||||||
provides apis to support RTMP, FLV and AMF0.
|
provides apis to support RTMP, FLV and AMF0.
|
||||||
|
|
||||||
|
@ -155,9 +155,9 @@ WebSite: [http://ossrs.net](http://ossrs.net) <br/>
|
||||||
Release: [http://winlinvip.github.io/srs.release](http://winlinvip.github.io/srs.release) <br/>
|
Release: [http://winlinvip.github.io/srs.release](http://winlinvip.github.io/srs.release) <br/>
|
||||||
Blog: [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/>
|
Blog: [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin) <br/>
|
||||||
CSDN mirror: [https://code.csdn.net/winlinvip/srs-csdn](https://code.csdn.net/winlinvip/srs-csdn) <br/>
|
CSDN mirror: [https://code.csdn.net/winlinvip/srs-csdn](https://code.csdn.net/winlinvip/srs-csdn) <br/>
|
||||||
See also: [https://github.com/winlinvip/simple-rtmp-server](https://github.com/winlinvip/simple-rtmp-server) <br/>
|
See also: [https://github.com/simple-rtmp-server/srs](https://github.com/simple-rtmp-server/srs) <br/>
|
||||||
Github DEMO: [demo with your SRS](http://winlinvip.github.io/srs.release/trunk/research/players/srs_player.html?server=192.168.1.170&vhost=192.168.1.170) <br/>
|
Github DEMO: [demo with your SRS](http://winlinvip.github.io/srs.release/trunk/research/players/srs_player.html?server=192.168.1.170&vhost=192.168.1.170) <br/>
|
||||||
Wiki: [https://github.com/winlinvip/simple-rtmp-server/wiki](https://github.com/winlinvip/simple-rtmp-server/wiki) <br/>
|
Wiki: [https://github.com/simple-rtmp-server/srs/wiki](https://github.com/simple-rtmp-server/srs/wiki) <br/>
|
||||||
StreamServers:[BLS](https://github.com/wenjiegit/Bull-Live-Server)/[BLE](https://github.com/wenjiegit/Bull-Live-Encoder),
|
StreamServers:[BLS](https://github.com/wenjiegit/Bull-Live-Server)/[BLE](https://github.com/wenjiegit/Bull-Live-Encoder),
|
||||||
[NGINX-RTMP](https://github.com/arut/nginx-rtmp-module), [CRTMPD](http://www.rtmpd.com/),
|
[NGINX-RTMP](https://github.com/arut/nginx-rtmp-module), [CRTMPD](http://www.rtmpd.com/),
|
||||||
[RED5](http://www.red5.org/), [WOWZA](http://www.wowza.com/),
|
[RED5](http://www.red5.org/), [WOWZA](http://www.wowza.com/),
|
||||||
|
@ -174,10 +174,10 @@ PRIMARY response in NetConnection.connect and metadata.
|
||||||
newbie questions, and generally make SRS that much better.
|
newbie questions, and generally make SRS that much better.
|
||||||
|
|
||||||
About all PRIMARY, AUTHORS and CONTRIBUTORS, read
|
About all PRIMARY, AUTHORS and CONTRIBUTORS, read
|
||||||
[AUTHORS.txt](https://github.com/winlinvip/simple-rtmp-server/blob/master/AUTHORS.txt).
|
[AUTHORS.txt](https://github.com/simple-rtmp-server/srs/blob/master/AUTHORS.txt).
|
||||||
|
|
||||||
A big THANK YOU goes to:
|
A big THANK YOU goes to:
|
||||||
* [chnvideo](chnvideo.com) co-founders([wiseyoung](mailto:wiseyoung@chnvideo.com), [trueice](mailto:trueice@chnvideo.com), [leijian](mailto:leijian@chnvideo.com)) for [big supports](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Product#bigthanks).
|
* [chnvideo](chnvideo.com) co-founders([wiseyoung](mailto:wiseyoung@chnvideo.com), [trueice](mailto:trueice@chnvideo.com), [leijian](mailto:leijian@chnvideo.com)) for [big supports](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Product#bigthanks).
|
||||||
* Genes amd Mabbott for creating [st](https://github.com/winlinvip/state-threads)([state-threads](http://sourceforge.net/projects/state-threads/)).
|
* Genes amd Mabbott for creating [st](https://github.com/winlinvip/state-threads)([state-threads](http://sourceforge.net/projects/state-threads/)).
|
||||||
* Michael Talyanksy for introducing us to use st.
|
* Michael Talyanksy for introducing us to use st.
|
||||||
* Roman Arutyunyan for creating [nginx-rtmp](https://github.com/arut/nginx-rtmp-module) for SRS to refer to.
|
* Roman Arutyunyan for creating [nginx-rtmp](https://github.com/arut/nginx-rtmp-module) for SRS to refer to.
|
||||||
|
@ -188,20 +188,20 @@ A big THANK YOU goes to:
|
||||||
|
|
||||||
## Mirrors
|
## Mirrors
|
||||||
|
|
||||||
Github: [https://github.com/winlinvip/simple-rtmp-server](https://github.com/winlinvip/simple-rtmp-server),
|
Github: [https://github.com/simple-rtmp-server/srs](https://github.com/simple-rtmp-server/srs),
|
||||||
the GIT usage(
|
the GIT usage(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Git)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git)
|
||||||
)
|
)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/winlinvip/simple-rtmp-server.git
|
git clone https://github.com/simple-rtmp-server/srs.git
|
||||||
```
|
```
|
||||||
|
|
||||||
CSDN: [https://code.csdn.net/winlinvip/srs-csdn](https://code.csdn.net/winlinvip/srs-csdn) ,
|
CSDN: [https://code.csdn.net/winlinvip/srs-csdn](https://code.csdn.net/winlinvip/srs-csdn) ,
|
||||||
the GIT usage(
|
the GIT usage(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Git)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git)
|
||||||
)
|
)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -210,8 +210,8 @@ git clone https://code.csdn.net/winlinvip/srs-csdn.git
|
||||||
|
|
||||||
OSChina: [http://git.oschina.net/winlinvip/srs.oschina](http://git.oschina.net/winlinvip/srs.oschina) ,
|
OSChina: [http://git.oschina.net/winlinvip/srs.oschina](http://git.oschina.net/winlinvip/srs.oschina) ,
|
||||||
the GIT usage(
|
the GIT usage(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Git)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git)
|
||||||
)
|
)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -220,8 +220,8 @@ git clone https://git.oschina.net/winlinvip/srs.oschina.git
|
||||||
|
|
||||||
Gitlab: [https://gitlab.com/winlinvip/srs-gitlab](https://gitlab.com/winlinvip/srs-gitlab) ,
|
Gitlab: [https://gitlab.com/winlinvip/srs-gitlab](https://gitlab.com/winlinvip/srs-gitlab) ,
|
||||||
the GIT usage(
|
the GIT usage(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Git)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git)
|
||||||
)
|
)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -233,14 +233,14 @@ git clone https://gitlab.com/winlinvip/srs-gitlab.git
|
||||||
<strong>Step 1:</strong> get SRS
|
<strong>Step 1:</strong> get SRS
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
git clone https://github.com/winlinvip/simple-rtmp-server &&
|
git clone https://github.com/simple-rtmp-server/srs &&
|
||||||
cd simple-rtmp-server/trunk
|
cd simple-rtmp-server/trunk
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<strong>Step 2:</strong> build SRS,
|
<strong>Step 2:</strong> build SRS,
|
||||||
<strong>Requires Centos6.x/Ubuntu12 32/64bits, others see Build(
|
<strong>Requires Centos6.x/Ubuntu12 32/64bits, others see Build(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Build),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Build),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Build)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Build)
|
||||||
).</strong>
|
).</strong>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
|
@ -255,52 +255,52 @@ cd simple-rtmp-server/trunk
|
||||||
|
|
||||||
<strong>See also:</strong>
|
<strong>See also:</strong>
|
||||||
* Usage: How to delivery RTMP?(
|
* Usage: How to delivery RTMP?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleRTMP),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleRTMP),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleRTMP)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleRTMP)
|
||||||
)
|
)
|
||||||
* Usage: How to delivery HLS?(
|
* Usage: How to delivery HLS?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleHLS),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleHLS),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleHLS)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleHLS)
|
||||||
)
|
)
|
||||||
* Usage: How to delivery HLS for other codec?(
|
* Usage: How to delivery HLS for other codec?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleTranscode2HLS),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleTranscode2HLS),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleTranscode2HLS)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleTranscode2HLS)
|
||||||
)
|
)
|
||||||
* Usage: How to transode RTMP stream by SRS?(
|
* Usage: How to transode RTMP stream by SRS?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleFFMPEG),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleFFMPEG),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleFFMPEG)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleFFMPEG)
|
||||||
)
|
)
|
||||||
* Usage: How to forward stream to other server?(
|
* Usage: How to forward stream to other server?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleForward),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleForward),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleForward)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleForward)
|
||||||
)
|
)
|
||||||
* Usage: How to deploy low lantency application?(
|
* Usage: How to deploy low lantency application?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleRealtime),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleRealtime),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleRealtime)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleRealtime)
|
||||||
)
|
)
|
||||||
* Usage: How to deploy SRS on ARM?(
|
* Usage: How to deploy SRS on ARM?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleARM),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleARM),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleARM)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleARM)
|
||||||
)
|
)
|
||||||
* Usage: How to ingest file/stream/device to SRS?(
|
* Usage: How to ingest file/stream/device to SRS?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleIngest),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleIngest),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleIngest)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleIngest)
|
||||||
)
|
)
|
||||||
* Usage: How to use SRS-HTTP-server to delivery HTTP/HLS stream?(
|
* Usage: How to use SRS-HTTP-server to delivery HTTP/HLS stream?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleHTTP),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleHTTP),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleHTTP)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleHTTP)
|
||||||
)
|
)
|
||||||
* Usage: How to show the demo of SRS?(
|
* Usage: How to show the demo of SRS?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_SampleDemo)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleDemo)
|
||||||
)
|
)
|
||||||
* Usage: Solution using SRS?(
|
* Usage: Solution using SRS?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Sample),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Sample),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Sample)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Sample)
|
||||||
)
|
)
|
||||||
* Usage: Why SRS?(
|
* Usage: Why SRS?(
|
||||||
[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Product),
|
[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Product),
|
||||||
[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Product)
|
[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Product)
|
||||||
)
|
)
|
||||||
|
|
||||||
## Wiki
|
## Wiki
|
||||||
|
@ -308,8 +308,8 @@ cd simple-rtmp-server/trunk
|
||||||
SRS 1.0 wiki
|
SRS 1.0 wiki
|
||||||
|
|
||||||
Please select your language:
|
Please select your language:
|
||||||
* [SRS 1.0 English](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Home)
|
* [SRS 1.0 English](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Home)
|
||||||
* [SRS 1.0 Chinese](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Home)
|
* [SRS 1.0 Chinese](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Home)
|
||||||
|
|
||||||
## Donation
|
## Donation
|
||||||
|
|
||||||
|
@ -318,8 +318,8 @@ Donation:<br/>
|
||||||
[http://www.ossrs.net/srs.release/donation/index.html](http://www.ossrs.net/srs.release/donation/index.html)
|
[http://www.ossrs.net/srs.release/donation/index.html](http://www.ossrs.net/srs.release/donation/index.html)
|
||||||
|
|
||||||
Donations:<br/>
|
Donations:<br/>
|
||||||
[https://github.com/winlinvip/simple-rtmp-server/blob/develop/DONATIONS.txt]
|
[https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt]
|
||||||
(https://github.com/winlinvip/simple-rtmp-server/blob/develop/DONATIONS.txt)
|
(https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt)
|
||||||
|
|
||||||
## System Requirements
|
## System Requirements
|
||||||
Supported operating systems and hardware:
|
Supported operating systems and hardware:
|
||||||
|
@ -328,174 +328,174 @@ Supported operating systems and hardware:
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
1. 简洁稳定:Simple, also stable enough.
|
1. 简洁稳定:Simple, also stable enough.
|
||||||
1. 高性能:[High-performance](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Performance): single-thread, async socket, event/st-thread driven.
|
1. 高性能:[High-performance](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Performance): single-thread, async socket, event/st-thread driven.
|
||||||
1. 高并发:[High-concurrency](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Performance), 1800 connections(500kbps), 900Mbps, CPU 90.2%, 41MB
|
1. 高并发:[High-concurrency](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Performance), 1800 connections(500kbps), 900Mbps, CPU 90.2%, 41MB
|
||||||
1. RTMP源站:Support [RTMP Origin Server](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryRTMP).
|
1. RTMP源站:Support [RTMP Origin Server](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryRTMP).
|
||||||
1. CDN边缘(上下行加速):Support [RTMP Edge Server](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Edge) for CDN, push/pull stream from any RTMP server
|
1. CDN边缘(上下行加速):Support [RTMP Edge Server](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge) for CDN, push/pull stream from any RTMP server
|
||||||
1. 单进程(无多进程):Support single process; no multiple processes.
|
1. 单进程(无多进程):Support single process; no multiple processes.
|
||||||
1. 支持Vhost:Support [Vhost](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RtmpUrlVhost), support \_\_defaultVhost\_\_.
|
1. 支持Vhost:Support [Vhost](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RtmpUrlVhost), support \_\_defaultVhost\_\_.
|
||||||
1. 直播(无点播):Support [RTMP](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryRTMP) live streaming; no vod streaming.
|
1. 直播(无点播):Support [RTMP](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryRTMP) live streaming; no vod streaming.
|
||||||
1. 苹果HLS:Support Apple [HLS(m3u8)](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS) live streaming.
|
1. 苹果HLS:Support Apple [HLS(m3u8)](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS) live streaming.
|
||||||
1. 支持纯音频HLS:Support [HLS audio-only](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS#hlsaudioonly) live streaming.
|
1. 支持纯音频HLS:Support [HLS audio-only](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS#hlsaudioonly) live streaming.
|
||||||
1. 支持Reload:Support [Reload](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Reload) config to enable changes.
|
1. 支持Reload:Support [Reload](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Reload) config to enable changes.
|
||||||
1. 支持GopCache:Support [cache last gop](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LowLatency#gop-cache) for flash player to fast startup.
|
1. 支持GopCache:Support [cache last gop](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LowLatency#gop-cache) for flash player to fast startup.
|
||||||
1. 侦听多端口:Support listen at multiple ports.
|
1. 侦听多端口:Support listen at multiple ports.
|
||||||
1. 长时间推流:Support long time(>4.6hours) publish/play.
|
1. 长时间推流:Support long time(>4.6hours) publish/play.
|
||||||
1. 转发流:Support [Forward](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Forward) in master-slave mode.
|
1. 转发流:Support [Forward](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Forward) in master-slave mode.
|
||||||
1. 流转码:Support live stream [Transcoding](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG) by ffmpeg.
|
1. 流转码:Support live stream [Transcoding](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG) by ffmpeg.
|
||||||
1. 支持FFMPEG滤镜:Support [ffmpeg](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG) filters(logo/overlay/crop), x264 params, copy/vn/an.
|
1. 支持FFMPEG滤镜:Support [ffmpeg](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG) filters(logo/overlay/crop), x264 params, copy/vn/an.
|
||||||
1. 只转码音频:Support audio [transcode](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG) only, speex/mp3 to aac
|
1. 只转码音频:Support audio [transcode](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG) only, speex/mp3 to aac
|
||||||
1. 支持HTTP回调:Support [http callback api hooks](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPCallback)(for authentication and injection).
|
1. 支持HTTP回调:Support [http callback api hooks](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPCallback)(for authentication and injection).
|
||||||
1. 带宽测速:Support [bandwidth test](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_BandwidthTestTool) api and flash client.
|
1. 带宽测速:Support [bandwidth test](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_BandwidthTestTool) api and flash client.
|
||||||
1. 演示页面:Player, publisher(encoder), and [demo pages(jquery+bootstrap)](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo).
|
1. 演示页面:Player, publisher(encoder), and [demo pages(jquery+bootstrap)](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo).
|
||||||
1. 视频会议演示:[Demo](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo) video meeting or chat(SRS+cherrypy+jquery+bootstrap).
|
1. 视频会议演示:[Demo](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo) video meeting or chat(SRS+cherrypy+jquery+bootstrap).
|
||||||
1. 中文Wiki:Full documents in [wiki](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Home), in Chineses.
|
1. 中文Wiki:Full documents in [wiki](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Home), in Chineses.
|
||||||
1. 客户端库:Support RTMP(play-publish) library: [srs-librtmp](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLibrtmp)
|
1. 客户端库:Support RTMP(play-publish) library: [srs-librtmp](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLibrtmp)
|
||||||
1. 支持ARM平台:Support ARM([debian armhf, v7cpu](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm)) with rtmp/ssl/hls/librtmp.
|
1. 支持ARM平台:Support ARM([debian armhf, v7cpu](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm)) with rtmp/ssl/hls/librtmp.
|
||||||
1. 支持Init.d脚本:Support [init.d](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LinuxService) and packge script, log to file.
|
1. 支持Init.d脚本:Support [init.d](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LinuxService) and packge script, log to file.
|
||||||
1. 支持ATC:Support [RTMP ATC](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RTMP-ATC) for HLS/HDS to support backup(failover)
|
1. 支持ATC:Support [RTMP ATC](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RTMP-ATC) for HLS/HDS to support backup(failover)
|
||||||
1. 支持HTTP-RESTful-API:Support [HTTP RESTful management api](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPApi).
|
1. 支持HTTP-RESTful-API:Support [HTTP RESTful management api](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPApi).
|
||||||
1. 采集流:Support [Ingest](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Ingest) FILE/HTTP/RTMP/RTSP(RTP, SDP) to RTMP using external tools(e.g ffmepg).
|
1. 采集流:Support [Ingest](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Ingest) FILE/HTTP/RTMP/RTSP(RTP, SDP) to RTMP using external tools(e.g ffmepg).
|
||||||
1. 支持录制:Support [DVR](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DVR), record live to flv file for vod.
|
1. 支持录制:Support [DVR](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DVR), record live to flv file for vod.
|
||||||
1. 可追溯日志:Support [tracable log, session based log](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLog).
|
1. 可追溯日志:Support [tracable log, session based log](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLog).
|
||||||
1. 支持FMS-Token穿越:Support DRM [token traverse](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DRM#tokentraverse) for fms origin authenticate.
|
1. 支持FMS-Token穿越:Support DRM [token traverse](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DRM#tokentraverse) for fms origin authenticate.
|
||||||
1. 全面的Utest:Support system full utest on gtest.
|
1. 全面的Utest:Support system full utest on gtest.
|
||||||
1. Stable [1.0release branch](https://github.com/winlinvip/simple-rtmp-server/tree/1.0release) and
|
1. Stable [1.0release branch](https://github.com/simple-rtmp-server/srs/tree/1.0release) and
|
||||||
[2.0dev branch](https://github.com/winlinvip/simple-rtmp-server/tree/master).
|
[2.0dev branch](https://github.com/simple-rtmp-server/srs/tree/master).
|
||||||
|
|
||||||
## Releases
|
## Releases
|
||||||
* 2015-03-19, [Release v1.0r3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r3), bug fixed, 1.0.30, 59511 lines.<br/>
|
* 2015-03-19, [Release v1.0r3](https://github.com/simple-rtmp-server/srs/releases/tag/1.0r3), bug fixed, 1.0.30, 59511 lines.<br/>
|
||||||
* 2015-02-12, [Release v1.0r2](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r2), bug fixed, 1.0.27, 59507 lines.<br/>
|
* 2015-02-12, [Release v1.0r2](https://github.com/simple-rtmp-server/srs/releases/tag/1.0r2), bug fixed, 1.0.27, 59507 lines.<br/>
|
||||||
* 2015-01-15, [Release v1.0r1](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r1), bug fixed, 1.0.21, 59472 lines.<br/>
|
* 2015-01-15, [Release v1.0r1](https://github.com/simple-rtmp-server/srs/releases/tag/1.0r1), bug fixed, 1.0.21, 59472 lines.<br/>
|
||||||
* 2014-12-05, [Release v1.0](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0), all bug fixed, 1.0.10, 59391 lines.<br/>
|
* 2014-12-05, [Release v1.0](https://github.com/simple-rtmp-server/srs/releases/tag/1.0), all bug fixed, 1.0.10, 59391 lines.<br/>
|
||||||
* 2014-10-09, [Release v1.0-beta](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.beta), all bug fixed, 1.0.0, 59316 lines.<br/>
|
* 2014-10-09, [Release v1.0-beta](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.beta), all bug fixed, 1.0.0, 59316 lines.<br/>
|
||||||
* 2014-08-03, [Release v1.0-mainline7](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline7), config utest, all bug fixed. 57432 lines.<br/>
|
* 2014-08-03, [Release v1.0-mainline7](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline7), config utest, all bug fixed. 57432 lines.<br/>
|
||||||
* 2014-07-13, [Release v1.0-mainline6](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline6), core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.<br/>
|
* 2014-07-13, [Release v1.0-mainline6](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline6), core/kernel/rtmp utest, refine bandwidth(as/js/srslibrtmp library). 50029 lines.<br/>
|
||||||
* 2014-06-27, [Release v1.0-mainline5](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline5), refine perf 3k+ clients, edge token traverse, [srs monitor](http://ossrs.net:1977), 30days online. 41573 lines.<br/>
|
* 2014-06-27, [Release v1.0-mainline5](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline5), refine perf 3k+ clients, edge token traverse, [srs monitor](http://ossrs.net:1977), 30days online. 41573 lines.<br/>
|
||||||
* 2014-05-28, [Release v1.0-mainline4](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline4), support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.<br/>
|
* 2014-05-28, [Release v1.0-mainline4](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline4), support heartbeat, tracable log, fix mem leak and bugs. 39200 lines.<br/>
|
||||||
* 2014-05-18, [Release v1.0-mainline3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline3), support mips, fms origin, json(http-api). 37594 lines.<br/>
|
* 2014-05-18, [Release v1.0-mainline3](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline3), support mips, fms origin, json(http-api). 37594 lines.<br/>
|
||||||
* 2014-04-28, [Release v1.0-mainline2](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline2), support [dvr](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DVR), android, [edge](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Edge). 35255 lines.<br/>
|
* 2014-04-28, [Release v1.0-mainline2](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline2), support [dvr](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DVR), android, [edge](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge). 35255 lines.<br/>
|
||||||
* 2014-04-07, [Release v1.0-mainline](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline), support [arm](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm), [init.d](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LinuxService), http [server](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPServer)/[api](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPApi), [ingest](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleIngest). 30000 lines.<br/>
|
* 2014-04-07, [Release v1.0-mainline](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline), support [arm](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm), [init.d](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LinuxService), http [server](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPServer)/[api](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPApi), [ingest](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleIngest). 30000 lines.<br/>
|
||||||
* 2013-12-25, [Release v0.9](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9), support bandwidth test, player/encoder/chat [demos](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo). 20926 lines.<br/>
|
* 2013-12-25, [Release v0.9](https://github.com/simple-rtmp-server/srs/releases/tag/0.9), support bandwidth test, player/encoder/chat [demos](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo). 20926 lines.<br/>
|
||||||
* 2013-12-08, [Release v0.8](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.8), support [http hooks callback](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPCallback), update [st_load](https://github.com/winlinvip/st-load). 19186 lines.<br/>
|
* 2013-12-08, [Release v0.8](https://github.com/simple-rtmp-server/srs/releases/tag/0.8), support [http hooks callback](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPCallback), update [st_load](https://github.com/winlinvip/st-load). 19186 lines.<br/>
|
||||||
* 2013-12-03, [Release v0.7](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.7), support [live stream transcoding](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG). 17605 lines.<br/>
|
* 2013-12-03, [Release v0.7](https://github.com/simple-rtmp-server/srs/releases/tag/0.7), support [live stream transcoding](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG). 17605 lines.<br/>
|
||||||
* 2013-11-29, [Release v0.6](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.6), support [forward](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Forward) stream to origin/edge. 16094 lines.<br/>
|
* 2013-11-29, [Release v0.6](https://github.com/simple-rtmp-server/srs/releases/tag/0.6), support [forward](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Forward) stream to origin/edge. 16094 lines.<br/>
|
||||||
* 2013-11-26, [Release v0.5](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.5), support [HLS(m3u8)](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS), fragment and window. 14449 lines.<br/>
|
* 2013-11-26, [Release v0.5](https://github.com/simple-rtmp-server/srs/releases/tag/0.5), support [HLS(m3u8)](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS), fragment and window. 14449 lines.<br/>
|
||||||
* 2013-11-10, [Release v0.4](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.4), support [reload](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Reload) config, pause, longtime publish/play. 12500 lines.<br/>
|
* 2013-11-10, [Release v0.4](https://github.com/simple-rtmp-server/srs/releases/tag/0.4), support [reload](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Reload) config, pause, longtime publish/play. 12500 lines.<br/>
|
||||||
* 2013-11-04, [Release v0.3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.3), support [vhost](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RtmpUrlVhost), refer, gop cache, listen multiple ports. 11773 lines.<br/>
|
* 2013-11-04, [Release v0.3](https://github.com/simple-rtmp-server/srs/releases/tag/0.3), support [vhost](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RtmpUrlVhost), refer, gop cache, listen multiple ports. 11773 lines.<br/>
|
||||||
* 2013-10-25, [Release v0.2](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.2), support [rtmp](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RTMPHandshake) flash publish, h264, time jitter correct. 10125 lines.<br/>
|
* 2013-10-25, [Release v0.2](https://github.com/simple-rtmp-server/srs/releases/tag/0.2), support [rtmp](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RTMPHandshake) flash publish, h264, time jitter correct. 10125 lines.<br/>
|
||||||
* 2013-10-23, [Release v0.1](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.1), support [rtmp FMLE/FFMPEG publish](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryRTMP), vp6. 8287 lines.<br/>
|
* 2013-10-23, [Release v0.1](https://github.com/simple-rtmp-server/srs/releases/tag/0.1), support [rtmp FMLE/FFMPEG publish](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryRTMP), vp6. 8287 lines.<br/>
|
||||||
* 2013-10-17, Created.<br/>
|
* 2013-10-17, Created.<br/>
|
||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
* v1.0, 2015-03-26, fix hls aac adts bug, in aac mux. 1.0.31.
|
* v1.0, 2015-03-26, fix hls aac adts bug, in aac mux. 1.0.31.
|
||||||
* <strong>v1.0, 2015-03-19, [1.0r3 release(1.0.30)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r3) released. 59511 lines.</strong>
|
* <strong>v1.0, 2015-03-19, [1.0r3 release(1.0.30)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0r3) released. 59511 lines.</strong>
|
||||||
* v1.0, 2015-03-17, remove the osx for 1.0.30.
|
* v1.0, 2015-03-17, remove the osx for 1.0.30.
|
||||||
* v1.0, 2015-02-17, the join maybe failed, should use a variable to ensure thread terminated. 1.0.28.
|
* v1.0, 2015-02-17, the join maybe failed, should use a variable to ensure thread terminated. 1.0.28.
|
||||||
* <strong>v1.0, 2015-02-12, [1.0r2 release(1.0.27)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r2) released. 59507 lines.</strong>
|
* <strong>v1.0, 2015-02-12, [1.0r2 release(1.0.27)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0r2) released. 59507 lines.</strong>
|
||||||
* v1.0, 2015-02-11, dev code HuKaiqun for 1.0.27.
|
* v1.0, 2015-02-11, dev code HuKaiqun for 1.0.27.
|
||||||
* v1.0, 2015-02-10, for [#310](https://github.com/winlinvip/simple-rtmp-server/issues/310), the aac profile must be object plus one. 1.0.26
|
* v1.0, 2015-02-10, for [#310](https://github.com/simple-rtmp-server/srs/issues/310), the aac profile must be object plus one. 1.0.26
|
||||||
* v1.0, 2015-01-25, hotfix [#268](https://github.com/winlinvip/simple-rtmp-server/issues/268), refine the pcr start at 0, dts/pts plus delay. 1.0.25
|
* v1.0, 2015-01-25, hotfix [#268](https://github.com/simple-rtmp-server/srs/issues/268), refine the pcr start at 0, dts/pts plus delay. 1.0.25
|
||||||
* v1.0, 2015-01-25, hotfix [#151](https://github.com/winlinvip/simple-rtmp-server/issues/151), refine pcr=dts-800ms and use dts/pts directly. 1.0.24
|
* v1.0, 2015-01-25, hotfix [#151](https://github.com/simple-rtmp-server/srs/issues/151), refine pcr=dts-800ms and use dts/pts directly. 1.0.24
|
||||||
* v1.0, 2015-01-23, hotfix [#151](https://github.com/winlinvip/simple-rtmp-server/issues/151), use absolutely overflow to make jwplayer happy. 1.0.23
|
* v1.0, 2015-01-23, hotfix [#151](https://github.com/simple-rtmp-server/srs/issues/151), use absolutely overflow to make jwplayer happy. 1.0.23
|
||||||
* v1.0, 2015-01-17, hotfix [#290](https://github.com/winlinvip/simple-rtmp-server/issues/290), use iformat only for rtmp input. 1.0.22
|
* v1.0, 2015-01-17, hotfix [#290](https://github.com/simple-rtmp-server/srs/issues/290), use iformat only for rtmp input. 1.0.22
|
||||||
* <strong>v1.0, 2015-01-15, [1.0r1 release(1.0.21)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r1) released. 59472 lines.</strong>
|
* <strong>v1.0, 2015-01-15, [1.0r1 release(1.0.21)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0r1) released. 59472 lines.</strong>
|
||||||
* v1.0, 2015-01-08, hotfix [#281](https://github.com/winlinvip/simple-rtmp-server/issues/281), fix hls bug ignore type-9 send aud. 1.0.20
|
* v1.0, 2015-01-08, hotfix [#281](https://github.com/simple-rtmp-server/srs/issues/281), fix hls bug ignore type-9 send aud. 1.0.20
|
||||||
* v1.0, 2015-01-03, hotfix to remove the pageUrl for http callback. 1.0.19
|
* v1.0, 2015-01-03, hotfix to remove the pageUrl for http callback. 1.0.19
|
||||||
* v1.0, 2015-01-02, hotfix [#207](https://github.com/winlinvip/simple-rtmp-server/issues/207), trim the last 0 of log. 1.0.18
|
* v1.0, 2015-01-02, hotfix [#207](https://github.com/simple-rtmp-server/srs/issues/207), trim the last 0 of log. 1.0.18
|
||||||
* v1.0, 2015-01-02, hotfix [#216](https://github.com/winlinvip/simple-rtmp-server/issues/216), http-callback post in application/json content-type. 1.0.17
|
* v1.0, 2015-01-02, hotfix [#216](https://github.com/simple-rtmp-server/srs/issues/216), http-callback post in application/json content-type. 1.0.17
|
||||||
* v1.0, 2015-01-01, hotfix [#270](https://github.com/winlinvip/simple-rtmp-server/issues/270), memory leak for http client post. 1.0.16
|
* v1.0, 2015-01-01, hotfix [#270](https://github.com/simple-rtmp-server/srs/issues/270), memory leak for http client post. 1.0.16
|
||||||
* v1.0, 2014-12-29, hotfix [#267](https://github.com/winlinvip/simple-rtmp-server/issues/267), the forward dest ep should use server. 1.0.15
|
* v1.0, 2014-12-29, hotfix [#267](https://github.com/simple-rtmp-server/srs/issues/267), the forward dest ep should use server. 1.0.15
|
||||||
* v1.0, 2014-12-29, hotfix [#268](https://github.com/winlinvip/simple-rtmp-server/issues/268), the hls pcr is negative when startup. 1.0.14
|
* v1.0, 2014-12-29, hotfix [#268](https://github.com/simple-rtmp-server/srs/issues/268), the hls pcr is negative when startup. 1.0.14
|
||||||
* v1.0, 2014-12-22, hotfix [#264](https://github.com/winlinvip/simple-rtmp-server/issues/264), ignore NALU when sequence header to make HLS happy. 1.0.12
|
* v1.0, 2014-12-22, hotfix [#264](https://github.com/simple-rtmp-server/srs/issues/264), ignore NALU when sequence header to make HLS happy. 1.0.12
|
||||||
* v1.0, 2014-12-20, hotfix [#264](https://github.com/winlinvip/simple-rtmp-server/issues/264), support disconnect publish connect when hls error. 1.0.11
|
* v1.0, 2014-12-20, hotfix [#264](https://github.com/simple-rtmp-server/srs/issues/264), support disconnect publish connect when hls error. 1.0.11
|
||||||
* <strong>v1.0, 2014-12-05, [1.0 release(1.0.10)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0) released. 59391 lines.</strong>
|
* <strong>v1.0, 2014-12-05, [1.0 release(1.0.10)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0) released. 59391 lines.</strong>
|
||||||
* v1.0, 2014-12-02, hotfix [#239](https://github.com/winlinvip/simple-rtmp-server/pull/239), traverse the token before response connect. 1.0.10.
|
* v1.0, 2014-12-02, hotfix [#239](https://github.com/simple-rtmp-server/srs/pull/239), traverse the token before response connect. 1.0.10.
|
||||||
* v1.0, 2014-11-25, update PRIMARY, AUTHORS, CONTRIBUTORS of SRS. 1.0.8.
|
* v1.0, 2014-11-25, update PRIMARY, AUTHORS, CONTRIBUTORS of SRS. 1.0.8.
|
||||||
* v1.0, 2014-11-18, all wiki translated to English. 1.0.7.
|
* v1.0, 2014-11-18, all wiki translated to English. 1.0.7.
|
||||||
* v1.0, 2014-11-13, hotfix [#200](https://github.com/winlinvip/simple-rtmp-server/issues/200), deadloop when read/write 0 and ETIME. 1.0.6.
|
* v1.0, 2014-11-13, hotfix [#200](https://github.com/simple-rtmp-server/srs/issues/200), deadloop when read/write 0 and ETIME. 1.0.6.
|
||||||
* v1.0, 2014-11-06, use number for macro VERSION_MAJOR, VERSION_MINOR and VERSION_REVISION. 1.0.5.
|
* v1.0, 2014-11-06, use number for macro VERSION_MAJOR, VERSION_MINOR and VERSION_REVISION. 1.0.5.
|
||||||
* v1.0, 2014-10-24, hotfix [#186](https://github.com/winlinvip/simple-rtmp-server/issues/186), drop connect args when not object. 1.0.3.
|
* v1.0, 2014-10-24, hotfix [#186](https://github.com/simple-rtmp-server/srs/issues/186), drop connect args when not object. 1.0.3.
|
||||||
* v1.0, 2014-10-24, rename wiki/xxx to wiki/v1_CN_xxx. 1.0.2.
|
* v1.0, 2014-10-24, rename wiki/xxx to wiki/v1_CN_xxx. 1.0.2.
|
||||||
* v1.0, 2014-10-19, hotfix [#183](https://github.com/winlinvip/simple-rtmp-server/issues/183), donot support AnnexB when decoding RTMP body for HLS. 1.0.1.
|
* v1.0, 2014-10-19, hotfix [#183](https://github.com/simple-rtmp-server/srs/issues/183), donot support AnnexB when decoding RTMP body for HLS. 1.0.1.
|
||||||
* <strong>v1.0, 2014-10-09, [1.0 beta(1.0.0)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.beta) released. 59316 lines.</strong>
|
* <strong>v1.0, 2014-10-09, [1.0 beta(1.0.0)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.beta) released. 59316 lines.</strong>
|
||||||
* v1.0, 2014-10-08, fix [#151](https://github.com/winlinvip/simple-rtmp-server/issues/151), always reap ts whatever audio or video packet. 0.9.223.
|
* v1.0, 2014-10-08, fix [#151](https://github.com/simple-rtmp-server/srs/issues/151), always reap ts whatever audio or video packet. 0.9.223.
|
||||||
* v1.0, 2014-10-08, fix [#162](https://github.com/winlinvip/simple-rtmp-server/issues/162), failed if no epoll. 0.9.222.
|
* v1.0, 2014-10-08, fix [#162](https://github.com/simple-rtmp-server/srs/issues/162), failed if no epoll. 0.9.222.
|
||||||
* v1.0, 2014-09-30, fix [#180](https://github.com/winlinvip/simple-rtmp-server/issues/180), crash for multiple edge publishing the same stream. 0.9.220.
|
* v1.0, 2014-09-30, fix [#180](https://github.com/simple-rtmp-server/srs/issues/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-26, fix hls bug, refine config and log, according to clion of jetbrains. 0.9.216.
|
||||||
* v1.0, 2014-09-25, fix [#177](https://github.com/winlinvip/simple-rtmp-server/issues/177), dvr segment add config dvr_wait_keyframe. 0.9.213.
|
* v1.0, 2014-09-25, fix [#177](https://github.com/simple-rtmp-server/srs/issues/177), dvr segment add config dvr_wait_keyframe. 0.9.213.
|
||||||
* v1.0, 2014-08-28, fix [#167](https://github.com/winlinvip/simple-rtmp-server/issues/167), add openssl includes to utest. 0.9.209.
|
* v1.0, 2014-08-28, fix [#167](https://github.com/simple-rtmp-server/srs/issues/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-27, max connections is 32756, for st use mmap default. 0.9.209
|
||||||
* v1.0, 2014-08-24, fix [#150](https://github.com/winlinvip/simple-rtmp-server/issues/150), forward should forward the sequence header when retry. 0.9.208.
|
* v1.0, 2014-08-24, fix [#150](https://github.com/simple-rtmp-server/srs/issues/150), forward should forward the sequence header when retry. 0.9.208.
|
||||||
* v1.0, 2014-08-22, for [#165](https://github.com/winlinvip/simple-rtmp-server/issues/165), refine dh wrapper, ensure public key is 128bytes. 0.9.206.
|
* v1.0, 2014-08-22, for [#165](https://github.com/simple-rtmp-server/srs/issues/165), refine dh wrapper, ensure public key is 128bytes. 0.9.206.
|
||||||
* v1.0, 2014-08-19, for [#160](https://github.com/winlinvip/simple-rtmp-server/issues/160), support forward/edge to flussonic, disable debug_srs_upnode to make flussonic happy. 0.9.201.
|
* v1.0, 2014-08-19, for [#160](https://github.com/simple-rtmp-server/srs/issues/160), support forward/edge to flussonic, disable debug_srs_upnode to make flussonic happy. 0.9.201.
|
||||||
* v1.0, 2014-08-17, for [#155](https://github.com/winlinvip/simple-rtmp-server/issues/155), refine for osx, with ssl/http, disable statistics. 0.9.198.
|
* v1.0, 2014-08-17, for [#155](https://github.com/simple-rtmp-server/srs/issues/155), refine for osx, with ssl/http, disable statistics. 0.9.198.
|
||||||
* v1.0, 2014-08-06, fix [#148](https://github.com/winlinvip/simple-rtmp-server/issues/148), simplify the RTMP handshake key generation. 0.9.191.
|
* v1.0, 2014-08-06, fix [#148](https://github.com/simple-rtmp-server/srs/issues/148), simplify the RTMP handshake key generation. 0.9.191.
|
||||||
* v1.0, 2014-08-06, fix [#147](https://github.com/winlinvip/simple-rtmp-server/issues/147), support identify the srs edge. 0.9.190.
|
* v1.0, 2014-08-06, fix [#147](https://github.com/simple-rtmp-server/srs/issues/147), support identify the srs edge. 0.9.190.
|
||||||
* <strong>v1.0, 2014-08-03, [1.0 mainline7(0.9.189)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline7) released. 57432 lines.</strong>
|
* <strong>v1.0, 2014-08-03, [1.0 mainline7(0.9.189)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline7) released. 57432 lines.</strong>
|
||||||
* v1.0, 2014-08-03, fix [#79](https://github.com/winlinvip/simple-rtmp-server/issues/79), fix the reload remove edge assert bug. 0.9.189.
|
* v1.0, 2014-08-03, fix [#79](https://github.com/simple-rtmp-server/srs/issues/79), fix the reload remove edge assert bug. 0.9.189.
|
||||||
* v1.0, 2014-08-03, fix [#57](https://github.com/winlinvip/simple-rtmp-server/issues/57), use lock(acquire/release publish) to avoid duplicated publishing. 0.9.188.
|
* v1.0, 2014-08-03, fix [#57](https://github.com/simple-rtmp-server/srs/issues/57), use lock(acquire/release publish) to avoid duplicated publishing. 0.9.188.
|
||||||
* v1.0, 2014-08-03, fix [#85](https://github.com/winlinvip/simple-rtmp-server/issues/85), fix the segment-dvr sequence header missing. 0.9.187.
|
* v1.0, 2014-08-03, fix [#85](https://github.com/simple-rtmp-server/srs/issues/85), fix the segment-dvr sequence header missing. 0.9.187.
|
||||||
* v1.0, 2014-08-03, fix [#145](https://github.com/winlinvip/simple-rtmp-server/issues/145), refine ffmpeg log, check abitrate for libaacplus. 0.9.186.
|
* v1.0, 2014-08-03, fix [#145](https://github.com/simple-rtmp-server/srs/issues/145), refine ffmpeg log, check abitrate for libaacplus. 0.9.186.
|
||||||
* v1.0, 2014-08-03, fix [#143](https://github.com/winlinvip/simple-rtmp-server/issues/143), fix retrieve sys stat bug for all linux. 0.9.185.
|
* v1.0, 2014-08-03, fix [#143](https://github.com/simple-rtmp-server/srs/issues/143), fix retrieve sys stat bug for all linux. 0.9.185.
|
||||||
* v1.0, 2014-08-02, fix [#138](https://github.com/winlinvip/simple-rtmp-server/issues/138), fix http hooks bug, regression bug. 0.9.184.
|
* v1.0, 2014-08-02, fix [#138](https://github.com/simple-rtmp-server/srs/issues/138), fix http hooks bug, regression bug. 0.9.184.
|
||||||
* v1.0, 2014-08-02, fix [#142](https://github.com/winlinvip/simple-rtmp-server/issues/142), fix tcp stat slow bug, use /proc/net/sockstat instead, refer to 'ss -s'. 0.9.183.
|
* v1.0, 2014-08-02, fix [#142](https://github.com/simple-rtmp-server/srs/issues/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](https://github.com/winlinvip/simple-rtmp-server/issues/141), support tun0(vpn network device) ip retrieve. 0.9.179.
|
* v1.0, 2014-07-31, fix [#141](https://github.com/simple-rtmp-server/srs/issues/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, 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-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, complete config utest. 0.9.173
|
||||||
* v1.0, 2014-07-26, fix [#124](https://github.com/winlinvip/simple-rtmp-server/issues/124), gop cache support disable video in publishing. 0.9.171.
|
* v1.0, 2014-07-26, fix [#124](https://github.com/simple-rtmp-server/srs/issues/124), gop cache support disable video in publishing. 0.9.171.
|
||||||
* v1.0, 2014-07-23, fix [#121](https://github.com/winlinvip/simple-rtmp-server/issues/121), srs_info detail log compile failed. 0.9.168.
|
* v1.0, 2014-07-23, fix [#121](https://github.com/simple-rtmp-server/srs/issues/121), srs_info detail log compile failed. 0.9.168.
|
||||||
* v1.0, 2014-07-19, fix [#119](https://github.com/winlinvip/simple-rtmp-server/issues/119), use iformat and oformat for ffmpeg transcode. 0.9.163.
|
* v1.0, 2014-07-19, fix [#119](https://github.com/simple-rtmp-server/srs/issues/119), use iformat and oformat for ffmpeg transcode. 0.9.163.
|
||||||
* <strong>v1.0, 2014-07-13, [1.0 mainline6(0.9.160)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline6) released. 50029 lines.</strong>
|
* <strong>v1.0, 2014-07-13, [1.0 mainline6(0.9.160)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline6) released. 50029 lines.</strong>
|
||||||
* 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-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-12, complete rtmp stack utest. 0.9.156
|
||||||
* v1.0, 2014-07-06, fix [#81](https://github.com/winlinvip/simple-rtmp-server/issues/81), fix HLS codec info, IOS ok. 0.9.153.
|
* v1.0, 2014-07-06, fix [#81](https://github.com/simple-rtmp-server/srs/issues/81), fix HLS codec info, IOS ok. 0.9.153.
|
||||||
* v1.0, 2014-07-06, fix [#103](https://github.com/winlinvip/simple-rtmp-server/issues/103), support all aac sample rate. 0.9.150.
|
* v1.0, 2014-07-06, fix [#103](https://github.com/simple-rtmp-server/srs/issues/103), support all aac sample rate. 0.9.150.
|
||||||
* v1.0, 2014-07-05, complete kernel utest. 0.9.149
|
* v1.0, 2014-07-05, complete kernel utest. 0.9.149
|
||||||
* v1.0, 2014-06-30, fix [#111](https://github.com/winlinvip/simple-rtmp-server/issues/111), always use 31bits timestamp. 0.9.143.
|
* v1.0, 2014-06-30, fix [#111](https://github.com/simple-rtmp-server/srs/issues/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, response the call message with null. 0.9.137
|
||||||
* v1.0, 2014-06-28, fix [#110](https://github.com/winlinvip/simple-rtmp-server/issues/110), thread start segment fault, thread cycle stop destroy thread. 0.9.136
|
* v1.0, 2014-06-28, fix [#110](https://github.com/simple-rtmp-server/srs/issues/110), thread start segment fault, thread cycle stop destroy thread. 0.9.136
|
||||||
* v1.0, 2014-06-27, fix [#109](https://github.com/winlinvip/simple-rtmp-server/issues/109), fix the system jump time, adjust system startup time. 0.9.135
|
* v1.0, 2014-06-27, fix [#109](https://github.com/simple-rtmp-server/srs/issues/109), fix the system jump time, adjust system startup time. 0.9.135
|
||||||
* <strong>v1.0, 2014-06-27, [1.0 mainline5(0.9.134)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline5) released. 41573 lines.</strong>
|
* <strong>v1.0, 2014-06-27, [1.0 mainline5(0.9.134)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline5) released. 41573 lines.</strong>
|
||||||
* v1.0, 2014-06-27, SRS online 30days with RTMP/HLS.
|
* v1.0, 2014-06-27, SRS online 30days with RTMP/HLS.
|
||||||
* v1.0, 2014-06-25, fix [#108](https://github.com/winlinvip/simple-rtmp-server/issues/108), support config time jitter for encoder non-monotonical stream. 0.9.133
|
* v1.0, 2014-06-25, fix [#108](https://github.com/simple-rtmp-server/srs/issues/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-23, support report summaries in heartbeat. 0.9.132
|
||||||
* v1.0, 2014-06-22, performance refine, support [3k+](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Performance#%E6%80%A7%E8%83%BD%E4%BE%8B%E8%A1%8C%E6%8A%A5%E5%91%8A4k) connections(270kbps). 0.9.130
|
* v1.0, 2014-06-22, performance refine, support [3k+](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Performance#%E6%80%A7%E8%83%BD%E4%BE%8B%E8%A1%8C%E6%8A%A5%E5%91%8A4k) connections(270kbps). 0.9.130
|
||||||
* v1.0, 2014-06-21, support edge [token traverse](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DRM#tokentraverse), fix [#104](https://github.com/winlinvip/simple-rtmp-server/issues/104). 0.9.129
|
* v1.0, 2014-06-21, support edge [token traverse](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DRM#tokentraverse), fix [#104](https://github.com/simple-rtmp-server/srs/issues/104). 0.9.129
|
||||||
* v1.0, 2014-06-19, add connections count to api summaries. 0.9.127
|
* 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-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-18, add network bytes to api summaries. 0.9.125
|
||||||
* v1.0, 2014-06-14, fix [#98](https://github.com/winlinvip/simple-rtmp-server/issues/98), workaround for librtmp ping(fmt=1,cid=2 fresh stream). 0.9.124
|
* v1.0, 2014-06-14, fix [#98](https://github.com/simple-rtmp-server/srs/issues/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-29, support flv inject and flv http streaming with start=bytes. 0.9.122
|
||||||
* <strong>v1.0, 2014-05-28, [1.0 mainline4(0.9.120)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline4) released. 39200 lines.</strong>
|
* <strong>v1.0, 2014-05-28, [1.0 mainline4(0.9.120)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline4) released. 39200 lines.</strong>
|
||||||
* v1.0, 2014-05-27, fix [#87](https://github.com/winlinvip/simple-rtmp-server/issues/87), add source id for full trackable log. 0.9.120
|
* v1.0, 2014-05-27, fix [#87](https://github.com/simple-rtmp-server/srs/issues/87), add source id for full trackable log. 0.9.120
|
||||||
* v1.0, 2014-05-27, fix [#84](https://github.com/winlinvip/simple-rtmp-server/issues/84), unpublish when edge disconnect. 0.9.119
|
* v1.0, 2014-05-27, fix [#84](https://github.com/simple-rtmp-server/srs/issues/84), unpublish when edge disconnect. 0.9.119
|
||||||
* v1.0, 2014-05-27, fix [#89](https://github.com/winlinvip/simple-rtmp-server/issues/89), config to /dev/null to disable ffmpeg log. 0.9.117
|
* v1.0, 2014-05-27, fix [#89](https://github.com/simple-rtmp-server/srs/issues/89), config to /dev/null to disable ffmpeg log. 0.9.117
|
||||||
* v1.0, 2014-05-25, fix [#76](https://github.com/winlinvip/simple-rtmp-server/issues/76), allow edge vhost to add or remove. 0.9.114
|
* v1.0, 2014-05-25, fix [#76](https://github.com/simple-rtmp-server/srs/issues/76), allow edge vhost to add or remove. 0.9.114
|
||||||
* v1.0, 2014-05-24, Johnny contribute [ossrs.net](http://ossrs.net). karthikeyan start to translate wiki to English.
|
* v1.0, 2014-05-24, Johnny contribute [ossrs.net](http://ossrs.net). karthikeyan start to translate wiki to English.
|
||||||
* v1.0, 2014-05-22, fix [#78](https://github.com/winlinvip/simple-rtmp-server/issues/78), st joinable thread must be stop by other threads, 0.9.113
|
* v1.0, 2014-05-22, fix [#78](https://github.com/simple-rtmp-server/srs/issues/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 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, support flv parser, add amf0 to librtmp. 0.9.110
|
||||||
* v1.0, 2014-05-22, fix [#74](https://github.com/winlinvip/simple-rtmp-server/issues/74), add tcUrl for http callback on_connect, 0.9.109
|
* v1.0, 2014-05-22, fix [#74](https://github.com/simple-rtmp-server/srs/issues/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-19, support http heartbeat, 0.9.107
|
||||||
* <strong>v1.0, 2014-05-18, [1.0 mainline3(0.9.105)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline3) released. 37594 lines.</strong>
|
* <strong>v1.0, 2014-05-18, [1.0 mainline3(0.9.105)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline3) released. 37594 lines.</strong>
|
||||||
* v1.0, 2014-05-18, support http api json, to PUT/POST. 0.9.105
|
* v1.0, 2014-05-18, support http api json, to PUT/POST. 0.9.105
|
||||||
* v1.0, 2014-05-17, fix [#72](https://github.com/winlinvip/simple-rtmp-server/issues/72), also need stream_id for send_and_free_message. 0.9.101
|
* v1.0, 2014-05-17, fix [#72](https://github.com/simple-rtmp-server/srs/issues/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-17, rename struct to class. 0.9.100
|
||||||
* v1.0, 2014-05-14, fix [#67](https://github.com/winlinvip/simple-rtmp-server/issues/67) pithy print, stage must has a age. 0.9.98
|
* v1.0, 2014-05-14, fix [#67](https://github.com/simple-rtmp-server/srs/issues/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-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, refine the kbps calc module. 0.9.93
|
||||||
* v1.0, 2014-05-12, fix bug [#64](https://github.com/winlinvip/simple-rtmp-server/issues/64): install_dir=DESTDIR+PREFIX
|
* v1.0, 2014-05-12, fix bug [#64](https://github.com/simple-rtmp-server/srs/issues/64): install_dir=DESTDIR+PREFIX
|
||||||
* v1.0, 2014-05-08, fix [#36](https://github.com/winlinvip/simple-rtmp-server/issues/36): never directly use \*(int32_t\*) for arm.
|
* v1.0, 2014-05-08, fix [#36](https://github.com/simple-rtmp-server/srs/issues/36): never directly use \*(int32_t\*) for arm.
|
||||||
* v1.0, 2014-05-08, fix [#60](https://github.com/winlinvip/simple-rtmp-server/issues/60): support aggregate message
|
* v1.0, 2014-05-08, fix [#60](https://github.com/simple-rtmp-server/srs/issues/60): support aggregate message
|
||||||
* v1.0, 2014-05-08, fix [#59](https://github.com/winlinvip/simple-rtmp-server/issues/59), edge support FMS origin server. 0.9.92
|
* v1.0, 2014-05-08, fix [#59](https://github.com/simple-rtmp-server/srs/issues/59), edge support FMS origin server. 0.9.92
|
||||||
* v1.0, 2014-05-06, fix [#50](https://github.com/winlinvip/simple-rtmp-server/issues/50), ubuntu14 build error.
|
* v1.0, 2014-05-06, fix [#50](https://github.com/simple-rtmp-server/srs/issues/50), ubuntu14 build error.
|
||||||
* v1.0, 2014-05-04, support mips linux.
|
* v1.0, 2014-05-04, support mips linux.
|
||||||
* v1.0, 2014-04-30, fix bug [#34](https://github.com/winlinvip/simple-rtmp-server/issues/34): convert signal to io thread. 0.9.85
|
* v1.0, 2014-04-30, fix bug [#34](https://github.com/simple-rtmp-server/srs/issues/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-29, refine RTMP protocol completed, to 0.9.81
|
||||||
* <strong>v1.0, 2014-04-28, [1.0 mainline2(0.9.79)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline2) released. 35255 lines.</strong>
|
* <strong>v1.0, 2014-04-28, [1.0 mainline2(0.9.79)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline2) released. 35255 lines.</strong>
|
||||||
* v1.0, 2014-04-28, support full edge RTMP server. 0.9.79
|
* 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-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-25, add donation page. 0.9.76
|
||||||
|
@ -504,12 +504,12 @@ Supported operating systems and hardware:
|
||||||
* v1.0, 2014-04-17, support dvr(record live to flv file for vod). 0.9.69
|
* 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-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-10, support reload ingesters(add/remov/update). 0.9.57
|
||||||
* <strong>v1.0, 2014-04-07, [1.0 mainline(0.9.55)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0.mainline) released. 30000 lines.</strong>
|
* <strong>v1.0, 2014-04-07, [1.0 mainline(0.9.55)](https://github.com/simple-rtmp-server/srs/releases/tag/1.0.mainline) released. 30000 lines.</strong>
|
||||||
* v1.0, 2014-04-07, support [ingest](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleIngest) file/stream/device.
|
* v1.0, 2014-04-07, support [ingest](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleIngest) file/stream/device.
|
||||||
* v1.0, 2014-04-05, support [http api](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPApi) and [http server](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPServer).
|
* v1.0, 2014-04-05, support [http api](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPApi) and [http server](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPServer).
|
||||||
* v1.0, 2014-04-03, implements http framework and api/v1/version.
|
* 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-30, fix bug for st detecting epoll failed, force st to use epoll.
|
||||||
* v1.0, 2014-03-29, add wiki [Performance for RaspberryPi](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RaspberryPi).
|
* v1.0, 2014-03-29, add wiki [Performance for RaspberryPi](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RaspberryPi).
|
||||||
* v1.0, 2014-03-29, add release binary package for raspberry-pi.
|
* 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-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-23, support daemon, default start in daemon.
|
||||||
|
@ -519,24 +519,24 @@ Supported operating systems and hardware:
|
||||||
* v1.0, 2014-03-20, refine hls code, support pure audio HLS.
|
* 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, 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-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](https://github.com/winlinvip/simple-rtmp-server/commit/5a4373d4835758188b9a1f03005cea0b6ddc62aa)
|
* v1.0, 2014-03-16, fix bug on arm of st, the sp change from 20 to 8, for respberry-pi, @see [commit](https://github.com/simple-rtmp-server/srs/commit/5a4373d4835758188b9a1f03005cea0b6ddc62aa)
|
||||||
* v1.0, 2014-03-16, support ARM([debian armhf, v7cpu](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm)) with rtmp/ssl/hls/librtmp.
|
* v1.0, 2014-03-16, support ARM([debian armhf, v7cpu](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm)) with rtmp/ssl/hls/librtmp.
|
||||||
* v1.0, 2014-03-12, finish utest for amf0 codec.
|
* 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-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-04, add gest framework for utest, build success.
|
||||||
* v1.0, 2014-03-02, add wiki [srs-librtmp](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLibrtmp), [SRS for arm](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm), [product](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Product)
|
* v1.0, 2014-03-02, add wiki [srs-librtmp](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLibrtmp), [SRS for arm](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm), [product](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Product)
|
||||||
* v1.0, 2014-03-02, srs-librtmp, client publish/play library like librtmp.
|
* 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-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, support arm build(SRS/ST), add ssl to 3rdparty package.
|
||||||
* v1.0, 2014-02-28, add wiki [BuildArm](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Build), [FFMPEG](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG), [Reload](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Reload)
|
* v1.0, 2014-02-28, add wiki [BuildArm](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Build), [FFMPEG](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG), [Reload](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Reload)
|
||||||
* v1.0, 2014-02-27, add wiki [LowLatency](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LowLatency), [HTTPCallback](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPCallback), [ServerSideScript](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_ServerSideScript), [IDE](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE)
|
* v1.0, 2014-02-27, add wiki [LowLatency](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LowLatency), [HTTPCallback](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPCallback), [ServerSideScript](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_ServerSideScript), [IDE](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE)
|
||||||
* v1.0, 2014-01-19, add wiki [DeliveryHLS](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS)
|
* v1.0, 2014-01-19, add wiki [DeliveryHLS](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS)
|
||||||
* v1.0, 2014-01-12, add wiki [HowToAskQuestion](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HowToAskQuestion), [RtmpUrlVhost](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RtmpUrlVhost)
|
* v1.0, 2014-01-12, add wiki [HowToAskQuestion](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HowToAskQuestion), [RtmpUrlVhost](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RtmpUrlVhost)
|
||||||
* v1.0, 2014-01-11, fix jw/flower player pause bug, which send closeStream actually.
|
* v1.0, 2014-01-11, fix jw/flower player pause bug, which send closeStream actually.
|
||||||
* v1.0, 2014-01-05, add wiki [Build](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Build), [Performance](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Performance), [Forward](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Forward)
|
* v1.0, 2014-01-05, add wiki [Build](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Build), [Performance](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Performance), [Forward](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Forward)
|
||||||
* v1.0, 2014-01-01, change listen(512), chunk-size(60000), to improve performance.
|
* 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.
|
* v1.0, 2013-12-27, merge from wenjie, the bandwidth test feature.
|
||||||
* <strong>v0.9, 2013-12-25, [v0.9](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.9) released. 20926 lines.</strong>
|
* <strong>v0.9, 2013-12-25, [v0.9](https://github.com/simple-rtmp-server/srs/releases/tag/0.9) released. 20926 lines.</strong>
|
||||||
* v0.9, 2013-12-25, fix the bitrate bug(in Bps), use enhanced microphone.
|
* 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, 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 banwidth test.
|
||||||
|
@ -550,8 +550,8 @@ Supported operating systems and hardware:
|
||||||
* v0.9, 2013-12-15, support reload the hls/forwarder/transcoder.
|
* 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-14, refine the thread model for the retry threads.
|
||||||
* v0.9, 2013-12-10, auto install depends tools/libs on centos/ubuntu.
|
* v0.9, 2013-12-10, auto install depends tools/libs on centos/ubuntu.
|
||||||
* <strong>v0.8, 2013-12-08, [v0.8](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.8) released. 19186 lines.</strong>
|
* <strong>v0.8, 2013-12-08, [v0.8](https://github.com/simple-rtmp-server/srs/releases/tag/0.8) released. 19186 lines.</strong>
|
||||||
* v0.8, 2013-12-08, support [http hooks](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPCallback): on_connect/close/publish/unpublish/play/stop.
|
* v0.8, 2013-12-08, support [http hooks](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPCallback): on_connect/close/publish/unpublish/play/stop.
|
||||||
* v0.8, 2013-12-08, support multiple http hooks for a event.
|
* 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 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, support network based cli and json result, add CherryPy 3.2.4.
|
||||||
|
@ -559,32 +559,32 @@ Supported operating systems and hardware:
|
||||||
* v0.8, 2013-12-06, support max_connections, drop if exceed.
|
* 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, support log_dir, write ffmpeg log to file.
|
||||||
* v0.8, 2013-12-05, fix the forward/hls/encoder bug.
|
* v0.8, 2013-12-05, fix the forward/hls/encoder bug.
|
||||||
* <strong>v0.7, 2013-12-03, [v0.7](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.7) released. 17605 lines.</strong>
|
* <strong>v0.7, 2013-12-03, [v0.7](https://github.com/simple-rtmp-server/srs/releases/tag/0.7) released. 17605 lines.</strong>
|
||||||
* v0.7, 2013-12-01, support dead-loop detect for forwarder and transcoder.
|
* 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-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 live stream transcoder by ffmpeg.
|
||||||
* v0.7, 2013-11-30, support --with/without -ffmpeg, build ffmpeg-2.1.
|
* 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.7, 2013-11-30, add ffmpeg-2.1, x264-core138, lame-3.99.5, libaacplus-2.0.2.
|
||||||
* <strong>v0.6, 2013-11-29, [v0.6](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.6) released. 16094 lines.</strong>
|
* <strong>v0.6, 2013-11-29, [v0.6](https://github.com/simple-rtmp-server/srs/releases/tag/0.6) released. 16094 lines.</strong>
|
||||||
* v0.6, 2013-11-29, add performance summary, 1800 clients, 900Mbps, CPU 90.2%, 41MB.
|
* 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 edge server.
|
||||||
* v0.6, 2013-11-29, support forward stream to other origin 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-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 --with or --without -hls and -ssl options.
|
||||||
* v0.6, 2013-11-27, support AAC 44100HZ sample rate for iphone, adjust the timestamp.
|
* v0.6, 2013-11-27, support AAC 44100HZ sample rate for iphone, adjust the timestamp.
|
||||||
* <strong>v0.5, 2013-11-26, [v0.5](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.5) released. 14449 lines.</strong>
|
* <strong>v0.5, 2013-11-26, [v0.5](https://github.com/simple-rtmp-server/srs/releases/tag/0.5) released. 14449 lines.</strong>
|
||||||
* v0.5, 2013-11-24, support HLS(m3u8), fragment and window.
|
* 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-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-21, add ts_info tool to demux ts file.
|
||||||
* v0.5, 2013-11-16, add rtmp players(OSMF/jwplayer5/jwplayer6).
|
* v0.5, 2013-11-16, add rtmp players(OSMF/jwplayer5/jwplayer6).
|
||||||
* <strong>v0.4, 2013-11-10, [v0.4](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.4) released. 12500 lines.</strong>
|
* <strong>v0.4, 2013-11-10, [v0.4](https://github.com/simple-rtmp-server/srs/releases/tag/0.4) released. 12500 lines.</strong>
|
||||||
* v0.4, 2013-11-10, support config and reload the pithy print.
|
* 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(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 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 longtime(>4.6hours) publish/play.
|
||||||
* v0.4, 2013-11-09, support config the chunk_size.
|
* v0.4, 2013-11-09, support config the chunk_size.
|
||||||
* v0.4, 2013-11-09, support pause for live stream.
|
* v0.4, 2013-11-09, support pause for live stream.
|
||||||
* <strong>v0.3, 2013-11-04, [v0.3](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.3) released. 11773 lines.</strong>
|
* <strong>v0.3, 2013-11-04, [v0.3](https://github.com/simple-rtmp-server/srs/releases/tag/0.3) released. 11773 lines.</strong>
|
||||||
* v0.3, 2013-11-04, support refer/play-refer/publish-refer.
|
* v0.3, 2013-11-04, support refer/play-refer/publish-refer.
|
||||||
* v0.3, 2013-11-04, support vhosts specified config.
|
* v0.3, 2013-11-04, support vhosts specified config.
|
||||||
* v0.3, 2013-11-02, support listen multiple ports.
|
* v0.3, 2013-11-02, support listen multiple ports.
|
||||||
|
@ -592,12 +592,12 @@ Supported operating systems and hardware:
|
||||||
* v0.3, 2013-10-29, support pithy print log message specified by stage.
|
* 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-28, support librtmp without extended-timestamp in 0xCX chunk packet.
|
||||||
* v0.3, 2013-10-27, support cache last gop for client fast startup.
|
* v0.3, 2013-10-27, support cache last gop for client fast startup.
|
||||||
* <strong>v0.2, 2013-10-25, [v0.2](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.2) released. 10125 lines.</strong>
|
* <strong>v0.2, 2013-10-25, [v0.2](https://github.com/simple-rtmp-server/srs/releases/tag/0.2) released. 10125 lines.</strong>
|
||||||
* v0.2, 2013-10-25, support flash publish.
|
* 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-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 time jitter detect and correct algorithm
|
||||||
* v0.2, 2013-10-24, support decode codec type to cache the h264/avc sequence header.
|
* v0.2, 2013-10-24, support decode codec type to cache the h264/avc sequence header.
|
||||||
* <strong>v0.1, 2013-10-23, [v0.1](https://github.com/winlinvip/simple-rtmp-server/releases/tag/0.1) released. 8287 lines.</strong>
|
* <strong>v0.1, 2013-10-23, [v0.1](https://github.com/simple-rtmp-server/srs/releases/tag/0.1) released. 8287 lines.</strong>
|
||||||
* v0.1, 2013-10-23, support basic amf0 codec, simplify the api using c-style api.
|
* 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-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-22, support vp6 codec with rtmp protocol specified simple handshake.
|
||||||
|
@ -610,9 +610,9 @@ Supported operating systems and hardware:
|
||||||
|
|
||||||
Performance benchmark history, on virtual box:
|
Performance benchmark history, on virtual box:
|
||||||
|
|
||||||
* 2013-11-28, SRS 0.5.0, 1800clients, 90%CPU, 41MB. [benchmark](https://github.com/winlinvip/simple-rtmp-server/commit/023e23bc8261bec15a70a7ae932098fb4f82b679)
|
* 2013-11-28, SRS 0.5.0, 1800clients, 90%CPU, 41MB. [benchmark](https://github.com/simple-rtmp-server/srs/commit/023e23bc8261bec15a70a7ae932098fb4f82b679)
|
||||||
* 2014-07-12, SRS 0.9.156, 1800clients, 68%CPU, 38MB. [benchmark](https://github.com/winlinvip/simple-rtmp-server/commit/e2d273f4939348374bf9644df9d54c4293b39c1a)
|
* 2014-07-12, SRS 0.9.156, 1800clients, 68%CPU, 38MB. [benchmark](https://github.com/simple-rtmp-server/srs/commit/e2d273f4939348374bf9644df9d54c4293b39c1a)
|
||||||
* 2014-07-12, SRS 0.9.156, 2700clients, 89%CPU, 61MB. [benchmark](https://github.com/winlinvip/simple-rtmp-server/commit/6d12280b7cc54c465b1caf8b1402149e77c4c7d9)
|
* 2014-07-12, SRS 0.9.156, 2700clients, 89%CPU, 61MB. [benchmark](https://github.com/simple-rtmp-server/srs/commit/6d12280b7cc54c465b1caf8b1402149e77c4c7d9)
|
||||||
* 2014-11-11, SRS 1.0.5, 2700clients, 85%CPU, 66MB. (1.0 equals 2.0.12)
|
* 2014-11-11, SRS 1.0.5, 2700clients, 85%CPU, 66MB. (1.0 equals 2.0.12)
|
||||||
|
|
||||||
Latest benchmark(2014-07-12):
|
Latest benchmark(2014-07-12):
|
||||||
|
@ -642,8 +642,8 @@ usr sys idl wai hiq siq| read writ| recv send| in out | int csw
|
||||||
32 17 33 0 0 18| 0 410B| 169M 169M| 0 0 |4518 3788
|
32 17 33 0 0 18| 0 410B| 169M 169M| 0 0 |4518 3788
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
* See also: [Performance for x86/x64 Test Guide](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Performance)
|
* See also: [Performance for x86/x64 Test Guide](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Performance)
|
||||||
* See also: [Performance for RaspberryPi](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RaspberryPi)
|
* See also: [Performance for RaspberryPi](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RaspberryPi)
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
|
@ -717,7 +717,7 @@ Remark:
|
||||||
to ingest any input to rtmp, push to SRS.
|
to ingest any input to rtmp, push to SRS.
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### [HDS/HLS origin backup](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RTMP-ATC)
|
### [HDS/HLS origin backup](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RTMP-ATC)
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
+----------+ +----------+
|
+----------+ +----------+
|
||||||
|
@ -729,10 +729,10 @@ to ingest any input to rtmp, push to SRS.
|
||||||
RTMP +----------+ RTMP +----------+
|
RTMP +----------+ RTMP +----------+
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### [RTMP cluster(origin/edge) Architecture](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Edge)
|
### [RTMP cluster(origin/edge) Architecture](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge)
|
||||||
|
|
||||||
Remark: cluster over edge, see [Edge](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Edge)
|
Remark: cluster over edge, see [Edge](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge)
|
||||||
Remark: cluster over forward, see [Forward](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Forward)
|
Remark: cluster over forward, see [Forward](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Forward)
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
+---------+ +-----------------+ +-----------------------+
|
+---------+ +-----------------+ +-----------------------+
|
||||||
|
|
|
@ -21,31 +21,31 @@ IF(NOT EXISTS ${PROJECT_SOURCE_DIR}/objs/st/libst.a)
|
||||||
EXEC_PROGRAM(./configure)
|
EXEC_PROGRAM(./configure)
|
||||||
ENDIF(NOT EXISTS ${PROJECT_SOURCE_DIR}/objs/st/libst.a)
|
ENDIF(NOT EXISTS ${PROJECT_SOURCE_DIR}/objs/st/libst.a)
|
||||||
|
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_IDE#jetbrains")
|
MESSAGE(STATUS "only for jetbrains IDE, @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_IDE#jetbrains")
|
||||||
MESSAGE(STATUS "use ./configure && make, @see https://github.com/winlinvip/simple-rtmp-server#usage")
|
MESSAGE(STATUS "use ./configure && make, @see https://github.com/simple-rtmp-server/srs#usage")
|
||||||
|
|
||||||
|
|
|
@ -316,7 +316,7 @@ if [ $SRS_EMBEDED_CPU = YES ]; then
|
||||||
echo "st-1.9t for arm is ok.";
|
echo "st-1.9t for arm is ok.";
|
||||||
else
|
else
|
||||||
# TODO: FIXME: patch the bug.
|
# TODO: FIXME: patch the bug.
|
||||||
# patch st for arm, @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm#st-arm-bug-fix
|
# patch st for arm, @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm#st-arm-bug-fix
|
||||||
echo "build st-1.9t for arm";
|
echo "build st-1.9t for arm";
|
||||||
(
|
(
|
||||||
rm -rf ${SRS_OBJS}/st-1.9 && cd ${SRS_OBJS} &&
|
rm -rf ${SRS_OBJS}/st-1.9 && cd ${SRS_OBJS} &&
|
||||||
|
|
|
@ -73,7 +73,7 @@ SRS_MIPS_UBUNTU12=NO
|
||||||
SRS_DEV=NO
|
SRS_DEV=NO
|
||||||
# dev, open main server feature for dev, no utest/research/librtmp
|
# dev, open main server feature for dev, no utest/research/librtmp
|
||||||
SRS_FAST_DEV=NO
|
SRS_FAST_DEV=NO
|
||||||
# demo, for the demo of srs, @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo
|
# demo, for the demo of srs, @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo
|
||||||
SRS_DEMO=NO
|
SRS_DEMO=NO
|
||||||
# raspberry-pi, open hls/ssl/static
|
# raspberry-pi, open hls/ssl/static
|
||||||
SRS_PI=NO
|
SRS_PI=NO
|
||||||
|
@ -171,7 +171,7 @@ Presets:
|
||||||
--disable-all disable all features, only support vp6 RTMP.
|
--disable-all disable all features, only support vp6 RTMP.
|
||||||
--dev for dev, open all features, no nginx/gperf/gprof/arm.
|
--dev for dev, open all features, no nginx/gperf/gprof/arm.
|
||||||
--fast-dev for dev fast compile, the RTMP server, without librtmp/utest/research.
|
--fast-dev for dev fast compile, the RTMP server, without librtmp/utest/research.
|
||||||
--demo for srs demo, @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo
|
--demo for srs demo, @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo
|
||||||
--full enable all features, no gperf/gprof/arm.
|
--full enable all features, no gperf/gprof/arm.
|
||||||
|
|
||||||
Conflicts:
|
Conflicts:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs demo
|
# the config for srs demo
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 19350;
|
listen 19350;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs demo
|
# the config for srs demo
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to dvr in segment mode
|
# the config for srs to dvr in segment mode
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DVR
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DVR
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to dvr in session mode
|
# the config for srs to dvr in session mode
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DVR
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DVR
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs origin-edge cluster
|
# the config for srs origin-edge cluster
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Edge
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs for token traverse authentication
|
# the config for srs for token traverse authentication
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DRM
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DRM
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935
|
listen 1935
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs use ffmpeg to transcode
|
# the config for srs use ffmpeg to transcode
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleFFMPEG
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleFFMPEG
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to forward
|
# the config for srs to forward
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleForward
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleForward
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to forward
|
# the config for srs to forward
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleForward
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleForward
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 19350;
|
listen 19350;
|
||||||
|
|
|
@ -299,7 +299,7 @@ vhost with-hls.srs.com {
|
||||||
# ignore, when error ignore and disable hls.
|
# ignore, when error ignore and disable hls.
|
||||||
# disconnect, when error disconnect the publish connection.
|
# disconnect, when error disconnect the publish connection.
|
||||||
# continue, when error ignore and continue output hls.
|
# continue, when error ignore and continue output hls.
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/issues/264
|
# @see https://github.com/simple-rtmp-server/srs/issues/264
|
||||||
# default: ignore
|
# default: ignore
|
||||||
hls_on_error ignore;
|
hls_on_error ignore;
|
||||||
}
|
}
|
||||||
|
@ -413,7 +413,7 @@ vhost debug.srs.com {
|
||||||
# it's strongly recommend to open the debug_srs_upnode,
|
# it's strongly recommend to open the debug_srs_upnode,
|
||||||
# when connect to upnode, it will take the debug info,
|
# when connect to upnode, it will take the debug info,
|
||||||
# for example, the id, source id, pid.
|
# for example, the id, source id, pid.
|
||||||
# please see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLog
|
# please see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLog
|
||||||
# default: on
|
# default: on
|
||||||
debug_srs_upnode on;
|
debug_srs_upnode on;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to delivery hls
|
# the config for srs to delivery hls
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleHLS
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleHLS
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to delivery hls
|
# the config for srs to delivery hls
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleHLS
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleHLS
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# use ffmpeg to ingest file/stream/device to SRS
|
# use ffmpeg to ingest file/stream/device to SRS
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleIngest
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleIngest
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs origin-edge cluster
|
# the config for srs origin-edge cluster
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Edge
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 19350;
|
listen 19350;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to delivery realtime RTMP stream
|
# the config for srs to delivery realtime RTMP stream
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleRealtime
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleRealtime
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to delivery RTMP
|
# the config for srs to delivery RTMP
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleRTMP
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleRTMP
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# the config for srs to delivery hls
|
# the config for srs to delivery hls
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleHLS
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleHLS
|
||||||
# @see full.conf for detail config.
|
# @see full.conf for detail config.
|
||||||
|
|
||||||
listen 1935;
|
listen 1935;
|
||||||
|
|
32
trunk/configure
vendored
32
trunk/configure
vendored
|
@ -134,7 +134,7 @@ BLACK="\\${BLACK}"
|
||||||
|
|
||||||
echo -e "\${GREEN}build summary:\${BLACK}"
|
echo -e "\${GREEN}build summary:\${BLACK}"
|
||||||
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
||||||
echo -e " |${SrsGperfSummaryColor}gperf @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_GPERF\${BLACK}"
|
echo -e " |${SrsGperfSummaryColor}gperf @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_GPERF\${BLACK}"
|
||||||
echo -e " | ${SrsGperfMCSummaryColor}gmc @see: http://google-perftools.googlecode.com/svn/trunk/doc/heap_checker.html\${BLACK}"
|
echo -e " | ${SrsGperfMCSummaryColor}gmc @see: http://google-perftools.googlecode.com/svn/trunk/doc/heap_checker.html\${BLACK}"
|
||||||
echo -e " | ${SrsGperfMCSummaryColor}gmc: gperf memory check\${BLACK}"
|
echo -e " | ${SrsGperfMCSummaryColor}gmc: gperf memory check\${BLACK}"
|
||||||
echo -e " | ${SrsGperfMCSummaryColor}env PPROF_PATH=./objs/pprof HEAPCHECK=normal ./objs/srs -c conf/console.conf # start gmc\${BLACK}"
|
echo -e " | ${SrsGperfMCSummaryColor}env PPROF_PATH=./objs/pprof HEAPCHECK=normal ./objs/srs -c conf/console.conf # start gmc\${BLACK}"
|
||||||
|
@ -150,7 +150,7 @@ echo -e " | ${SrsGperfCPSummaryColor}rm -f gperf.srs.gcp*; ./obj
|
||||||
echo -e " | ${SrsGperfCPSummaryColor}killall -2 srs # or CTRL+C to stop gcp\${BLACK}"
|
echo -e " | ${SrsGperfCPSummaryColor}killall -2 srs # or CTRL+C to stop gcp\${BLACK}"
|
||||||
echo -e " | ${SrsGperfCPSummaryColor}./objs/pprof --text objs/srs gperf.srs.gcp* # to analysis cpu profile\${BLACK}"
|
echo -e " | ${SrsGperfCPSummaryColor}./objs/pprof --text objs/srs gperf.srs.gcp* # to analysis cpu profile\${BLACK}"
|
||||||
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
||||||
echo -e " |${SrsGprofSummaryColor}gprof @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_GPROF\${BLACK}"
|
echo -e " |${SrsGprofSummaryColor}gprof @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_GPROF\${BLACK}"
|
||||||
echo -e " |${SrsGprofSummaryColor}gprof: GNU profile tool, @see: http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html\${BLACK}"
|
echo -e " |${SrsGprofSummaryColor}gprof: GNU profile tool, @see: http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html\${BLACK}"
|
||||||
echo -e " | ${SrsGprofSummaryColor}rm -f gmon.out; ./objs/srs -c conf/console.conf # start gprof\${BLACK}"
|
echo -e " | ${SrsGprofSummaryColor}rm -f gmon.out; ./objs/srs -c conf/console.conf # start gprof\${BLACK}"
|
||||||
echo -e " | ${SrsGprofSummaryColor}killall -2 srs # or CTRL+C to stop gprof\${BLACK}"
|
echo -e " | ${SrsGprofSummaryColor}killall -2 srs # or CTRL+C to stop gprof\${BLACK}"
|
||||||
|
@ -160,7 +160,7 @@ echo -e " |${SrsResearchSummaryColor}research: ./objs/research, api server,
|
||||||
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
||||||
echo -e " |${SrsUtestSummaryColor}utest: ./objs/srs_utest, the utest for srs\${BLACK}"
|
echo -e " |${SrsUtestSummaryColor}utest: ./objs/srs_utest, the utest for srs\${BLACK}"
|
||||||
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
||||||
echo -e " |${SrsLibrtmpSummaryColor}librtmp @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLibrtmp\${BLACK}"
|
echo -e " |${SrsLibrtmpSummaryColor}librtmp @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLibrtmp\${BLACK}"
|
||||||
echo -e " |${SrsLibrtmpSummaryColor}librtmp: ./objs/include, ./objs/lib, the srs-librtmp library\${BLACK}"
|
echo -e " |${SrsLibrtmpSummaryColor}librtmp: ./objs/include, ./objs/lib, the srs-librtmp library\${BLACK}"
|
||||||
echo -e " | ${SrsLibrtmpSummaryColor}simple handshake: publish/play stream with simple handshake to server\${BLACK}"
|
echo -e " | ${SrsLibrtmpSummaryColor}simple handshake: publish/play stream with simple handshake to server\${BLACK}"
|
||||||
echo -e " | ${SrsLibrtmpSSLSummaryColor}complex handshake: it's not required for client, recommend disable it\${BLACK}"
|
echo -e " | ${SrsLibrtmpSSLSummaryColor}complex handshake: it's not required for client, recommend disable it\${BLACK}"
|
||||||
|
@ -171,30 +171,30 @@ echo -e " | ${SrsLibrtmpSummaryColor}librtmp-sample: ./research/librtmp/
|
||||||
echo -e " | ${SrsLibrtmpSummaryColor}librtmp-sample: ./research/librtmp/objs/srs_bandwidth_check\${BLACK}"
|
echo -e " | ${SrsLibrtmpSummaryColor}librtmp-sample: ./research/librtmp/objs/srs_bandwidth_check\${BLACK}"
|
||||||
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
||||||
echo -e " |\${GREEN}server: ./objs/srs -c conf/srs.conf, start the srs server\${BLACK}"
|
echo -e " |\${GREEN}server: ./objs/srs -c conf/srs.conf, start the srs server\${BLACK}"
|
||||||
echo -e " | ${SrsHlsSummaryColor}hls @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS\${BLACK}"
|
echo -e " | ${SrsHlsSummaryColor}hls @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS\${BLACK}"
|
||||||
echo -e " | ${SrsHlsSummaryColor}hls: generate m3u8 and ts from rtmp stream\${BLACK}"
|
echo -e " | ${SrsHlsSummaryColor}hls: generate m3u8 and ts from rtmp stream\${BLACK}"
|
||||||
echo -e " | ${SrsDvrSummaryColor}dvr @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DVR\${BLACK}"
|
echo -e " | ${SrsDvrSummaryColor}dvr @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DVR\${BLACK}"
|
||||||
echo -e " | ${SrsDvrSummaryColor}dvr: record RTMP stream to flv files.\${BLACK}"
|
echo -e " | ${SrsDvrSummaryColor}dvr: record RTMP stream to flv files.\${BLACK}"
|
||||||
echo -e " | ${SrsNginxSummaryColor}nginx @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_DeliveryHLS\${BLACK}"
|
echo -e " | ${SrsNginxSummaryColor}nginx @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS\${BLACK}"
|
||||||
echo -e " | ${SrsNginxSummaryColor}nginx: delivery HLS stream by nginx\${BLACK}"
|
echo -e " | ${SrsNginxSummaryColor}nginx: delivery HLS stream by nginx\${BLACK}"
|
||||||
echo -e " | ${SrsNginxSummaryColor}nginx: sudo ./objs/nginx/sbin/nginx\${BLACK}"
|
echo -e " | ${SrsNginxSummaryColor}nginx: sudo ./objs/nginx/sbin/nginx\${BLACK}"
|
||||||
echo -e " | ${SrsSslSummaryColor}ssl @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_RTMPHandshake\${BLACK}"
|
echo -e " | ${SrsSslSummaryColor}ssl @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RTMPHandshake\${BLACK}"
|
||||||
echo -e " | ${SrsSslSummaryColor}ssl: support RTMP complex handshake for client required, for instance, flash\${BLACK}"
|
echo -e " | ${SrsSslSummaryColor}ssl: support RTMP complex handshake for client required, for instance, flash\${BLACK}"
|
||||||
echo -e " | ${SrsFfmpegSummaryColor}ffmpeg @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG\${BLACK}"
|
echo -e " | ${SrsFfmpegSummaryColor}ffmpeg @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG\${BLACK}"
|
||||||
echo -e " | ${SrsFfmpegSummaryColor}ffmpeg: transcode, mux, ingest tool\${BLACK}"
|
echo -e " | ${SrsFfmpegSummaryColor}ffmpeg: transcode, mux, ingest tool\${BLACK}"
|
||||||
echo -e " | ${SrsFfmpegSummaryColor}ffmpeg: ./objs/ffmpeg/bin/ffmpeg\${BLACK}"
|
echo -e " | ${SrsFfmpegSummaryColor}ffmpeg: ./objs/ffmpeg/bin/ffmpeg\${BLACK}"
|
||||||
echo -e " | ${SrsTranscodeSummaryColor}transcode @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_FFMPEG\${BLACK}"
|
echo -e " | ${SrsTranscodeSummaryColor}transcode @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG\${BLACK}"
|
||||||
echo -e " | ${SrsTranscodeSummaryColor}transcode: support transcoding RTMP stream\${BLACK}"
|
echo -e " | ${SrsTranscodeSummaryColor}transcode: support transcoding RTMP stream\${BLACK}"
|
||||||
echo -e " | ${SrsIngestSummaryColor}ingest @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Ingest\${BLACK}"
|
echo -e " | ${SrsIngestSummaryColor}ingest @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Ingest\${BLACK}"
|
||||||
echo -e " | ${SrsIngestSummaryColor}ingest: support ingest file/stream/device then push to SRS by RTMP stream\${BLACK}"
|
echo -e " | ${SrsIngestSummaryColor}ingest: support ingest file/stream/device then push to SRS by RTMP stream\${BLACK}"
|
||||||
echo -e " | ${SrsHttpCallbackSummaryColor}http-callback @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPCallback\${BLACK}"
|
echo -e " | ${SrsHttpCallbackSummaryColor}http-callback @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPCallback\${BLACK}"
|
||||||
echo -e " | ${SrsHttpCallbackSummaryColor}http-callback: support http callback for authentication and event injection\${BLACK}"
|
echo -e " | ${SrsHttpCallbackSummaryColor}http-callback: support http callback for authentication and event injection\${BLACK}"
|
||||||
echo -e " | ${SrsHttpServerSummaryColor}http-server @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPServer\${BLACK}"
|
echo -e " | ${SrsHttpServerSummaryColor}http-server @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPServer\${BLACK}"
|
||||||
echo -e " | ${SrsHttpServerSummaryColor}http-server: support http server to delivery http stream\${BLACK}"
|
echo -e " | ${SrsHttpServerSummaryColor}http-server: support http server to delivery http stream\${BLACK}"
|
||||||
echo -e " | ${SrsHttpApiSummaryColor}http-api @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPApi\${BLACK}"
|
echo -e " | ${SrsHttpApiSummaryColor}http-api @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPApi\${BLACK}"
|
||||||
echo -e " | ${SrsHttpApiSummaryColor}http-api: support http api to manage server\${BLACK}"
|
echo -e " | ${SrsHttpApiSummaryColor}http-api: support http api to manage server\${BLACK}"
|
||||||
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
echo -e " \${BLACK}+------------------------------------------------------------------------------------\${BLACK}"
|
||||||
echo -e "\${GREEN}binaries @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Build\${BLACK}"
|
echo -e "\${GREEN}binaries @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Build\${BLACK}"
|
||||||
|
|
||||||
echo "you can:"
|
echo "you can:"
|
||||||
echo " ./objs/srs -c conf/srs.conf"
|
echo " ./objs/srs -c conf/srs.conf"
|
||||||
|
@ -286,7 +286,7 @@ install-api: install
|
||||||
@echo " sudo ln -sf \$(SRS_PREFIX)/etc/init.d/srs-api /etc/init.d/srs-api"
|
@echo " sudo ln -sf \$(SRS_PREFIX)/etc/init.d/srs-api /etc/init.d/srs-api"
|
||||||
@echo " /etc/init.d/srs-api start"
|
@echo " /etc/init.d/srs-api start"
|
||||||
@echo " http://\$(shell bash auto/local_ip.sh):8085"
|
@echo " http://\$(shell bash auto/local_ip.sh):8085"
|
||||||
@echo "@see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LinuxService"
|
@echo "@see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LinuxService"
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@echo "mkdir \$(__REAL_INSTALL)"
|
@echo "mkdir \$(__REAL_INSTALL)"
|
||||||
|
@ -308,7 +308,7 @@ install:
|
||||||
@echo "srs installed, to link and start srs:"
|
@echo "srs installed, to link and start srs:"
|
||||||
@echo " sudo ln -sf \$(SRS_PREFIX)/etc/init.d/srs /etc/init.d/srs"
|
@echo " sudo ln -sf \$(SRS_PREFIX)/etc/init.d/srs /etc/init.d/srs"
|
||||||
@echo " /etc/init.d/srs start"
|
@echo " /etc/init.d/srs start"
|
||||||
@echo "@see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LinuxService"
|
@echo "@see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LinuxService"
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# Default-Start: 2 3 4 5
|
# Default-Start: 2 3 4 5
|
||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
# Short-Description: simple-rtmp-server(srs)
|
# Short-Description: simple-rtmp-server(srs)
|
||||||
# Description: https://github.com/winlinvip/simple-rtmp-server
|
# Description: https://github.com/simple-rtmp-server/srs
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# the config of ROOT, user must modify it when start srs from other directory,
|
# the config of ROOT, user must modify it when start srs from other directory,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# Default-Start: 2 3 4 5
|
# Default-Start: 2 3 4 5
|
||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
# Short-Description: simple-rtmp-server-api(srs-api)
|
# Short-Description: simple-rtmp-server-api(srs-api)
|
||||||
# Description: https://github.com/winlinvip/simple-rtmp-server
|
# Description: https://github.com/simple-rtmp-server/srs
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# the config of ROOT, user must modify it when start srs from other directory,
|
# the config of ROOT, user must modify it when start srs from other directory,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# Default-Start: 2 3 4 5
|
# Default-Start: 2 3 4 5
|
||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
# Short-Description: simple-rtmp-server(srs)
|
# Short-Description: simple-rtmp-server(srs)
|
||||||
# Description: https://github.com/winlinvip/simple-rtmp-server
|
# Description: https://github.com/simple-rtmp-server/srs
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# the config of ROOT, user must modify it when start srs from other directory,
|
# the config of ROOT, user must modify it when start srs from other directory,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# Default-Start: 2 3 4 5
|
# Default-Start: 2 3 4 5
|
||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
# Short-Description: simple-rtmp-server(srs)
|
# Short-Description: simple-rtmp-server(srs)
|
||||||
# Description: https://github.com/winlinvip/simple-rtmp-server
|
# Description: https://github.com/simple-rtmp-server/srs
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# the config of ROOT, user must modify it when start srs from other directory,
|
# the config of ROOT, user must modify it when start srs from other directory,
|
||||||
|
|
|
@ -1088,7 +1088,7 @@ if len(sys.argv) <= 1:
|
||||||
print "For example:"
|
print "For example:"
|
||||||
print " python %s 8085"%(sys.argv[0])
|
print " python %s 8085"%(sys.argv[0])
|
||||||
print ""
|
print ""
|
||||||
print "See also: https://github.com/winlinvip/simple-rtmp-server"
|
print "See also: https://github.com/simple-rtmp-server/srs"
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# parse port from user options.
|
# parse port from user options.
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<hr>
|
<hr>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
# see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm
|
# see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm
|
||||||
arm-linux-gnueabi-g++ -o jmp jmp.cpp -static
|
arm-linux-gnueabi-g++ -o jmp jmp.cpp -static
|
||||||
arm-linux-gnueabi-strip jmp
|
arm-linux-gnueabi-strip jmp
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
# see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm
|
# see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm
|
||||||
arm-linux-gnueabi-g++ -g -o jmp_sp jmp_sp.cpp -static
|
arm-linux-gnueabi-g++ -g -o jmp_sp jmp_sp.cpp -static
|
||||||
arm-linux-gnueabi-strip jmp_sp
|
arm-linux-gnueabi-strip jmp_sp
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
# see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLinuxArm
|
# see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm
|
||||||
arm-linux-gnueabi-g++ -o test test.cpp -static
|
arm-linux-gnueabi-g++ -o test test.cpp -static
|
||||||
arm-linux-gnueabi-strip test
|
arm-linux-gnueabi-strip test
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -32,7 +32,7 @@ help:
|
||||||
@echo "Remark: srs Makefile will auto invoke this by --with/without-ssl, "
|
@echo "Remark: srs Makefile will auto invoke this by --with/without-ssl, "
|
||||||
@echo " that is, if user specified ssl(by --with-ssl), srs will make this by 'make ssl'"
|
@echo " that is, if user specified ssl(by --with-ssl), srs will make this by 'make ssl'"
|
||||||
@echo " that is, if user not use ssl(by --without-ssl), use 'make nossl'"
|
@echo " that is, if user not use ssl(by --without-ssl), use 'make nossl'"
|
||||||
@echo " see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_v1_Build"
|
@echo " see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_v1_Build"
|
||||||
@echo "Remark: before make this sample, user must make the srs, with/without ssl"
|
@echo "Remark: before make this sample, user must make the srs, with/without ssl"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
|
@ -43,7 +43,7 @@ int main(int argc, char** argv)
|
||||||
printf("srs(simple-rtmp-server) client librtmp library.\n");
|
printf("srs(simple-rtmp-server) client librtmp library.\n");
|
||||||
printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision());
|
printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision());
|
||||||
// warn it .
|
// warn it .
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/126
|
// @see: https://github.com/simple-rtmp-server/srs/issues/126
|
||||||
printf("\033[33m%s\033[0m",
|
printf("\033[33m%s\033[0m",
|
||||||
"[warning] it's only a sample to use librtmp. "
|
"[warning] it's only a sample to use librtmp. "
|
||||||
"please never use it to publish and test forward/transcode/edge/HLS whatever. "
|
"please never use it to publish and test forward/transcode/edge/HLS whatever. "
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<hr>
|
<hr>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -126,7 +126,7 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -116,7 +116,7 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div id="player"></div>
|
<div id="player"></div>
|
||||||
|
|
|
@ -781,7 +781,7 @@
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -297,7 +297,7 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<hr/>
|
<hr/>
|
||||||
<span>
|
<span>
|
||||||
注意:必须按照<a href="https://github.com/winlinvip/simple-rtmp-server/wiki/SampleDemo">SRS DEMO</a>
|
注意:必须按照<a href="https://github.com/simple-rtmp-server/srs/wiki/SampleDemo">SRS DEMO</a>
|
||||||
启动和设置服务器,下面所有的链接才能观看。
|
启动和设置服务器,下面所有的链接才能观看。
|
||||||
</span>
|
</span>
|
||||||
<div class="accordion" id="main_accordion">
|
<div class="accordion" id="main_accordion">
|
||||||
|
@ -462,7 +462,7 @@
|
||||||
<div id="main_modal" class="modal hide fade">
|
<div id="main_modal" class="modal hide fade">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
<h3><a href="https://github.com/winlinvip/simple-rtmp-server">SrsPlayer</a></h3>
|
<h3><a href="https://github.com/simple-rtmp-server/srs">SrsPlayer</a></h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div id="player"></div>
|
<div id="player"></div>
|
||||||
|
@ -523,7 +523,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
|
@ -460,7 +460,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<hr>
|
<hr>
|
||||||
<footer>
|
<footer>
|
||||||
<p><a href="https://github.com/winlinvip/simple-rtmp-server">SRS Team © 2013</a></p>
|
<p><a href="https://github.com/simple-rtmp-server/srs">SRS Team © 2013</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -108,7 +108,7 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LinuxService"
|
echo "see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_LinuxService"
|
||||||
echo "install success, you can:"
|
echo "install success, you can:"
|
||||||
echo -e "${GREEN} sudo /etc/init.d/srs start${BLACK}"
|
echo -e "${GREEN} sudo /etc/init.d/srs start${BLACK}"
|
||||||
echo "srs root is ${INSTALL}"
|
echo "srs root is ${INSTALL}"
|
||||||
|
|
|
@ -108,7 +108,7 @@ fi
|
||||||
ok_msg "real os is ${os_name}-${os_major_version} ${os_release} ${os_machine}"
|
ok_msg "real os is ${os_name}-${os_major_version} ${os_release} ${os_machine}"
|
||||||
|
|
||||||
# build srs
|
# build srs
|
||||||
# @see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Build
|
# @see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Build
|
||||||
ok_msg "start build srs"
|
ok_msg "start build srs"
|
||||||
if [ $ARM = YES ]; then
|
if [ $ARM = YES ]; then
|
||||||
(
|
(
|
||||||
|
|
|
@ -51,4 +51,4 @@ echo -e "${GREEN}请在hosts中添加一行:${BLACK}"
|
||||||
echo -e "${RED} $ip demo.srs.com${BLACK}"
|
echo -e "${RED} $ip demo.srs.com${BLACK}"
|
||||||
echo -e "${GREEN}演示地址:${BLACK}"
|
echo -e "${GREEN}演示地址:${BLACK}"
|
||||||
echo -e "${RED} http://$ip:$port${BLACK}"
|
echo -e "${RED} http://$ip:$port${BLACK}"
|
||||||
echo -e "@see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SampleDemo"
|
echo -e "@see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo"
|
||||||
|
|
|
@ -252,7 +252,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample
|
||||||
// Table 1. A.9 ¨C MPEG-2 Audio profiles and MPEG-4 Audio object types
|
// Table 1. A.9 ¨C MPEG-2 Audio profiles and MPEG-4 Audio object types
|
||||||
// so the aac_profile should plus 1, not minus 1, and nginx-rtmp used it to
|
// so the aac_profile should plus 1, not minus 1, and nginx-rtmp used it to
|
||||||
// downcast aac SSR to LC.
|
// downcast aac SSR to LC.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/310
|
// @see https://github.com/simple-rtmp-server/srs/issues/310
|
||||||
// TODO: FIXME: fix the following in future version.
|
// TODO: FIXME: fix the following in future version.
|
||||||
// aac_profile = audioObjectType - 1
|
// aac_profile = audioObjectType - 1
|
||||||
aac_profile--;
|
aac_profile--;
|
||||||
|
@ -260,7 +260,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample
|
||||||
// TODO: FIXME: to support aac he/he-v2, see: ngx_rtmp_codec_parse_aac_header
|
// TODO: FIXME: to support aac he/he-v2, see: ngx_rtmp_codec_parse_aac_header
|
||||||
// @see: https://github.com/winlinvip/nginx-rtmp-module/commit/3a5f9eea78fc8d11e8be922aea9ac349b9dcbfc2
|
// @see: https://github.com/winlinvip/nginx-rtmp-module/commit/3a5f9eea78fc8d11e8be922aea9ac349b9dcbfc2
|
||||||
//
|
//
|
||||||
// donot force to LC, @see: https://github.com/winlinvip/simple-rtmp-server/issues/81
|
// donot force to LC, @see: https://github.com/simple-rtmp-server/srs/issues/81
|
||||||
// the source will print the sequence header info.
|
// the source will print the sequence header info.
|
||||||
//if (aac_profile > 3) {
|
//if (aac_profile > 3) {
|
||||||
// Mark all extended profiles as LC
|
// Mark all extended profiles as LC
|
||||||
|
@ -345,7 +345,7 @@ int SrsAvcAacCodec::video_avc_demux(char* data, int size, SrsCodecSample* sample
|
||||||
sample->frame_type = (SrsCodecVideoAVCFrame)frame_type;
|
sample->frame_type = (SrsCodecVideoAVCFrame)frame_type;
|
||||||
|
|
||||||
// ignore info frame without error,
|
// ignore info frame without error,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
|
// @see https://github.com/simple-rtmp-server/srs/issues/288#issuecomment-69863909
|
||||||
if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
|
if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
|
||||||
srs_warn("hls igone the info frame, ret=%d", ret);
|
srs_warn("hls igone the info frame, ret=%d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -489,7 +489,7 @@ int SrsAvcAacCodec::video_avc_demux(char* data, int size, SrsCodecSample* sample
|
||||||
}
|
}
|
||||||
|
|
||||||
// maybe stream is AnnexB format.
|
// maybe stream is AnnexB format.
|
||||||
// see: https://github.com/winlinvip/simple-rtmp-server/issues/183
|
// see: https://github.com/simple-rtmp-server/srs/issues/183
|
||||||
if (NALUnitLength < 0) {
|
if (NALUnitLength < 0) {
|
||||||
ret = ERROR_HLS_DECODE_ERROR;
|
ret = ERROR_HLS_DECODE_ERROR;
|
||||||
srs_error("maybe stream is AnnexB format. ret=%d", ret);
|
srs_error("maybe stream is AnnexB format. ret=%d", ret);
|
||||||
|
|
|
@ -48,7 +48,7 @@ using namespace std;
|
||||||
|
|
||||||
using namespace _srs_internal;
|
using namespace _srs_internal;
|
||||||
|
|
||||||
#define SRS_WIKI_URL_LOG "https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLog"
|
#define SRS_WIKI_URL_LOG "https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLog"
|
||||||
|
|
||||||
// '\n'
|
// '\n'
|
||||||
#define __LF (char)0x0a
|
#define __LF (char)0x0a
|
||||||
|
|
|
@ -478,7 +478,7 @@ public:
|
||||||
* whether debug_srs_upnode is enabled of vhost.
|
* whether debug_srs_upnode is enabled of vhost.
|
||||||
* debug_srs_upnode is very important feature for tracable log,
|
* debug_srs_upnode is very important feature for tracable log,
|
||||||
* but some server, for instance, flussonic donot support it.
|
* but some server, for instance, flussonic donot support it.
|
||||||
* @see https://github.com/winlinvip/simple-rtmp-server/issues/160
|
* @see https://github.com/simple-rtmp-server/srs/issues/160
|
||||||
* @return true when debug_srs_upnode is ok; otherwise, false.
|
* @return true when debug_srs_upnode is ok; otherwise, false.
|
||||||
* @remark, default true.
|
* @remark, default true.
|
||||||
*/
|
*/
|
||||||
|
@ -834,7 +834,7 @@ public:
|
||||||
* get the hls hls_on_error config.
|
* get the hls hls_on_error config.
|
||||||
* the ignore will ignore error and disable hls.
|
* the ignore will ignore error and disable hls.
|
||||||
* the disconnect will disconnect publish connection.
|
* the disconnect will disconnect publish connection.
|
||||||
* @see https://github.com/winlinvip/simple-rtmp-server/issues/264
|
* @see https://github.com/simple-rtmp-server/srs/issues/264
|
||||||
*/
|
*/
|
||||||
virtual std::string get_hls_on_error(std::string vhost);
|
virtual std::string get_hls_on_error(std::string vhost);
|
||||||
// dvr section
|
// dvr section
|
||||||
|
|
|
@ -36,7 +36,7 @@ SrsConnection::SrsConnection(SrsServer* srs_server, st_netfd_t client_stfd)
|
||||||
// the client thread should reap itself,
|
// the client thread should reap itself,
|
||||||
// so we never use joinable.
|
// so we never use joinable.
|
||||||
// TODO: FIXME: maybe other thread need to stop it.
|
// TODO: FIXME: maybe other thread need to stop it.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/78
|
// @see: https://github.com/simple-rtmp-server/srs/issues/78
|
||||||
pthread = new SrsThread(this, 0, false);
|
pthread = new SrsThread(this, 0, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -480,7 +480,7 @@ int SrsDvrSegmentPlan::update_duration(SrsSharedPtrMessage* msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// when wait keyframe, ignore if no frame arrived.
|
// when wait keyframe, ignore if no frame arrived.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/177
|
// @see https://github.com/simple-rtmp-server/srs/issues/177
|
||||||
if (_srs_config->get_dvr_wait_keyframe(_req->vhost)) {
|
if (_srs_config->get_dvr_wait_keyframe(_req->vhost)) {
|
||||||
if (!msg->header.is_video()) {
|
if (!msg->header.is_video()) {
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -219,7 +219,7 @@ int SrsEdgeIngester::connect_app(string ep_server, string ep_port)
|
||||||
}
|
}
|
||||||
|
|
||||||
// notify server the edge identity,
|
// notify server the edge identity,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
|
// @see https://github.com/simple-rtmp-server/srs/issues/147
|
||||||
SrsAmf0Object* data = req->args;
|
SrsAmf0Object* data = req->args;
|
||||||
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
|
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
|
||||||
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
|
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
|
||||||
|
@ -247,7 +247,7 @@ int SrsEdgeIngester::connect_app(string ep_server, string ep_port)
|
||||||
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
|
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
|
||||||
|
|
||||||
// upnode server identity will show in the connect_app of client.
|
// upnode server identity will show in the connect_app of client.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
|
// @see https://github.com/simple-rtmp-server/srs/issues/160
|
||||||
// the debug_srs_upnode is config in vhost and default to true.
|
// the debug_srs_upnode is config in vhost and default to true.
|
||||||
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
|
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
|
||||||
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
|
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
|
||||||
|
@ -330,7 +330,7 @@ int SrsEdgeIngester::connect_server(string& ep_server, string& ep_port)
|
||||||
|
|
||||||
SrsConfDirective* conf = _srs_config->get_vhost_edge_origin(_req->vhost);
|
SrsConfDirective* conf = _srs_config->get_vhost_edge_origin(_req->vhost);
|
||||||
|
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/79
|
// @see https://github.com/simple-rtmp-server/srs/issues/79
|
||||||
// when origin is error, for instance, server is shutdown,
|
// when origin is error, for instance, server is shutdown,
|
||||||
// then user remove the vhost then reload, the conf is empty.
|
// then user remove the vhost then reload, the conf is empty.
|
||||||
if (!conf) {
|
if (!conf) {
|
||||||
|
@ -651,7 +651,7 @@ int SrsEdgeForwarder::connect_app(string ep_server, string ep_port)
|
||||||
}
|
}
|
||||||
|
|
||||||
// notify server the edge identity,
|
// notify server the edge identity,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
|
// @see https://github.com/simple-rtmp-server/srs/issues/147
|
||||||
SrsAmf0Object* data = req->args;
|
SrsAmf0Object* data = req->args;
|
||||||
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
|
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
|
||||||
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
|
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
|
||||||
|
@ -679,7 +679,7 @@ int SrsEdgeForwarder::connect_app(string ep_server, string ep_port)
|
||||||
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
|
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
|
||||||
|
|
||||||
// upnode server identity will show in the connect_app of client.
|
// upnode server identity will show in the connect_app of client.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
|
// @see https://github.com/simple-rtmp-server/srs/issues/160
|
||||||
// the debug_srs_upnode is config in vhost and default to true.
|
// the debug_srs_upnode is config in vhost and default to true.
|
||||||
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
|
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
|
||||||
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
|
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
|
||||||
|
@ -816,7 +816,7 @@ int SrsPublishEdge::on_client_publish()
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/180
|
// @see https://github.com/simple-rtmp-server/srs/issues/180
|
||||||
// to avoid multiple publish the same stream on the same edge,
|
// to avoid multiple publish the same stream on the same edge,
|
||||||
// directly enter the publish stage.
|
// directly enter the publish stage.
|
||||||
if (true) {
|
if (true) {
|
||||||
|
@ -828,7 +828,7 @@ int SrsPublishEdge::on_client_publish()
|
||||||
// start to forward stream to origin.
|
// start to forward stream to origin.
|
||||||
ret = forwarder->start();
|
ret = forwarder->start();
|
||||||
|
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/180
|
// @see https://github.com/simple-rtmp-server/srs/issues/180
|
||||||
// when failed, revert to init
|
// when failed, revert to init
|
||||||
if (ret != ERROR_SUCCESS) {
|
if (ret != ERROR_SUCCESS) {
|
||||||
SrsEdgeState pstate = state;
|
SrsEdgeState pstate = state;
|
||||||
|
|
|
@ -171,7 +171,7 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @see, https://github.com/winlinvip/simple-rtmp-server/issues/145
|
// @see, https://github.com/simple-rtmp-server/srs/issues/145
|
||||||
if (acodec == SRS_RTMP_ENCODER_LIBAACPLUS) {
|
if (acodec == SRS_RTMP_ENCODER_LIBAACPLUS) {
|
||||||
if (abitrate < 16 || abitrate > 72) {
|
if (abitrate < 16 || abitrate > 72) {
|
||||||
ret = ERROR_ENCODER_ABITRATE;
|
ret = ERROR_ENCODER_ABITRATE;
|
||||||
|
@ -211,7 +211,7 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine)
|
||||||
|
|
||||||
// for not rtmp input, donot append the iformat,
|
// for not rtmp input, donot append the iformat,
|
||||||
// for example, "-f flv" before "-i udp://192.168.1.252:2222"
|
// for example, "-f flv" before "-i udp://192.168.1.252:2222"
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/290
|
// @see https://github.com/simple-rtmp-server/srs/issues/290
|
||||||
if (input.find("rtmp://") != 0) {
|
if (input.find("rtmp://") != 0) {
|
||||||
iformat = "";
|
iformat = "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -333,7 +333,7 @@ int SrsForwarder::connect_app(string ep_server, string ep_port)
|
||||||
}
|
}
|
||||||
|
|
||||||
// notify server the edge identity,
|
// notify server the edge identity,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
|
// @see https://github.com/simple-rtmp-server/srs/issues/147
|
||||||
SrsAmf0Object* data = req->args;
|
SrsAmf0Object* data = req->args;
|
||||||
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
|
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
|
||||||
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
|
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
|
||||||
|
@ -361,7 +361,7 @@ int SrsForwarder::connect_app(string ep_server, string ep_port)
|
||||||
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
|
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
|
||||||
|
|
||||||
// upnode server identity will show in the connect_app of client.
|
// upnode server identity will show in the connect_app of client.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
|
// @see https://github.com/simple-rtmp-server/srs/issues/160
|
||||||
// the debug_srs_upnode is config in vhost and default to true.
|
// the debug_srs_upnode is config in vhost and default to true.
|
||||||
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
|
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
|
||||||
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
|
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
|
||||||
|
|
|
@ -67,7 +67,7 @@ private:
|
||||||
SrsMessageQueue* queue;
|
SrsMessageQueue* queue;
|
||||||
/**
|
/**
|
||||||
* cache the sequence header for retry when slave is failed.
|
* cache the sequence header for retry when slave is failed.
|
||||||
* @see https://github.com/winlinvip/simple-rtmp-server/issues/150
|
* @see https://github.com/simple-rtmp-server/srs/issues/150
|
||||||
*/
|
*/
|
||||||
SrsSharedPtrMessage* sh_audio;
|
SrsSharedPtrMessage* sh_audio;
|
||||||
SrsSharedPtrMessage* sh_video;
|
SrsSharedPtrMessage* sh_video;
|
||||||
|
|
|
@ -79,7 +79,7 @@ using namespace std;
|
||||||
// @see: NGX_RTMP_HLS_DELAY,
|
// @see: NGX_RTMP_HLS_DELAY,
|
||||||
// 63000: 700ms, ts_tbn=90000
|
// 63000: 700ms, ts_tbn=90000
|
||||||
// 72000: 800ms, ts_tbn=90000
|
// 72000: 800ms, ts_tbn=90000
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71352511
|
// @see https://github.com/simple-rtmp-server/srs/issues/151#issuecomment-71352511
|
||||||
#define SRS_AUTO_HLS_DELAY 72000
|
#define SRS_AUTO_HLS_DELAY 72000
|
||||||
|
|
||||||
// the mpegts header specifed the video/audio pid.
|
// the mpegts header specifed the video/audio pid.
|
||||||
|
@ -138,7 +138,7 @@ u_int8_t mpegts_header[] = {
|
||||||
0xe1, 0x00,
|
0xe1, 0x00,
|
||||||
0xf0, 0x00,
|
0xf0, 0x00,
|
||||||
// must generate header with/without video, @see:
|
// must generate header with/without video, @see:
|
||||||
// https://github.com/winlinvip/simple-rtmp-server/issues/40
|
// https://github.com/simple-rtmp-server/srs/issues/40
|
||||||
0x1b, 0xe1, 0x00, 0xf0, 0x00, /* h264, pid=0x100=256 */
|
0x1b, 0xe1, 0x00, 0xf0, 0x00, /* h264, pid=0x100=256 */
|
||||||
0x0f, 0xe1, 0x01, 0xf0, 0x00, /* aac, pid=0x101=257 */
|
0x0f, 0xe1, 0x01, 0xf0, 0x00, /* aac, pid=0x101=257 */
|
||||||
/*0x03, 0xe1, 0x01, 0xf0, 0x00,*/ /* mp3 */
|
/*0x03, 0xe1, 0x01, 0xf0, 0x00,*/ /* mp3 */
|
||||||
|
@ -239,7 +239,7 @@ public:
|
||||||
p[-1] |= 0x20; // Both Adaption and Payload
|
p[-1] |= 0x20; // Both Adaption and Payload
|
||||||
*p++ = 7; // size
|
*p++ = 7; // size
|
||||||
*p++ = 0x50; // random access + PCR
|
*p++ = 0x50; // random access + PCR
|
||||||
// about the pcr, read https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71352511
|
// about the pcr, read https://github.com/simple-rtmp-server/srs/issues/151#issuecomment-71352511
|
||||||
p = write_pcr(p, frame->dts);
|
p = write_pcr(p, frame->dts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,7 +373,7 @@ private:
|
||||||
{
|
{
|
||||||
// the pcr=dts-delay, where dts = frame->dts + delay
|
// the pcr=dts-delay, where dts = frame->dts + delay
|
||||||
// and the pcr should never be negative
|
// and the pcr should never be negative
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/268
|
// @see https://github.com/simple-rtmp-server/srs/issues/268
|
||||||
srs_assert(pcr >= 0);
|
srs_assert(pcr >= 0);
|
||||||
|
|
||||||
int64_t v = pcr;
|
int64_t v = pcr;
|
||||||
|
@ -1099,9 +1099,9 @@ int SrsHlsCache::write_audio(SrsAvcAacCodec* codec, SrsHlsMuxer* muxer, int64_t
|
||||||
// for example, pure audio when start, audio/video when publishing,
|
// for example, pure audio when start, audio/video when publishing,
|
||||||
// pure audio again for audio disabled.
|
// pure audio again for audio disabled.
|
||||||
// so we reap event when the audio incoming when segment overflow.
|
// so we reap event when the audio incoming when segment overflow.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/151
|
// @see https://github.com/simple-rtmp-server/srs/issues/151
|
||||||
// we use absolutely overflow of segment to make jwplayer/ffplay happy
|
// we use absolutely overflow of segment to make jwplayer/ffplay happy
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184
|
// @see https://github.com/simple-rtmp-server/srs/issues/151#issuecomment-71155184
|
||||||
if (muxer->is_segment_absolutely_overflow()) {
|
if (muxer->is_segment_absolutely_overflow()) {
|
||||||
if ((ret = reap_segment("audio", muxer, af->pts)) != ERROR_SUCCESS) {
|
if ((ret = reap_segment("audio", muxer, af->pts)) != ERROR_SUCCESS) {
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1290,7 +1290,7 @@ int SrsHlsCache::cache_video(SrsAvcAacCodec* codec, SrsCodecSample* sample)
|
||||||
if (!aud_sent) {
|
if (!aud_sent) {
|
||||||
// @remark, when got type 9, we donot send aud_nal, but it will make
|
// @remark, when got type 9, we donot send aud_nal, but it will make
|
||||||
// ios unhappy, so we remove it.
|
// ios unhappy, so we remove it.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/281
|
// @see https://github.com/simple-rtmp-server/srs/issues/281
|
||||||
/*if (nal_unit_type == 9) {
|
/*if (nal_unit_type == 9) {
|
||||||
aud_sent = true;
|
aud_sent = true;
|
||||||
}*/
|
}*/
|
||||||
|
@ -1508,7 +1508,7 @@ int SrsHls::on_video(SrsSharedPtrMessage* video)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ignore info frame,
|
// ignore info frame,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
|
// @see https://github.com/simple-rtmp-server/srs/issues/288#issuecomment-69863909
|
||||||
if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
|
if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1545,7 +1545,7 @@ void SrsHls::hls_mux()
|
||||||
// reportable
|
// reportable
|
||||||
if (pithy_print->can_print()) {
|
if (pithy_print->can_print()) {
|
||||||
// the run time is not equals to stream time,
|
// the run time is not equals to stream time,
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/81#issuecomment-48100994
|
// @see: https://github.com/simple-rtmp-server/srs/issues/81#issuecomment-48100994
|
||||||
// it's ok.
|
// it's ok.
|
||||||
srs_trace("-> "SRS_CONSTS_LOG_HLS
|
srs_trace("-> "SRS_CONSTS_LOG_HLS
|
||||||
" time=%"PRId64", stream dts=%"PRId64"(%"PRId64"ms), sequence_no=%d",
|
" time=%"PRId64", stream dts=%"PRId64"(%"PRId64"ms), sequence_no=%d",
|
||||||
|
|
|
@ -199,7 +199,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* whether segment absolutely overflow, for pure audio to reap segment,
|
* whether segment absolutely overflow, for pure audio to reap segment,
|
||||||
* that is whether the current segment duration>=2*(the segment in config)
|
* that is whether the current segment duration>=2*(the segment in config)
|
||||||
* @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184
|
* @see https://github.com/simple-rtmp-server/srs/issues/151#issuecomment-71155184
|
||||||
*/
|
*/
|
||||||
virtual bool is_segment_absolutely_overflow();
|
virtual bool is_segment_absolutely_overflow();
|
||||||
virtual int flush_audio(SrsMpegtsFrame* af, SrsBuffer* ab);
|
virtual int flush_audio(SrsMpegtsFrame* af, SrsBuffer* ab);
|
||||||
|
|
|
@ -163,7 +163,7 @@ int SrsHttpVhost::do_process_request(SrsStSocket* skt, SrsHttpMessage* req)
|
||||||
{
|
{
|
||||||
std::string fullpath = get_request_file(req);
|
std::string fullpath = get_request_file(req);
|
||||||
|
|
||||||
// TODO: FIXME: support mp4, @see https://github.com/winlinvip/simple-rtmp-server/issues/174
|
// TODO: FIXME: support mp4, @see https://github.com/simple-rtmp-server/srs/issues/174
|
||||||
if (srs_string_ends_with(fullpath, ".ts")) {
|
if (srs_string_ends_with(fullpath, ".ts")) {
|
||||||
return response_ts_file(skt, req, fullpath);
|
return response_ts_file(skt, req, fullpath);
|
||||||
} else if (srs_string_ends_with(fullpath, ".flv") || srs_string_ends_with(fullpath, ".fhv")) {
|
} else if (srs_string_ends_with(fullpath, ".flv") || srs_string_ends_with(fullpath, ".fhv")) {
|
||||||
|
|
|
@ -36,7 +36,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
* when reload callback, the config is updated yet.
|
* when reload callback, the config is updated yet.
|
||||||
*
|
*
|
||||||
* features not support reload,
|
* features not support reload,
|
||||||
* @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Reload#notsupportedfeatures
|
* @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Reload#notsupportedfeatures
|
||||||
*/
|
*/
|
||||||
class ISrsReloadHandler
|
class ISrsReloadHandler
|
||||||
{
|
{
|
||||||
|
|
|
@ -245,7 +245,7 @@ int SrsRtmpConn::service_cycle()
|
||||||
}
|
}
|
||||||
|
|
||||||
// do token traverse before serve it.
|
// do token traverse before serve it.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/pull/239
|
// @see https://github.com/simple-rtmp-server/srs/pull/239
|
||||||
bool vhost_is_edge = _srs_config->get_vhost_is_edge(req->vhost);
|
bool vhost_is_edge = _srs_config->get_vhost_is_edge(req->vhost);
|
||||||
bool edge_traverse = _srs_config->get_vhost_edge_token_traverse(req->vhost);
|
bool edge_traverse = _srs_config->get_vhost_edge_token_traverse(req->vhost);
|
||||||
if (vhost_is_edge && edge_traverse) {
|
if (vhost_is_edge && edge_traverse) {
|
||||||
|
@ -296,7 +296,7 @@ int SrsRtmpConn::service_cycle()
|
||||||
// logical accept and retry stream service.
|
// logical accept and retry stream service.
|
||||||
if (ret == ERROR_CONTROL_RTMP_CLOSE) {
|
if (ret == ERROR_CONTROL_RTMP_CLOSE) {
|
||||||
// TODO: FIXME: use ping message to anti-death of socket.
|
// TODO: FIXME: use ping message to anti-death of socket.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/39
|
// @see: https://github.com/simple-rtmp-server/srs/issues/39
|
||||||
// set timeout to a larger value, for user paused.
|
// set timeout to a larger value, for user paused.
|
||||||
rtmp->set_recv_timeout(SRS_PAUSED_RECV_TIMEOUT_US);
|
rtmp->set_recv_timeout(SRS_PAUSED_RECV_TIMEOUT_US);
|
||||||
rtmp->set_send_timeout(SRS_PAUSED_SEND_TIMEOUT_US);
|
rtmp->set_send_timeout(SRS_PAUSED_SEND_TIMEOUT_US);
|
||||||
|
@ -604,7 +604,7 @@ int SrsRtmpConn::playing(SrsSource* source)
|
||||||
}
|
}
|
||||||
|
|
||||||
// if duration specified, and exceed it, stop play live.
|
// if duration specified, and exceed it, stop play live.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/45
|
// @see: https://github.com/simple-rtmp-server/srs/issues/45
|
||||||
if (user_specified_duration_to_stop) {
|
if (user_specified_duration_to_stop) {
|
||||||
if (duration >= (int64_t)req->duration) {
|
if (duration >= (int64_t)req->duration) {
|
||||||
ret = ERROR_RTMP_DURATION_EXCEED;
|
ret = ERROR_RTMP_DURATION_EXCEED;
|
||||||
|
@ -919,7 +919,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg
|
||||||
SrsAutoFree(SrsPacket, pkt);
|
SrsAutoFree(SrsPacket, pkt);
|
||||||
|
|
||||||
// for jwplayer/flowplayer, which send close as pause message.
|
// for jwplayer/flowplayer, which send close as pause message.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/6
|
// @see https://github.com/simple-rtmp-server/srs/issues/6
|
||||||
SrsCloseStreamPacket* close = dynamic_cast<SrsCloseStreamPacket*>(pkt);
|
SrsCloseStreamPacket* close = dynamic_cast<SrsCloseStreamPacket*>(pkt);
|
||||||
if (close) {
|
if (close) {
|
||||||
ret = ERROR_CONTROL_RTMP_CLOSE;
|
ret = ERROR_CONTROL_RTMP_CLOSE;
|
||||||
|
@ -929,7 +929,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsMessage* msg
|
||||||
|
|
||||||
// call msg,
|
// call msg,
|
||||||
// support response null first,
|
// support response null first,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/106
|
// @see https://github.com/simple-rtmp-server/srs/issues/106
|
||||||
// TODO: FIXME: response in right way, or forward in edge mode.
|
// TODO: FIXME: response in right way, or forward in edge mode.
|
||||||
SrsCallPacket* call = dynamic_cast<SrsCallPacket*>(pkt);
|
SrsCallPacket* call = dynamic_cast<SrsCallPacket*>(pkt);
|
||||||
if (call) {
|
if (call) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ private:
|
||||||
SrsBandwidth* bandwidth;
|
SrsBandwidth* bandwidth;
|
||||||
// elapse duration in ms
|
// elapse duration in ms
|
||||||
// for live play duration, for instance, rtmpdump to record.
|
// for live play duration, for instance, rtmpdump to record.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/47
|
// @see https://github.com/simple-rtmp-server/srs/issues/47
|
||||||
int64_t duration;
|
int64_t duration;
|
||||||
SrsKbps* kbps;
|
SrsKbps* kbps;
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -252,7 +252,7 @@ void SrsMessageQueue::shrink()
|
||||||
// it is ok to clear for audio, for the shrink tell us the queue is full.
|
// it is ok to clear for audio, for the shrink tell us the queue is full.
|
||||||
// for video, we clear util the I-Frame, for the decoding must start from I-frame,
|
// for video, we clear util the I-Frame, for the decoding must start from I-frame,
|
||||||
// for audio, it's ok to clear any data, also we can clear the whole queue.
|
// for audio, it's ok to clear any data, also we can clear the whole queue.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/134
|
// @see: https://github.com/simple-rtmp-server/srs/issues/134
|
||||||
if (iframe_index < 0) {
|
if (iframe_index < 0) {
|
||||||
clear();
|
clear();
|
||||||
return;
|
return;
|
||||||
|
@ -1057,7 +1057,7 @@ int SrsSource::on_audio(SrsMessage* __audio)
|
||||||
#ifdef SRS_AUTO_HLS
|
#ifdef SRS_AUTO_HLS
|
||||||
if ((ret = hls->on_audio(msg.copy())) != ERROR_SUCCESS) {
|
if ((ret = hls->on_audio(msg.copy())) != ERROR_SUCCESS) {
|
||||||
// apply the error strategy for hls.
|
// apply the error strategy for hls.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/264
|
// @see https://github.com/simple-rtmp-server/srs/issues/264
|
||||||
std::string hls_error_strategy = _srs_config->get_hls_on_error(_req->vhost);
|
std::string hls_error_strategy = _srs_config->get_hls_on_error(_req->vhost);
|
||||||
if (hls_error_strategy == SRS_CONF_DEFAULT_HLS_ON_ERROR_IGNORE) {
|
if (hls_error_strategy == SRS_CONF_DEFAULT_HLS_ON_ERROR_IGNORE) {
|
||||||
srs_warn("hls process audio message failed, ignore and disable hls. ret=%d", ret);
|
srs_warn("hls process audio message failed, ignore and disable hls. ret=%d", ret);
|
||||||
|
@ -1183,7 +1183,7 @@ int SrsSource::on_video(SrsMessage* __video)
|
||||||
#ifdef SRS_AUTO_HLS
|
#ifdef SRS_AUTO_HLS
|
||||||
if ((ret = hls->on_video(msg.copy())) != ERROR_SUCCESS) {
|
if ((ret = hls->on_video(msg.copy())) != ERROR_SUCCESS) {
|
||||||
// apply the error strategy for hls.
|
// apply the error strategy for hls.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/264
|
// @see https://github.com/simple-rtmp-server/srs/issues/264
|
||||||
std::string hls_error_strategy = _srs_config->get_hls_on_error(_req->vhost);
|
std::string hls_error_strategy = _srs_config->get_hls_on_error(_req->vhost);
|
||||||
if (hls_error_strategy == SRS_CONF_DEFAULT_HLS_ON_ERROR_IGNORE) {
|
if (hls_error_strategy == SRS_CONF_DEFAULT_HLS_ON_ERROR_IGNORE) {
|
||||||
srs_warn("hls process video message failed, ignore and disable hls. ret=%d", ret);
|
srs_warn("hls process video message failed, ignore and disable hls. ret=%d", ret);
|
||||||
|
|
|
@ -222,7 +222,7 @@ private:
|
||||||
*
|
*
|
||||||
* @remark, it is ok for performance, for when we clear the gop cache,
|
* @remark, it is ok for performance, for when we clear the gop cache,
|
||||||
* gop cache is disabled for pure audio stream.
|
* gop cache is disabled for pure audio stream.
|
||||||
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/124
|
* @see: https://github.com/simple-rtmp-server/srs/issues/124
|
||||||
*/
|
*/
|
||||||
int audio_after_last_video_count;
|
int audio_after_last_video_count;
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -44,7 +44,7 @@ int srs_init_st()
|
||||||
int ret = ERROR_SUCCESS;
|
int ret = ERROR_SUCCESS;
|
||||||
|
|
||||||
// check epoll, some old linux donot support epoll.
|
// check epoll, some old linux donot support epoll.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/162
|
// @see https://github.com/simple-rtmp-server/srs/issues/162
|
||||||
if (!srs_st_epoll_is_supported()) {
|
if (!srs_st_epoll_is_supported()) {
|
||||||
ret = ERROR_ST_SET_EPOLL;
|
ret = ERROR_ST_SET_EPOLL;
|
||||||
srs_error("epoll required. ret=%d", ret);
|
srs_error("epoll required. ret=%d", ret);
|
||||||
|
|
|
@ -84,7 +84,7 @@ int SrsStSocket::read(void* buf, size_t size, ssize_t* nread)
|
||||||
// (a value of 0 means the network connection is closed or end of file is reached).
|
// (a value of 0 means the network connection is closed or end of file is reached).
|
||||||
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
||||||
if (nb_read <= 0) {
|
if (nb_read <= 0) {
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
|
// @see https://github.com/simple-rtmp-server/srs/issues/200
|
||||||
if (nb_read < 0 && errno == ETIME) {
|
if (nb_read < 0 && errno == ETIME) {
|
||||||
return ERROR_SOCKET_TIMEOUT;
|
return ERROR_SOCKET_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ int SrsStSocket::read_fully(void* buf, size_t size, ssize_t* nread)
|
||||||
// (a value less than nbyte means the network connection is closed or end of file is reached)
|
// (a value less than nbyte means the network connection is closed or end of file is reached)
|
||||||
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
||||||
if (nb_read != (ssize_t)size) {
|
if (nb_read != (ssize_t)size) {
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
|
// @see https://github.com/simple-rtmp-server/srs/issues/200
|
||||||
if (nb_read < 0 && errno == ETIME) {
|
if (nb_read < 0 && errno == ETIME) {
|
||||||
return ERROR_SOCKET_TIMEOUT;
|
return ERROR_SOCKET_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@ int SrsStSocket::write(void* buf, size_t size, ssize_t* nwrite)
|
||||||
// On success a non-negative integer equal to nbyte is returned.
|
// On success a non-negative integer equal to nbyte is returned.
|
||||||
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
||||||
if (nb_write <= 0) {
|
if (nb_write <= 0) {
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
|
// @see https://github.com/simple-rtmp-server/srs/issues/200
|
||||||
if (nb_write < 0 && errno == ETIME) {
|
if (nb_write < 0 && errno == ETIME) {
|
||||||
return ERROR_SOCKET_TIMEOUT;
|
return ERROR_SOCKET_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ int SrsStSocket::writev(const iovec *iov, int iov_size, ssize_t* nwrite)
|
||||||
// On success a non-negative integer equal to nbyte is returned.
|
// On success a non-negative integer equal to nbyte is returned.
|
||||||
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
|
||||||
if (nb_write <= 0) {
|
if (nb_write <= 0) {
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
|
// @see https://github.com/simple-rtmp-server/srs/issues/200
|
||||||
if (nb_write < 0 && errno == ETIME) {
|
if (nb_write < 0 && errno == ETIME) {
|
||||||
return ERROR_SOCKET_TIMEOUT;
|
return ERROR_SOCKET_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ SrsThread::SrsThread(ISrsThreadHandler* thread_handler, int64_t interval_us, boo
|
||||||
|
|
||||||
// in start(), the thread cycle method maybe stop and remove the thread itself,
|
// in start(), the thread cycle method maybe stop and remove the thread itself,
|
||||||
// and the thread start() is waiting for the _cid, and segment fault then.
|
// and the thread start() is waiting for the _cid, and segment fault then.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/110
|
// @see https://github.com/simple-rtmp-server/srs/issues/110
|
||||||
// thread will set _cid, callback on_thread_start(), then wait for the can_run signal.
|
// thread will set _cid, callback on_thread_start(), then wait for the can_run signal.
|
||||||
can_run = false;
|
can_run = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,11 +100,11 @@ public:
|
||||||
* @param interval_us, the sleep interval when cycle finished.
|
* @param interval_us, the sleep interval when cycle finished.
|
||||||
* @param joinable, if joinable, other thread must stop the thread.
|
* @param joinable, if joinable, other thread must stop the thread.
|
||||||
* @remark if joinable, thread never quit itself, or memory leak.
|
* @remark if joinable, thread never quit itself, or memory leak.
|
||||||
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/78
|
* @see: https://github.com/simple-rtmp-server/srs/issues/78
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* TODO: FIXME: maybe all thread must be reap by others threads,
|
* TODO: FIXME: maybe all thread must be reap by others threads,
|
||||||
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/77
|
* @see: https://github.com/simple-rtmp-server/srs/issues/77
|
||||||
*/
|
*/
|
||||||
SrsThread(ISrsThreadHandler* thread_handler, int64_t interval_us, bool joinable);
|
SrsThread(ISrsThreadHandler* thread_handler, int64_t interval_us, bool joinable);
|
||||||
virtual ~SrsThread();
|
virtual ~SrsThread();
|
||||||
|
|
|
@ -931,7 +931,7 @@ void retrieve_local_ipv4_ips()
|
||||||
// retrieve ipv4 addr
|
// retrieve ipv4 addr
|
||||||
// ignore the tun0 network device,
|
// ignore the tun0 network device,
|
||||||
// which addr is NULL.
|
// which addr is NULL.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/141
|
// @see: https://github.com/simple-rtmp-server/srs/issues/141
|
||||||
if (addr && addr->sa_family == AF_INET) {
|
if (addr && addr->sa_family == AF_INET) {
|
||||||
in_addr* inaddr = &((sockaddr_in*)addr)->sin_addr;
|
in_addr* inaddr = &((sockaddr_in*)addr)->sin_addr;
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#define RTMP_SIG_SRS_AUTHROS "wenjie.zhao"
|
#define RTMP_SIG_SRS_AUTHROS "wenjie.zhao"
|
||||||
#define RTMP_SIG_SRS_CONTRIBUTORS_URL RTMP_SIG_SRS_URL"/blob/master/AUTHORS.txt"
|
#define RTMP_SIG_SRS_CONTRIBUTORS_URL RTMP_SIG_SRS_URL"/blob/master/AUTHORS.txt"
|
||||||
#define RTMP_SIG_SRS_HANDSHAKE RTMP_SIG_SRS_KEY"("RTMP_SIG_SRS_VERSION")"
|
#define RTMP_SIG_SRS_HANDSHAKE RTMP_SIG_SRS_KEY"("RTMP_SIG_SRS_VERSION")"
|
||||||
#define RTMP_SIG_SRS_RELEASE "https://github.com/winlinvip/simple-rtmp-server/tree/1.0release"
|
#define RTMP_SIG_SRS_RELEASE "https://github.com/simple-rtmp-server/srs/tree/1.0release"
|
||||||
#define RTMP_SIG_SRS_HTTP_SERVER "https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPServer#feature"
|
#define RTMP_SIG_SRS_HTTP_SERVER "https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPServer#feature"
|
||||||
#define RTMP_SIG_SRS_VERSION __SRS_XSTR(VERSION_MAJOR)"."__SRS_XSTR(VERSION_MINOR)"."__SRS_XSTR(VERSION_REVISION)
|
#define RTMP_SIG_SRS_VERSION __SRS_XSTR(VERSION_MAJOR)"."__SRS_XSTR(VERSION_MINOR)"."__SRS_XSTR(VERSION_REVISION)
|
||||||
#define RTMP_SIG_SRS_SERVER RTMP_SIG_SRS_KEY"/"RTMP_SIG_SRS_VERSION"("RTMP_SIG_SRS_CODE")"
|
#define RTMP_SIG_SRS_SERVER RTMP_SIG_SRS_KEY"/"RTMP_SIG_SRS_VERSION"("RTMP_SIG_SRS_CODE")"
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ void srs_update_system_time_ms()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/35
|
// @see: https://github.com/simple-rtmp-server/srs/issues/35
|
||||||
// we must convert the tv_sec/tv_usec to int64_t.
|
// we must convert the tv_sec/tv_usec to int64_t.
|
||||||
int64_t now_us = ((int64_t)now.tv_sec) * 1000 * 1000 + (int64_t)now.tv_usec;
|
int64_t now_us = ((int64_t)now.tv_sec) * 1000 * 1000 + (int64_t)now.tv_usec;
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ void srs_update_system_time_ms()
|
||||||
if (diff < 0 || diff > 1000 * SYS_TIME_RESOLUTION_US) {
|
if (diff < 0 || diff > 1000 * SYS_TIME_RESOLUTION_US) {
|
||||||
srs_warn("system time jump, history=%"PRId64"us, now=%"PRId64"us, diff=%"PRId64"us",
|
srs_warn("system time jump, history=%"PRId64"us, now=%"PRId64"us, diff=%"PRId64"us",
|
||||||
_srs_system_time_us_cache, now_us, diff);
|
_srs_system_time_us_cache, now_us, diff);
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/109
|
// @see: https://github.com/simple-rtmp-server/srs/issues/109
|
||||||
_srs_system_time_startup_time += diff;
|
_srs_system_time_startup_time += diff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,7 @@ int SimpleSocketStream::writev(const iovec *iov, int iov_size, ssize_t* nwrite)
|
||||||
// the writev() function returns the number of bytes written. On error, -1 is
|
// the writev() function returns the number of bytes written. On error, -1 is
|
||||||
// returned, and errno is set appropriately.
|
// returned, and errno is set appropriately.
|
||||||
if (nb_write <= 0) {
|
if (nb_write <= 0) {
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
|
// @see https://github.com/simple-rtmp-server/srs/issues/200
|
||||||
if (nb_write < 0 && errno == ETIME) {
|
if (nb_write < 0 && errno == ETIME) {
|
||||||
return ERROR_SOCKET_TIMEOUT;
|
return ERROR_SOCKET_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ int SimpleSocketStream::write(void* buf, size_t size, ssize_t* nwrite)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nb_write <= 0) {
|
if (nb_write <= 0) {
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
|
// @see https://github.com/simple-rtmp-server/srs/issues/200
|
||||||
if (nb_write < 0 && errno == ETIME) {
|
if (nb_write < 0 && errno == ETIME) {
|
||||||
return ERROR_SOCKET_TIMEOUT;
|
return ERROR_SOCKET_TIMEOUT;
|
||||||
}
|
}
|
||||||
|
|
|
@ -203,7 +203,7 @@ int main(int argc, char** argv)
|
||||||
// for special features.
|
// for special features.
|
||||||
#ifdef SRS_AUTO_HTTP_SERVER
|
#ifdef SRS_AUTO_HTTP_SERVER
|
||||||
srs_warn("http server is dev feature, "
|
srs_warn("http server is dev feature, "
|
||||||
"@see https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_HTTPServer#feature");
|
"@see https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPServer#feature");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -201,12 +201,12 @@ namespace _srs_internal
|
||||||
|
|
||||||
// maybe the key_size is 127, but dh will write all 128bytes pkey,
|
// maybe the key_size is 127, but dh will write all 128bytes pkey,
|
||||||
// so, donot need to set/initialize the pkey.
|
// so, donot need to set/initialize the pkey.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/165
|
// @see https://github.com/simple-rtmp-server/srs/issues/165
|
||||||
key_size = BN_bn2bin(pdh->pub_key, (unsigned char*)pkey);
|
key_size = BN_bn2bin(pdh->pub_key, (unsigned char*)pkey);
|
||||||
srs_assert(key_size > 0);
|
srs_assert(key_size > 0);
|
||||||
|
|
||||||
// output the size of public key.
|
// output the size of public key.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/165
|
// @see https://github.com/simple-rtmp-server/srs/issues/165
|
||||||
srs_assert(key_size <= pkey_size);
|
srs_assert(key_size <= pkey_size);
|
||||||
pkey_size = key_size;
|
pkey_size = key_size;
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ namespace _srs_internal
|
||||||
// if failed, donot return, do cleanup, @see ./test/dhtest.c:168
|
// if failed, donot return, do cleanup, @see ./test/dhtest.c:168
|
||||||
// maybe the key_size is 127, but dh will write all 128bytes skey,
|
// maybe the key_size is 127, but dh will write all 128bytes skey,
|
||||||
// so, donot need to set/initialize the skey.
|
// so, donot need to set/initialize the skey.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/165
|
// @see https://github.com/simple-rtmp-server/srs/issues/165
|
||||||
int32_t key_size = DH_compute_key((unsigned char*)skey, ppk, pdh);
|
int32_t key_size = DH_compute_key((unsigned char*)skey, ppk, pdh);
|
||||||
|
|
||||||
if (key_size < ppkey_size) {
|
if (key_size < ppkey_size) {
|
||||||
|
@ -945,7 +945,7 @@ namespace _srs_internal
|
||||||
srs_digest_block_init(&block1.digest);
|
srs_digest_block_init(&block1.digest);
|
||||||
|
|
||||||
// directly generate the public key.
|
// directly generate the public key.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/148
|
// @see: https://github.com/simple-rtmp-server/srs/issues/148
|
||||||
int pkey_size = 128;
|
int pkey_size = 128;
|
||||||
if ((ret = dh.copy_public_key(block0.key.key, pkey_size)) != ERROR_SUCCESS) {
|
if ((ret = dh.copy_public_key(block0.key.key, pkey_size)) != ERROR_SUCCESS) {
|
||||||
srs_error("calc s1 key failed. ret=%d", ret);
|
srs_error("calc s1 key failed. ret=%d", ret);
|
||||||
|
@ -957,7 +957,7 @@ namespace _srs_internal
|
||||||
srs_key_block_init(&block1.key);
|
srs_key_block_init(&block1.key);
|
||||||
|
|
||||||
// directly generate the public key.
|
// directly generate the public key.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/148
|
// @see: https://github.com/simple-rtmp-server/srs/issues/148
|
||||||
int pkey_size = 128;
|
int pkey_size = 128;
|
||||||
if ((ret = dh.copy_public_key(block1.key.key, pkey_size)) != ERROR_SUCCESS) {
|
if ((ret = dh.copy_public_key(block1.key.key, pkey_size)) != ERROR_SUCCESS) {
|
||||||
srs_error("calc s1 key failed. ret=%d", ret);
|
srs_error("calc s1 key failed. ret=%d", ret);
|
||||||
|
|
|
@ -290,7 +290,7 @@ int SrsHandshakeBytes::create_s0s1s2(const char* c1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// if c1 specified, copy c1 to s2.
|
// if c1 specified, copy c1 to s2.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/46
|
// @see: https://github.com/simple-rtmp-server/srs/issues/46
|
||||||
if (c1) {
|
if (c1) {
|
||||||
memcpy(s0s1s2 + 1537, c1, 1536);
|
memcpy(s0s1s2 + 1537, c1, 1536);
|
||||||
}
|
}
|
||||||
|
@ -478,7 +478,7 @@ int SrsRtmpClient::connect_app2(
|
||||||
}
|
}
|
||||||
pkt->command_object->set("objectEncoding", SrsAmf0Any::number(0));
|
pkt->command_object->set("objectEncoding", SrsAmf0Any::number(0));
|
||||||
|
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
|
// @see https://github.com/simple-rtmp-server/srs/issues/160
|
||||||
// the debug_srs_upnode is config in vhost and default to true.
|
// the debug_srs_upnode is config in vhost and default to true.
|
||||||
if (debug_srs_upnode && req && req->args) {
|
if (debug_srs_upnode && req && req->args) {
|
||||||
srs_freep(pkt->args);
|
srs_freep(pkt->args);
|
||||||
|
@ -1013,7 +1013,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string&
|
||||||
}
|
}
|
||||||
// call msg,
|
// call msg,
|
||||||
// support response null first,
|
// support response null first,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/106
|
// @see https://github.com/simple-rtmp-server/srs/issues/106
|
||||||
// TODO: FIXME: response in right way, or forward in edge mode.
|
// TODO: FIXME: response in right way, or forward in edge mode.
|
||||||
SrsCallPacket* call = dynamic_cast<SrsCallPacket*>(pkt);
|
SrsCallPacket* call = dynamic_cast<SrsCallPacket*>(pkt);
|
||||||
if (call) {
|
if (call) {
|
||||||
|
@ -1103,7 +1103,7 @@ int SrsRtmpServer::start_play(int stream_id)
|
||||||
SrsSampleAccessPacket* pkt = new SrsSampleAccessPacket();
|
SrsSampleAccessPacket* pkt = new SrsSampleAccessPacket();
|
||||||
|
|
||||||
// allow audio/video sample.
|
// allow audio/video sample.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/49
|
// @see: https://github.com/simple-rtmp-server/srs/issues/49
|
||||||
pkt->audio_sample_access = true;
|
pkt->audio_sample_access = true;
|
||||||
pkt->video_sample_access = true;
|
pkt->video_sample_access = true;
|
||||||
|
|
||||||
|
|
|
@ -81,12 +81,12 @@ public:
|
||||||
std::string stream;
|
std::string stream;
|
||||||
// for play live stream,
|
// for play live stream,
|
||||||
// used to specified the stop when exceed the duration.
|
// used to specified the stop when exceed the duration.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/45
|
// @see https://github.com/simple-rtmp-server/srs/issues/45
|
||||||
// in ms.
|
// in ms.
|
||||||
double duration;
|
double duration;
|
||||||
// the token in the connect request,
|
// the token in the connect request,
|
||||||
// used for edge traverse to origin authentication,
|
// used for edge traverse to origin authentication,
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/104
|
// @see https://github.com/simple-rtmp-server/srs/issues/104
|
||||||
SrsAmf0Object* args;
|
SrsAmf0Object* args;
|
||||||
public:
|
public:
|
||||||
SrsRequest();
|
SrsRequest();
|
||||||
|
|
|
@ -1131,7 +1131,7 @@ int SrsProtocol::read_message_header(SrsChunkStream* chunk, char fmt, int bh_siz
|
||||||
// 0x04 where: message_type=4(protocol control user-control message)
|
// 0x04 where: message_type=4(protocol control user-control message)
|
||||||
// 0x00 0x06 where: event Ping(0x06)
|
// 0x00 0x06 where: event Ping(0x06)
|
||||||
// 0x00 0x00 0x0d 0x0f where: event data 4bytes ping timestamp.
|
// 0x00 0x00 0x0d 0x0f where: event data 4bytes ping timestamp.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/98
|
// @see: https://github.com/simple-rtmp-server/srs/issues/98
|
||||||
if (chunk->cid == RTMP_CID_ProtocolControl && fmt == RTMP_FMT_TYPE1) {
|
if (chunk->cid == RTMP_CID_ProtocolControl && fmt == RTMP_FMT_TYPE1) {
|
||||||
srs_warn("accept cid=2, fmt=1 to make librtmp happy.");
|
srs_warn("accept cid=2, fmt=1 to make librtmp happy.");
|
||||||
} else {
|
} else {
|
||||||
|
@ -1299,7 +1299,7 @@ int SrsProtocol::read_message_header(SrsChunkStream* chunk, char fmt, int bh_siz
|
||||||
pp[0] = *p++;
|
pp[0] = *p++;
|
||||||
|
|
||||||
// always use 31bits timestamp, for some server may use 32bits extended timestamp.
|
// always use 31bits timestamp, for some server may use 32bits extended timestamp.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/111
|
// @see https://github.com/simple-rtmp-server/srs/issues/111
|
||||||
timestamp &= 0x7fffffff;
|
timestamp &= 0x7fffffff;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1495,12 +1495,12 @@ int SrsProtocol::on_recv_message(SrsMessage* msg)
|
||||||
|
|
||||||
// for some server, the actual chunk size can greater than the max value(65536),
|
// for some server, the actual chunk size can greater than the max value(65536),
|
||||||
// so we just warning the invalid chunk size, and actually use it is ok,
|
// so we just warning the invalid chunk size, and actually use it is ok,
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/160
|
// @see: https://github.com/simple-rtmp-server/srs/issues/160
|
||||||
if (pkt->chunk_size < SRS_CONSTS_RTMP_MIN_CHUNK_SIZE
|
if (pkt->chunk_size < SRS_CONSTS_RTMP_MIN_CHUNK_SIZE
|
||||||
|| pkt->chunk_size > SRS_CONSTS_RTMP_MAX_CHUNK_SIZE)
|
|| pkt->chunk_size > SRS_CONSTS_RTMP_MAX_CHUNK_SIZE)
|
||||||
{
|
{
|
||||||
srs_warn("accept chunk size %d, but should in [%d, %d], "
|
srs_warn("accept chunk size %d, but should in [%d, %d], "
|
||||||
"@see: https://github.com/winlinvip/simple-rtmp-server/issues/160",
|
"@see: https://github.com/simple-rtmp-server/srs/issues/160",
|
||||||
pkt->chunk_size, SRS_CONSTS_RTMP_MIN_CHUNK_SIZE,
|
pkt->chunk_size, SRS_CONSTS_RTMP_MIN_CHUNK_SIZE,
|
||||||
SRS_CONSTS_RTMP_MAX_CHUNK_SIZE);
|
SRS_CONSTS_RTMP_MAX_CHUNK_SIZE);
|
||||||
}
|
}
|
||||||
|
@ -1865,7 +1865,7 @@ int SrsConnectAppPacket::decode(SrsStream* stream)
|
||||||
if (!stream->empty()) {
|
if (!stream->empty()) {
|
||||||
srs_freep(args);
|
srs_freep(args);
|
||||||
|
|
||||||
// see: https://github.com/winlinvip/simple-rtmp-server/issues/186
|
// see: https://github.com/simple-rtmp-server/srs/issues/186
|
||||||
// the args maybe any amf0, for instance, a string. we should drop if not object.
|
// the args maybe any amf0, for instance, a string. we should drop if not object.
|
||||||
SrsAmf0Any* any = NULL;
|
SrsAmf0Any* any = NULL;
|
||||||
if ((ret = SrsAmf0Any::discovery(stream, &any)) != ERROR_SUCCESS) {
|
if ((ret = SrsAmf0Any::discovery(stream, &any)) != ERROR_SUCCESS) {
|
||||||
|
|
|
@ -1265,13 +1265,13 @@ public:
|
||||||
std::string command_name;
|
std::string command_name;
|
||||||
/**
|
/**
|
||||||
* whether allow access the sample of video.
|
* whether allow access the sample of video.
|
||||||
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/49
|
* @see: https://github.com/simple-rtmp-server/srs/issues/49
|
||||||
* @see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#videoSampleAccess
|
* @see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#videoSampleAccess
|
||||||
*/
|
*/
|
||||||
bool video_sample_access;
|
bool video_sample_access;
|
||||||
/**
|
/**
|
||||||
* whether allow access the sample of audio.
|
* whether allow access the sample of audio.
|
||||||
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/49
|
* @see: https://github.com/simple-rtmp-server/srs/issues/49
|
||||||
* @see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#audioSampleAccess
|
* @see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#audioSampleAccess
|
||||||
*/
|
*/
|
||||||
bool audio_sample_access;
|
bool audio_sample_access;
|
||||||
|
|
|
@ -505,7 +505,7 @@ std::string __full_conf = ""
|
||||||
" # it's strongly recommend to open the debug_srs_upnode, \n"
|
" # it's strongly recommend to open the debug_srs_upnode, \n"
|
||||||
" # when connect to upnode, it will take the debug info, \n"
|
" # when connect to upnode, it will take the debug info, \n"
|
||||||
" # for example, the id, source id, pid. \n"
|
" # for example, the id, source id, pid. \n"
|
||||||
" # please see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLog \n"
|
" # please see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLog \n"
|
||||||
" # default: on \n"
|
" # default: on \n"
|
||||||
" debug_srs_upnode on; \n"
|
" debug_srs_upnode on; \n"
|
||||||
"} \n"
|
"} \n"
|
||||||
|
|
|
@ -653,7 +653,7 @@ VOID TEST(ProtocolStackTest, ProtocolRecvMessage)
|
||||||
// 0x04 where: message_type=4(protocol control user-control message)
|
// 0x04 where: message_type=4(protocol control user-control message)
|
||||||
// 0x00 0x06 where: event Ping(0x06)
|
// 0x00 0x06 where: event Ping(0x06)
|
||||||
// 0x00 0x00 0x0d 0x0f where: event data 4bytes ping timestamp.
|
// 0x00 0x00 0x0d 0x0f where: event data 4bytes ping timestamp.
|
||||||
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/98
|
// @see: https://github.com/simple-rtmp-server/srs/issues/98
|
||||||
VOID TEST(ProtocolStackTest, ProtocolRecvMessageBug98)
|
VOID TEST(ProtocolStackTest, ProtocolRecvMessageBug98)
|
||||||
{
|
{
|
||||||
MockBufferIO bio;
|
MockBufferIO bio;
|
||||||
|
@ -3750,7 +3750,7 @@ VOID TEST(ProtocolStackTest, ProtocolRecvExtTimeMessage2)
|
||||||
* always use 31bits timestamp.
|
* always use 31bits timestamp.
|
||||||
*/
|
*/
|
||||||
// always use 31bits timestamp, for some server may use 32bits extended timestamp.
|
// always use 31bits timestamp, for some server may use 32bits extended timestamp.
|
||||||
// @see https://github.com/winlinvip/simple-rtmp-server/issues/111
|
// @see https://github.com/simple-rtmp-server/srs/issues/111
|
||||||
VOID TEST(ProtocolStackTest, ProtocolRecvExtTimeMessage3)
|
VOID TEST(ProtocolStackTest, ProtocolRecvExtTimeMessage3)
|
||||||
{
|
{
|
||||||
MockBufferIO bio;
|
MockBufferIO bio;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue