播放监控的画面
RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。(管他说的啥,反正就是摄像头的协议,网页不能直接播)。
跟后台研究了几天,决定的实现方式是:nginx搭的服务器,ffmpeg转码,jwplayer播放。
一、FFmpeg下载:http://ffmpeg.zeranoe.com/builds/
下载并解压FFmpeg文件夹,配置环境变量:在“Path”变量原有变量值内容上加上d:\ffmpeg\bin,验证:ffmpeg -version 出现版本号则成功。
二、官网下载windows Stable version版Nginx安装nginx服务器,配置:config和mime.types。
1.在nginx\conf\nginx.conf中: http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; access_log off; server { 修改: listen 20000; server_name localhost; 修改: location / { root html; index index.html index.htm; }为了能访问到hls流协议新增:location /hls { types{ application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root html; add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin *; } 2.在nginx\conf\mime.types中为了支持hls流协议新增:application/x-mpegURL m3u8; application/vnd.apple.mpegurl m3u8;video/mp2t ts;
ffmpeg -i "rtsp://admin:ajb123456@192.168.10.36" -f flv -r 25 -s 640*640 -an "rtmp://localhost:1935/live/test"
关键是 startparam: "start". 没有这句的话. jwplayer是无法拖动视频的. MP4可以不需要这个startparam就可以拖动.
3.在命令行中输入即可转换:也可写成脚本的形式运行。
ffmpeg -i "rtsp://admin:ajb123456@192.168.10.36" -c copy -f hls -hls_time 2.0 -hls_list_size 0 -hls_wrap 15 C:/wjanzhuang/nginx/html/hls/test.m3u8