Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2015-08-30 14:52:12 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b1b76a4a80ea69751d031f37141976493335a316
b1b76a4a
1 parent
873aa7bf
for #319, allow multiple ingest and transcode.
显示空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
112 行增加
和
25 行删除
trunk/conf/full.conf
trunk/conf/full.one.vhost.conf
trunk/src/app/srs_app_config.cpp
trunk/conf/full.conf
查看文件 @
b1b76a4
...
...
@@ -1119,6 +1119,7 @@ vhost ingest.srs.com {
# ingest file/stream/device then push to SRS over RTMP.
# the name/id used to identify the ingest, must be unique in global.
# ingest id is used in reload or http api management.
# @remark vhost can contains multiple ingest
ingest
livestream
{
# whether enabled ingest features
# default: off
...
...
@@ -1200,6 +1201,7 @@ vhost transcode.ingest.srs.com {
# the main comments for transcode
vhost
example
.
transcode
.
srs
.
com
{
# the streaming transcode configs.
# @remark vhost can contains multiple transcode
transcode
{
# whether the transcode enabled.
# if off, donot transcode.
...
...
@@ -1214,13 +1216,14 @@ vhost example.transcode.srs.com {
# whether the engine is enabled
# default: off.
enabled
on
;
# input format, can be:
# input format,
"ffmpeg -i",
can be:
# off, do not specifies the format, ffmpeg will guess it.
# flv, for flv or RTMP stream.
# other format, for example, mp4/aac whatever.
# default: flv
iformat
flv
;
# ffmpeg filters, follows the main input.
# ffmpeg filters, between "-i" and "-vcodec"
# follows the main input.
vfilter
{
# the logo input file.
i
./
doc
/
ffmpeg
-
logo
.
png
;
...
...
@@ -1228,38 +1231,41 @@ vhost example.transcode.srs.com {
# for filters, @see: http://ffmpeg.org/ffmpeg-filters.html
filter_complex
'overlay=10:10'
;
}
# video encoder name. can be:
# video encoder name, "ffmpeg -vcodec"
# can be:
# libx264: use h.264(libx264) video encoder.
# copy: donot encoder the video stream, copy it.
# vn: disable video output.
vcodec
libx264
;
# video bitrate, in kbps
# video bitrate, in kbps
, "ffmepg -b:v"
# @remark 0 to use source video bitrate.
# default: 0
vbitrate
1500
;
# video framerate
.
# video framerate
, "ffmepg -r"
# @remark 0 to use source video fps.
# default: 0
vfps
25
;
# video width, must be even numbers
.
# video width, must be even numbers
, "ffmepg -s"
# @remark 0 to use source video width.
# default: 0
vwidth
768
;
# video height, must be even numbers
.
# video height, must be even numbers
, "ffmepg -s"
# @remark 0 to use source video height.
# default: 0
vheight
320
;
# the max threads for ffmpeg to used
.
# the max threads for ffmpeg to used
, "ffmepg -thread"
# default: 1
vthreads
12
;
# x264 profile, @see x264 -help, can be:
# x264 profile, "ffmepg -profile:v"
# @see x264 -help, can be:
# high,main,baseline
vprofile
main
;
# x264 preset, @see x264 -help, can be:
# x264 preset, "ffmpeg -preset"
# @see x264 -help, can be:
# ultrafast,superfast,veryfast,faster,fast
# medium,slow,slower,veryslow,placebo
vpreset
medium
;
# other x264 or ffmpeg video params
# other x264 or ffmpeg video params
, between "-preset" and "-acodec"
vparams
{
# ffmpeg options, @see: http://ffmpeg.org/ffmpeg.html
t
100
;
...
...
@@ -1269,38 +1275,42 @@ vhost example.transcode.srs.com {
bf
3
;
refs
10
;
}
# audio encoder name. can be:
# audio encoder name, "ffmpeg -acodec"
# can be:
# libfdk_aac: use aac(libfdk_aac) audio encoder.
# copy: donot encoder the audio stream, copy it.
# an: disable audio output.
acodec
libfdk_aac
;
# audio bitrate, in kbps. [16, 72] for libfdk_aac.
# audio bitrate, in kbps, "ffmpeg -b:a"
# [16, 72] for libfdk_aac.
# @remark 0 to use source audio bitrate.
# default: 0
abitrate
70
;
# audio sample rate. for flv/rtmp, it must be:
# audio sample rate, "ffmpeg -ar"
# for flv/rtmp, it must be:
# 44100,22050,11025,5512
# @remark 0 to use source audio sample rate.
# default: 0
asample_rate
44100
;
# audio channel, 1 for mono, 2 for stereo.
# audio channel, "ffmpeg -ac"
# 1 for mono, 2 for stereo.
# @remark 0 to use source audio channels.
# default: 0
achannels
2
;
# other ffmpeg audio params
# other ffmpeg audio params
, between "-ac" and "-f"/"-y"
aparams
{
# audio params, @see: http://ffmpeg.org/ffmpeg-codecs.html#Audio-Encoders
# @remark SRS supported aac profile for HLS is: aac_low, aac_he, aac_he_v2
profile
:
a
aac_low
;
bsf
:
a
aac_adtstoasc
;
}
# output format, can be:
# output format,
"ffmpeg -f"
can be:
# off, do not specifies the format, ffmpeg will guess it.
# flv, for flv or RTMP stream.
# other format, for example, mp4/aac whatever.
# default: flv
oformat
flv
;
# output stream
.
variables:
# output stream
, "ffmpeg -y",
variables:
# [vhost] the input stream vhost.
# [port] the intput stream port.
# [app] the input stream app.
...
...
trunk/conf/full.one.vhost.conf
查看文件 @
b1b76a4
...
...
@@ -189,7 +189,72 @@ vhost vhost.srs.com {
ffmpeg
./
objs
/
ffmpeg
/
bin
/
ffmpeg
;
engine
{
enabled
off
;
output
rtmp
://
127
.
0
.
0
.
1
:[
port
]/
live
?
vhost
=[
vhost
]/
livestream
;
iformat
flv
;
vfilter
{
s
30
;
ss
300
;
}
vcodec
libx264
;
vbitrate
1500
;
vfps
25
;
vwidth
768
;
vheight
320
;
vthreads
12
;
vprofile
main
;
vpreset
medium
;
vparams
{
t
100
;
coder
1
;
b_strategy
2
;
bf
3
;
refs
10
;
}
acodec
libfdk_aac
;
abitrate
70
;
asample_rate
44100
;
achannels
2
;
aparams
{
profile
:
a
aac_low
;
}
oformat
flv
;
output
rtmp
://
127
.
0
.
0
.
1
:[
port
]/[
app
]?
vhost
=[
vhost
]/[
stream
];
}
}
transcode
live
{
enabled
off
;
ffmpeg
./
objs
/
ffmpeg
/
bin
/
ffmpeg
;
engine
ffsuper
{
enabled
off
;
iformat
flv
;
vfilter
{
s
30
;
ss
300
;
}
vcodec
libx264
;
vbitrate
1500
;
vfps
25
;
vwidth
768
;
vheight
320
;
vthreads
12
;
vprofile
main
;
vpreset
medium
;
vparams
{
t
100
;
coder
1
;
b_strategy
2
;
bf
3
;
refs
10
;
}
acodec
libfdk_aac
;
abitrate
70
;
asample_rate
44100
;
achannels
2
;
aparams
{
profile
:
a
aac_low
;
}
oformat
flv
;
output
rtmp
://
127
.
0
.
0
.
1
:[
port
]/[
app
]?
vhost
=[
vhost
]/[
stream
]
_
[
engine
];
}
}
...
...
@@ -200,8 +265,8 @@ vhost vhost.srs.com {
enabled
off
;
iformat
flv
;
vfilter
{
i
./
doc
/
ffmpeg
-
logo
.
png
;
filter_complex
overlay
=
10
:
10
;
s
30
;
ss
300
;
}
vcodec
libx264
;
vbitrate
1500
;
...
...
trunk/src/app/srs_app_config.cpp
查看文件 @
b1b76a4
...
...
@@ -2096,14 +2096,26 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj)
}
// transcode
if
((
dir
=
vhost
->
get
(
"transcode"
))
!=
NULL
)
{
SrsAmf0StrictArray
*
transcodes
=
NULL
;
for
(
int
i
=
0
;
i
<
(
int
)
vhost
->
directives
.
size
();
i
++
)
{
dir
=
vhost
->
directives
.
at
(
i
);
if
(
dir
->
name
!=
"transcode"
)
{
continue
;
}
if
(
!
transcodes
)
{
transcodes
=
SrsAmf0Any
::
strict_array
();
obj
->
set
(
"transcodes"
,
transcodes
);
}
SrsAmf0Object
*
transcode
=
SrsAmf0Any
::
object
();
obj
->
set
(
"transcode"
,
transcode
);
transcodes
->
append
(
transcode
);
transcode
->
set
(
"apply"
,
dir
->
dumps_arg0_to_str
());
transcode
->
set
(
"enabled"
,
SrsAmf0Any
::
boolean
(
get_transcode_enabled
(
dir
)));
SrsAmf0StrictArray
*
engines
=
SrsAmf0Any
::
strict_array
();
obj
->
set
(
"engines"
,
engines
);
transcode
->
set
(
"engines"
,
engines
);
for
(
int
i
=
0
;
i
<
(
int
)
dir
->
directives
.
size
();
i
++
)
{
SrsConfDirective
*
sdir
=
dir
->
directives
.
at
(
i
);
...
...
@@ -2151,7 +2163,7 @@ int SrsConfig::dumps_engine(SrsConfDirective* dir, SrsAmf0Object* engine)
SrsConfDirective
*
conf
=
NULL
;
engine
->
set
(
"
name
"
,
dir
->
dumps_arg0_to_str
());
engine
->
set
(
"
id
"
,
dir
->
dumps_arg0_to_str
());
engine
->
set
(
"enabled"
,
SrsAmf0Any
::
boolean
(
get_engine_enabled
(
dir
)));
if
((
conf
=
dir
->
get
(
"iformat"
))
!=
NULL
)
{
...
...
请
注册
或
登录
后发表评论