用 Java 实现 RTSP 媒体服务器

     2023-04-18     170

关键词:

【中文标题】用 Java 实现 RTSP 媒体服务器【英文标题】:Implementing RTSP media server in Java 【发布时间】:2011-07-21 07:43:07 【问题描述】:

我正在尝试在 java 中实现一个简单的 RTSP 服务器,它将使用 android 手机作为接收客户端。我已经在互联网上搜寻答案并多次返回该站点。通过这一点,我发现 JMF 在服务器端本身并不支持 RTSP,并且必须使用 Netty、Xuggler、Mina 等 NIO 框架扩展 java。我唯一的问题是在搜索这些站点的文档后,我有没有找到任何关于如何实现 RTSP 的基本示例。

我的问题是:有没有人遇到过这个问题并解决了它,如果有的话,请给我一些有用的源代码或文档。牢记这一点,已经查看了该站点上的每个相关主题,并跟进了大多数链接,但无济于事。我对 java 并不陌生,我了解所有流式协议,但我对 java 中的流式实现并不陌生。

谢谢

【问题讨论】:

我不明白这个问题。你不知道如何实现RTSP? RTSP 与 HTTP 相同。它是基于文本的,有文本请求和文本响应。您应该实现与任何其他服务器相同的服务器(多线程)。在这里:ietf.org/rfc/rfc2326.txt 你可以找到所有你需要的东西(所有请求,所有响应),在这里tools.ietf.org/html/rfc4566 你可以看到如何建立 SDP 消息......但我看不出有什么问题?你可以说得更详细点吗?你想直播什么? 您好,欢迎您回复。我想以 android OS 允许的设置格式流式传输视频和音频。我已经阅读了 RTSP 的 RFC 并了解该协议的工作原理。当我摆弄 Java Media Frame 时,我发现有一些设置类可以控制 RTP 和 RTCP 会话,但对于 RTSP 却没有。我也知道 RTSP 可以与各种其他协议(例如 HTTP)一起使用,但我特别在 UDP 上寻找 RTP,因为我相信它最适合流式传输。我真的只是想知道一种使用 java 成功地向 RTSP 客户端提供视频和音频的方法。 那么为什么在java中?为什么不使用 Darwin 流媒体服务器? 你知道VLC媒体播放器可以作为RTSP、UDP、HTTP、MMS等各种流协议的流媒体服务器吗?一些 Java 项目已经在 J​​ava 中应用了 VLC 引擎(VLC 媒体播放器使用的 libVLC 库和插件),例如 VLCJ。 【参考方案1】:

很难回答你的问题......我只会给你一些基本的建议: - 用一点 POC 开始你的工作,以获得对 Java 网络编程的信心 - 阅读 Java World 中可用的几个 TCP/IP 开源服务器实现的一些源代码(Jetty/Tomcat/Jboss 和其他几个) - 尝试认为您的架构符合开放关闭原则(能够添加对新流编解码器的支持等) - 尝试根据您的限制并使用合同中规定的网络带宽,以运行所需数量的并行用户会话为目标

客户端不会有太大影响,RTSP 似乎是一个类似 REST 的协议,因此您不必维护用户上下文...只需回答传入的请求,看起来很简单的情况...协议似乎不是很丰富(命令集非常有限)....尝试阅读一些可用的不同客户端的源代码。我可以建议您获取标准 Linux 播放器的源代码:

    VLC 播放器 辛

您可能会在这些产品中找到非常有用的代码。 我猜那些已经实现了商业产品的人将无法给你他们的反馈,所以使用开源软件吧!!!

HTH 杰罗姆

【讨论】:

【参考方案2】:

我认为 JMF 包含 RTP / RTCP 类的原因是这些是媒体协议 - 即这些协议描述了媒体如何通过 IP 流式传输以及如何报告流质量(分别)。

RTSP 是一种控制协议 - 它用于设置媒体流。所以这是 JMF 管理的媒体流之上的一层。您可以在任何您喜欢的频道中交换 RTSP 消息,然后使用交换的信息来建立您的媒体流。

尝试在 google 代码项目中搜索 RTSP 实现,好像有一些。

【讨论】:

用darwinstreamingserver搭建rtsp流媒体服务器

...nbsp;       通过vlc搭建rtsp流媒体服务器,vlc支持RTSPoverTCP的方式,数据流传输时只支持RTPoverUDP。而DarwinStreamingServer服务器能自适应客户端发起的数据传输请求是用TCP方式,还是用UDP方式,如果是UDP方式,... 查看详情

用darwinstreamingserver搭建rtsp流媒体服务器

...nbsp;       通过vlc搭建rtsp流媒体服务器,vlc支持RTSPoverTCP的方式,数据流传输时只支持RTPoverUDP。而DarwinStreamingServer服务器能自适应客户端发起的数据传输请求是用TCP方式,还是用UDP方式,如果是UDP方式,... 查看详情

用vlc搭建rtsp流媒体服务器

...常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。VLC是一种开源的播放器,同时也可以用作流媒体服务器。vlc搭建rtsp流媒体服务器步骤:1、打开vlc,选择流 媒体-流 2、选择文件选项卡,添加一个... 查看详情

rtmp的媒体流直播能否转换成http,mms,rtsp直播?

...我能用什么方法把它转换成mms://这样的协议直播?我有台服务器,可以用什么软件去实现它看你用的是什么服务器了功能较单一的rtmp服务器比如fmsred5应该是不能的wowza服务器应该可以做到具体你可以查询下wowza的资料参考技术A... 查看详情

如何在win2008中搭建rtsp流媒体服务器?

...s协议的播放器,现在想换成rtsp协议,求大神赐教一套RTSP服务器搭建方法。用HelixServer做流媒体服务器,搭建过程先参考下http://wenku.baidu.com/link?url=uWcq__lG3WALYryGPuIftqmt1scFXNJzV4Jlu5L5J31tGD9EPHwSrr8DEcTL2upUyd6TMGvOvT_pCSdVUi2NKEoVsK6aiDaiaWvWpB3pM4e... 查看详情

用vlc搭建rtsp流媒体服务器

...常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。VLC是一种开源的播放器,同时也可以用作流媒体服务器。vlc搭建rtsp流媒体服务器步骤:1、打开vlc,选择流 媒体-流 2、选择文件选项卡,添加一个... 查看详情

使用kurento搭建一个流媒体服务器,实现在网页查看rtsp流

参考技术A环境和工具:Java8、Maven3.5.0、Node.js0.10.48、Bower、git.文章所有均在Ubuntu16.04上进行的。安装配置好上方环境后,可参考官方安装文档:https://doc-kurento.readthedocs.io/en/stable/user/installation.html另符两个安装参考连接:https://blog... 查看详情

rtsp和sdp协议简介

...,RTSP本身并不发送连续媒体流。换言之,RTSP充当多媒体服务器的网络远程控制。RTSP提供了一个可扩展框架,实现实时数据(如音频与视频)的受控、按需传送。数据源 查看详情

ffmpeg代码实现流媒体推流(rtsp)

参考技术A最近需要做实时录屏并把视频推流到RTSP服务器,具体流程是抓取屏幕内容(bitmap),并把bitmap转化为YUV,接着把YUV编码成H264,再把H264码流推到RTSP服务器;把采集到的PCM编码为AAC,再把AAC推流至RTSP服务器。看了雷神的一... 查看详情

一个基于jrtplib的轻量级rtsp客户端(myrtspclient)——实现篇:用户接口层之提取媒体流数据

当RTSP客户端向RTSP服务端发送完PLAY命令后,RTSP服务端就会另外开启UDP端口(SDP协商定义的端口)发送RTP媒体流数据包。这些数据包之间会间隔一段时间(毫秒级)陆续被发送到RTSP客户端,此时RTSP客户端可以调用GetMediaData等接口... 查看详情

rtsp协议详解(代码片段)

RTSP协议以客户服务器方式工作它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。1.实时流协议RTSPRTSP[3]协议以客户服务器方式工作,它是... 查看详情

使用 cloudfront 和 s3 的 RTSP 流媒体服务

...建一个分发网络。我设法通过使用RTMP协议的awsCloudfront来实现它。但由于android没有对RTMP的原生支持,我正在探索使用RTSP协议制作它的想法。有人可以帮助弄清楚如何实 查看详情

在 VLC 播放器中播放 RTSP 流

...9:37【问题描述】:我正在尝试用java制作一个简单的rtsp流服务器。服务器能够将视频正确地流式传输到自定义写入的播放器。我无法在vlc媒体播放器中播放相同的流的问题。当我启动vlc媒体播放器并输入流详细信息时,我的服务... 查看详情

流媒体服务海康摄像头rtsp视频推流转码拉流直播综合应用:vlc+ffmpeg+nginx实现rtsp到rtmp网页直播(代码片段)

文章目录前言一、前几章节回顾二、操作步骤1、准备本地视频2、获取海康RTSP视频流3、FFMPEG:转码推流服务准备4、Nginx:网站服务准备5、FFMPEG推流:rtsp转rtmp6、FFMPEG推流:rtsp转hls三、网页播放视频流1、准备测试... 查看详情

rtsp协议介绍

1. 实时流协议RTSPRTSP[3]协议以客户服务器方式工作,它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,如:暂停/继续、后退、前进等。因此 RTSP 又称为“因特网录像机遥控协... 查看详情

ffmpeg代码实现流媒体推流(rtsp)(代码片段)

实时录屏并把视频推流到RTSP服务器,具体流程是抓取屏幕内容(bitmap),并把bitmap转化为YUV,接着把YUV编码成H264,再把H264码流推到RTSP服务器;把采集到的PCM编码为AAC,再把AAC推流至RTSP服务器。RTSP服务器使... 查看详情

rtsp,java实现简单的rtsp报文交换(代码片段)

...类:请求报文和响应报文。请求报文是指从客户端向服务器发送的请求(也有少量从服务器向客户端发送的请求),响应报文是指从服务器到客户端的回应。RTSP请求报文的常用方法与作用一次基本的RTSP交互过程如下,C... 查看详情

流媒体协议rtmp,rtsp与hls有啥不同

...对此,也有公司提出了非常好的解决方案。  新型点播服务器系统,独创了内存缓存数据实时切片技术,颠覆了这种传统实现方法,从根本上解决了大量切片的碎片问题,使得单台服务器的切片与打包能力不再是瓶颈。其基本... 查看详情