1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

update demo, support acodec

This commit is contained in:
winlin 2014-04-11 14:13:14 +08:00
parent acdd5a827e
commit 15f651bccd
11 changed files with 97 additions and 20 deletions

View file

@ -2,6 +2,9 @@
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
// to query the swf anti cache.
function srs_get_version_code() { return "1.20"; }
/**
* player specified size.
*/
@ -9,8 +12,6 @@ function srs_get_player_modal() { return 740; }
function srs_get_player_width() { return srs_get_player_modal() - 30; }
function srs_get_player_height() { return srs_get_player_width() * 9 / 19; }
// to query the swf anti cache.
function srs_get_version_code() { return "1.19"; }
// get the default vhost for players.
function srs_get_player_vhost() { return "players"; }
// the api server port, for chat room.
@ -23,7 +24,7 @@ function srs_get_srs_http_server_port() { return 8080; }
// if not equals to the player vhost, return the orignal vhost.
function srs_get_player_publish_vhost(src_vhost) { return (src_vhost != srs_get_player_vhost())? src_vhost:(src_vhost + "_pub"); }
// for chat, use rtmp only vhost, low latecy, without gop cache.
function srs_get_player_chat_vhost(src_vhost) { return (src_vhost != srs_get_player_vhost())? src_vhost:(src_vhost + "_pub_rtmp"); }
function srs_get_player_chat_vhost(src_vhost) { return (src_vhost != srs_get_player_vhost())? src_vhost:(src_vhost + "_chat"); }
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
@ -181,7 +182,8 @@ function srs_can_republish() {
// without default values set.
function srs_initialize_codec_page(
cameras, microphones,
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate,
sl_acodec
) {
$(sl_cameras).empty();
for (var i = 0; i < cameras.length; i++) {
@ -292,17 +294,25 @@ function srs_initialize_codec_page(
for (i = 0; i < bitrates.length; i++) {
$(sl_bitrate).append("<option value='" + bitrates[i] + "'>" + bitrates[i] + " kbps</option");
}
$(sl_acodec).empty();
var bitrates = ["speex", "nellymoser", "pcma", "pcmu"];
for (i = 0; i < bitrates.length; i++) {
$(sl_acodec).append("<option value='" + bitrates[i] + "'>" + bitrates[i] + "</option");
}
}
/**
* when publisher ready, init the page elements.
*/
function srs_publisher_initialize_page(
cameras, microphones,
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate,
sl_acodec
) {
srs_initialize_codec_page(
cameras, microphones,
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate,
sl_acodec
);
//var profiles = ["baseline", "main"];
@ -327,17 +337,22 @@ function srs_publisher_initialize_page(
//var bitrates = ["50", "200", "350", "500", "650", "800",
// "950", "1000", "1200", "1500", "1800", "2000", "3000", "5000"];
$(sl_bitrate + " option[value='500']").attr("selected", true);
// speex
$(sl_acodec + " option[value='speex']").attr("selected", true);
}
/**
* for chat, use low latecy settings.
*/
function srs_chat_initialize_page(
cameras, microphones,
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate,
sl_acodec
) {
srs_initialize_codec_page(
cameras, microphones,
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate,
sl_acodec
);
//var profiles = ["baseline", "main"];
@ -362,14 +377,19 @@ function srs_chat_initialize_page(
//var bitrates = ["50", "200", "350", "500", "650", "800",
// "950", "1000", "1200", "1500", "1800", "2000", "3000", "5000"];
$(sl_bitrate + " option[value='350']").attr("selected", true);
// speex
$(sl_acodec + " option[value='speex']").attr("selected", true);
}
/**
* get the vcodec and acodec.
*/
function srs_publiser_get_codec(
vcodec, acodec,
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate
sl_cameras, sl_microphones, sl_vcodec, sl_profile, sl_level, sl_gop, sl_size, sl_fps, sl_bitrate,
sl_acodec
) {
acodec.codec = $(sl_acodec).val();
acodec.device_code = $(sl_microphones).val();
acodec.device_name = $(sl_microphones).text();

View file

@ -82,7 +82,8 @@
cameras, microphones,
"#sl_cameras", "#sl_microphones",
"#sl_vcodec", "#sl_profile", "#sl_level", "#sl_gop", "#sl_size",
"#sl_fps", "#sl_bitrate"
"#sl_fps", "#sl_bitrate",
"#sl_acodec"
);
};
srs_publisher.on_publisher_error = function(code, desc) {
@ -490,7 +491,8 @@
vcodec, acodec,
"#sl_cameras", "#sl_microphones",
"#sl_vcodec", "#sl_profile", "#sl_level", "#sl_gop", "#sl_size",
"#sl_fps", "#sl_bitrate"
"#sl_fps", "#sl_bitrate",
"#sl_acodec"
);
var chat = {};
@ -760,6 +762,17 @@
<select class="span4" id="sl_microphones"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="sl_acodec">
编码
<a id="sl_acodec_tips" href="#" data-toggle="tooltip" data-placement="right" title="">
<img src="img/tooltip.png"/>
</a>
</label>
<div class="controls">
<select class="span2" id="sl_acodec"></select>
</div>
</div>
</div>
</div>
<div class="modal-footer">

View file

@ -67,7 +67,8 @@
cameras, microphones,
"#sl_cameras", "#sl_microphones",
"#sl_vcodec", "#sl_profile", "#sl_level", "#sl_gop", "#sl_size",
"#sl_fps", "#sl_bitrate"
"#sl_fps", "#sl_bitrate",
"#sl_acodec"
);
};
srs_publisher.on_publisher_error = function(code, desc) {
@ -184,7 +185,8 @@
vcodec, acodec,
"#sl_cameras", "#sl_microphones",
"#sl_vcodec", "#sl_profile", "#sl_level", "#sl_gop", "#sl_size",
"#sl_fps", "#sl_bitrate"
"#sl_fps", "#sl_bitrate",
"#sl_acodec"
);
info("开始推流到服务器");
@ -376,6 +378,17 @@
<select class="span4" id="sl_microphones"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="sl_acodec">
编码
<a id="sl_acodec_tips" href="#" data-toggle="tooltip" data-placement="right" title="">
<img src="img/tooltip.png"/>
</a>
</label>
<div class="controls">
<select class="span2" id="sl_acodec"></select>
</div>
</div>
</div>
</div>
<div class="modal-footer">

View file

@ -273,7 +273,7 @@ package
var microRate:int = 22; // 22 === 22050 Hz
trace("[Publish] audio encoding parameters: "
+ "audio(microphone) encodeQuality=" + microEncodeQuality
+ "audio(microphone) codec=" + acodec.codec + "encodeQuality=" + microEncodeQuality
+ ", rate=" + microRate + "(22050Hz)"
);
@ -288,7 +288,15 @@ package
m.rate = microRate;
// see: http://www.adobe.com/cn/devnet/flashplayer/articles/acoustic-echo-cancellation.html
m.codec = SoundCodec.SPEEX;
if (acodec.codec == "nellymoser") {
m.codec = SoundCodec.NELLYMOSER;
} else if (acodec.codec == "pcma") {
m.codec = SoundCodec.PCMA;
} else if (acodec.codec == "pcmu") {
m.codec = SoundCodec.PCMU;
} else {
m.codec = SoundCodec.SPEEX;
}
m.framesPerPacket = 1;
}
private function __build_video_codec(stream:NetStream, c:Camera, vcodec:Object):void {