agora.io web sdk - 获取外部播放器的流 link
agora.io web sdk - get stream link for external player
我使用 Javascript 和 Agora.IO 为直播应用程序编写了一个客户端,我想要一个流 URL ,例如用户可以粘贴的 RTMP 或 HLS 格式进入VLC等外部播放器观看直播。
流对象有一个 play() 方法,我可以用它在网络浏览器中播放流,但是有没有可能 generate/get 一个 link 流?感谢 help/hints 如何完成这个!下面是我到目前为止的代码,通过它我连接到带有 room_number 和 user_id.[= 的直播13=]
var client = AgoraRTC.createClient({
mode: "live",
codec: "h264"
});
client.init('my_app_ID', function() {
console.log("AgoraRTC client initialized");
}, function(err) {
console.log("AgoraRTC client init failed", err);
});
client.join(null, room_number + "", user_id, function(user_id) {
console.log(user_id);
});
client.on("stream-added", function(t) {
var stream = t.stream;
client.subscribe(stream, {
video: !0,
audio: !0
});
client.on("stream-subscribed", function(e) {
var t = e.stream;
t.play('agora_remote'); // plays the stream into a DIV element
});
});
Agora.io 的 Web SDK 没有提供任何通过 RTMP 访问流的方法,因为 Agora Web SDK 基于 Web RTC,这是一个不同的协议。
Agora.io 的 Web SDK 支持将 Agora 流推送到 RTMP url(由 Facebook Live、YouTube live、Vimeo live 等服务提供),使用setLiveTranscoding
、startLiveStreaming
和 stopLiveStreaming
方法。
// CDN transcoding settings.
var LiveTranscoding = {
// Width of the video (px). The default value is 640.
width: 640,
// Height of the video (px). The default value is 360.
height: 360,
// Bitrate of the video (Kbps). The default value is 400.
videoBitrate: 400,
// Frame rate of the video (fps). The default value is 15. Agora adjusts all values over 30 to 30.
videoFramerate: 15,
audioSampleRate: AgoraRTC.AUDIO_SAMPLE_RATE_48000,
audioBitrate: 48,
audioChannels: 1,
videoGop: 30,
// Video codec profile. Choose to set as Baseline (66), Main (77), or High (100). If you set this parameter to other values, Agora adjusts it to the default value of 100.
videoCodecProfile: AgoraRTC.VIDEO_CODEC_PROFILE_HIGH,
userCount: 1,
userConfigExtraInfo: {},
backgroundColor: 0x000000,
// Sets the output layout for each user.
transcodingUsers: [{
x: 0,
y: 0,
width: 640,
height: 360,
zOrder: 0,
alpha: 1.0,
// The uid must be identical to the uid used in Client.join.
uid: 1232,
}],
};
client.setLiveTranscoding(LiveTranscoding);
// Adds a URL to which the host pushes a stream. Set the transcodingEnabled parameter as true to enable the transcoding service. Once transcoding is enabled, you need to set the live transcoding configurations by calling the setLiveTranscoding method. We do not recommend transcoding in the case of a single host.
client.startLiveStreaming("your RTMP URL", true)
// Removes a URL to which the host pushes a stream.
client.stopLiveStreaming("your RTMP URL")
完整指南:https://docs.agora.io/en/Interactive%20Broadcast/cdn_streaming_web?platform=Web
感谢您提供详细的指南和参考代码。我正在按照上面的代码进行操作,但无法设置实时转码。
"03:16:14:369 Agora-SDK [DEBUG]: setLiveTranscoding: {"width":640,"height":360,"videoBitrate":400,"videoFramerate":15,"audioSampleRate":48000,"audioBitrate":48,"audioChannels":1,"videoGop":30,"videoCodecProfile":100,"userCount" :1,"userConfigExtraInfo":{},"backgroundColor":0,"images":[{"url":"http://www.com/watermark.png","x":0, "y":0,"width":160,"height":160}],"transcodingUsers":[{"x":0,"y":0, "width":640,"height":360,"zOrder":0,"alpha":1,"uid":3882108012}]}"
我从 "rtc.client.setLiveTranscoding(LiveTranscoding)" 收到上述回复,但 agora 控制台的 "RTMP Converter" 区域没有显示任何内容。
我使用 Javascript 和 Agora.IO 为直播应用程序编写了一个客户端,我想要一个流 URL ,例如用户可以粘贴的 RTMP 或 HLS 格式进入VLC等外部播放器观看直播。
流对象有一个 play() 方法,我可以用它在网络浏览器中播放流,但是有没有可能 generate/get 一个 link 流?感谢 help/hints 如何完成这个!下面是我到目前为止的代码,通过它我连接到带有 room_number 和 user_id.[= 的直播13=]
var client = AgoraRTC.createClient({
mode: "live",
codec: "h264"
});
client.init('my_app_ID', function() {
console.log("AgoraRTC client initialized");
}, function(err) {
console.log("AgoraRTC client init failed", err);
});
client.join(null, room_number + "", user_id, function(user_id) {
console.log(user_id);
});
client.on("stream-added", function(t) {
var stream = t.stream;
client.subscribe(stream, {
video: !0,
audio: !0
});
client.on("stream-subscribed", function(e) {
var t = e.stream;
t.play('agora_remote'); // plays the stream into a DIV element
});
});
Agora.io 的 Web SDK 没有提供任何通过 RTMP 访问流的方法,因为 Agora Web SDK 基于 Web RTC,这是一个不同的协议。
Agora.io 的 Web SDK 支持将 Agora 流推送到 RTMP url(由 Facebook Live、YouTube live、Vimeo live 等服务提供),使用setLiveTranscoding
、startLiveStreaming
和 stopLiveStreaming
方法。
// CDN transcoding settings.
var LiveTranscoding = {
// Width of the video (px). The default value is 640.
width: 640,
// Height of the video (px). The default value is 360.
height: 360,
// Bitrate of the video (Kbps). The default value is 400.
videoBitrate: 400,
// Frame rate of the video (fps). The default value is 15. Agora adjusts all values over 30 to 30.
videoFramerate: 15,
audioSampleRate: AgoraRTC.AUDIO_SAMPLE_RATE_48000,
audioBitrate: 48,
audioChannels: 1,
videoGop: 30,
// Video codec profile. Choose to set as Baseline (66), Main (77), or High (100). If you set this parameter to other values, Agora adjusts it to the default value of 100.
videoCodecProfile: AgoraRTC.VIDEO_CODEC_PROFILE_HIGH,
userCount: 1,
userConfigExtraInfo: {},
backgroundColor: 0x000000,
// Sets the output layout for each user.
transcodingUsers: [{
x: 0,
y: 0,
width: 640,
height: 360,
zOrder: 0,
alpha: 1.0,
// The uid must be identical to the uid used in Client.join.
uid: 1232,
}],
};
client.setLiveTranscoding(LiveTranscoding);
// Adds a URL to which the host pushes a stream. Set the transcodingEnabled parameter as true to enable the transcoding service. Once transcoding is enabled, you need to set the live transcoding configurations by calling the setLiveTranscoding method. We do not recommend transcoding in the case of a single host.
client.startLiveStreaming("your RTMP URL", true)
// Removes a URL to which the host pushes a stream.
client.stopLiveStreaming("your RTMP URL")
完整指南:https://docs.agora.io/en/Interactive%20Broadcast/cdn_streaming_web?platform=Web
感谢您提供详细的指南和参考代码。我正在按照上面的代码进行操作,但无法设置实时转码。
"03:16:14:369 Agora-SDK [DEBUG]: setLiveTranscoding: {"width":640,"height":360,"videoBitrate":400,"videoFramerate":15,"audioSampleRate":48000,"audioBitrate":48,"audioChannels":1,"videoGop":30,"videoCodecProfile":100,"userCount" :1,"userConfigExtraInfo":{},"backgroundColor":0,"images":[{"url":"http://www.com/watermark.png","x":0, "y":0,"width":160,"height":160}],"transcodingUsers":[{"x":0,"y":0, "width":640,"height":360,"zOrder":0,"alpha":1,"uid":3882108012}]}"
我从 "rtc.client.setLiveTranscoding(LiveTranscoding)" 收到上述回复,但 agora 控制台的 "RTMP Converter" 区域没有显示任何内容。