我有一个客户端程序和一个服务器程序。服务器在我的localhost上,它有我的.mpeg视频。
使用节点JS我应该从服务器流式传输视频。客户端请求消息,例如播放/暂停/恢复/倒带等。所以我想我必须使用RTSP,找出通过RTP发送的内容。但我不知道从哪里开始。
我到目前为止所有的是RegEx过滤消息,例如在客户端有按钮,如播放/暂停/设置等,所以我可以抓取该文本。我有一个开关。 但如果我得到了设置,我该怎么办?
P.S我不允许使用RTSP模块或RTP模块。一定要从头开始。
答案 0 :(得分:3)
通过线路传输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视频的标准方法的信息。
这是非常通用的方法,但它给你一个大致的想法。 希望这些信息有所帮助,祝你好运。