【问题标题】:FFMPEG Online Redistribution in IIS Server Streaming Onvif IP CameraIIS 服务器 Streaming Onvif IP 摄像机中的 FFMPEG 在线重新分发
【发布时间】:2015-07-01 06:31:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: ffmpeg video-streaming live-streaming ip-camera


    【解决方案1】:

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

    基本思想是您需要对传入的流进行分段,并通过您现有的网络服务器基础设施使这些分段和播放列表/清单可用。

    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 并非在所有设备上都本机支持,因此请使用 JWplayerclappr 之类的网络播放器。客户端需要 3 个段才能开始播放。

    FFmpeg HLS

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

    【讨论】:

    • 谢谢。我会试试的。无论如何对于IIS,应该进行任何设置吗?客户端可以只用html5播放直播吗?
    • 就像我说的那样,HLS 并不是在所有设备上都可以原生工作。链接的播放器在桌面上提供 Flash 后备,例如。一个是付费的,另一个是免费的。关于 IIS,如果您使用基于云的播放器,则需要添加 crossdomain.xml 并为跨域/跨域请求设置 CORS 标头。
    • 到底什么是“-g”选项?我也试过了,但我得到了错误:未知的编码器'libfdk_aac'。我从ffmpeg.zeranoe.com/builds 下载了 ffmpeg 版本,上面写着“最新的 Zeranoe FFmpeg 版本:git-cbe2700 (2015-04-22)”。所以我认为它是最新版本。
    • 你需要编译支持libfdk_aac的FFmpeg。它不随 zeranoe 构建提供。 -g 使编码器每秒放置一个关键帧(25f / 25fps)。每个片段都将从一个关键帧开始。
    • 嗨@aergistal,非常感谢您的帮助。在做出决定之前,我想再问一个问题。我在stackoverflow.com/questions/15687434/… 上阅读。你觉得 HLS 还是 DASH 表现更好?你有什么好的链接资源可以从 DASH 入手吗?
    猜你喜欢
    • 2023-04-10
    • 2018-01-23
    • 2011-07-28
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 2021-12-06
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多