
最近公司项目需要,系统中要添加两个海康的监控摄像头,可海康的监控摄像头的数据流是rstp的,在当前的h5页面不能直接使用,
方案一:直接使用必须要用vlc播放器以及火狐支持的vlc的版本(40版支持vlc相对稳定),但是缺点是运行时间久了之后,回报c++运行
库异常的问题,
方案二:同样使用vlc播放器,只是利用lvc播放器进行转码,转成video支持的视频格式,缺点是,延时高,占cup资源。
方案三:使用websocktet转码,使用Streamedian WS RTSP Proxy Server,该软件免费版支持几个监控,方案一、二的问题都可解决,
但是远程访问时websocket会报错,一直没有解决该问题,直接换第四种方案了(时间紧);
方案四:通过FFmpeg将rtsp协议转成rtmp协议,再用red5流媒体服务器接收和发布rtmp数据,完美解决之前的问题。
以下具体介绍方案四:
所有操作都是windows环境下进行的。
一、安装ffmpeg
1、介绍
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、
转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,
libavcodec里很多code都是从头开发的。(百度的)
2、下载ffmpeg
https://ffmpeg.zeranoe.com/builds/根据自己的操作系统下载静态程序版本

3、解压文件到指定的磁盘
目录结构

4、配置FFmpeg到系统变量
在系统变量的path内容中加入 d:\ffmpeg\bin;然后确定。
5、cmd测试
win+R输入cmd回车打开命令提示符窗口,输入 ffmpeg -version, 如果返回ffmpeg的版本信息,则表示安装成功。
二、安装Red5
1、安装java
由于red5是java开发的,所以安装red5之前要安装java环境,在这里java环境安装不做介绍。具体自行百度。
这里使用的是red5-server-1.0.10,安装jdk1.8即可
2、下载red5
https://github.com/Red5/red5-server/releases3、配置red5到系统变量
在系统变量中加入 red5解压的目录地址即可
4、测试
在命令提示符窗口输入red5,有信息输入则表示安装成功
默认端口是5080,可在浏览器输入127.0.0.1:5080访问
若修改配置可以看具体的文档介绍。
三、主要问题,转协议
主要代码
ffmpeg -i "rtsp://admin:admin123@10.10.10.158/h264/ch1/main/av_stream" -f flv -r 25 -s 640x480 -an "rtmp://localhost/oflaDemo/hello"
rtsp://admin:admin123@10.10.10.158/h264/ch1/main/av_stream 海康监控的地址
rtmp://localhost/oflaDemo/hello 转协议后的地址修改Red5安装目录下的 webapps\oflaDemo\index.html 文件,将jwplayer的 file 属性改成 “hello”。
访问 http://localhost:5080/oflaDemo/index.html 在你所修改的播放器上是否可以看到摄像头的直播了。
同样把index.html的关键代码放到项目中就成了,就搞定了。
参考:
http://www.cuplayer.com/player/PlayerCode/RTSP/2014/0706/1419.html
评论(0)