RtspToWeb Api说明()

RTSPtoWeb API

  • Streams

    列出流
    添加流
    更新流
    重新加载流
    获取流信息
    删除流

  • 列出流
  • 添加流
  • 更新流
  • 重新加载流
  • 获取流信息
  • 删除流
  • 频道

    将频道添加到流中
    更新流频道
    [重新加载流频道](#reload -a-stream-channel)
    获取流通道信息
    获取流通道编解码器
    [删除流通道](#删除流通道)

  • 将频道添加到流中
  • 更新流频道
  • [重新加载流频道](#reload -a-stream-channel)
  • 获取流通道信息
  • 获取流通道编解码器
  • [删除流通道](#删除流通道)
  • 视频端点

    HLS
    HLS-LL
    MSE
    WebRTC
    RTSP

  • HLS
  • HLS-LL
  • MSE
  • WebRTC
  • RTSP

Streams

List streams

Request

GET /streams
curl http://demo:demo@127.0.0.1:8083/streams

Response

{
    "status": 1,
    "payload": {
        "demo1": {
            "name": "test video",
            "channels": {
                "0": {
                    "name": "ch1",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                },
                "1": {
                    "name": "ch2",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                }
            }
        },
        "demo2": {
            "name": "test video",
            "channels": {
                "0": {
                    "name": "ch1",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                },
                "1": {
                    "name": "ch2",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                }
            }
        }
    }
}

Add a stream

Request

POST /stream/{STREAM_ID}/add
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "test video",
              "channels": {
                  "0": {
                      "name": "ch1",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  },
                  "1": {
                      "name": "ch2",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  }
              }
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/add

Response

{
    "status": 1,
    "payload": "success"
}

Update a stream

Request

POST /stream/{STREAM_ID}/edit
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "test video",
              "channels": {
                  "0": {
                      "name": "ch1",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  },
                  "1": {
                      "name": "ch2",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  }
              }
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/edit

Response

{
    "status": 1,
    "payload": "success"
}

Reload a stream

Request

GET /stream/{STREAM_ID}/reload
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/reload

Response

{
    "status": 1,
    "payload": "success"
}

Get stream info

Request

GET /stream/{STREAM_ID}/info
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/info

Response

{
    "status": 1,
    "payload": {
        "name": "test video",
        "channels": {
            "0": {
                "name": "ch1",
                "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                "on_demand": true,
                "debug": false,
                "status": 0
            },
            "1": {
                "name": "ch2",
                "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                "on_demand": true,
                "debug": false,
                "status": 0
            }
        }
    }
}

Delete a stream

Request

GET /stream/{STREAM_ID}/delete
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/delete

Response

{
    "status": 1,
    "payload": "success"
}

Channels

Add a channel to a stream

Request

POST /stream/{STREAM_ID}/channel/{CHANNEL_ID}/add
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "ch4",
              "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
              "on_demand": false,
              "debug": false,
              "status": 0
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/add

Response

{
    "status": 1,
    "payload": "success"
}

Update a stream channel

Request

POST /stream/{STREAM_ID}/channel/{CHANNEL_ID}/edit
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "ch4",
              "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
              "on_demand": true,
              "debug": false,
              "status": 0
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/edit

Response

{
    "status": 1,
    "payload": "success"
}

Reload a stream channel

Request

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/reload
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/reload

Response

{
    "status": 1,
    "payload": "success"
}

Get stream channel info

Request

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/info
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/info

Response

{
    "status": 1,
    "payload": {
        "name": "ch4",
        "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
        "on_demand": false,
        "debug": false,
        "status": 1
    }
}

Get stream channel codec

Request

GET /stream/{STREAM_ID}/{CHANNEL_ID}/codec
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/{CHANNEL_ID}/codec

Response

{
    "status": 1,
    "payload": [
        {
            "Record": "AU0AFP/hABRnTQAUlahQfoQAAAMABAAAAwCiEAEABGjuPIA=",
            "RecordInfo": {
                "AVCProfileIndication": 77,
                "ProfileCompatibility": 0,
                "AVCLevelIndication": 20,
                "LengthSizeMinusOne": 3,
                "SPS": [
                    "Z00AFJWoUH6EAAADAAQAAAMAohA="
                ],
                "PPS": [
                    "aO48gA=="
                ]
            },
            "SPSInfo": {
                "ProfileIdc": 77,
                "LevelIdc": 20,
                "MbWidth": 20,
                "MbHeight": 15,
                "CropLeft": 0,
                "CropRight": 0,
                "CropTop": 0,
                "CropBottom": 0,
                "Width": 320,
                "Height": 240
            }
        }
    ]
}

Delete a stream channel

Request

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/delete
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/delete

Response

{
    "status": 1,
    "payload": "success"
}

Video endpoints

HLS

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/hls/live/index.m3u8
curl http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hls/live/index.m3u8
ffplay http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hls/live/index.m3u8

HLS-LL

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8
curl http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8
ffplay http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8

MSE

/stream/{STREAM_ID}/channel/{CHANNEL_ID}/mse?uuid={STREAM_ID}&channel={CHANNEL_ID}
ws://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/mse?uuid={STREAM_ID}&channel={CHANNEL_ID}

NOTE: Use for a secure connection.

wss

WebRTC

/stream/{STREAM_ID}/channel/{CHANNEL_ID}/webrtc
http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/webrtc

Request

The request is an HTTP with a parameter that is a base64 encoded SDP offer (e.g. ) from a WebRTC client.

POST
data
v=0...

Response

The response is a base64 encoded SDP Answer.

RTSP

/{STREAM_ID}/{CHANNEL_ID}
rtsp://127.0.0.1:{RTSP_PORT}/{STREAM_ID}/{CHANNEL_ID}
ffplay -rtsp_transport tcp rtsp://127.0.0.1/{STREAM_ID}/{CHANNEL_ID}
————————

RTSPtoWeb API

  • Streams

    列出流
    添加流
    更新流
    重新加载流
    获取流信息
    删除流

  • 列出流
  • 添加流
  • 更新流
  • 重新加载流
  • 获取流信息
  • 删除流
  • 频道

    将频道添加到流中
    更新流频道
    [重新加载流频道](#reload -a-stream-channel)
    获取流通道信息
    获取流通道编解码器
    [删除流通道](#删除流通道)

  • 将频道添加到流中
  • 更新流频道
  • [重新加载流频道](#reload -a-stream-channel)
  • 获取流通道信息
  • 获取流通道编解码器
  • [删除流通道](#删除流通道)
  • 视频端点

    HLS
    HLS-LL
    MSE
    WebRTC
    RTSP

  • HLS
  • HLS-LL
  • MSE
  • WebRTC
  • RTSP

Streams

List streams

Request

GET /streams
curl http://demo:demo@127.0.0.1:8083/streams

Response

{
    "status": 1,
    "payload": {
        "demo1": {
            "name": "test video",
            "channels": {
                "0": {
                    "name": "ch1",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                },
                "1": {
                    "name": "ch2",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                }
            }
        },
        "demo2": {
            "name": "test video",
            "channels": {
                "0": {
                    "name": "ch1",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                },
                "1": {
                    "name": "ch2",
                    "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                    "on_demand": true,
                    "debug": false,
                    "status": 0
                }
            }
        }
    }
}

Add a stream

Request

POST /stream/{STREAM_ID}/add
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "test video",
              "channels": {
                  "0": {
                      "name": "ch1",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  },
                  "1": {
                      "name": "ch2",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  }
              }
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/add

Response

{
    "status": 1,
    "payload": "success"
}

Update a stream

Request

POST /stream/{STREAM_ID}/edit
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "test video",
              "channels": {
                  "0": {
                      "name": "ch1",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  },
                  "1": {
                      "name": "ch2",
                      "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                      "on_demand": true,
                      "debug": false,
                      "status": 0
                  }
              }
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/edit

Response

{
    "status": 1,
    "payload": "success"
}

Reload a stream

Request

GET /stream/{STREAM_ID}/reload
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/reload

Response

{
    "status": 1,
    "payload": "success"
}

Get stream info

Request

GET /stream/{STREAM_ID}/info
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/info

Response

{
    "status": 1,
    "payload": {
        "name": "test video",
        "channels": {
            "0": {
                "name": "ch1",
                "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                "on_demand": true,
                "debug": false,
                "status": 0
            },
            "1": {
                "name": "ch2",
                "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
                "on_demand": true,
                "debug": false,
                "status": 0
            }
        }
    }
}

Delete a stream

Request

GET /stream/{STREAM_ID}/delete
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/delete

Response

{
    "status": 1,
    "payload": "success"
}

Channels

Add a channel to a stream

Request

POST /stream/{STREAM_ID}/channel/{CHANNEL_ID}/add
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "ch4",
              "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
              "on_demand": false,
              "debug": false,
              "status": 0
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/add

Response

{
    "status": 1,
    "payload": "success"
}

Update a stream channel

Request

POST /stream/{STREAM_ID}/channel/{CHANNEL_ID}/edit
curl \
  --header "Content-Type: application/json" \
  --request POST \
  --data '{
              "name": "ch4",
              "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
              "on_demand": true,
              "debug": false,
              "status": 0
          }' \
  http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/edit

Response

{
    "status": 1,
    "payload": "success"
}

Reload a stream channel

Request

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/reload
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/reload

Response

{
    "status": 1,
    "payload": "success"
}

Get stream channel info

Request

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/info
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/info

Response

{
    "status": 1,
    "payload": {
        "name": "ch4",
        "url": "rtsp://admin:admin@{YOUR_CAMERA_IP}/uri",
        "on_demand": false,
        "debug": false,
        "status": 1
    }
}

Get stream channel codec

Request

GET /stream/{STREAM_ID}/{CHANNEL_ID}/codec
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/{CHANNEL_ID}/codec

Response

{
    "status": 1,
    "payload": [
        {
            "Record": "AU0AFP/hABRnTQAUlahQfoQAAAMABAAAAwCiEAEABGjuPIA=",
            "RecordInfo": {
                "AVCProfileIndication": 77,
                "ProfileCompatibility": 0,
                "AVCLevelIndication": 20,
                "LengthSizeMinusOne": 3,
                "SPS": [
                    "Z00AFJWoUH6EAAADAAQAAAMAohA="
                ],
                "PPS": [
                    "aO48gA=="
                ]
            },
            "SPSInfo": {
                "ProfileIdc": 77,
                "LevelIdc": 20,
                "MbWidth": 20,
                "MbHeight": 15,
                "CropLeft": 0,
                "CropRight": 0,
                "CropTop": 0,
                "CropBottom": 0,
                "Width": 320,
                "Height": 240
            }
        }
    ]
}

Delete a stream channel

Request

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/delete
curl http://demo:demo@127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/delete

Response

{
    "status": 1,
    "payload": "success"
}

Video endpoints

HLS

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/hls/live/index.m3u8
curl http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hls/live/index.m3u8
ffplay http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hls/live/index.m3u8

HLS-LL

GET /stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8
curl http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8
ffplay http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/hlsll/live/index.m3u8

MSE

/stream/{STREAM_ID}/channel/{CHANNEL_ID}/mse?uuid={STREAM_ID}&channel={CHANNEL_ID}
ws://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/mse?uuid={STREAM_ID}&channel={CHANNEL_ID}

NOTE: Use for a secure connection.

wss

WebRTC

/stream/{STREAM_ID}/channel/{CHANNEL_ID}/webrtc
http://127.0.0.1:8083/stream/{STREAM_ID}/channel/{CHANNEL_ID}/webrtc

Request

The request is an HTTP with a parameter that is a base64 encoded SDP offer (e.g. ) from a WebRTC client.

POST
data
v=0...

Response

The response is a base64 encoded SDP Answer.

RTSP

/{STREAM_ID}/{CHANNEL_ID}
rtsp://127.0.0.1:{RTSP_PORT}/{STREAM_ID}/{CHANNEL_ID}
ffplay -rtsp_transport tcp rtsp://127.0.0.1/{STREAM_ID}/{CHANNEL_ID}