播放监控的画面
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
来源:oschina
链接:https://my.oschina.net/u/4311024/blog/3643013