【问题标题】:SDP a=control:trackID=2 possible to access control URL from client?SDP a=control:trackID=2 可以从客户端访问控制 URL?
【发布时间】:2015-07-15 22:39:33
【问题描述】:

我正在尝试了解 RTSP 如何访问媒体对象内部的演示流。我下载了 openRTSP 以了解 YouTube(我能想到的最简单的流媒体网站)如何与 RTSP 一起将视频流式传输到移动设备。我正在测试这个视频的 RTSP 流:http://www.youtube.com/v/U4M5rO1Kd04?version=3&f=videos&app=youtube_gdata

关联的 RTSP 链接是:rtsp://r5---sn-p5qlsu7r.c.youtube.com/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp

如果我执行命令 openRTSP rtsp://r5---sn-p5qlsu7r.c.youtube.m/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp 那么它会给我这个:

发送请求:SETUP rtsp://r5---sn-p5qlsu7r.c.youtube.com/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp/trackID=2 RTSP/1.0 序列号:4 用户代理:openRTSP(LIVE555 流媒体 v2015.04.22) 传输:RTP/AVP;单播;client_port=49838-49839

等等..

我想知道如何/是否可以访问 SDP 报告给我的 RTSP 链接的控制 URL。我可以看到设置直接要求 rtsp:// .... /trackID=2 但如果我尝试连接到相同的 URL,我会收到错误的请求。

基本上,我知道媒体对象中有两个表示流——一个用于音频,一个用于视频——因为我可以清楚地看到 openRTSP 请求这两个流以获取媒体对象的两个方面,但我似乎无法手动请求各个演示流。我怎么可能只请求媒体部分的 a=control: 方面而不是会话 a=control: (这是基本 URL)?我在请求 rtsp://r5---sn-p5qlsu7r.c.youtube.com/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp/trackID=2 时遇到了困难,因此无法访问该特定的控制 URL来自客户?还是我只是没有为请求找到正确的形状?

【问题讨论】:

  • 这个帖子真的很难修复。
  • 您可以手动完成,但您必须遵循 RTSP 协议 (rfc 2326),就像整个命令序列:DESCRIBE、SETUP、PLAY 然后准备好通过 RTP 获取流并发送 RTCP数据包

标签: youtube rtsp sdp


【解决方案1】:

你似乎把 URL 的概念颠倒了。 URL 命名资源。不同的 URL 可以命名不同的东西,并且可能需要以不同的方式访问。

在这种情况下,基本 URL 恰好引用了两个流。它用于 RTSP DESCRIBE。这个 SDP 描述是您如何知道有两个流,以及它们的 URL 是什么。

DESCRIBE 使用控制 URL 的想法不太可能奏效。服务器必须返回一个特殊的 SDP 文档,仅描述一个流,并为该流提供一个 empty 相对 URL(因为您将该相对 URL 附加到已经是控制 URL 的内容)。

考虑一个简单但有效的 RTSP 安全摄像头。由于它只有实时音频和视频,它可以有一个静态 SDP 文件,用于响应您的请求。该文件可以匹配到单个硬编码的 SDP URL。您必须DESCRIBE 请求中使用该精确 URL。

当然,您完全可以只使用一个SETUP 请求。不要求您设置来自 DESCRIBE 响应的所有流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 2018-07-08
    • 1970-01-01
    • 2022-01-11
    • 2021-11-16
    • 2016-02-17
    • 2018-10-27
    相关资源
    最近更新 更多