mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
Ingest: Still use -re for stream to ingest HLS better.
This commit is contained in:
parent
dd37a041b9
commit
7d47017a00
8 changed files with 32 additions and 27 deletions
|
@ -73,7 +73,7 @@ vhost demo.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
engine sd {
|
engine sd {
|
||||||
enabled on;
|
enabled on;
|
||||||
|
@ -96,7 +96,7 @@ vhost demo.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ingest {
|
ingest {
|
||||||
|
@ -108,7 +108,7 @@ vhost demo.srs.com {
|
||||||
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
||||||
engine {
|
engine {
|
||||||
enabled off;
|
enabled off;
|
||||||
output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream;
|
output rtmp://127.0.0.1:[port]/live/livestream?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ vhost players {
|
||||||
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
||||||
engine {
|
engine {
|
||||||
enabled off;
|
enabled off;
|
||||||
output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/demo;
|
output rtmp://127.0.0.1:[port]/live/demo?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ vhost __defaultVhost__ {
|
||||||
acodec libfdk_aac;
|
acodec libfdk_aac;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1716,7 +1716,7 @@ vhost ingest.srs.com {
|
||||||
# [999], replace this const to current millisecond.
|
# [999], replace this const to current millisecond.
|
||||||
# [timestamp],replace this const to current UNIX timestamp in ms.
|
# [timestamp],replace this const to current UNIX timestamp in ms.
|
||||||
# @remark we use golang time format "2006-01-02 15:04:05.999" as "[2006]-[01]-[02]_[15].[04].[05]_[999]"
|
# @remark we use golang time format "2006-01-02 15:04:05.999" as "[2006]-[01]-[02]_[15].[04].[05]_[999]"
|
||||||
output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream;
|
output rtmp://127.0.0.1:[port]/live/livestream?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1764,7 +1764,7 @@ vhost transcode.ingest.srs.com {
|
||||||
profile:a aac_low;
|
profile:a aac_low;
|
||||||
}
|
}
|
||||||
oformat flv;
|
oformat flv;
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1914,7 +1914,7 @@ vhost example.transcode.srs.com {
|
||||||
# [999], replace this const to current millisecond.
|
# [999], replace this const to current millisecond.
|
||||||
# [timestamp],replace this const to current UNIX timestamp in ms.
|
# [timestamp],replace this const to current UNIX timestamp in ms.
|
||||||
# @remark we use golang time format "2006-01-02 15:04:05.999" as "[2006]-[01]-[02]_[15].[04].[05]_[999]"
|
# @remark we use golang time format "2006-01-02 15:04:05.999" as "[2006]-[01]-[02]_[15].[04].[05]_[999]"
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1944,7 +1944,7 @@ vhost mirror.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1977,7 +1977,7 @@ vhost crop.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2008,7 +2008,7 @@ vhost logo.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2028,7 +2028,7 @@ vhost audio.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2047,7 +2047,7 @@ vhost vn.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2061,7 +2061,7 @@ vhost copy.transcode.srs.com {
|
||||||
enabled on;
|
enabled on;
|
||||||
vcodec copy;
|
vcodec copy;
|
||||||
acodec copy;
|
acodec copy;
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2101,7 +2101,7 @@ vhost all.transcode.srs.com {
|
||||||
profile:a aac_low;
|
profile:a aac_low;
|
||||||
}
|
}
|
||||||
oformat flv;
|
oformat flv;
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
engine ffhd {
|
engine ffhd {
|
||||||
enabled on;
|
enabled on;
|
||||||
|
@ -2121,7 +2121,7 @@ vhost all.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
engine ffsd {
|
engine ffsd {
|
||||||
enabled on;
|
enabled on;
|
||||||
|
@ -2141,7 +2141,7 @@ vhost all.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
engine fffast {
|
engine fffast {
|
||||||
enabled on;
|
enabled on;
|
||||||
|
@ -2161,7 +2161,7 @@ vhost all.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
engine vcopy {
|
engine vcopy {
|
||||||
enabled on;
|
enabled on;
|
||||||
|
@ -2172,7 +2172,7 @@ vhost all.transcode.srs.com {
|
||||||
achannels 2;
|
achannels 2;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
engine acopy {
|
engine acopy {
|
||||||
enabled on;
|
enabled on;
|
||||||
|
@ -2187,13 +2187,13 @@ vhost all.transcode.srs.com {
|
||||||
vparams {
|
vparams {
|
||||||
}
|
}
|
||||||
acodec copy;
|
acodec copy;
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
engine copy {
|
engine copy {
|
||||||
enabled on;
|
enabled on;
|
||||||
vcodec copy;
|
vcodec copy;
|
||||||
acodec copy;
|
acodec copy;
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ vhost __defaultVhost__ {
|
||||||
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
||||||
engine {
|
engine {
|
||||||
enabled off;
|
enabled off;
|
||||||
output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream;
|
output rtmp://127.0.0.1:[port]/live/livestream?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ vhost __defaultVhost__ {
|
||||||
}
|
}
|
||||||
vcodec copy;
|
vcodec copy;
|
||||||
acodec copy;
|
acodec copy;
|
||||||
output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream;
|
output rtmp://127.0.0.1:[port]/live/livestream?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ vhost __defaultVhost__ {
|
||||||
acodec libfdk_aac;
|
acodec libfdk_aac;
|
||||||
aparams {
|
aparams {
|
||||||
}
|
}
|
||||||
output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
|
output rtmp://127.0.0.1:[port]/[app]/[stream]_[engine]?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ vhost source.srs.com {
|
||||||
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
ffmpeg ./objs/ffmpeg/bin/ffmpeg;
|
||||||
engine {
|
engine {
|
||||||
enabled off;
|
enabled off;
|
||||||
output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream;
|
output rtmp://127.0.0.1:[port]/live/livestream?vhost=[vhost];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -369,6 +369,11 @@ srs_error_t SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective*
|
||||||
output = srs_string_replace(output, "[vhost]", vhost->arg0());
|
output = srs_string_replace(output, "[vhost]", vhost->arg0());
|
||||||
output = srs_string_replace(output, "[port]", srs_int2str(port));
|
output = srs_string_replace(output, "[port]", srs_int2str(port));
|
||||||
output = srs_path_build_timestamp(output);
|
output = srs_path_build_timestamp(output);
|
||||||
|
// Remove the only param with default vhost.
|
||||||
|
output = srs_string_replace(output, "vhost=" SRS_CONSTS_RTMP_DEFAULT_VHOST, "");
|
||||||
|
output = srs_string_replace(output, "?&", "?");
|
||||||
|
output = srs_string_replace(output, "?/", "/"); // For params over app.
|
||||||
|
output = srs_string_trim_end(output, "?");
|
||||||
if (output.empty()) {
|
if (output.empty()) {
|
||||||
return srs_error_new(ERROR_ENCODER_NO_OUTPUT, "empty output url, ingest=%s", ingest->arg0().c_str());
|
return srs_error_new(ERROR_ENCODER_NO_OUTPUT, "empty output url, ingest=%s", ingest->arg0().c_str());
|
||||||
}
|
}
|
||||||
|
@ -427,8 +432,8 @@ srs_error_t SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective*
|
||||||
return srs_error_new(ERROR_ENCODER_NO_INPUT, "empty intput url, ingest=%s", ingest->arg0().c_str());
|
return srs_error_new(ERROR_ENCODER_NO_INPUT, "empty intput url, ingest=%s", ingest->arg0().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// for stream, no re.
|
// For stream, also use -re, to ingest HLS better.
|
||||||
ffmpeg->append_iparam("");
|
ffmpeg->append_iparam("-re");
|
||||||
|
|
||||||
if ((err = ffmpeg->initialize(input_url, output, log_file)) != srs_success) {
|
if ((err = ffmpeg->initialize(input_url, output, log_file)) != srs_success) {
|
||||||
return srs_error_wrap(err, "init ffmpeg");
|
return srs_error_wrap(err, "init ffmpeg");
|
||||||
|
|
Loading…
Reference in a new issue