owt-server接口总结

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

转载请注明出处:https://blog.csdn.net/impingo
项目地址:https://github.com/im-pingo/pingos
项目官网:https://pingos.io

概述

owt-server提供了一个官方demo和控制台接口来实现拉流、合流、转推以及录制的功能。关于owt-server的安装过程请参考我之前的文章编译和安装OWT-Server

owt-server的操作流程

输入
输入
输出
输出
输出
输出
输入流A
合流
输入流B
rtmp
rtsp
hls
dash
  1. 首先要创建一个房间(room)和合流模板。
  2. 向房间内的某个合流模板添加输入流。
  3. 刷新输入流。
  4. 如果需要添加多路输入流进行合流, 只需要重复2、3步骤即可。
  5. 针对指定房间创建输出流(支持rtmp、rtsp推流,以及hls和dash)。

创建房间

看如下示例:
room-new.sh

#!/bin/bash
curl -k -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '
{
    "name": "pingos",
    "options": {
        "mode": "hybrid",
        "publishLimit": -1,
        "userLimit": 30,
        "viewports": [
        {
            "name": "common",
            "mediaMixing": {
            "video": {
                "maxInput": 15,
                "resolution": "hd720p",
                "quality_level": "standard",
                "bkColor": {"r":1, "g":2, "b":255},
                "layout": {
                "base": "fluid"
                },
                "avCoordinated": 1,
                "crop": 0
            },
            "audio": null
            }
        },
        {
            "name": "another",
            "mediaMixing": {
            "video": {
                "maxInput": 15,
                "resolution": "hd1080p",
                "quality_level": "standard",
                "bkColor": {"r":1, "g":2, "b":255},
                "layout": {
                "base": "fluid"
                },
                "avCoordinated": 1,
                "crop": 1
            },
            "audio": null
            }
        }
        ]
    }
}
' https://$1:3004/rooms

上面主要参数通过命名基本上就可以推测出它的含义。
这里重点强调一下“viewports”,viewports的作用是允许你创建房间时定义多个合流模板,每个合流模板的名字用“name”指定。在你之后的添加输入流的操作中需要指定使用哪个合流模板。

将上面的脚本保存成room-new.sh
执行脚本,可创建房间。返回的json内容里有该房间的id,注意:后续的所有操作都要带上这个返回的房间id。

./room-new.sh your-owt-ip

在这里插入图片描述

添加和刷新输入流

添加输入流

#!/bin/bash
ip=$1
roomid=$2
instream=$3
curl -k -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "
{
  \"url\": \"$instream\",
  \"transport\":{
    \"protocol\": \"udp\",
    \"bufferSize\": 2048000
  },
  \"media\": {
    \"audio\": \"auto\",
    \"video\": \"auto\"
  }
}
" https://$ip:3004/rooms/$roomid/streaming-ins

保存脚本,执行拉取你想要合并的流。
在这里插入图片描述

刷新输入流

刷新输入流的目的是指定输入流应该接入的合流模板(muxer)

#!/bin/bash
ip=$1
roomid=$2
instream=$3
curl -k -H "Accept: application/json" -H "Content-type: application/json" -X PATCH -d '
[{
    "op": "add",
    "path": "/info/inViews",
    "value": "common"
}]
' https://$ip:3004/rooms/$roomid/streams/$instream

保存脚本内容为stream-update.sh,并执行。
在这里插入图片描述

添加输出流

#!/bin/bash
ip=$1
roomid=$2
outstream=$3
curl -k -H "Accept: application/json" -H "Content-type: application/json" -X POST -d " \
{
  \"roomId\": \"$roomid\",
  \"protocol\": \"rtmp\",
  \"url\": \"$outstream\",
  \"media\": {
    \"audio\": {
        \"from\": \"$roomid-common\"
    },
    \"video\": {
        \"from\": \"$roomid-common\",
        \"parameters\": {
          \"keyFrameInterval\": 2
        }
    }
  }
}
" https://$ip:3004/rooms/$roomid/streaming-outs

保存脚本内容,并且执行。
在这里插入图片描述

播放合流后输出的内容

该篇文章中以输出rtmp为例,将合流后的内容通过rtmp协议推流到pingos服务器。合流后的效果如下:
在这里插入图片描述

删除输入流

#!/bin/bash
ip=$1
roomid=$2
instream=$3
curl -k -H "Accept: application/json" -H "Content-type: application/json" -X DELETE  https://$ip:3004/rooms/$roomid/streaming-ins/$instream

删除输出流

#!/bin/bash
ip=$1
roomid=$2
outstream=$3
curl -k -H "Accept: application/json" -H "Content-type: application/json" -X DELETE  https://$ip:3004/rooms/$roomid/streaming-outs/$outstream

删除房间

#!/bin/bash
ip=$1
roomid=$2
curl -k -H "Accept: application/json" -H "Content-type: application/json" -X DELETE  https://$ip:3004/rooms/$roomid

QQ交流群:697773082

微信(cczjp1989)

在这里插入图片描述

OWT Server 整体架构分析 基础模块架构图 按自己的理解用 visio 大体画了一下。 前一篇博客讲过OWT Server是模块化的设计,不同模块可以分开部署,便于新手入门,下面画了OWT Server的一些基础模块(支持WebRTC开会)的框架图,如果把这几个模块搞清楚了,差不多对OWT Server也就理解了。 模块内部的 RPC 调用都是通过 RabbitMQ 消息队列实现的,都不是直接调用,即上图中 所有的虚线都是通过RabbitMQ间接通信的,而不是直接连接。 模块内部流交换(Internal IO)默认用的是 阅读详情

相关推荐

OWT Server整体架构分析 [Open WebRTC Toolkit]

1. OWT Server架构

努力努力再努力L 2484

OWT的通用服务器(流/会议/代码转换/模拟)。 (又名MediaServer-Node.js开发

Open WebRTC Toolkit媒体服务器OWT的媒体服务器提供了基于WebRTC的高效视频会议和流媒体服务。 它将单个WebRTC流扩展到许多端点。 同时,它启用了Open WebRTC Toolkit媒体服务器OWT的媒体服务器提供了基于WebRTC的高效视频会议和流媒体服务。 它将单个WebRTC流扩展到许多端点。 同时,它启用了媒体流的媒体分析功能。 它具有以下特点:分布式,可扩展且可靠的SFU + MCU服务器英特尔:registered:酷睿:trade_mark:和英特尔:registered:至强:registered:处理器上的高性能VP8,VP9,H.264和HEVC实时转码广泛的流协议支持,包括WebR

【网络通信 -- WebRTC】Open WebRTC Toolkit 环境搭建指南

【1】depot_tools / fetch:第8行:exec:python:未找到。【2】编译 usrsctp 失败。【3】boost库相关问题。

CopperSun 技术博客 2334

视频会议+OWT服务端+最全操作脚本

OWT服务端最全操作脚本 # 向房间输入发布RTSP流 ``` stream_input.sh ip roomid rtsp://xxxx ``` # 更新房间流 ``` stream_output.sh ip roomid roomStramId ``` # 删除房间内的某一条流 ``` stream_delete.sh ip roomid streamId ``` # 删除房间内所有流 ``` stream_all_delete.sh roomid ``` # 开启录制 ``` stream_record.sh ip roomid recordStreamId ``` # 结束房间内某条录制 ``` stream_record_stop.sh ip roomid recordId ``` # 输出房间流融屏流到rtsp服务器 ``` stream_output.sh ip roomId rtsp://xxxx ``` # 输出房间内某条流到rtsp服务器 ``` stream_signal_output.sh ip roomId streamId rtsp://xxx

owt-server源码剖析(一)--启动流程及相关模块介绍

目录 一、引言 二、node-gyp介绍 三、使用 ------> 3.1、node-gyp安装 ------> 3.2、package.json ------> 3.3、binding.gyp ------> 3.4、index.js 四、node-gyp发展历史 ------> 4.1、原始方式 ------> 4.2、NAN ------> 4.3、N-API 五、OWT中的addon模块 一、引言 本章来大致介绍一下owt项目的整体框架,会着重讲解其中的几个

文艺小少年的博客 876

OWT-Server 开源项目教程

OWT-Server 是一个用于构建实时通信应用的开源项目。其目录结构如下: ``` owt-server/ ├── analytics ├── console ├── docs ├── management_api ├── scripts ├── source ├── webrtc_agent ├── audio_agent ├── video_agent ├── conference_age...

gitblog_00569的博客 607

OWT server】MCU:Video Agent 4: 帧编辑混画接口类:cpp VideoFrameMixer

前一篇已经看到,engine核心功能是下沉到famemixer这层做的 /Users/zhangbin/tet/licodelllcode/owtoffical/nd/rtc-server/source/agent/video/videoMixer/VideoFrameMixer.h // Copyright (C) <2019> Intel Corporation // // SPDX-License-Identifier: Apache-2.0 #ifndef VideoFr..

突围 602

owt server】RawTransport

传输抽象 + 传输监听 抽象 创建一个针对ip+port的连接 监听某个端口 监听一个端口范围 发送缓存数据 发送格式化(header headerlen payload payloadlen)数据 关闭连接 获取监听端口 class RawTransportInterface { public: virtual ~RawTransportInterface() { } virtual void createConnection(const std::string& ip, .

突围 557

owt-server】librtcadapter:传输适配层

rtcFrame依赖于librtcadapter librtcadapter 大量依赖于werbtc的,是传输关键核心代码。 source\core\rtc_adapter\RtcAdapter.cc 这里主要是一些对外api 类的创建、接口类声明、 线程类创建。 librtcadapter rtc_adapter:: RtcAdapterFactory 创建 RtcAdapter RtcAdapterImpl RtcAdapter* RtcAdapterFactory::CreateR..

突围 529

OWT Server信令分析 (下) [Open WebRTC Toolkit]

OWT Server信令分析 (下) [Open WebRTC Toolkit]

努力努力再努力L 1274

OWT 安装与初步使用说明

https://www.jianshu.com/p/0aea0fe8d992 OWT安装与初步使用说明 Author: Ran; Date: 2019-08-27; 本文在编写时使用的版本为 4.2,现在 OWT 可能已经发布发更新的版本,如果您想使用更新的版本,请仔细阅读相关文档。 参考 https://github.com/open-webrtc-toolkit/owt-server 环境 推荐使用 Ubuntu 18.04 或 CentOS 7。本文中使用 Ubuntu 18.04。.

sun007700的专栏 4770

OWT Server信令分析 (上) [Open WebRTC Toolkit]

1. OWT Server信令分析 2. OWT Server信令交互过程解析

努力努力再努力L 1374

【亲测免费】 开源项目教程:OpenWebRTC Toolkit (OWT) Server 深入指南

**OpenWebRTC Toolkit (OWT)** 是一个高度可扩展的实时通信平台,它基于WebRTC技术,提供了从端到端的视频和音频通信解决方案。OWT Server作为其核心组件之一,负责处理信令、媒体转码、录制等任务,支持多种应用场景,如视频会议、直播、远程教育等。该项目开源于GitHub,地址为:[https://github.com/open-webrtc-toolkit/owt-...

gitblog_00468的博客 845

owt-server】Frame到Destination的数据转发

owt

突围 217

owt-server源码剖析(七)--MCU模式介绍

本章会结合源码,详细介绍客户端如何接入owt,并且使用owt的MCU模式以及混屏流程

文艺小少年的博客 1343

owt-server源码剖析(五)--js模块分析

本篇文章主要分析owt的除音视频外的模块

文艺小少年的博客 874

owt-server编码h264的sps pps不固定的问题

转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/pingos 项目官网:https://pingos.io 目录问题描述问题分析问题解决QQ交流群:697773082微信(cczjp1989) 问题描述 最近使用owt-server转推rtmp到媒体服务器时出现hls播放无画面的情况。 并且,使用ffpl...

impingo的博客 1164

WebRTC在Ubuntu上的Python安装和支持OWT构建

在Ubuntu上安装和使用WebRTC,需要进行一些配置和安装步骤。本文将介绍如何在Ubuntu上安装Python,并为OWT项目构建所需的Boost库。本文介绍了在Ubuntu上安装Python以及为OWT项目构建所需的Boost库的步骤。通过按照上述步骤进行配置和安装,您可以轻松开始使用WebRTC和OWT项目。以上命令将从OWT的GitHub存储库中克隆代码,并执行安装脚本。根据提示,您可能需要提供sudo密码以完成安装。以上命令将从Boost官方网站下载最新的稳定版本,并进行解压缩。

WaJulia的博客 228

owt-server开启水印功能

转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/pingos 项目官网:https://pingos.io 目录问题描述QQ交流群:697773082微信(cczjp1989) 问题描述 owt-server默认已经将水印功能屏蔽,并且从代码上分析,它原本也只打算支持文字水印。 我模仿FFmpegDraw...

impingo的博客 1188
上一篇: 分布式直播系统(十二)【nginx-rtmp-module动态转推和动态回源】
下一篇: owt-server编码h264的sps pps不固定的问题
im-pingo
博客等级 码龄7年 304粉丝 45原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值