-
技术背景: 前段时间项目经理给我一个任务网页接入直播.rtsp://用户名:密码@ip:554/cam/realmonitor?channel=1&subtype=0 rtsp格式的直播流
-
技术架构 :
- 搭建red5流媒体
- FFmpeg 实现监控摄像头的RTSP协议转RTMP协议直播
- 搭建web服务器利用ckplay 播放RTMP协议视频流
-
相关文件 百度网盘链接 提取码:ww9m
-
windows实现
-
基础条件:java版本在1.8以后
-
下载对应的安装文件
-
安装red5-server 傻瓜式安装.安装成功后点击red5.bat 验证是否成功,在浏览器中输入http://127.0.0.1:5080/ 出现如下图片
-
安装ffmpeng
- 下载 ffmpeg-20190312-d227ed5-win64-shared 具体链接在上面的百度网盘的链接中
- 傻瓜式安装
-
运行 如下命令 ffmpeg -i "rtsp://用户名:密码@通道ip:554/cam/realmonitor?channel=2&subtype=0" -f flv -r 25 -s 640x480 -an "rtmp://127.0.0.1/oflaDemo/hello" 第一次运行时间比较长
-
出现如下图片就说明你ffmpeg已经运行成功了
-
启动本地服务访问页面
-
核心代码 js源文件在百度云盘中
<script type="text/javascript" src="ckplayer.js"></script>
<div class="video" style="width: 1000px;height: 600px;"></div>
<script type="text/javascript">
var videoObject = {
container: '.video',//“#”代表容器的ID,“.”或“”代表容器的class
variable: 'player',//该属性必需设置,值等于下面的new chplayer()的对象
autoplay:true,//自动播放
live:true,//直播视频形式
video:'rtmp://127.0.0.1/oflaDemo/hello'//视频地址
};
var player=new ckplayer(videoObject);
</script>
在网页中输入对应的访问路径即可出现直播画面
5.Linux环境搭建
- 查看当前jdk版本是否在1.8以后 如果不是按照一个jdk1.8以后的版本,具体例子网上多的是,我就不具体描述了
- 下载对应的安装包 在上面的百度网盘分享文件中red5-server-1.0.10.tar.gz ffmpeg-4.1.tar.bz2
- 安装red5流媒体服务器
- 解压安装red5-server-1.0.10.tar.gz
- 访问服务器ip:5080 能否出现.不能出现,查看red5服务器是否启动.red5是java语言写的,所以可以通过jps -lm查看是否有对应的服务,如果服务没有启动,则去查看对应的日志,解决对应的问题.如果服务器启动但是访问不了,那就说明5080被占用或者被禁用了,这个就对照网上的教程解决就行.出现上图的页面就可以进行下一个步骤
- 安装FFmpeg 这个网上有对应的教程.
- 运行 如下命令 ffmpeg -i "rtsp://用户名:密码@通道ip:554/cam/realmonitor?channel=2&subtype=0" -f flv -r 25 -s 640x480 -an "rtmp://127.0.0.1/oflaDemo/hello" 第一次运行时间比较长
- 将上述window中页面代码中video中的值改为服务器的地址即可
-
出现画面即搭建成功
6总结
- red5流媒体服务器是基于jdk8的.所以安装red5之前应该确保jdk版本在1.8之后
- 暂时没有开源的网页直播rtsp格式的代码,所以采取的是ffmpeg进行转码.这个转码会导致画质不清晰.页面卡顿等情况出现