IIS服务器流媒体Onvif IP摄像机中的FFMPEG在线重新分发

IIS服务器流媒体Onvif IP摄像机中的FFMPEG在线重新分发,ffmpeg,video-streaming,live-streaming,ip-camera,Ffmpeg,Video Streaming,Live Streaming,Ip Camera,我是ffmpeg的新手。考虑以下情况: 我有几个onvif ip摄像头连接到网络,其中有一个IIS服务器。我想允许客户端流式传输到网络中的任何ip摄像头,但它必须通过IIS服务器 所以,基本上每个ip摄像头都将以单个流的形式传输到IIS服务器,IIS服务器将重新分发给请求它的许多客户端。我的问题是如何设置iis服务器来处理此场景?以及一个ffmpeg命令行示例,用于从rtsp ip摄像头读取并将其发送到iis服务器,iis服务器将重新将其分发给客户端。您可以使用HTTP实时流媒体处理此场景,HL

我是ffmpeg的新手。考虑以下情况:

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


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

您可以使用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
然后在客户端上使用URL
http://domain.com/live/playlist.m3u8
。并非所有设备都本机支持HLS,因此请使用类似或的web播放器。客户端需要3段才能开始播放


DASH的想法类似,但您也需要使用。

谢谢。我想试试。无论如何,对于IIS,是否应该进行任何设置?客户端可以仅仅使用html5来播放流媒体直播吗?正如我所说的,HLS并不是在所有设备上都能正常工作的。链接的玩家在桌面上提供Flash备份,例如,一个是付费的,另一个是免费的。关于IIS,如果您使用基于云的播放器,您需要添加一个
crossdomain.xml
,并为跨域/跨源请求设置
CORS
头。总之,-g”选项是什么?我也尝试过,但我得到了错误:未知编码器'libfdk_aac'。我从It网站下载了ffmpeg版本,该网站称“最新Zeranoe ffmpeg版本:git-cbe2700(2015-04-22)”。因此,我认为这是最新的版本。您需要使用
libfdk_aac
支持编译FFmpeg。zeranoe版本没有提供它
-g
使编码器每秒放置一个关键帧(25f/25fps)。每个片段将从一个关键帧开始。您好@aergistal,非常感谢您的帮助。在做出决定之前,我想再问一个问题。我继续读下去。你认为HLS和DASH的表现更好吗?你有什么好的链接资源我可以从DASH开始吗?