作者: 中科图新技术团队 标签: #视频监控 #流媒体 #HLS #安防工程 #三维GIS 阅读时间: 6分钟

开篇:动手前,先搞清你要接的是什么

想在自己项目里看摄像头画面,或者把监控"放"到地图、三维场景上,通常会被四个词绕晕:HLS、FLV、MP4、萤石云。

它们经常被当成一回事,实际根本不是一类东西——HLS 和 FLV 是直播流,MP4 是文件,萤石云是云平台。选错了,轻则延迟高、画面卡,重则接了半天根本播不出来。这篇把四种方式拆开讲透,文末附一张选型对照表,可以直接对号入座。

一、HLS(m3u8):为"弱网"而生的直播流

HLS(HTTP Live Streaming)由苹果提出,核心思路是切分:把连续的视频切成 2~6 秒的小分片(通常为 .ts),再用一个 m3u8 索引文件把这些分片按顺序串起来。播放器像翻书一样,一段段请求、一段段播。

它最值钱的地方是自适应码率:同一路画面同时备好几档码率的分片,网络好时播高清,网络一抖动就自动切到低码率,画面会糊一点,但不会断流。加上 Safari 等苹果生态原生支持,很长一段时间里,移动端网页看直播基本绕不开它。

代价是延迟偏高——切片粒度决定了端到端延迟通常在 3~10 秒量级,对"马上看到画面"的诉求不友好。

适合场景:网络不稳定、需要长时间稳定观看的监控直播。

二、FLV:低延迟,网页播放的老朋友

FLV 源自 Flash 时代,如今作为容器格式活跃在低延迟直播链路里,常见形态是 HTTP-FLV。它不需要切片和索引,服务器收到数据就推给客户端,端到端延迟能做到 1~3 秒量级;配合 flv.js(基于浏览器 MSE 能力)可以在网页里无插件播放,部署简单,上手快。

两个坑要提前知道:一是标准 FLV 没有自适应码率,网络抖动时更容易卡顿、花屏,弱网表现不如 HLS;二是 Safari 对 MSE 的支持有限,在苹果设备网页端播放 FLV 会受限,一般要降级走 HLS。

适合场景:对实时性要求高、想"马上看到画面"的现场查看,比如应急指挥、工地远程巡检。

三、MP4:录像回放与归档的通用格式

MP4 是当前通用度很高的视频文件格式,几乎所有播放器、剪辑软件都能打开。它不是直播流——是"录下来之后存起来再看"的形式,天然适合历史回放、复盘分析、证据归档

一个小知识点:MP4 的索引信息(moov box)如果在文件末尾,边下载边播放会很卡。正规的流式场景会要求把 moov 挪到文件头。但对监控回放来说,文件在本地,这个坑基本不存在,随便拖拽进度条都能播。

适合场景:历史录像回放、事后复盘、存档取证。

四、萤石云:它是平台,不是格式

萤石云是海康旗下的云平台(常见于民用及小型商用安防)。它把"设备→云端→客户端"整条链路打包好了:摄像头接入萤石云后,你在控制台拿到授权后的播放 URL(通常带有效期),就能免自建拉流服务直接看画面,开箱即用,顺带提供云存储、告警通知这类增值能力。

代价是链路经过公网云端,延迟一般有几秒,且画面数据经过第三方平台,对数据敏感度高的场景要掂量一下合规和保密要求。

适合场景:手头已经有萤石云(或同类云平台)摄像头的用户,接入成本很低。

五、选型对照表:四个场景直接对号入座

你的需求 优先选 一句话理由
直播看现场,延迟越低越好 FLV 1~3 秒级延迟,浏览器直接播
网络差,但要长期稳定看直播 HLS 自适应码率,网络抖了也不断流
历史回放、复盘、归档 MP4 通用文件格式,任何播放器都能开
手里已经有萤石云设备 萤石云 免自建拉流,授权即看
既看直播又要回放 HLS + MP4 组合 直播走 HLS,回放走录像文件

六、本质:把"现场画面"变成"可调用的数据"

视频接入的本质,是把"现场画面"变成"可调用的数据"。整条链路可以简化成这样:

H01_知乎_四种视频流格式科普架构图1

格式只是这条链路的其中一环。接进来之后,还有两件事绕不开:一是把视频源放到对的位置——在地图上挂接点位、绑定设备信息,让"这个画面属于哪个位置"清晰可查;二是让人随时点开就能看——统一的播放入口和切换体验,而不是每次翻协议、拼地址。

本文只解决"格式怎么选"这一环。视频源接入三维平台的具体实现细节,涉及点位挂接与播放交互,属于另一篇文章的话题,后续再展开。

🔧 工具推荐: 视频源接入三维场景可参考图新说监控接入方案,可在三维底图上挂接点位并实时播放,详见产品文档。


中科图新 | 让每一寸空间都有数字灵魂

参考来源: - RFC 8216: HTTP Live Streaming 规范 - Apple Developer: HTTP Live Streaming - 萤石开放平台文档