现代实时网络摄像头流媒体方法

Modern live webcam streaming methods

目前将来自多个摄像头源(客户端)的实时视频流式传输到也与移动平台兼容的网站上的最佳方式是什么?我正在寻找一种低延迟解决方案,该解决方案还允许 monitoring/recording 服务器端的视频流。

截至 2020 年,低延迟直播流的最佳和最兼容方式是具有 VP8 视频和 Opus 音频编码的 WebRTC。请注意,如果没有硬件 H264 解码支持,H264 视频将无法通过 WebRTC 在某些较旧的 Android 上播放。

如果您谈论的是网络摄像头,则网络浏览器可以通过 WebRTC 执行发布到媒体服务器;同一台媒体服务器可以将您的流媒体录制成 mkv 文件,并可以通过 WebRTC(延迟时间小于 0.5 秒)将您的流媒体分发给任何 OS 和移动设备上的 HTML5 观众。

如果您谈论的是 IP 摄像机,那么媒体服务器应该能够通过 RTSP 从它们接收流,将这些流转换为 WebRTC 并发送给播放器。 这里的一个问题是 RTSP 相机通常会向您发送 H264/AAC - 编码流, 因此可能需要转码,这是一个非常 CPU 密集的过程,因此扩展性不太好。大多数媒体服务器都可以执行此转码。为避免转码,您可以配置 IP 摄像机向您发送 H264/G.711 内容 - WebRTC 直接支持这两种编解码器、H264 和 G.711 音频(PCMU 或 PCMA),因此不需要转码. 但是,您会遇到两个问题:a) 如上所述,H264 无法在某些较旧的 Android 上播放; b) G.711 并不是真正的高质量音频。 据我所知,截至 2020 年,Axis IP 摄像机是唯一支持板载 Opus 音频编码的 IP 摄像机。

所以你需要一个媒体服务器软件来做以上任何事情;那里有免费和商业服务器; google "WebRTC media server" 并为痛苦的学习曲线做好准备; WebRTC 是一个复杂的东西,有很多选项和变量,所有媒体服务器都以不同的方式实现它。