application

NGINX RTMP 模块中的 'application' 指令定义了一个用于处理媒体流的流应用上下文。

语法application name { ... }
默认值none
上下文
参数block (1)

说明

'application' 指令对于在 RTMP 服务器配置中区分不同的流式应用至关重要。使用此指令配置的每个应用都作为一个独立的命名空间运行,允许对媒体流应用专门的设置和处理。在一个 'application' block 中,可以指定控制流如何发布、播放、录制和整体处理的参数。该指令提供的若干功能与直播行为、认证、访问控制和录制设置密切相关,本质上定义了 RTMP 服务器如何就特定媒体流与客户端通信。

此外,'application' 指令还开放了多种嵌套配置选项,例如为直播定义 'live' 设置,或通过属性如 'record'、'record_path' 启用录制设置,以及通过 'allow' 和 'deny' 等访问控制设置。此灵活性使运营者能够在利用 RTMP 协议的通用操作特性时,根据具体用例为每个应用定制行为。每个 'application' 指令实例都可以独立满足不同的流媒体需求,而不会与同一 RTMP 服务器块下定义的其他应用产生冲突。

在定义 'application' 指令时,它以一个 block 的形式出现,可包含多个设置。该块内的指令可能包括 'fragment length'、'playlist length' 等设置,以及在使用 DASH 格式流式传输时的处理路径。由于其作为 block directive 的性质,结构良好的配置对于确保所有必要参数被清晰定义、避免在流处理时出现歧义至关重要。

配置示例

rtmp {
    server {
        listen 1935;

        application live {
            live on;
            record all;
            record_path /var/www/html/recordings;
            allow publish all;
            deny play all;
        }
    }
}

确保应用块正确关闭;缺少闭合大括号可能导致配置错误。

此指令的配置错误可能会因访问控制规则导致流无法访问或被禁止。

如果像 'allow' 和 'deny' 这样的特定设置未正确配置,可能会发生意外的访问限制。

← 返回所有指令