如果用nodejs写流媒体服务器,那客户端播放有什么解决方案

JavaScript021

如果用nodejs写流媒体服务器,那客户端播放有什么解决方案,第1张

这个问题其实跟服务器具体用什么技术实现无关,而主要跟流媒体的传输方式有关: 1.下载 2.流式传输

如果是下载方式,那么一般就是基于http协议 如果是流式传输,那么一般就是基于rtmp协议

所有这里需要关注具体的方式和协议,推荐的播放器(web端)有jwpalyer

后端一般用现成的服务器:nginx 、red 5 、 flash media server 等

其中 red 5 为开源产品,支持 rtmp 协议,但目前版本对集群支持有一些问题~

流媒体分HTTP渐进流式下载和实时流式传输。 HTML5的video标签当然属于HTTP渐进流式下载,不需要流媒体服务器,普通HTTP服务器就可以。 Apple公司的HLS也属于HTTP渐进流式下载。

视频直播软件系统开发,常用的流媒体传输协议有RTMP,RTSP,HLS,HTTP-FLV

RTMP:(可用于推流端和拉流端) Real Time Messaging Protocol 实时消息传输协议,RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。因为RTMP协议传输的基本是FLV格式的流文件,必须使用flash播放器才能播放.

RTSP:(用于推流端) Real-Time Stream Protocol,RTSP 实时效果非常好,适合视频聊天、视频监控等方向

HLS(用于拉流端) Http Live Streaming,由Apple公司定义的基于HTTP的流媒体实时传输协议。传输内容包括两部分:1.M3U8描述文件,2.TS媒体文件。TS媒体文件中的视频必须是H264编码,音频必须是AAC或MP3编码。数据通过HTTP协议传输。目前video.js库支持该格式文件的播放

HTTP-FLV(用于拉流端) 本协议就是http+flv,将音视频数据封装成FLV格式,然后通过http协议传输到客户端,这个协议大大方便了浏览器客户端播放直播视频流.目前flv.js库支持该格式的文件播放