mirror of
https://github.com/ossrs/srs.git
synced 2025-02-12 11:21:52 +00:00
add author byteman for h264 to flv.
This commit is contained in:
parent
f3b441ba1f
commit
d6948d613f
5 changed files with 48 additions and 2 deletions
|
@ -5,3 +5,4 @@ Authors ordered by first contribution.
|
|||
* xiangcheng.liu<liuxc0116@foxmail.com>
|
||||
* naijia.liu<youngcow@youngcow.net>
|
||||
* alcoholyi<alcoholyi@qq.com>
|
||||
* byteman<wangchen2011@gmail.com>
|
||||
|
|
|
@ -91,6 +91,30 @@ http_stream {
|
|||
vhost __defaultVhost__ {
|
||||
}
|
||||
|
||||
# vhost for edge, edge and origin is the same vhost
|
||||
vhost same.edge.srs.com {
|
||||
# the mode of vhost, local or remote.
|
||||
# local: vhost is origin vhost, which provides stream source.
|
||||
# remote: vhost is edge vhost, which pull/push to origin.
|
||||
# default: local
|
||||
mode remote;
|
||||
# for edge(remote mode), user must specifies the origin server
|
||||
# format as: <server_name|ip>[:port]
|
||||
# @remark user can specifies multiple origin for error backup, by space,
|
||||
# for example, 192.168.1.100:1935 192.168.1.101:1935 192.168.1.102:1935
|
||||
origin 127.0.0.1:1935 localhost:1935;
|
||||
}
|
||||
# vhost for edge, chnage vhost.
|
||||
vhost change.edge.srs.com {
|
||||
mode remote;
|
||||
origin 127.0.0.1:1935 localhost:1935 {
|
||||
# specify the vhost to override the vhost in client request.
|
||||
vhost edge2.srs.com;
|
||||
# specify the refer(pageUrl) to override the refer in client request.
|
||||
refer http://srs/index.html;
|
||||
}
|
||||
}
|
||||
|
||||
# vhost for dvr
|
||||
vhost dvr.srs.com {
|
||||
# dvr RTMP stream to file,
|
||||
|
|
|
@ -1805,6 +1805,22 @@ int SrsConfig::get_bw_check_limit_kbps(const string &vhost)
|
|||
return ::atoi(conf->arg0().c_str());
|
||||
}
|
||||
|
||||
bool SrsConfig::get_vhost_is_edge(std::string vhost)
|
||||
{
|
||||
SrsConfDirective* conf = get_vhost(vhost);
|
||||
|
||||
if (!conf) {
|
||||
return false;
|
||||
}
|
||||
|
||||
conf = conf->get("mode");
|
||||
if (!conf || conf->arg0() != "remote") {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
SrsConfDirective* SrsConfig::get_transcode(string vhost, string scope)
|
||||
{
|
||||
SrsConfDirective* conf = get_vhost(vhost);
|
||||
|
|
|
@ -163,7 +163,7 @@ public:
|
|||
virtual int get_pithy_print_ingester();
|
||||
virtual int get_pithy_print_hls();
|
||||
virtual int get_pithy_print_play();
|
||||
// vhost section
|
||||
// vhost specified section
|
||||
public:
|
||||
virtual SrsConfDirective* get_vhost(std::string vhost);
|
||||
virtual void get_vhosts(std::vector<SrsConfDirective*>& vhosts);
|
||||
|
@ -190,6 +190,9 @@ public:
|
|||
virtual std::string get_bw_check_key(const std::string& vhost);
|
||||
virtual int get_bw_check_interval_ms(const std::string& vhost);
|
||||
virtual int get_bw_check_limit_kbps(const std::string& vhost);
|
||||
// vhost edge section
|
||||
public:
|
||||
virtual bool get_vhost_is_edge(std::string vhost);
|
||||
// vhost transcode section
|
||||
public:
|
||||
virtual SrsConfDirective* get_transcode(std::string vhost, std::string scope);
|
||||
|
|
|
@ -286,8 +286,10 @@ int SrsRtmpConn::stream_service_cycle()
|
|||
return ret;
|
||||
}
|
||||
|
||||
bool vhost_is_edge = _srs_config->get_vhost_is_edge(req->vhost);
|
||||
bool enabled_cache = _srs_config->get_gop_cache(req->vhost);
|
||||
srs_trace("source found, url=%s, enabled_cache=%d", req->get_stream_url().c_str(), enabled_cache);
|
||||
srs_trace("source found, url=%s, enabled_cache=%d, edge=%d",
|
||||
req->get_stream_url().c_str(), enabled_cache, vhost_is_edge);
|
||||
source->set_cache(enabled_cache);
|
||||
|
||||
switch (type) {
|
||||
|
|
Loading…
Reference in a new issue