1、描述
带你实现本地摄像头推流到公网,实现WEB端播放,延迟6s,只讲干货,不讲废话。
2、摄像头流地址
海康威视
rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
说明:
username: 用户名。例如admin。
password: 密码。例如12345。
ip: 为设备IP。例如 192.0.0.64。
port: 端口号默认为554,若为默认可不填写。
codec:有h264、MPEG-4、mpeg4这几种。
channel: 通道号,起始为1。例如通道1,则为ch1。
subtype: 码流类型,主码流为main,辅码流为sub。
例如:
格式一:
rtsp://admin:admin@172.16.0.40:554/Streaming/Channels/1
格式二:
rtsp://admin:admin@172.16.0.40:554/h264/1/main/av_stream
大华
rtsp://[username]:[password]@[ip]:[port]/cam/realmonitor?[channel]&[subtype]
说明:
username: 用户名。例如admin。
password: 密码。例如admin。
ip: 为设备IP。例如 10.7.8.122。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为1。例如通道2,则为channel=2。
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。
例如:
rtsp://admin:admin@10.12.4.84:554/cam/realmonitor?channel=2&subtype=1
臻识
主流:rtsp://admin:admin12345@10.1.8.101:8557/h264
辅流:rtsp://admin:admin12345@10.1.8.101:8557/sub_stream_1
3、购买摄像头(我买的是海康摄像头)
4、下载海康的内网搜索摄像头软件
4.1、如图
注意:也可以下载我上传的SADP。
4.2、安装SADP之后,打开软件,搜索摄像头,注意摄像头一定要和你的电脑在同一个网段内
4.3、访问摄像头页面, 输入你账号和密码
注意:海康的只能使用IE浏览器访问。
5、windows本地安装ffmpeg,我的资源也上传了。
5.1、下载之后解压生成 ffmpeg-4.4-full_build 文件。
5.2、配置ffmpeg环境变量。
5.3、cmd访问 ffmpeg - version
6、搭建SRS
6.1、必须要有一台云机器,我使用的是阿里云,配置是1H2G
6.2、安装Docker环境,参考网上很多教程
6.3、安装SRS
6.3.1、SRS官网,其它的不说了,这个SRS是阿里一个大佬写的流媒体服务器,性能很强大。
6.3.2、安装命令
docker run -d --rm -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:3
6.3.3、登录阿里云控制台,开放安全组 1935 和 1985 端口。
6.3.4、查看是否安装成功
7、在windows下使用ffmpeg推流
7.1、推流命令
ffmpeg -re -i rtsp://admin:admin@172.16.0.40:554/h264/1/main/av_stream -vcodec copy -acodec copy -f flv -y rtmp://云机器ip:1935/live/livestream
7.2、如图
7.3、使用vlc访问 rtmp://云机器ip:1935/live/livestream ,vlc我资源中上传了。
7.4、也可以使用flv的格式来播放
因为浏览器chrom不支持flash插件了,所以页面不支持rtmp流地址播放了,但是srs提供了使用http的流地址格式,所以你也可以使用:http://云机器IP:8080/live/livestream.flv 进行播放。
7.5、在vue页面也可以访问http的流地址,使用video.js来播放。
8、如何实现多路摄像头同时播放呢?
8.1、场景
例如不同的小区有不同的进出口,每个进出口都有摄像头,小区进出口的摄像头都在一个网段,这样就可以使用电脑同时启动多个推流命令,不同的摄像头在不同的通道上,这种场景尤其是做智慧停车的需要用到。
8.2、实现方式
多路支持:
ffmpeg -re -i rtsp://admin:admin@172.16.0.40:554/h264 -vcodec copy -acodec copy -f flv -y rtmp://云机器IP:1935/live/livestream/channel_0
ffmpeg -re -i rtsp://admin:admin@172.16.0.41:554/h264 -vcodec copy -acodec copy -f flv -y rtmp://云机器IP:1935/live/livestream/channel_1
ffmpeg -re -i rtsp://admin:admin@172.16.0.42:554/h264 -vcodec copy -acodec copy -f flv -y rtmp://云机器IP:1935/live/livestream/channel_2......
依次访问:
rtmp://云机器IP:1935/live/livestream/channel_0
rtmp://云机器IP:1935/live/livestream/channel_1
rtmp://云机器IP:1935/live/livestream/channel_2或者
http://云机器IP:8080/live/livestream/channel_0.flv
http://云机器IP:8080/live/livestream/channel_1.flv
http://云机器IP:8080/live/livestream/channel_2.flv......
解释:
channel_0、channel_1、channel_2 用来区分摄像头的。
8.3、感谢观看,有不懂的可以给我留言,如果觉得对你很有帮助,可以点个关注,后续我还有更多经常的内容哟,我打算把我映像笔记中的内功心法全部整理出来。