我想动态更新 ffserver.conf 以向其中添加新的流源。
无论如何在 ffserver 中重新加载 ffserver.conf 而不停止流运行?
我想动态更新 ffserver.conf 以向其中添加新的流源。
无论如何在 ffserver 中重新加载 ffserver.conf 而不停止流运行?
ffserver.conf
ffserver 不支持重新加载“ ”配置文件。正如我所见,它没有重启代码。
ffserver的源码有:ffmpeg/ffserver.c line 4020:
4020 static int parse_ffconfig(const char *filename)
并且配置解析器只被调用一次——来自 main():
4710 int main(int argc, char **argv)
4711 {
...
4735 if ((ret = parse_ffconfig(config_filename)) < 0) { ...
没有init
用于重新启动服务器或重新读取配置的特殊信号处理程序(如 HUP in )(仅需要使用 fork 和使用套接字)SIGCHLD
。SIGPIPE
通过 ffserver 配置似乎可以解决这个问题。
记住提要进来和流出去,并且您可以使用 ffmpeg 向服务器提供提要 - 您可以配置大量通用提要和流(可能根据一般需求进行分组,例如标清、高清、仅音频等)然后根据需要启动提要,向相关客户端提供 URL,然后在提要完成后重新声明该“提要槽”。
这意味着您可以有效地管理从外部动态添加/删除流到 ffserver 的所有其他方面。请参阅 ffserver 附带的示例(我在 /etc/ffserver.conf 中找到了它)。这里有一个基本的演示:https ://www.ffmpeg.org/ffserver-all.html#How-do-I-make-it-work_003f
唯一的缺点是您的流将被命名为非描述性的,如 HDStream1 ...等。