- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在编写 RTSP 服务器时遇到了一些问题。我正在使用 VLC 作为客户端。
服务器接收来自客户端(VLC 播放器)的 OPTIONS、DESCRIBE、SETUP 和 PLAY 命令以及对这些命令的响应。
通过 SETUP 命令客户端发送端口号,我正在使用该端口发送数据。当我的服务器收到 PLAY 命令时,它会发送答案并开始传输数据。我正在使用客户端端口创建两个 DatagramSocket 实例。
我正在尝试流式传输 mp4 文件。我正在使用 mp4parse用于获取音频和视频轨道数据以进行流式传输的 java 库。
因此,当我在 VLC 上单击播放时,它正在连接并开始等待数据,几秒钟后我在 VLC 消息中收到了这条消息:
live555 warning: no data received in 10s. Switching to TCP
这是我的 SDP 数据:
v=0
o=- 0 0 IN IP4 127.0.0.1
m=video 0 RTP/AVP 96
b=AS:1633
a=rtpmap:96 H264/90000
a=control:trackID=65536
a=fmtp:96 profile-level-id=64001F; packetization-mode=1; sprop-parameter-sets=Z2QAH6zZgFAFuhAAAAMAEAAAAwMg8YMZoA==,aOl7LIs=
a=framesize:96 1280-720
m=audio 0 RTP/AVP 97
b=AS:129
a=rtpmap:97 mpeg4-generic/48000/2
a=control:trackID=65537
a=fmtp:97 profile-level-id=41; config=1190; streamType=5; mode=AAC-hbr; objectType=64; constantDuration=1024; sizeLength=13; indexLength=3; indexDeltaLength=3
此外,我正在使用 jlibrtp用于创建 RTP 数据包并发送它们。
这是服务器-客户端通信日志:
+++++++CLIENT+S++++++++++
OPTIONS rtsp://127.0.0.1:4444/aaa RTSP/1.0
CSeq: 2
User-Agent: LibVLC/2.0.1 (LIVE555 Streaming Media v2011.12.23)
+++++++CLIENT+E++++++++++
+++++++SERVER+S++++++++++
RTSP/1.0 200 OK
CSeq: 2
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE
+++++++SERVER+E++++++++++
+++++++CLIENT+S++++++++++
DESCRIBE rtsp://127.0.0.1:4444/aaa RTSP/1.0
CSeq: 3
User-Agent: LibVLC/2.0.1 (LIVE555 Streaming Media v2011.12.23)
Accept: application/sdp
+++++++CLIENT+E++++++++++
+++++++SERVER+S++++++++++
RTSP/1.0 200 OK
CSeq: 3
Content-Type: application/sdp
v=0
o=- 0 0 IN IP4 127.0.0.1
m=video 0 RTP/AVP 96
b=AS:1633
a=rtpmap:96 H264/90000
a=control:trackID=65536
a=fmtp:96 profile-level-id=64001F; packetization-mode=1; sprop-parameter-sets=Z2QAH6zZgFAFuhAAAAMAEAAAAwMg8YMZoA==,aOl7LIs=
a=framesize:96 1280-720
m=audio 0 RTP/AVP 97
b=AS:129
a=rtpmap:97 mpeg4-generic/48000/2
a=control:trackID=65537
a=fmtp:97 profile-level-id=41; config=1190; streamType=5; mode=AAC-hbr; objectType=64; constantDuration=1024; sizeLength=13; indexLength=3; indexDeltaLength=3
+++++++SERVER+E++++++++++
+++++++CLIENT+S++++++++++
SETUP rtsp://127.0.0.1:4444/aaa/trackID=65536 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.0.1 (LIVE555 Streaming Media v2011.12.23)
Transport: RTP/AVP;unicast;client_port=59298-59299
+++++++CLIENT+E++++++++++
+++++++SERVER+S++++++++++
RTSP/1.0 200 OK
CSeq: 4
Transport: RTP/AVP;unicast;client_port=59298-59299
Session: 00007689
+++++++SERVER+E++++++++++
+++++++CLIENT+S++++++++++
SETUP rtsp://127.0.0.1:4444/aaa/trackID=65537 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/2.0.1 (LIVE555 Streaming Media v2011.12.23)
Transport: RTP/AVP;unicast;client_port=62520-62521
Session: 00007689
+++++++CLIENT+E++++++++++
+++++++SERVER+S++++++++++
RTSP/1.0 200 OK
CSeq: 5
Transport: RTP/AVP;unicast;client_port=62520-62521
Session: 00007689
+++++++SERVER+E++++++++++
+++++++CLIENT+S++++++++++
PLAY rtsp://127.0.0.1:4444/aaa RTSP/1.0
CSeq: 6
User-Agent: LibVLC/2.0.1 (LIVE555 Streaming Media v2011.12.23)
Session: 00007689
Range: npt=0.000-
+++++++CLIENT+E++++++++++
+++++++SERVER+S++++++++++
RTSP/1.0 200 OK
CSeq: 6
+++++++SERVER+E++++++++++
Streaming...
+++++++CLIENT+S++++++++++
TEARDOWN rtsp://127.0.0.1:4444/aaa RTSP/1.0
CSeq: 7
User-Agent: LibVLC/2.0.1 (LIVE555 Streaming Media v2011.12.23)
Session: 00007689
+++++++CLIENT+E++++++++++
+++++++SERVER+S++++++++++
RTSP/1.0 200 OK
CSeq: 7
+++++++SERVER+E++++++++++
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.vtgsoftwares.ekiz.server.RTSPServer.<init>(RTSPServer.java:71)
at com.vtgsoftwares.ekiz.server.RTSPServer.main(RTSPServer.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
有什么想法吗?
谢谢。
最佳答案
服务器日志中的 RTSP 对等方应在客户端发送 RTSP SETUP 请求后就“传输”作为协议(protocol)的一部分达成一致...
Received 360 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
Session: 70cd7f38;timeout=90
Transport: RTP/AVP;unicast;mode=play;client_port=64498-64499;server_port=10580-10581;source=74.125.212.247;ssrc=50DF166F
您的服务器日志应显示同意 RTCP 和协议(protocol)数据部分的端口集 ( C/S ) 的对等方。
一个猜测是您的 VLC 客户端不知道在哪里可以找到要读取的数据流...即我应该等待哪个端口(可以读取的数据)。
一些成功的 RTSP session 的日志:
Play Youtube RTSP : 客户端openrtsp
关于java - RTSP服务器java实现问题:(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10322457/
我有一个简单的 Rtsp 客户端...客户端将 Rtsp 命令发送到 Rtsp 服务器并从服务器获取 RTP 数据包。 The problem is that after a time( about
所以我正在尝试创建一个流式传输音乐的 RTSP 服务器。 我不明白服务器如何播放音乐,不同的请求会得到当时正在播放的内容。 所以,整理我的问题: 1)服务器如何播放音乐文件? 2) 对服务器的请求如何
我已经安装 gst-rtsp-server我想尝试一个简单的代码。但是在编译时我收到以下错误: In function `main': test-launch01.c:(.text+0x64): un
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我刚刚开始研究流媒体库和底层协议(protocol)。我了解 rtsp/rtp 流媒体以及这两种协议(protocol)的用途。但是,如果我们需要 IP 地址、编解码器和 rtsp/rtp 协议(pr
我想从 Live-CAM 捕获 Rtsp 流,然后我想将其重新流式传输到另一个 Rtsp 服务器。 基本上,我的计算机将使用 FFMpeg 作为中继服务器。 我已经尝试过这个临时命令,但我无法让它工作
我正在使用 java web 应用程序使用 rtsp 从 IP 摄像机检索视频; rtsp url 在 url 本身中嵌入了用户名/密码,这似乎很不安全。例如rtsp://用户:密码@ip/... 有
对不起,我的英语不好 我正在为 rtsp 通信程序工作 此 RTSP 服务器在我的 SETUP 请求中回复 459 错误(不允许聚合操作) 我对此一无所知。 请帮我。我做错了什么? ==== Mess
对于这个问题的普遍性,我深表歉意。我尝试了很多东西,但似乎没有任何效果。我有服务器? (我们称它为 服务器 A)驻留在局域网中,那里也有一个 IP 网络摄像头。该网络摄像头不断在地址上提供 RTSP
对于这个问题的普遍性,我深表歉意。我尝试了很多东西,但似乎没有任何效果。我有服务器? (我们称它为 服务器 A)驻留在局域网中,那里也有一个 IP 网络摄像头。该网络摄像头不断在地址上提供 RTSP
我有一个 RTSP 视频源 (h265),我可以使用 VLC 显示它。我想将流分成两部分,一个以原始分辨率(使用 h265 编码),另一个以新的较低分辨率(使用 h264 编码)。这两个新流也应该是
实时流协议(protocol) (RTSP) 版本 1.0 发布为 RFC 2326 1998 年。 现在将近 20 年后,2.0 版发布为 RFC 7826 2016 年 12 月。 我想知道这些更
我想使用 Kurento 作为媒体服务器,它将 WebRTC 作为输入并提供 RTSP 流作为 url:rtsp://kurento/streamName 这可能吗? 我看到了https://gith
我正在使用 rtsp-simple-server ( https://github.com/aler9/rtsp-simple-server ) 并向 RTSP 服务器提供 FFMPEG 流。 我使用
关注:https://github.com/kyriesent/node-rtsp-stream和 How to display IP camera feed from an RTSP url ont
我目前有一个采用 H.264 编码的 IP 摄像机流式视频 (RTSP)。 我想使用 FFmpeg 将此 H.264 编码流转换为另一个 RTSP 流,但 MPEG-2 编码。我该怎么做?我应该使用哪
我目前正在为 Android 设备开发通过 RTSP/UDP 进行的视频流。我的目标是通过 4G 蜂窝网络流式传输视频。我面临的问题是所使用的方法不适用于 Samsung Galaxy Core SM
获取 [rtsp @ 000002aa9df0cb80] 方法设置失败:500 内部服务器错误 当我尝试在 opencv python 中流式传输 rtsp 相机但一段时间后它可以正常工作几分钟并且不
我是这个论坛的新手,我的英语水平不是最好的! 我有一个网站,在那里我发布了摄像机的视频流,以显示在嵌套时间现场发生的事情!一个具有高 IT 技能的人为我构建了一个小服务器用于重新流 (Datarhei
我收到一个 HTTP 错误 400,以响应下面显示的函数正在处理的以下 RTSP URL。 描述 rtsp://root:pass@192.168.1.47/axis-media/media.amp
我是一名优秀的程序员,十分优秀!