diff --git a/README.md b/README.md index 6985be8a3..48aa2ec06 100755 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ SRS/2.0,开发代号:[ZhouGuowen][release2] SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。
SRS is industrial-strength live streaming cluster, for the best conceptual integrity and the simplest implementation. -Download from github.io: [Centos6-x86_64][centos0][more...][more0]
-Download from ossrs.net: [Centos6-x86_64][centos1][more...][more1]
+Download from github.io: [Centos6-x86_64][centos0], [more...][more0]
+Download from ossrs.net: [Centos6-x86_64][centos1], [more...][more1]
Contact by QQ or Skype, read [Contact][contact] ## Why SRS? @@ -43,142 +43,6 @@ session-oriented log, exports client srs-librtmp, with stream caster to push MPEGTS-over-UDP/RTSP to SRS, provides EN/CN wiki and the most simple architecture. -SRS focus on small problem domain, which is the most complex for all software(see OOAD). -Because of lack of deveoper resource, SRS only provides features which is the most popular -for internet. SRS is simple for and only for problem domain is simplified. - -SRS is a simple, RTMP( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryRTMP), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryRTMP) -), -HLS( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryHLS) -), -HDS( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHDS), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryHDS) -), -HTTP( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_DeliveryHttpStream), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_DeliveryHttpStream) -), -high-performance(10k+ clients)( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Performance), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Performance) -), -low-latency(0.1s+)( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_LowLatency) -), -single processes, edge/origin live server, -x86/x64/arm( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLinuxArm), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SrsLinuxArm) -), -compile depends on st( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Architecture), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Architecture) -)(required), -[ssl](http://www.openssl.org/) and [http-parser](https://github.com/joyent/http-parser), -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 -minimum run. see Build( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Build), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Build) -). - -SRS supports vhost( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_RtmpUrlVhost), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_RtmpUrlVhost) -), -rtmp(encoder push( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryRTMP), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryRTMP) -), -client/edge( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Edge), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Edge), -) pull), -ingester(srs pull)( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Ingest), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Ingest) -), -HLS( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryHLS) -), -HLS audio only( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DeliveryHLS#hlsaudioonly), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DeliveryHLS#hlsaudioonly) -), -transcoding( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_FFMPEG) -), -forward( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_FFMPEG) -), -http hooks( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPCallback), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_HTTPCallback) -), -http api( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPApi), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_HTTPApi) -), -http server( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_HTTPServer), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_HTTPServer) -), -dvr( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_DVR), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_DVR) -) and -SRS-librtmp( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp) -). - -SRS-librtmp( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp) -) -is a client library, only depends on c++ and socket, with -examples( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp#srs-librtmp-examples), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp#srs-librtmp-examples) -)(to play, -publish, ingest flv/rtmp, inject flv, -publish h264 raw stream( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp#publish-h264-raw-data), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp#publish-h264-raw-data) -), -exported as seperate project or single cpp file by configure( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp#export-srs-librtmp), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp#export-srs-librtmp) -). -SRS-librtmp( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp) -) -provides apis to support RTMP, FLV, AMF0 and -h.264 raw stream( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp#publish-h264-raw-data), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp#publish-h264-raw-data) -). - -Report Bug: [https://github.com/simple-rtmp-server/srs/issues/new](https://github.com/simple-rtmp-server/srs/issues/new)
-WebSite: [http://ossrs.net](http://ossrs.net)
-Release: [http://winlinvip.github.io/srs.release](http://winlinvip.github.io/srs.release)
-Blog: [http://blog.csdn.net/win_lin](http://blog.csdn.net/win_lin)
-Wiki: [https://github.com/simple-rtmp-server/srs/wiki](https://github.com/simple-rtmp-server/srs/wiki)
-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/), -[RED5](http://www.red5.org/), [WOWZA](http://www.wowza.com/), -[FMS/AMS](http://www.adobe.com/products/adobe-media-server-standard.html) - ## AUTHORS There are three types of people that have contributed to the SRS project: @@ -187,58 +51,41 @@ PRIMARY response in NetConnection.connect and metadata. * CONTRIBUTORS: Submit patches, report bugs, add translations, help answer newbie questions, and generally make SRS that much better. -About all PRIMARY, AUTHORS and CONTRIBUTORS, read -[AUTHORS.txt](https://github.com/simple-rtmp-server/srs/blob/develop/AUTHORS.txt). +About all PRIMARY, AUTHORS and CONTRIBUTORS, read [AUTHORS.txt][authors]. A big THANK YOU goes to: -* All friends of SRS 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/)). +* All friends of SRS for [big supports][bigthanks]. +* Genes amd Mabbott for creating [st][st]([state-threads][st2]). * 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. -* Joyent for creating [http-parser](https://github.com/joyent/http-parser) for http-api for SRS. -* Igor Sysoev for creating [nginx](http://nginx.org/) for SRS to refer to. -* [FFMPEG](http://ffmpeg.org/) and [libx264](http://www.videolan.org/) group for SRS to use to transcode. +* Roman Arutyunyan for creating [nginx-rtmp][nginx-rtmp] for SRS to refer to. +* Joyent for creating [http-parser][http-parser] for http-api for SRS. +* Igor Sysoev for creating [nginx][nginx] for SRS to refer to. +* [FFMPEG][FFMPEG] and [libx264][libx264] group for SRS to use to transcode. * Guido van Rossum for creating Python for api-server for SRS. ## Mirrors -Github: [https://github.com/simple-rtmp-server/srs](https://github.com/simple-rtmp-server/srs), -the GIT usage( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git) -) +Github: [https://github.com/simple-rtmp-server/srs][srs], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -```bash +``` 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) , -the GIT usage( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git) -) +CSDN: [https://code.csdn.net/winlinvip/srs-csdn][csdn], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -```bash +``` 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) , -the GIT usage( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git) -) +OSChina: [http://git.oschina.net/winlinvip/srs.oschina][oschina], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -```bash +``` git clone https://git.oschina.net/winlinvip/srs.oschina.git ``` -Gitlab: [https://gitlab.com/winlinvip/srs-gitlab](https://gitlab.com/winlinvip/srs-gitlab) , -the GIT usage( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Git), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Git) -) +Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v1_CN_Git], [EN][v1_EN_Git]) -```bash +``` git clone https://gitlab.com/winlinvip/srs-gitlab.git ``` @@ -268,82 +115,42 @@ cd simple-rtmp-server/trunk See also: -* Usage: How to delivery RTMP?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleRTMP), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleRTMP) -) -* Usage: How to delivery HLS?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleHLS), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleHLS) -) -* Usage: How to delivery HLS for other codec?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleTranscode2HLS), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleTranscode2HLS) -) -* Usage: How to transode RTMP stream by SRS?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleFFMPEG), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleFFMPEG) -) -* Usage: How to forward stream to other server?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleForward), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleForward) -) -* Usage: How to deploy low lantency application?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleRealtime), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleRealtime) -) -* Usage: How to deploy SRS on ARM?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleARM), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleARM) -) -* Usage: How to ingest file/stream/device to SRS?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_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?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleHTTP), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleHTTP) -) -* Usage: How to show the demo of SRS?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SampleDemo), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_SampleDemo) -) -* Usage: How to publish h.264 raw stream to SRS?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp#publish-h264-raw-data), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_SrsLibrtmp#publish-h264-raw-data) -) -* Usage: Solution using SRS?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Sample), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Sample) -) -* Usage: Why SRS?( -[CN](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Product), -[EN](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Product) -) +* Usage: How to delivery RTMP?([CN][v1_CN_SampleRTMP],[EN][v1_EN_SampleRTMP]) +* Usage: How to delivery HLS?([CN][v1_CN_SampleHLS],[EN][v1_EN_SampleHLS]) +* Usage: How to delivery HLS for other codec?([CN][v1_CN_SampleTranscode2[EN][v1_EN_SampleTranscode2HLS]) +* Usage: How to transode RTMP stream by SRS?([CN][v1_CN_SampleFFMPEG],[EN][v1_EN_SampleFFMPEG]) +* Usage: How to forward stream to other server?([CN][v1_CN_SampleForward[EN][v1_EN_SampleForward]) +* Usage: How to deploy low lantency application?([CN][v1_CN_SampleRealtime[EN][v1_EN_SampleRealtime]) +* Usage: How to deploy SRS on ARM?([CN][v1_CN_SampleARM],[EN][v1_EN_SampleARM]) +* Usage: How to ingest file/stream/device to SRS?([CN][v1_CN_Sample[EN][v1_EN_SampleIngest]) +* Usage: How to use SRS-HTTP-server to delivery HTTP/HLS stream?([CN][v1_CN_SampleHTTP[EN][v1_EN_SampleHTTP]) +* Usage: How to show the demo of [CN][v1_CN_SampleDemo[EN][v1_EN_SampleDemo]) +* Usage: How to publish h.264 raw stream to [CN][v2_CN_SrsLibrtmp2],[EN][v2_EN_SrsLibrtmp2]) +* Usage: Solution using SRS?([CN][v1_CN_Sample],[EN][v1_EN_Sample]) +* Usage: Why SRS?([CN][v1_CN_Product],[EN][v1_EN_Product]) ## Wiki SRS 1.0 wiki Please select your language: -* [SRS 1.0 English](https://github.com/simple-rtmp-server/srs/wiki/v1_EN_Home) -* [SRS 1.0 Chinese](https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Home) +* [SRS 1.0 English][v1_EN_Home] +* [SRS 1.0 Chinese][v1_CN_Home] SRS 2.0 wiki Please select your language: -* [SRS 2.0 English](https://github.com/simple-rtmp-server/srs/wiki/v2_EN_Home) -* [SRS 2.0 Chinese](https://github.com/simple-rtmp-server/srs/wiki/v2_CN_Home) +* [SRS 2.0 English][v2_EN_Home] +* [SRS 2.0 Chinese][v2_CN_Home] ## Donation Donation:
-[http://winlinvip.github.io/srs.release/donation/index.html](http://winlinvip.github.io/srs.release/donation/index.html) OR
-[http://www.ossrs.net/srs.release/donation/index.html](http://www.ossrs.net/srs.release/donation/index.html) +[http://winlinvip.github.io/srs.release/donation/index.html][donation0] OR
+[http://www.ossrs.net/srs.release/donation/index.html][donation1] Donations:
-[https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt] -(https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt) +[https://github.com/simple-rtmp-server/srs/blob/develop/DONATIONS.txt][donations] ## System Requirements Supported operating systems and hardware: @@ -1030,14 +837,6 @@ over some protocol and remux to rtmp to SRS. Read