on_play_done
`on_play_done` 指令指定在播放结束时由 NGINX RTMP 模块调用的自定义 HTTP 回调端点。
NGINX RTMP module
语法on_play_done URL;
默认值none
上下文
参数1
说明
on_play_done 指令属于 NGINX RTMP 模块,提供在媒体流播放完成后调用指定 HTTP 端点的能力。此功能在直播场景中尤其有用,在流结束时可能需要执行一些操作,例如记录日志、分析或触发其他进程等副作用。该指令接受单个参数,即在播放结束时要调用的 HTTP 端点的 URL。\n\n播放完成后,NGINX 会向指定的 URL 发送一个 HTTP 请求。请求方法通常为 POST,并且可以包含表示流、用户或服务器端处理完成事件所需的其他任何负载的参数。该设计允许异步处理,使主要的流媒体过程在不必等待 HTTP 请求完成的情况下继续进行。\n\n在典型设置中,应用程序可以通过定义一个回调来利用该指令,该回调在流不再被观看时记录或处理流信息以用于分析或存储。将 on_play_done 与其他 RTMP 模块指令结合使用可以显著增强流媒体应用的功能性和交互性。
配置示例
application live {
live on;
on_play_done http://localhost:8080/playdone;
}⚠
确保回调 URL 可从 NGINX 服务器访问;否则,HTTP 请求会静默失败。
⚠
检查处理回调的 HTTP 服务器能否快速处理传入请求,以避免流处理中的潜在延迟。
⚠
由于 HTTP 请求,使用 on_play_done 可能会引入额外延迟;在高流量情况下必须对此进行管理。