Exemple #1
0
        /// <summary>
        /// 设置媒体参数请求(实时)
        /// </summary>
        /// <param name="localIp">本地ip</param>
        /// <param name="mediaPort">rtp/rtcp媒体端口(10000/10001)</param>
        /// <returns></returns>
        private string SetMediaAudio(string localIp, int port, string audioId)
        {
            SDPConnectionInformation sdpConn = new SDPConnectionInformation(localIp);

            SDP sdp = new SDP();

            sdp.Version     = 0;
            sdp.SessionId   = "0";
            sdp.Username    = audioId;
            sdp.SessionName = CommandType.Play.ToString();
            sdp.Connection  = sdpConn;
            sdp.Timing      = "0 0";
            sdp.Address     = localIp;

            SDPMediaFormat psFormat = new SDPMediaFormat(SDPMediaFormatsEnum.PS);

            psFormat.IsStandardAttribute = false;

            SDPMediaAnnouncement media = new SDPMediaAnnouncement();

            media.Media = SDPMediaTypesEnum.audio;

            media.MediaFormats.Add(psFormat);
            media.AddExtra("a=sendonly");
            media.AddExtra("y=0100000002");
            //media.AddExtra("f=v/////a/1/8/1");
            media.AddFormatParameterAttribute(psFormat.FormatID, psFormat.Name);
            media.Port = port;

            sdp.Media.Add(media);

            return(sdp.ToString());
        }
        /// <summary>
        /// 设置媒体参数请求(实时)
        /// </summary>
        /// <param name="localIp">本地ip</param>
        /// <param name="mediaPort">rtp/rtcp媒体端口(10000/10001)</param>
        /// <returns></returns>
        private string SetMediaReq(string localIp, int[] mediaPort)
        {
            SDPConnectionInformation sdpConn = new SDPConnectionInformation(localIp);

            SDP sdp = new SDP();

            sdp.Version     = 0;
            sdp.SessionId   = "0";
            sdp.Username    = _msgCore.LocalSIPId;
            sdp.SessionName = CommandType.Play.ToString();
            sdp.Connection  = sdpConn;
            sdp.Timing      = "0 0";
            sdp.Address     = localIp;

            SDPMediaFormat psFormat = new SDPMediaFormat(SDPMediaFormatsEnum.PS);

            psFormat.IsStandardAttribute = false;
            SDPMediaFormat h264Format = new SDPMediaFormat(SDPMediaFormatsEnum.H264);

            h264Format.IsStandardAttribute = false;
            SDPMediaAnnouncement media = new SDPMediaAnnouncement();

            media.Media = SDPMediaTypesEnum.video;

            media.MediaFormats.Add(psFormat);
            media.MediaFormats.Add(h264Format);
            media.AddExtra("a=recvonly");
            media.AddFormatParameterAttribute(psFormat.FormatID, psFormat.Name);
            media.AddFormatParameterAttribute(h264Format.FormatID, h264Format.Name);
            media.Port = mediaPort[0];

            sdp.Media.Add(media);

            return(sdp.ToString());
        }
        public static SDPConnectionInformation ParseConnectionInformation(string connectionLine)
        {
            SDPConnectionInformation connectionInfo = new SDPConnectionInformation();

            string[] connectionFields = connectionLine.Substring(2).Trim().Split(' ');
            connectionInfo.ConnectionNetworkType = connectionFields[0].Trim();
            connectionInfo.ConnectionAddressType = connectionFields[1].Trim();
            connectionInfo.ConnectionAddress     = connectionFields[2].Trim();
            return(connectionInfo);
        }
        public string GetReceiveIP(string sdpStr)
        {
            string[] sdpLines = sdpStr.Split('\n');

            var targetLine = sdpLines.FirstOrDefault(line => line.Trim().StartsWith("c="));

            if (targetLine != null)
            {
                var conn = SDPConnectionInformation.ParseConnectionInformation(targetLine);
                return(conn.ConnectionAddress);
            }
            return(null);
        }
Exemple #5
0
        private string GetReceiveIP(string sdpStr)
        {
            string[] sdpLines = sdpStr.Split('\n');

            foreach (var line in sdpLines)
            {
                if (line.Trim().StartsWith("c="))
                {
                    SDPConnectionInformation conn = SDPConnectionInformation.ParseConnectionInformation(line);
                    return(conn.ConnectionAddress);
                }
            }
            return(null);
        }
        /// <summary>
        /// 设置媒体参数请求(实时)
        /// </summary>
        /// <param name="localIp">本地ip</param>
        /// <param name="mediaPort">rtp/rtcp媒体端口(10000/10001)</param>
        /// <returns></returns>
        private string SetMediaAudio(string localIp, int port, string audioId)
        {
            var sdpConn = new SDPConnectionInformation(localIp);

            var sdp = new SDP
            {
                Version     = 0,
                SessionId   = "0",
                Username    = audioId,
                SessionName = CommandType.Play.ToString(),
                Connection  = sdpConn,
                Timing      = "0 0",
                Address     = localIp
            };

            var psFormat = new SDPMediaFormat(SDPMediaFormatsEnum.PS)
            {
                IsStandardAttribute = false
            };

            var media = new SDPMediaAnnouncement
            {
                Media = SDPMediaTypesEnum.audio
            };

            media.MediaFormats.Add(psFormat);
            media.AddExtra("a=sendonly");
            media.AddExtra("y=0100000002");
            //media.AddExtra("f=v/////a/1/8/1");
            media.AddFormatParameterAttribute(psFormat.FormatID, psFormat.Name);
            media.Port = port;

            sdp.Media.Add(media);

            return(sdp.ToString());
        }
Exemple #7
0
        private int test()
        {
            string sdpStr = @"v=0
o=34010000002000000002 0 0 IN IP4 192.168.95.213
s=Play
c=IN IP4 192.168.95.213
t=0 0
m=video 10000 RTP/AVP 96 98 97
a=sendonly
a=rtpmap:96 PS/90000
a=rtpmap:98 H264/90000
a=rtpmap:97 MPEG4/90000";

            string[] sdpLines = sdpStr.Split('\n');

            foreach (var line in sdpLines)
            {
                if (line.Trim().StartsWith("c="))
                {
                    SDPConnectionInformation conn = SDPConnectionInformation.ParseConnectionInformation(line);
                }
            }
            return(0);
        }