Raspberry pi 使用gstreamer收听来自kurento媒体服务器的音频流

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

我正在尝试从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\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