基于Windows的FFmpeg+Red5实现海康监控摄像头RTSP协议转RTMP协议的WEB直播

最近公司项目需要,系统中要添加两个海康的监控摄像头,可海康的监控摄像头的数据流是rstp的,在当前的h5页面不能直接使用,进过多次方案的更改,最终选定转成h5支持的协议。

基于Windows的FFmpeg+Red5实现海康监控摄像头RTSP协议转RTMP协议的WEB直播

最近公司项目需要,系统中要添加两个海康的监控摄像头,可海康的监控摄像头的数据流是rstp的,在当前的h5页面不能直接使用,

方案一:直接使用必须要用vlc播放器以及火狐支持的vlc的版本(40版支持vlc相对稳定),但是缺点是运行时间久了之后,回报c++运行

库异常的问题,

方案二:同样使用vlc播放器,只是利用lvc播放器进行转码,转成video支持的视频格式,缺点是,延时高,占cup资源。

方案三:使用websocktet转码,使用Streamedian WS RTSP Proxy Server,该软件免费版支持几个监控,方案一、二的问题都可解决,

但是远程访问时websocket会报错,一直没有解决该问题,直接换第四种方案了(时间紧);

方案四:通过FFmpegrtsp协议转成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/releases

3、配置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
上一篇:Yii2获取模块名、控制器名、方法名 下一篇:MySQL Limit分页优化

评论

评论(0)

暂无评论