我有一个客户端程序和一个服务器程序。服务器在我的本地主机上,它有我的 .mpeg 视频。
使用节点 JS 我应该从服务器流式传输视频。客户端请求消息,例如播放/暂停/恢复/倒带等,所以我想我必须使用 RTSP 来确定通过 RTP 发送什么。但我不知道从哪里开始。
到目前为止,我所拥有的只是过滤消息的正则表达式,例如在客户端上有播放/暂停/设置等按钮,因此我可以获取该文本。我有一个开关。但是,如果我得到设置,我应该怎么做?
PS 我不允许使用 RTSP 模块或 RTP 模块。必须从头开始。
我有一个客户端程序和一个服务器程序。服务器在我的本地主机上,它有我的 .mpeg 视频。
使用节点 JS 我应该从服务器流式传输视频。客户端请求消息,例如播放/暂停/恢复/倒带等,所以我想我必须使用 RTSP 来确定通过 RTP 发送什么。但我不知道从哪里开始。
到目前为止,我所拥有的只是过滤消息的正则表达式,例如在客户端上有播放/暂停/设置等按钮,因此我可以获取该文本。我有一个开关。但是,如果我得到设置,我应该怎么做?
PS 我不允许使用 RTSP 模块或 RTP 模块。必须从头开始。
通过网络传输 mpeg 文件时,您必须分别处理 RTSP 和 RTP。RTSP 用于信令、会话建立和启动底层 RTP 流。如果您需要在 node.js 中执行此操作,我建议加载一个已经实现 RTSP/RTP 的库(创建自己的库是一项艰巨的任务,但它是可行的以及)。
有关在 node.js 中加载 c++ 库的一些信息:如何使用 node.js 中的 C++ 库?
所以基本上,从你的 mpeg 文件中,你需要提取原始的 h264 流。为此,我推荐 ffmpeg 或其他一些了解 mpeg 文件结构的库/代码。然后您需要将 RTP 数据包内的编码帧打包;然后,您将从服务器发送回客户端。客户端然后将编码帧解包成实际帧;然后在屏幕上解码/显示它们。
我建议阅读http://www.ietf.org/rfc/rfc3984.txt以了解有关打包 H264 视频的标准方式的信息。
这都是非常通用的方法,但它给了你一个大致的想法。希望这些信息有帮助,祝你好运。