owt-server接口总结

转载请注明出处: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)

在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
您可以按照以下步骤在Ubuntu系统中使用Docker安装OWT(Open WebRTC Toolkit)服务器: 1. 首先,确保您的系统已经安装了Docker和Docker Compose。如果尚未安装,可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install docker.io docker-compose ``` 2. 下载OWT服务器的Docker Compose配置文件。在终端中执行以下命令: ``` curl https://raw.githubusercontent.com/open-webrtc-toolkit/owt-server/stable/docker-compose/docker-compose.yml -o docker-compose.yml ``` 3. 编辑`docker-compose.yml`文件以进行配置。您可以使用文本编辑器打开文件,例如: ``` nano docker-compose.yml ``` 根据您的需求,可以修改以下配置: - 修改`adminToken`字段的值以设置管理员访问令牌。 - 修改`publicIp`字段的值以设置OWT服务器的公共IP地址。 - 如果需要,修改其他配置项,例如STUN/TURN服务器等。 4. 运行OWT服务器。在终端中执行以下命令: ``` sudo docker-compose up -d ``` 这将启动OWT服务器,并将其作为Docker容器在后台运行。 5. 等待一段时间,直到容器启动并运行。您可以使用以下命令检查容器状态: ``` sudo docker-compose ps ``` 如果所有容器都处于"Up"状态,则表示OWT服务器已成功安装和运行。 现在,您可以使用OWT服务器提供的功能和API来进行视频通信和流媒体处理。 请注意,以上步骤仅适用于使用Docker安装OWT服务器。如果您需要更详细的配置或定制,请参考OWT的官方文档或GitHub存储库中的说明。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值