IIS 服务器 Streaming Onvif IP Camera 中的 FFMPEG 在线重新分发

FFMPEG Online Redistribution in IIS Server Streaming Onvif IP Camera

我对 ffmpeg 很陌生。考虑以下情况:

我有几个连接到网络的 onvif 网络摄像头,其中有一个 IIS 服务器。我想允许客户端流式传输到网络内的任何网络摄像机,但它必须通过 IIS 服务器。

所以基本上每个网络摄像机都将以单流的形式流式传输到 IIS 服务器,IIS 服务器将重新分发给许多请求它的客户端。我的问题是如何设置 iis 服务器以适应这种情况?以及一个 ffmpeg 命令行示例,用于从 rtsp ip 摄像机读取并将其发送到 iis 服务器,iis 服务器将其重新分发给客户端。

对于这种情况,您可以使用 HTTP 直播,HLS 或 DASH。 HTTP 流式传输会增加一些延迟,因此您需要研究一下如何调整编码参数以实现低延迟。

基本思想是您需要对传入流进行分段,并使这些分段和 playlist/manifest 通过现有的 Web 服务器基础架构可用。

FFmpeg 和 HLS 示例:

ffmpeg -i rtsp://input_stream.sdp -c:v libx264 -r 25 -g 25 -c:a libfdk_aac -hls_time 1 -hls_list_size 4 -hls_wrap 8 /path/to/webroot/live/playlist.m3u8

然后您将在客户端上使用 URL http://domain.com/live/playlist.m3u8。 HLS 并非在所有设备上均受本地支持,因此请使用 JWplayer or clappr 这样的网络播放器。客户端需要3段才能开始播放。

FFmpeg HLS

对于 DASH,想法类似,但您还需要使用 MP4Box