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-06-08 15:02:19 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
574cf6a0947b9086a3746a8f510d4b7a6fbba952
574cf6a0
1 parent
00a25ee5
use libfdk_aac for srs2.
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
37 行增加
和
35 行删除
trunk/auto/build_ffmpeg.sh
trunk/src/app/srs_app_config.cpp
trunk/src/app/srs_app_config.hpp
trunk/src/app/srs_app_ffmpeg.cpp
trunk/src/utest/srs_utest_config.cpp
trunk/auto/build_ffmpeg.sh
查看文件 @
574cf6a
...
...
@@ -19,9 +19,6 @@ echo "SRS_JOBS: ${SRS_JOBS}"
mkdir -p
${
ff_build_dir
}
mkdir -p
${
ff_release_dir
}
# for ubuntu14, donot compile libaacplus.
UBUNTU14
=
NO;grep -in
"Ubuntu 14."
/etc/issue >/dev/null 2>&1;
if
[[
$?
-eq 0
]]
;
then
UBUNTU14
=
YES;
fi
# yasm for libx264
ff_yasm_bin
=
${
ff_release_dir
}
/bin/yasm
if
[[
-f
${
ff_yasm_bin
}
]]
;
then
...
...
trunk/src/app/srs_app_config.cpp
查看文件 @
574cf6a
...
...
@@ -2860,13 +2860,15 @@ vector<string> SrsConfig::get_engine_vfilter(SrsConfDirective* engine)
string
SrsConfig
::
get_engine_vcodec
(
SrsConfDirective
*
engine
)
{
static
string
DEFAULT
=
""
;
if
(
!
engine
)
{
return
""
;
return
DEFAULT
;
}
SrsConfDirective
*
conf
=
engine
->
get
(
"vcodec"
);
if
(
!
conf
)
{
return
""
;
return
DEFAULT
;
}
return
conf
->
arg0
();
...
...
@@ -2998,13 +3000,15 @@ vector<string> SrsConfig::get_engine_vparams(SrsConfDirective* engine)
string
SrsConfig
::
get_engine_acodec
(
SrsConfDirective
*
engine
)
{
static
string
DEFAULT
=
""
;
if
(
!
engine
)
{
return
""
;
return
DEFAULT
;
}
SrsConfDirective
*
conf
=
engine
->
get
(
"acodec"
);
if
(
!
conf
)
{
return
""
;
return
DEFAULT
;
}
return
conf
->
arg0
();
...
...
trunk/src/app/srs_app_config.hpp
查看文件 @
574cf6a
...
...
@@ -783,7 +783,7 @@ public:
virtual
std
::
vector
<
std
::
string
>
get_engine_vfilter
(
SrsConfDirective
*
engine
);
/**
* get the vcodec of engine,
* the codec of video, copy or libx264
* the codec of video, c
an be vn, c
opy or libx264
*/
virtual
std
::
string
get_engine_vcodec
(
SrsConfDirective
*
engine
);
/**
...
...
@@ -827,7 +827,7 @@ public:
virtual
std
::
vector
<
std
::
string
>
get_engine_vparams
(
SrsConfDirective
*
engine
);
/**
* get the acodec of engine,
* the audio codec can be
copy or libaacplus
* the audio codec can be
an, copy or libfdk_aac
*/
virtual
std
::
string
get_engine_acodec
(
SrsConfDirective
*
engine
);
/**
...
...
trunk/src/app/srs_app_ffmpeg.cpp
查看文件 @
574cf6a
...
...
@@ -48,6 +48,7 @@ using namespace std;
// for example, libaacplus, aac, fdkaac
#define SRS_RTMP_ENCODER_ACODEC "aac"
#define SRS_RTMP_ENCODER_LIBAACPLUS "libaacplus"
#define SRS_RTMP_ENCODER_LIBFDKAAC "libfdk_aac"
SrsFFMPEG
::
SrsFFMPEG
(
std
::
string
ffmpeg_bin
)
{
...
...
@@ -174,7 +175,7 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine)
}
// @see, https://github.com/simple-rtmp-server/srs/issues/145
if
(
acodec
==
SRS_RTMP_ENCODER_LIBAACPLUS
)
{
if
(
acodec
==
SRS_RTMP_ENCODER_LIBAACPLUS
&&
acodec
!=
SRS_RTMP_ENCODER_LIBFDKAAC
)
{
if
(
abitrate
<
16
||
abitrate
>
72
)
{
ret
=
ERROR_ENCODER_ABITRATE
;
srs_error
(
"invalid abitrate for aac: %d, must in [16, 72], ret=%d"
,
abitrate
,
ret
);
...
...
trunk/src/utest/srs_utest_config.cpp
查看文件 @
574cf6a
...
...
@@ -289,7 +289,7 @@ std::string _full_conf = ""
" bf 3;
\n
"
" refs 10;
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 70;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -320,7 +320,7 @@ std::string _full_conf = ""
" vpreset superfast;
\n
"
" vparams {
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -349,7 +349,7 @@ std::string _full_conf = ""
" vpreset superfast;
\n
"
" vparams {
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -379,7 +379,7 @@ std::string _full_conf = ""
" vpreset superfast;
\n
"
" vparams {
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -396,7 +396,7 @@ std::string _full_conf = ""
" engine acodec {
\n
"
" enabled on;
\n
"
" vcodec copy;
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -413,7 +413,7 @@ std::string _full_conf = ""
" engine vn {
\n
"
" enabled on;
\n
"
" vcodec vn;
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -461,7 +461,7 @@ std::string _full_conf = ""
" bf 3;
\n
"
" refs 10;
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 70;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -483,7 +483,7 @@ std::string _full_conf = ""
" vpreset medium;
\n
"
" vparams {
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 70;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -503,7 +503,7 @@ std::string _full_conf = ""
" vpreset fast;
\n
"
" vparams {
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 60;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -523,7 +523,7 @@ std::string _full_conf = ""
" vpreset superfast;
\n
"
" vparams {
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -534,7 +534,7 @@ std::string _full_conf = ""
" engine vcopy {
\n
"
" enabled on;
\n
"
" vcodec copy;
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -581,7 +581,7 @@ std::string _full_conf = ""
" vpreset superfast;
\n
"
" vparams {
\n
"
" }
\n
"
" acodec lib
aacplus
;
\n
"
" acodec lib
fdk_aac
;
\n
"
" abitrate 45;
\n
"
" asample_rate 44100;
\n
"
" achannels 2;
\n
"
...
...
@@ -2586,7 +2586,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_mirror)
EXPECT_STREQ
(
"baseline"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"superfast"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -2676,7 +2676,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_crop)
EXPECT_STREQ
(
"baseline"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"superfast"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -2766,7 +2766,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_logo)
EXPECT_STREQ
(
"baseline"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"superfast"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -2849,7 +2849,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_audio)
EXPECT_STREQ
(
"flv"
,
conf
.
get_engine_iformat
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vfilter
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"copy"
,
conf
.
get_engine_vcodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -2933,7 +2933,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_vn)
EXPECT_STREQ
(
"flv"
,
conf
.
get_engine_iformat
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vfilter
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"vn"
,
conf
.
get_engine_vcodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -3105,7 +3105,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all)
EXPECT_STREQ
(
"main"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"medium"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
>
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
70
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -3130,7 +3130,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all)
EXPECT_STREQ
(
"main"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"medium"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
70
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -3155,7 +3155,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all)
EXPECT_STREQ
(
"main"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"fast"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
60
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -3180,7 +3180,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all)
EXPECT_STREQ
(
"baseline"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"superfast"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -3197,7 +3197,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all)
EXPECT_STREQ
(
"flv"
,
conf
.
get_engine_iformat
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vfilter
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"copy"
,
conf
.
get_engine_vcodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -3322,7 +3322,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_ffempty)
EXPECT_STREQ
(
"baseline"
,
conf
.
get_engine_vprofile
(
engine
).
c_str
());
EXPECT_STREQ
(
"superfast"
,
conf
.
get_engine_vpreset
(
engine
).
c_str
());
EXPECT_TRUE
((
int
)
conf
.
get_engine_vparams
(
engine
).
size
()
==
0
);
EXPECT_STREQ
(
"lib
aacplus
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_STREQ
(
"lib
fdk_aac
"
,
conf
.
get_engine_acodec
(
engine
).
c_str
());
EXPECT_EQ
(
45
,
conf
.
get_engine_abitrate
(
engine
));
EXPECT_EQ
(
44100
,
conf
.
get_engine_asample_rate
(
engine
));
EXPECT_EQ
(
2
,
conf
.
get_engine_achannels
(
engine
));
...
...
@@ -4837,12 +4837,12 @@ VOID TEST(ConfigMainTest, CheckConf_transcode)
if
(
true
)
{
MockSrsConfig
conf
;
EXPECT_TRUE
(
ERROR_SUCCESS
==
conf
.
parse
(
_MIN_OK_CONF
"vhost v{transcode{engine {acodec lib
aacplus
;}}}"
));
EXPECT_TRUE
(
ERROR_SUCCESS
==
conf
.
parse
(
_MIN_OK_CONF
"vhost v{transcode{engine {acodec lib
fdk_aac
;}}}"
));
}
if
(
true
)
{
MockSrsConfig
conf
;
EXPECT_TRUE
(
ERROR_SUCCESS
!=
conf
.
parse
(
_MIN_OK_CONF
"vhost v{transcode{engine {acodecs lib
aacplus
;}}}"
));
EXPECT_TRUE
(
ERROR_SUCCESS
!=
conf
.
parse
(
_MIN_OK_CONF
"vhost v{transcode{engine {acodecs lib
fdk_aac
;}}}"
));
}
if
(
true
)
{
...
...
请
注册
或
登录
后发表评论