From 4449a8d7b093447444d05f545e9282ff04299f83 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 17 Jan 2015 13:04:52 +0800 Subject: [PATCH 01/12] fix #290, use iformat only for rtmp input. 1.0.22 --- README.md | 1 + trunk/src/app/srs_app_ffmpeg.cpp | 7 +++++++ trunk/src/core/srs_core.hpp | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5dcf9323da..11be6d538d 100755 --- a/README.md +++ b/README.md @@ -385,6 +385,7 @@ Supported operating systems and hardware: ## History +* 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-15, [1.0r1 release(1.0.21)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r1) released. 59472 lines. * 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-03, hotfix to remove the pageUrl for http callback. 1.0.19 diff --git a/trunk/src/app/srs_app_ffmpeg.cpp b/trunk/src/app/srs_app_ffmpeg.cpp index 7ecbd0228a..f5a87fd02b 100644 --- a/trunk/src/app/srs_app_ffmpeg.cpp +++ b/trunk/src/app/srs_app_ffmpeg.cpp @@ -209,6 +209,13 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine) return ret; } + // for not rtmp input, donot append the iformat, + // for example, "-f flv" before "-i udp://192.168.1.252:2222" + // @see https://github.com/winlinvip/simple-rtmp-server/issues/290 + if (input.find("rtmp://") != 0) { + iformat = ""; + } + return ret; } diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 3b9d7b755f..a6797e1a91 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define VERSION_REVISION 21 +#define VERSION_REVISION 22 // server info. #define RTMP_SIG_SRS_KEY "SRS" #define RTMP_SIG_SRS_ROLE "origin/edge server" From 4f5cc9c403aedd836fb1ef40220afff9bce03841 Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 23 Jan 2015 15:14:29 +0800 Subject: [PATCH 02/12] for #151, use absolutely overflow to make jwplayer happy. 1.0.23 --- README.md | 1 + trunk/src/app/srs_app_hls.cpp | 11 +++++++++-- trunk/src/app/srs_app_hls.hpp | 10 ++++++++-- trunk/src/core/srs_core.hpp | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 11be6d538d..dc64a50143 100755 --- a/README.md +++ b/README.md @@ -385,6 +385,7 @@ Supported operating systems and hardware: ## History +* 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-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-15, [1.0r1 release(1.0.21)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r1) released. 59472 lines. * 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 diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index af294ddb2b..7fe9a1c151 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -655,10 +655,15 @@ int SrsHlsMuxer::on_sequence_header() bool SrsHlsMuxer::is_segment_overflow() { srs_assert(current); - return current->duration >= hls_fragment; } +bool SrsHlsMuxer::is_segment_absolutely_overflow() +{ + srs_assert(current); + return current->duration >= 2 * hls_fragment; +} + int SrsHlsMuxer::flush_audio(SrsMpegtsFrame* af, SrsBuffer* ab) { int ret = ERROR_SUCCESS; @@ -1090,7 +1095,9 @@ int SrsHlsCache::write_audio(SrsAvcAacCodec* codec, SrsHlsMuxer* muxer, int64_t // pure audio again for audio disabled. // so we reap event when the audio incoming when segment overflow. // @see https://github.com/winlinvip/simple-rtmp-server/issues/151 - if (muxer->is_segment_overflow()) { + // we use absolutely overflow of segment to make jwplayer/ffplay happy + // @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184 + if (muxer->is_segment_absolutely_overflow()) { if ((ret = reap_segment("audio", muxer, af->pts)) != ERROR_SUCCESS) { return ret; } diff --git a/trunk/src/app/srs_app_hls.hpp b/trunk/src/app/srs_app_hls.hpp index d31820367a..fff25c90bc 100644 --- a/trunk/src/app/srs_app_hls.hpp +++ b/trunk/src/app/srs_app_hls.hpp @@ -192,10 +192,16 @@ class SrsHlsMuxer virtual int segment_open(int64_t segment_start_dts); virtual int on_sequence_header(); /** - * whether video overflow, - * that is whether the current segment duration >= the segment in config + * whether segment overflow, + * that is whether the current segment duration>=(the segment in config) */ virtual bool is_segment_overflow(); + /** + * whether segment absolutely overflow, for pure audio to reap segment, + * that is whether the current segment duration>=2*(the segment in config) + * @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184 + */ + virtual bool is_segment_absolutely_overflow(); virtual int flush_audio(SrsMpegtsFrame* af, SrsBuffer* ab); virtual int flush_video(SrsMpegtsFrame* af, SrsBuffer* ab, SrsMpegtsFrame* vf, SrsBuffer* vb); /** diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index a6797e1a91..d3745e5391 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define VERSION_REVISION 22 +#define VERSION_REVISION 23 // server info. #define RTMP_SIG_SRS_KEY "SRS" #define RTMP_SIG_SRS_ROLE "origin/edge server" From 1835957a2b09b4dc7f393649f7e7b295c90e5b64 Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 25 Jan 2015 13:04:12 +0800 Subject: [PATCH 03/12] for #151, refine pcr=dts-800ms and use dts/pts directly. 1.0.24 --- README.md | 1 + trunk/src/app/srs_app_hls.cpp | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dc64a50143..b38ca768b4 100755 --- a/README.md +++ b/README.md @@ -385,6 +385,7 @@ Supported operating systems and hardware: ## History +* 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-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-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-15, [1.0r1 release(1.0.21)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r1) released. 59472 lines. diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index 7fe9a1c151..8fcaaf3f8c 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -78,7 +78,9 @@ using namespace std; // @see: NGX_RTMP_HLS_DELAY, // 63000: 700ms, ts_tbn=90000 -#define SRS_AUTO_HLS_DELAY 63000 +// 72000: 800ms, ts_tbn=90000 +// @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71352511 +#define SRS_AUTO_HLS_DELAY 72000 // the mpegts header specifed the video/audio pid. #define TS_VIDEO_PID 256 @@ -237,6 +239,7 @@ class SrsMpegtsWriter p[-1] |= 0x20; // Both Adaption and Payload *p++ = 7; // size *p++ = 0x50; // random access + PCR + // about the pcr, read https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71352511 p = write_pcr(p, frame->dts - SRS_AUTO_HLS_DELAY); } @@ -293,11 +296,11 @@ class SrsMpegtsWriter *p++ = header_size; // pts; // 33bits - p = write_pts(p, flags >> 6, frame->pts + SRS_AUTO_HLS_DELAY); + p = write_pts(p, flags >> 6, frame->pts); // dts; // 33bits if (frame->dts != frame->pts) { - p = write_pts(p, 1, frame->dts + SRS_AUTO_HLS_DELAY); + p = write_pts(p, 1, frame->dts); } } From b0daf1482dd480964c7da0989c9d7940dc652f1c Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 25 Jan 2015 13:10:30 +0800 Subject: [PATCH 04/12] update version to 1.0.24 --- trunk/src/core/srs_core.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index d3745e5391..93f63c1201 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define VERSION_REVISION 23 +#define VERSION_REVISION 24 + // server info. #define RTMP_SIG_SRS_KEY "SRS" #define RTMP_SIG_SRS_ROLE "origin/edge server" From 9cbc753e8e4c6a8d6703f58f62072364f8d83ad5 Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 25 Jan 2015 13:30:45 +0800 Subject: [PATCH 05/12] for #151, #268, refine the pcr start at 0, dts/pts plus delay. 1.0.25 --- trunk/src/app/srs_app_hls.cpp | 14 ++++++++------ trunk/src/core/srs_core.hpp | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index 8fcaaf3f8c..be90a12199 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -240,7 +240,7 @@ class SrsMpegtsWriter *p++ = 7; // size *p++ = 0x50; // random access + PCR // about the pcr, read https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71352511 - p = write_pcr(p, frame->dts - SRS_AUTO_HLS_DELAY); + p = write_pcr(p, frame->dts); } // PES header @@ -296,11 +296,11 @@ class SrsMpegtsWriter *p++ = header_size; // pts; // 33bits - p = write_pts(p, flags >> 6, frame->pts); + p = write_pts(p, flags >> 6, frame->pts + SRS_AUTO_HLS_DELAY); // dts; // 33bits if (frame->dts != frame->pts) { - p = write_pts(p, 1, frame->dts); + p = write_pts(p, 1, frame->dts + SRS_AUTO_HLS_DELAY); } } @@ -371,10 +371,12 @@ class SrsMpegtsWriter } static char* write_pcr(char* p, int64_t pcr) { - // the pcr=dts-delay - // and the pcr maybe negative + // the pcr=dts-delay, where dts = frame->dts + delay + // and the pcr should never be negative // @see https://github.com/winlinvip/simple-rtmp-server/issues/268 - int64_t v = srs_max(0, pcr); + srs_assert(pcr >= 0); + + int64_t v = pcr; *p++ = (char) (v >> 25); *p++ = (char) (v >> 17); diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 93f63c1201..9c74cea4ae 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define VERSION_REVISION 24 +#define VERSION_REVISION 25 // server info. #define RTMP_SIG_SRS_KEY "SRS" From 788850699943c1177cb55cba22a506dbe41a9567 Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 25 Jan 2015 13:33:23 +0800 Subject: [PATCH 06/12] update readme for 1.0.25 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b38ca768b4..378d76adc8 100755 --- a/README.md +++ b/README.md @@ -385,6 +385,7 @@ Supported operating systems and hardware: ## History +* 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 [#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-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-17, hotfix [#290](https://github.com/winlinvip/simple-rtmp-server/issues/290), use iformat only for rtmp input. 1.0.22 From d5e3ac4e7d830e617a6a503616bd8940928bf0aa Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 10 Feb 2015 17:15:50 +0800 Subject: [PATCH 07/12] for #310, the aac profile must be object plus one. 1.0.26 --- README.md | 1 + trunk/src/app/srs_app_avc_aac.cpp | 7 +++++++ trunk/src/core/srs_core.hpp | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 378d76adc8..790aa70cd0 100755 --- a/README.md +++ b/README.md @@ -385,6 +385,7 @@ Supported operating systems and hardware: ## History +* 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-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 [#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-23, hotfix [#151](https://github.com/winlinvip/simple-rtmp-server/issues/151), use absolutely overflow to make jwplayer happy. 1.0.23 diff --git a/trunk/src/app/srs_app_avc_aac.cpp b/trunk/src/app/srs_app_avc_aac.cpp index 1611b58195..cfb861eb48 100644 --- a/trunk/src/app/srs_app_avc_aac.cpp +++ b/trunk/src/app/srs_app_avc_aac.cpp @@ -247,6 +247,13 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample return ret; } + // the profile = object_id + 1 + // @see aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 78, + // 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 + // downcast aac SSR to LC. + // @see https://github.com/winlinvip/simple-rtmp-server/issues/310 + // TODO: FIXME: fix the following in future version. // aac_profile = audioObjectType - 1 aac_profile--; diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 9c74cea4ae..c16ae0bc7d 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define VERSION_REVISION 25 +#define VERSION_REVISION 26 // server info. #define RTMP_SIG_SRS_KEY "SRS" From b982b27f6fc85a4f3d9fbdf93c27187e7b25dda4 Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 11 Feb 2015 08:48:22 +0800 Subject: [PATCH 08/12] add dev code for each release. HuKaiqun for SRS1.0 --- trunk/src/app/srs_app_edge.cpp | 4 ++-- trunk/src/app/srs_app_forward.cpp | 2 +- trunk/src/app/srs_app_source.cpp | 2 +- trunk/src/core/srs_core.hpp | 4 +++- trunk/src/rtmp/srs_protocol_rtmp.cpp | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/trunk/src/app/srs_app_edge.cpp b/trunk/src/app/srs_app_edge.cpp index b85585f453..02ee571da9 100644 --- a/trunk/src/app/srs_app_edge.cpp +++ b/trunk/src/app/srs_app_edge.cpp @@ -222,7 +222,7 @@ int SrsEdgeIngester::connect_app(string ep_server, string ep_port) // @see https://github.com/winlinvip/simple-rtmp-server/issues/147 SrsAmf0Object* data = req->args; data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY)); - data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")")); + data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER)); data->set("srs_license", SrsAmf0Any::str(RTMP_SIG_SRS_LICENSE)); data->set("srs_role", SrsAmf0Any::str(RTMP_SIG_SRS_ROLE)); data->set("srs_url", SrsAmf0Any::str(RTMP_SIG_SRS_URL)); @@ -654,7 +654,7 @@ int SrsEdgeForwarder::connect_app(string ep_server, string ep_port) // @see https://github.com/winlinvip/simple-rtmp-server/issues/147 SrsAmf0Object* data = req->args; data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY)); - data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")")); + data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER)); data->set("srs_license", SrsAmf0Any::str(RTMP_SIG_SRS_LICENSE)); data->set("srs_role", SrsAmf0Any::str(RTMP_SIG_SRS_ROLE)); data->set("srs_url", SrsAmf0Any::str(RTMP_SIG_SRS_URL)); diff --git a/trunk/src/app/srs_app_forward.cpp b/trunk/src/app/srs_app_forward.cpp index 5f45051505..d819061b73 100644 --- a/trunk/src/app/srs_app_forward.cpp +++ b/trunk/src/app/srs_app_forward.cpp @@ -336,7 +336,7 @@ int SrsForwarder::connect_app(string ep_server, string ep_port) // @see https://github.com/winlinvip/simple-rtmp-server/issues/147 SrsAmf0Object* data = req->args; data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY)); - data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")")); + data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER)); data->set("srs_license", SrsAmf0Any::str(RTMP_SIG_SRS_LICENSE)); data->set("srs_role", SrsAmf0Any::str(RTMP_SIG_SRS_ROLE)); data->set("srs_url", SrsAmf0Any::str(RTMP_SIG_SRS_URL)); diff --git a/trunk/src/app/srs_app_source.cpp b/trunk/src/app/srs_app_source.cpp index c1f4352ad5..cdc0f4ee97 100644 --- a/trunk/src/app/srs_app_source.cpp +++ b/trunk/src/app/srs_app_source.cpp @@ -956,7 +956,7 @@ int SrsSource::on_meta_data(SrsMessage* msg, SrsOnMetaDataPacket* metadata) } // add server info to metadata - metadata->metadata->set("server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")")); + metadata->metadata->set("server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER)); metadata->metadata->set("primary", SrsAmf0Any::str(RTMP_SIG_SRS_PRIMARY)); metadata->metadata->set("authors", SrsAmf0Any::str(RTMP_SIG_SRS_AUTHROS)); diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index c16ae0bc7d..6109a64545 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,10 +31,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define VERSION_REVISION 26 +#define VERSION_REVISION 27 // server info. #define RTMP_SIG_SRS_KEY "SRS" +#define RTMP_SIG_SRS_CODE "HuKaiqun" #define RTMP_SIG_SRS_ROLE "origin/edge server" #define RTMP_SIG_SRS_NAME RTMP_SIG_SRS_KEY"(Simple RTMP Server)" #define RTMP_SIG_SRS_URL_SHORT "github.com/winlinvip/simple-rtmp-server" @@ -50,6 +51,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define RTMP_SIG_SRS_RELEASE "https://github.com/winlinvip/simple-rtmp-server/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_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")" // internal macros, covert macro values to str, // see: read https://gcc.gnu.org/onlinedocs/cpp/Stringification.html#Stringification diff --git a/trunk/src/rtmp/srs_protocol_rtmp.cpp b/trunk/src/rtmp/srs_protocol_rtmp.cpp index 8fc2df48b6..3af25e5315 100644 --- a/trunk/src/rtmp/srs_protocol_rtmp.cpp +++ b/trunk/src/rtmp/srs_protocol_rtmp.cpp @@ -905,7 +905,7 @@ int SrsRtmpServer::response_connect_app(SrsRequest *req, const char* server_ip) data->set("version", SrsAmf0Any::str(RTMP_SIG_FMS_VER)); data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY)); - data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")")); + data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER)); data->set("srs_license", SrsAmf0Any::str(RTMP_SIG_SRS_LICENSE)); data->set("srs_role", SrsAmf0Any::str(RTMP_SIG_SRS_ROLE)); data->set("srs_url", SrsAmf0Any::str(RTMP_SIG_SRS_URL)); From d07f09aa0b5930cf60293a1eff8d55d3966fe812 Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 11 Feb 2015 12:28:48 +0800 Subject: [PATCH 09/12] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 790aa70cd0..43ac54b241 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ #Simple-RTMP-Server +SRS/1.0,开å‘代å·ï¼š[HuKaiqun](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Product#release10) + SRS定ä½æ˜¯è¿è¥çº§çš„互è”网直播æœåŠ¡å™¨é›†ç¾¤ï¼Œè¿½æ±‚更好的概念完整性和最简å•å®žçŽ°çš„代ç ã€‚ 下载å‘布版(github): From 16bf0a182650142ee6f9da38958a0b80f655f6a8 Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 12 Feb 2015 10:14:30 +0800 Subject: [PATCH 10/12] dev code HuKaiqun for 1.0.27. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 790aa70cd0..395f3dd9df 100755 --- a/README.md +++ b/README.md @@ -385,6 +385,7 @@ Supported operating systems and hardware: ## History +* 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-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 [#151](https://github.com/winlinvip/simple-rtmp-server/issues/151), refine pcr=dts-800ms and use dts/pts directly. 1.0.24 From 61b0ee55ed908ae41cb64fbc0835097c4533f26e Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 12 Feb 2015 10:18:45 +0800 Subject: [PATCH 11/12] release 1.0r2 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 395f3dd9df..0e90bd8309 100755 --- a/README.md +++ b/README.md @@ -362,6 +362,7 @@ Supported operating systems and hardware: [2.0dev branch](https://github.com/winlinvip/simple-rtmp-server/tree/master). ## Releases +* 2015-02-12, [Release v1.0r2](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r2), bug fixed, 1.0.27, 59507 lines.
* 2015-01-15, [Release v1.0r1](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r1), bug fixed, 1.0.21, 59472 lines.
* 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.
* 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.
@@ -385,6 +386,7 @@ Supported operating systems and hardware: ## History +* 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. * 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-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 From e1e12e5dba47ab695149ad0dd916da6be52d3709 Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 12 Feb 2015 10:19:19 +0800 Subject: [PATCH 12/12] release 1.0r2 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0e90bd8309..6491259eb5 100755 --- a/README.md +++ b/README.md @@ -3,10 +3,10 @@ SRS定ä½æ˜¯è¿è¥çº§çš„互è”网直播æœåŠ¡å™¨é›†ç¾¤ï¼Œè¿½æ±‚更好的概念完整性和最简å•å®žçŽ°çš„代ç ã€‚ 下载å‘布版(github): -[Centos6-x86_64](http://winlinvip.github.io/srs.release/releases/files/SRS-CentOS6-x86_64-1.0.21.zip) +[Centos6-x86_64](http://winlinvip.github.io/srs.release/releases/files/SRS-CentOS6-x86_64-1.0.27.zip) 其他[more...](http://winlinvip.github.io/srs.release/releases/)
下载å‘布版(国内阿里云镜åƒ): -[Centos6-x86_64](http://www.ossrs.net/srs.release/releases/files/SRS-CentOS6-x86_64-1.0.21.zip) +[Centos6-x86_64](http://www.ossrs.net/srs.release/releases/files/SRS-CentOS6-x86_64-1.0.27.zip) 其他[more...](http://www.ossrs.net/srs.release/releases/)
QQ群: 365936885, by wenjie
åŒç±»äº§å“:[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)