srs的http回调

简介: srs的http回调

建筑在美貌上的爱情,一旦美貌消失,它也会随之消失。——堂恩

昨天说到 srs信令java版

今天按照官方文档实现http回调:

https://ossrs.net/lts/zh-cn/docs/v5/doc/http-callback

完整配置文件:

# WebRTC streaming config for SRS.
# @see full.conf for detail config.
listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;
http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}
http_api {
    enabled         on;
    listen          1985;
}
stats {
    network         0;
}
rtc_server {
    enabled on;
    listen 8000; # UDP port
    # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
    candidate $CANDIDATE;
}
vhost __defaultVhost__ {
    http_hooks {
            enabled         on;
            on_publish      http://host.docker.internal:1989/api/v1/streams http://host.docker.internal:1989/api/v1/streams;
            on_unpublish    http://host.docker.internal:1989/api/v1/streams http://host.docker.internal:1989/api/v1/streams;
            on_play         http://host.docker.internal:1989/api/v1/sessions http://host.docker.internal:1989/api/v1/sessions;
            on_stop         http://host.docker.internal:1989/api/v1/sessions http://host.docker.internal:1989/api/v1/sessions;
            on_dvr          http://host.docker.internal:1989/api/v1/dvrs http://host.docker.internal:1989/api/v1/dvrs;
            on_hls          http://host.docker.internal:1989/api/v1/hls http://host.docker.internal:1989/api/v1/hls;
            on_hls_notify   http://host.docker.internal:1989/api/v1/hls/[server_id]/[app]/[stream]/[ts_url][param];
    }
    rtc {
        enabled     on;
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
        rtmp_to_rtc off;
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
        rtc_to_rtmp off;
    }
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
}

对应的docker命令:

docker run --rm --env CANDIDATE=$CANDIDATE -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp -v /Users/achao/IdeaProjects/srs/trunk/conf/rtc.conf:/usr/local/srs/conf/rtc.conf registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 objs/srs -c /usr/local/srs/conf/rtc.conf

然后我们的回调实现

package com.example.simplesrssignaling;
import lombok.Data;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
/**
 * /**
 * <pre>
 * <code>
 * http_hooks {
 *     enabled         on;
 *     on_publish      http://host.docker.internal:1989/api/v1/streams http://host.docker.internal:1989/api/v1/streams;
 *     on_unpublish    http://host.docker.internal:1989/api/v1/streams http://host.docker.internal:1989/api/v1/streams;
 *     on_play         http://host.docker.internal:1989/api/v1/sessions http://host.docker.internal:1989/api/v1/sessions;
 *     on_stop         http://host.docker.internal:1989/api/v1/sessions http://host.docker.internal:1989/api/v1/sessions;
 *     on_dvr          http://host.docker.internal:1989/api/v1/dvrs http://host.docker.internal:1989/api/v1/dvrs;
 *     on_hls          http://host.docker.internal:1989/api/v1/hls http://host.docker.internal:1989/api/v1/hls;
 *     on_hls_notify   http://host.docker.internal:1989/api/v1/hls/[server_id]/[app]/[stream]/[ts_url][param];
 * }
 * </code>
 * </pre>
 * use: docker run --rm --env CANDIDATE=$CANDIDATE -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp -v /Users/achao/IdeaProjects/srs/trunk/conf/rtc.conf:/usr/local/srs/conf/rtc.conf registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 objs/srs -c /usr/local/srs/conf/rtc.conf
 */
@RestController
@CrossOrigin
@RequestMapping("/api/v1")
public class SRSController {
    @PostMapping("/streams")
    public ResponseEntity<Response> handlePublishAndUnpublish(@RequestBody HookData data) {
        // Handle the on_publish and on_unpublish actions
        return ResponseEntity.ok(new Response(0));
    }
    @PostMapping("/sessions")
    public ResponseEntity<Response> handlePlayAndStop(@RequestBody HookData data) {
        // Handle the on_play and on_stop actions
        return ResponseEntity.ok(new Response(0));
    }
    @PostMapping("/dvrs")
    public ResponseEntity<Response> handleDVR(@RequestBody HookData data) {
        // Handle the on_dvr action
        return ResponseEntity.ok(new Response(0));
    }
    @PostMapping("/hls")
    public ResponseEntity<Response> handleHLS(@RequestBody HookData data) {
        // Handle the on_hls action
        return ResponseEntity.ok(new Response(0));
    }
    @Data
    public static class HookData {
        private String action;
        private String client_id;
        private String ip;
        private String vhost;
        private String app;
        private String stream;
        private String param;
    }
    @Data
    public static class Response {
        private Integer code;
        private String msg;
        public Response(int code) {
            this.code = code;
            this.msg = "ok";
        }
    }
}
相关文章
|
机器人
钉钉的回调事件接入主要涉及到HTTP回调
钉钉的回调事件接入主要涉及到HTTP回调【1月更文挑战第20天】【1月更文挑战第99篇】
512 3
|
Shell API
srs的http api鉴权
srs的http api鉴权
351 0
|
Shell API
srs的http api鉴权
srs的http api鉴权
180 0
|
消息中间件 Java 语音技术
Python Http Server实现服务监听和地址回调
在日常第三方地址调用过程中,很多接口时异步接口,可以使用轮询的方式基于第一次请求返回的参数查询处理的结果,这种方式往往比较麻烦,特别是对一些长时间无法处理的任务,往往需要多次轮询才能获取结果。通过配置回调地址的方式来实现调用结果的监听;部分服务如阿里云MNS Topic、腾讯云的CMQ,都支持通过配置HttpEndpoint的方式实现消息的http方式订阅监听;这两种模式都是本地启动:HTTP Server,第三方服务通过已经配置的地址来请求服务,最终实现服务的监听。下面通过一个Python3 Http Server实现对:异步长文本语音合成和mns topic演示相关功能。
24580 7
Python Http Server实现服务监听和地址回调
|
JSON Java 数据格式
Java基础—实现微服务模块接收Http请求回调数据
本文中详细介绍在微服务模块中实现接收公网Http请求数据回调接口说明。
1048 0
Java基础—实现微服务模块接收Http请求回调数据
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
异步通信 对于BS(Browser-Server 浏览器)架构,很多情景下server的处理时间较长。 如果浏览器发送请求后,保持跟server的连接,等待server响应,那么一方面会对用户的体验有负面影响; 另一方面,很有可能会由于超时,提示用户服务请求失败。
854 0
|
Java Apache
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
hbase从集群中有8台regionserver服务器,已稳定运行了5个多月,8月15号,发现集群中4个datanode进程死了,经查原因是内存 outofMemory了(因为这几台机器上部署了spark,给spark开的...
911 0
|
Web App开发 前端开发
|
Web App开发 大数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
                                                                               1.
1855 0
|
Web App开发 前端开发 Java