将网络监控摄像头中的网络流 RTSP 转换成 M3U8 流并嵌入网页播放

linux / 2018年07月10日 09时48分 / 25139人浏览
现在的网络监控摄像头一般都是支持输出网络流 RTSP 协议,当然现在有一些也直接支持输出 RTMP 协议流。 很多人买了监控摄像头会希望嵌入自己的网站,现在很多销售 IPCam 的厂家也提供直播云服务了,不过他们考虑带宽成本,会有很多限制码率,流量等。 所以现在很多人都在找能够嵌入自己网站或手机公众号的监控直播系统或划算的监控直播云服务。 那么我们首先来看看实现 RTSP 成 M3U8 (手机端播放支持的流形式)需要哪些步骤: 1. 了解到手的网络监控摄像头支持的协议( RTSP 或 RTMP ) 2. 每个厂家对输出的网络协议的具体书写规则自定义都不同,需要看具体说明书或直接联系厂家进行询问。(重要环节) 3. 找到能够转接 RTSP 协议成 RTMP 并能够主动推送 RTMP 至流媒体服务器的软件。(我用的是 800Li 外部信号适配器软件,大家也可以百度搜索看其他的同样功能的软件。) 4. 找到流媒体服务器系统软件。 (支持输出 m3u8 流地址,同时也支持给出嵌入网页的 HTML 代码,这段代码就是网页播放器和直播内容,这样就可以直接嵌入微信公众账号啦。) 敲黑板,划重点: 1. 搭建流媒体服务器(Nginx搭建hls流媒体服务器). 2. 如果是直接支持输出 RTMP 的摄像头,一般是直接能推送到流媒体服务器,无需转流软件进行拉流的。 不支持推流的摄像头,需要自己做推流功能, 3. 给出大家我目前了解到一些监控头的 RTSP 书写规则: 海康摄像头: 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。 例如,请求海康摄像机通道 1 的主码流,Url 如下 主码流: rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream rtsp://admin:12345@192.0.0.64:554/MPEG-4/ch1/main/av_stream 子码流: rtsp://admin:12345@192.0.0.64/mpeg4/ch1/sub/av_stream rtsp://admin:12345@192.0.0.64/h264/ch1/sub/av_stream 大华摄像头: 大华: rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0 说明: username: 用户名。例如 admin。 password: 密码。例如 admin。 ip: 为设备 IP。例如 10.7.8.122 。 port: 端口号默认为 554,若为默认可不填写。 channel: 通道号,起始为 1。例如通道 2,则为 channel=2。 subtype: 码流类型,主码流为 0 (即 subtype=0 ),辅码流为 1 (即 subtype=1 )。 foscam 摄像头: rtsp://admin:fulinoil@59.127.79.88:88/videoMain (带有用户名和密码) rtsp://59.127.79.88:88/videoMain (无用户名和密码) 其他品牌: 宏视监控摄像头: rtsp://0.0.0.0/live/ch00_0 中维世纪监控摄像头: rtsp://0.0.0.0:8554/live1.264 (次码流) rtsp://0.0.0.0:8554/live0.264 (主码流)