采用“jwplayer +ffmpeg+red5”的方案可以在页面上实现视频的直播。
- 架构示意图
这种方案对应的基本架构如图所示,包含三个组成部分:摄像头、服务器部分和客户端部分。
- 摄像头
摄像头可以提供实时的视频流,然而要访问摄像头的实时数据,通常需要知道摄像头对应的RTSP访问地址,上图中,摄像头的访问地址如下所示:
rtsp://admin:[email protected]:554/h264/ch1/main/av_stream
- 服务器端
服务器端由“red5”和“ffmpeg”两部分构成;其中ffmpeg用于将RTSP的视频流转码成为RTMP的视频流,red5是一个流媒体服务器器,用于提供视频流的发布和访问服务。
使用ffmpeg转码并发布视频流的命令如下所示:
ffmpeg -i rtsp://admin:[email protected]:554/h264/ch1/main/av_stream -
vcodec copy -acodec copy -f flv rtmp://192.168.0.65/oflaDemo/live
- 客户端
客户端使用的播放器是“jwplayer”,这是一个在网页上使用的Flash播放器,它支持的流媒体协议是“RTMP”,只需要在JS代码中指定合适的“file”属性和“streamer”属性,即可播放对应的RTMP视频流。
如上图所示,参数如下设置,其中5080是red5服务器配置的端口号。
'file':'live',
'streamer':'rtmpt://192.168.0.65:5080/oflaDemo'