我对ffmpeg很新。考虑以下情况:
我有几个连接到网络的onvif ip camera,里面有一个IIS服务器。我想允许客户端流式传输到网络内的任何ip摄像头,但它必须通过IIS服务器。
所以基本上每个ip camera都将以单一流的形式流式传输到IIS服务器,IIS服务器将重新分发给许多请求它的客户端。我的问题是如何设置iis服务器以适应这种情况?以及从rtsp ip camera读取的ffmpeg命令行示例,并将iis服务器发送给客户端。
答案 0 :(得分:1)
您可以在此方案中使用HTTP实时流式传输,HLS或DASH。 HTTP流式传输增加了一些延迟,因此您需要对如何调整编码参数以进行低延迟进行一些研究。
基本思路是您需要对传入流进行分段,并通过现有的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
在客户端上,您将使用网址http://domain.com/live/playlist.m3u8
。所有设备本身都不支持HLS,因此请使用JWplayer或clappr这样的网络播放器。客户端需要3个段才能开始播放。
对于DASH,这个想法很相似,但您还需要使用MP4Box。