RTSP,RTMP,HTTP-FLV协议浅析,HTML5监控应用

本文介绍了RTSP、RTMP、HTTP-FLV三种协议在直播和监控领域的应用,以及如何使用ffmpeg进行流封装和推流。针对浏览器兼容性问题,通过livego服务器和flvjs实现跨平台播放,同时讨论了网络环境对延迟的影响和应对策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前做的一个WEB监控项目,这里做个整理。

RTSP(Real Time Streaming Protocol):实时流传输协议,应用层协议,传输层可为UDP(默认),RDP,TCP,一般用于直播。浏览器不支持,目前仅 IE 的ActiveXObject 支持,且有插件依赖,但监控行业普遍使用,比如海康的摄像头。

RTMP(Real Time Messaging Protocol):实时消息传输协议,应用层协议,传输层为TCP,Adobe公司专为Flash开发的,一般用于直播。浏览器不支持,可通过flash插件支持(.swf)。

HTTP:超文本传输协议,应用层协议,基于TCP/IP,普遍应用于web开发等。http-flv就是通过http传输flv流,兼容性好。

 

摄像头流数据一般用H264编码,浏览器原生video标签对h264解码支持较好,主要是容器格式,目前兼容最好的格式方案就是 H264 + AAC ,即mp4。

综上,我选择了 ffmpeg 拉取裸流流封装为 .flv,推到 livego 流媒体服务器 ,浏览器用B站的 flvjs 转码为mp4 并播放。

1. ffmpeg命令如下 ffmpeg -re -rtsp_transport tcp -i demo.flv -c copy -f flv rtmp://localhost:1935/live/movie

    -re 按原始帧率取

    -rtsp_transport 由于rtsp默认的udp连接不可靠,传输过程会有大量丢包,导致画面灰屏或绿屏或花屏,这里利用 tcp连接的可靠性和丢包重发机制可有效解决

    -i input 文件或流输入

    -c codec 编解码器 copy则不解码

    -f form

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值