Raspberry pi 使用gstreamer收听来自kurento媒体服务器的音频流
我正在尝试从A点向kurento媒体服务器发送音频流,并使用gstreamer在B点接收该音频流。 我想要达到的目标应该是这样的: (A点)--使用GSTREAMER发送音频流--->(Kuranto)--音频流--->(B点)--使用GSTREMAER获取音频--- 到目前为止,我编写了以下代码:Raspberry pi 使用gstreamer收听来自kurento媒体服务器的音频流,raspberry-pi,gstreamer,kurento,gstreamer-1.0,Raspberry Pi,Gstreamer,Kurento,Gstreamer 1.0,我正在尝试从A点向kurento媒体服务器发送音频流,并使用gstreamer在B点接收该音频流。 我想要达到的目标应该是这样的: (A点)--使用GSTREAMER发送音频流--->(Kuranto)--音频流--->(B点)--使用GSTREMAER获取音频--- 到目前为止,我编写了以下代码: function createOutGoingAudioStream() { var sdpOffer = " v=0\r\n" + "o=- 0 0 IN IP4 0.0.0.0
function createOutGoingAudioStream() {
var sdpOffer = " v=0\r\n"
+ "o=- 0 0 IN IP4 0.0.0.0\r\n"
+ "c=IN IP4 0.0.0.0\r\n"
+ "t=0 0\r\n"
+ "m=audio 5005 RTP/AVP 0\r\n"
+ "a=rtpmap:0 PCMU/8000\r\n";
var pipeline;
console.log();
console.log("Starting Audio Stream from Command Post.....");
// get kurento client
getKurentoClient(function(error, kurentoClient) {
if (error) {
return callback(error);
}
// create media pipe line
kurentoClient.create('MediaPipeline', function(error, pipeline) {
if (error) {
return callback(error);
}
// create first rtpEndpoint for the incoming audio stream
pipeline.create('RtpEndpoint', function(error, rtpEndpoint) {
if (error) {
pipeline.release();
return callback(error);
}
console.log('audio RTP Endpoint created successfully!');
rtpEndpoint.processOffer(sdpOffer, function(error, sdpAnswer) {
if (error) {
pipeline.release();
return callback(error);
}
console.log(sdpAnswer);
console.log();
// Start a gstreamer audio stream over the audio port that we got from the kurento server
var jsonSdpAnswer = transform.parse(sdpAnswer);
var port = jsonSdpAnswer.media[0].port;
console.log("Starting audio stream to the kurento server: ");
console.log('sh gstreamer.sh ' + port + ' > log.txt')
exec('sh gstreamer.sh ' + port + ' > log.txt', function(err, stdout, stderr) {
if (err) {
console.error(err);
return;
}
//if all is ok nothing wil prompt to the console
console.log(stdout);
});
});
// create second rtpEndpoint for the outgoing to the odroid's audio stream
pipeline.create('RtpEndpoint', function(error, outRtpEndpoint) {
if (error) {
pipeline.release();
return callback(error);
}
console.log('second RTP Endpoint created successfully!');
rtpEndpoint.connect(outRtpEndpoint, function(error){
if(error) return onError(error);
});
outRtpEndpoint.generateOffer(function(error,offerSdp){
if(error) return onError(error);
console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
console.log(offerSdp);
});
});
});
});
});
}
我从kurento服务器得到outRtpEndpoint的sdpOffer,它看起来像这样:
不管我试图做什么来听那个流,它只是不想工作。我做错了什么
我真的很感激任何帮助
谢谢 我差不多解决了这个问题。我在A点从浏览器(webrtcEndpoint)获取源音频流,并将该端点连接到rtpEndpoint,然后从那里获取流到B点。 (点A-web浏览器->WebRTC端点)->(Kurento->rtpEndpoint)->(点B-ffplay) 在流式传输到的计算机上,您可以通过以下方式收听流:
ffplay rtp://IP_FROM_THE_SDP_OFFER_IN_THE_CODE_ABOVE:AUDIO_PORT_FROM_THE_SDP_OFFER_FROM_THE_CODE_ABOVE
ffplay rtp://IP_FROM_THE_SDP_OFFER_IN_THE_CODE_ABOVE:AUDIO_PORT_FROM_THE_SDP_OFFER_FROM_THE_CODE_ABOVE