我正在尝试将音频流从 A 点发送到 kurento 媒体服务器,并使用 gstreamer 在 B 点接收该音频流。我试图实现的应该是这样的:
(A点)----使用GSTREAMER发送音频--->(KURENTO)----音频流----->(B点)---使用GSTREAMER获取音频----!
到目前为止,我编写了以下代码:
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,它看起来像这样:
为了收听该流,我尝试做什么并不重要,它只是不想工作。我究竟做错了什么 ?
我真的很感激任何帮助。
谢谢 !!!