我是一家小型连锁幼儿园的 IT 人员。每所学校目前都有大约 30-40 个 Axis IP 网络摄像头,范围从旧的 Axis 205,206 型号到 Axis M1011。这些摄像头允许父母登录网站,全天查看孩子的教室。IP 摄像头位于本地网络上,在端口 80 上进行流式传输。每所学校都有一个公共 IP 地址,在该地址上是一个反向代理 HTTP 服务器。我们通过基本上进行 URL 重写来直接从 Axis 网络摄像头提供 MJPEG,以允许客户端查看应用程序通过 Axis HTTP API 直接访问摄像头。
这多年来一直运行良好,甚至直到最近才在 iPhone 上运行。事实上,它仍然可以在 iPhone 上运行,但仅在连接 Wifi 时才有效。当 iPhone 通过 3G 连接时,MJPEG 流不再起作用。运营商是 AT&T。
过去几天我做了很多研究,并且知道我必须转向 Apple 设备的 HTTP Live Streaming,所以我只是想弄清楚我必须解决的难题的各个部分让它起作用。
我的 Axis 凸轮组合可能是个问题。Axis 205 和 206 仅支持 MJPEG,但 M1011 可以服务于 h.264,但显然只能通过 RTSP。如果需要或对整体解决方案有帮助,我愿意将旧的 Axis 凸轮换成 M1011。
据我目前的理解,我首先要解决的问题是将我的 30 到 40 轴 M1011 h.264 流(重新)编码/分块为 MPEG-2(.m3u8 和 .ts 文件)。
问题 #1
设置一台带有 VLC 命令行“批处理”文件的计算机是否可能和/或可行,以启动和编码来自 Axis 网络摄像头的 30 到 40 个输入流,并将其编码为 MPEG-2,准备为 iPhone 提供服务?我想知道处理这么多网络摄像头的稳定性、硬件要求等。这台计算机将有一个 HTTP 服务器(可能是 IIS)和一个公共 IP 地址,因此不需要比本地计算机更远地获取 MPEG-2 文件。
问题2
对于仅服务于 MJPEG 的旧 Axis 型号(205、206),是否也可以使用 VLC 将其编码为 MPEG-2?我是否正确假设(重新)编码或重新打包 .h264 成 MPEG-2 比将 MJPEG 编码成 MPEG-2 的“工作量”少得多,还是 CPU 的数量大致相同,等等?我已经安装了最新版本的 Videolan,很容易通过它的 RTSP URL 连接到 Axis M1011 .h264 流,所以我知道这很有效。
问题 #3
对于我给定配置的任一侧,任何人都可以共享任何特定的 VLC 命令行或配置:Axis M1011 .h264 和/或 Axis MJPEG 作为输入,对于输出,MPEG-2(.m3u8 和 .ts 文件),“分块” 变成苹果 iPhone 要求的尺寸,尤其是在连接 3G 时。
问题 #4
最后,如果有人有其他建议的方法(不同的编码器,可以更好地工作的媒体服务器等),我也想听听这些建议。