gpt4 book ai didi

java - RTSP 描述 header 但没有响应

转载 作者:行者123 更新时间:2023-12-01 05:08:47 25 4
gpt4 key购买 nike

我正在编写 RTSP 流媒体服务器,我需要一些帮助。我想我已经尝试了一切并阅读了主题:

Receiving video stream from an IP camera on android

Playing RTSP stream in VLC player

Android local RTSP server (spoof), PVPlayer closes TCP socket after DESCRIBE reply sent

和其他类似的东西。当然,我还阅读了许多 pdf 和 RFC。

我的故事:我编写了 rtsp 服务器,当我向 DESCRIBE header 发送响应时出现问题:

responseHeader.append(HeaderStates.OK);
responseHeader.append(CRLF);
responseHeader.append(CSeq);
responseHeader.append(CRLF);
responseHeader.append("session: ");
responseHeader.append(Long.valueOf(sessionID));
responseHeader.append(CRLF);
Date date = new Date();
responseHeader.append("Date: ");
responseHeader.append(date.toGMTString());
responseHeader.append(CRLF);
responseHeader.append("Content-Type: application/sdp");
responseHeader.append(CRLF);
responseHeader.append("Content-Base: ");
responseHeader.append(localAddress.getHostAddress());
responseHeader.append(":");
responseHeader.append(Integer.valueOf(localPort));
responseHeader.append(CRLF);
responseHeader.append(CRLF);
responseHeader.append("v=0");
responseHeader.append(CRLF);
responseHeader.append("o=- ");
responseHeader.append(date.getTime());
responseHeader.append(" ");
responseHeader.append(date.getTime());
responseHeader.append(" IN IP4 ");
responseHeader.append(localAddress.getHostAddress());
responseHeader.append(CRLF);
responseHeader.append("a=control:rtsp://192.168.1.143:55555");
responseHeader.append(CRLF);
responseHeader.append("s=RTSPSession");
responseHeader.append(CRLF);
responseHeader.append("m=video 55555 RTP/AVP 26");
responseHeader.append(CRLF);
responseHeader.append("a=rtpmap:26 JPEG/90000");
responseHeader.append(CRLF);
responseHeader.append("a=mimetype:video/JPEG");
responseHeader.append(CRLF);
//responseHeader.append("a=control:trackID=1");
responseHeader.append(CRLF);
responseHeader.append(CRLF);

其中 HeaderStates.OK 为“200 OK”,SessionID 为 System.currentTimeMillis(),CRLF =“\r\n”,responseHeader 以“RTSP/1.0”开头

然后 VLC(我的 PC 上的客户端抛出未处理的异常并崩溃),SMPlayer 读取 header 并将其显示在日志中,但不响应。

有时我会在 SMPlayer 日志中看到有关 SDP 错误的信息,但我认为此错误的原因是调试时间过长。

我的问题:我做错了什么?为什么客户端没有 SETUP header ?

最佳答案

您在 RtspResponse 中缺少 CSeq header ,因此它无效。

此外,在您的示例中,您将返回 SDP,因此您需要 Content-Length header !

查看我的服务器@ http://net7mma.codeplex.com/要查看现有实现的代码,尽管它是用 C# 编写的,您应该能够获得所需的内容。

关于java - RTSP 描述 header 但没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12338866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com