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";
        }
    }
}
相关文章
|
3月前
|
机器人
钉钉的回调事件接入主要涉及到HTTP回调
钉钉的回调事件接入主要涉及到HTTP回调【1月更文挑战第20天】【1月更文挑战第99篇】
151 3
|
3月前
|
Shell API
srs的http api鉴权
srs的http api鉴权
102 0
|
3月前
|
Shell API
srs的http api鉴权
srs的http api鉴权
69 0
|
消息中间件 Java 语音技术
Python Http Server实现服务监听和地址回调
在日常第三方地址调用过程中,很多接口时异步接口,可以使用轮询的方式基于第一次请求返回的参数查询处理的结果,这种方式往往比较麻烦,特别是对一些长时间无法处理的任务,往往需要多次轮询才能获取结果。通过配置回调地址的方式来实现调用结果的监听;部分服务如阿里云MNS Topic、腾讯云的CMQ,都支持通过配置HttpEndpoint的方式实现消息的http方式订阅监听;这两种模式都是本地启动:HTTP Server,第三方服务通过已经配置的地址来请求服务,最终实现服务的监听。下面通过一个Python3 Http Server实现对:异步长文本语音合成和mns topic演示相关功能。
23389 7
Python Http Server实现服务监听和地址回调
|
JSON Java 数据格式
Java基础—实现微服务模块接收Http请求回调数据
本文中详细介绍在微服务模块中实现接收公网Http请求数据回调接口说明。
795 0
Java基础—实现微服务模块接收Http请求回调数据
|
2月前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
8天前
|
安全 算法 网络协议
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
23 2
|
20天前
|
缓存 网络协议 算法
(二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
作为一名程序员,尤其是Java程序员,那必须得了解并掌握HTTP/HTTPS相关知识。因为在如今计算机网络通信中,HTTP协议的作用功不可没,无论是日常上网追剧、冲���、亦或是接口开发、调用等,必然存在HTTP的“影子”在内。尤其对于WEB开发者而言,HTTP几乎是每天会打交道的东西。
45 10
|
1月前
|
存储 安全 搜索推荐
HTTPS协议深度解析
【7月更文挑战第12天】HTTPS协议通过加密通信和身份验证机制,为数据传输提供了强有力的安全保障。在现代互联网环境中,HTTPS已成为保障网站和用户数据安全的重要手段。了解HTTPS的工作原理和安全性特性,有助于更好地应用和维护HTTPS,提升网络安全水平。
|
1月前
|
安全 算法 网络协议
HTTPS协议的详细讲解(四次握手)
HTTPS协议的详细讲解(四次握手)