【问题标题】:RTP RTSP implementation in javascriptjavascript中的RTP RTSP实现
【发布时间】:2013-01-31 00:36:21
【问题描述】:

我有一个客户端程序和一个服务器程序。服务器在我的本地主机上,它有我的 .mpeg 视频。

使用节点 JS 我应该从服务器流式传输视频。客户端请求消息,例如播放/暂停/恢复/倒带等,所以我想我必须使用 RTSP 来确定通过 RTP 发送什么。但我不知道从哪里开始。

到目前为止,我所拥有的只是用于过滤消息的 RegEx,例如在客户端上有播放/暂停/设置等按钮,因此我可以抓取该文本。我有一个开关。 但是,如果我得到了设置,我应该怎么做?

P.S 我不允许使用 RTSP 模块或 RTP 模块。必须从头开始。

【问题讨论】:

  • 你能改进一下这个标题吗?这对我来说真的毫无意义。
  • 你希望我如何改进它?
  • 您的“RTP?RTSP 在 javascript 中实现”有什么问题
  • 我不知道从哪里开始。我让我的服务器从客户端获取请求,例如暂停、播放恢复。但是当我得到这些命令时我该怎么办?我有 video.mpeg 我如何使用 rtp 将其发送给客户端
  • 你在使用 html5 和 websocket 吗?

标签: javascript rtsp


【解决方案1】:

当通过网络传输 mpeg 文件时,您必须分别处理 RTSP 和 RTP。 RTSP 用于信令、会话建立和启动底层 RTP 流。如果您需要在 node.js 中执行此操作,我建议加载一个已经实现 RTSP/RTP 的库(创建自己的库是一项艰巨的任务,但它是可行的以及)。

关于在 node.js 中加载 c++ 库的一些信息:How can I use a C++ library from node.js?

所以基本上,您需要从您的 mpeg 文件中提取原始 h264 流。为此,我推荐 ffmpeg 或其他一些了解 mpeg 文件结构的库/代码。然后您需要将 RTP 数据包内的编码帧打包;然后,您将从服务器发送回客户端。客户端然后将编码帧解包成实际帧;然后将它们解码/显示在屏幕上。

我建议阅读 http://www.ietf.org/rfc/rfc3984.txt 以了解有关打包 H264 视频的标准方法的信息。

这都是非常通用的方法,但它给了你一个大致的想法。 希望这些信息对您有所帮助,祝您好运。

【讨论】:

  • 我们没有使用 HTTP 或 HTML。我有一个 .exe 客户端...具有以下选项 SETUP PLAY PAUSE TEARDOWN 当客户端按下 SETUP 时,它会向服务器发送 RTSP 消息,然后我会发回 RTSP 消息,然后为该客户端创建一个套接字。并使用 UDP 数据包发回 RTP 消息说“200 OK”。现在下一步是.. 如果客户端单击播放,我需要获取视频并将其分块为帧,然后使用 RTP 发送它。现在这就是我所在的位置。我需要获取已经压缩的 .mpeg 文件,我需要将其分块我假设我必须使用 fs ???
  • 我认为现在更好地了解您的设置。我肯定会推荐您的 mpeg 文件的 http 直播。否则,您将不得不为您的服务器添加 RTSP/RTP 支持;然后您必须从 mpeg 文件中提取音频/视频,然后在两个单独的 RTP 会话中流式传输音频/视频。希望这会有所帮助。
  • 我不允许使用 http。就像在项目描述中所说的主要目标是实现 RTP 和 RTSP。他们通过不包括音频使其变得更容易。我坚持从视频文件中获取字节数组。我必须将视频文件读取为字节
  • 是的,我忘了告诉你,我们不允许使用 RTP/RTSP 模块,我们必须自己制作。
  • 现在...这是我拥有的获取视频前 20 个字节的代码 var file = fs.createReadStream(myClient.File, {encoding: 'binary', 'bufferSize' :4 * 1024,开始:0,结束:10}); file.on('error', function(err) { console.log('Error '+err); throw err; }); file.on('data', function(data) { console.log('Data '+data); //发送 12 字节的帧头,包含时间戳和 cc 和 P 等 //sock.write ("23323"+数据); }); file.on('end', function(){ console.log('读完所有数据'); });
猜你喜欢
  • 2015-03-07
  • 2011-05-23
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多