Skip to main content

Data Streams in watchRTC

Data streams in watchRTC are generated on the room level. Once a data stream file needs to be created for watchRTC, watchRTC will collect all history results for the time interval configured and generate a JSON struct per room, placing all these rooms in the data stream file and storing that file in the configured object store.

For more information please see the article What are data streams?

Create a data stream

If you would like to begin using data streams today, please read the article on How to Create a Data Stream to get started.

Note:
  • Data streams are not available in all accounts.
  • They require enterprise plans.

JSON structure

Detailed below is the JSON structure you can expect:

[
  {
    "room_url": "https://app.testrtc.com/app/watchrtc-room/xxxxxx",
    "room_id": "roomid",
    "start_time": "2022-09-04T00:09:22.885Z",
    "end_time": "2022-09-04T00:17:06.149Z",
    "duration": 463, // in seconds
    "users": 2, // number of peers in the room
    "stats": {
      "mos": 4.35, // MOS score
      "score": 6, // testRTC media score
->    "user": ...
      "call_setup_time": 900, // in milliseconds
      "audio": {
        "send": {
          "bitrate": 11, // in kbit/s
          "packet_loss": 6.1, // in percentage
          "jitter": 6, // in milliseconds
          "rtt": 2397 // in milliseconds
        },
        "recv": {
          "bitrate": 20, // in kbit/s
          "packet_loss": 0.2, // in percentage
          "jitter": 15 // in milliseconds
        },
        "bitrate": 16, // in kbit/s
        "packet_loss": 3.2, // in percentage
        "jitter": 11 // in milliseconds
      },
      "video": {
        "send": {
          "bitrate": 1499, // in kbit/s
          "packet_loss": 4.5, // in percentage
          "jitter": 48, // in milliseconds
          "rtt": 1073 // in milliseconds
        },
        "recv": {
          "bitrate": 109, // in kbit/s
          "packet_loss": 0.1, // in percentage
          "jitter": 43 // in milliseconds
        },
        "bitrate": 804, // in kbit/s
        "packet_loss": 2.3, // in percentage
        "jitter": 46 // in milliseconds
      }
    "peers": [
      {
        "peer_id": "peerid",
        "os": "Linux",
        "os_version": "64-bit",
        "browser": "Chrome",
        "browser_version": "102.0.5005.61",
        "location": {
          "city": "Frankfurt am Main",
          "country": "Germany",
          "organization": "Google" // ISP or carrier
        },
        "sdk_version": "1.34.1-beta.1",
        "start_time": "2022-06-24T06:37:35.547Z",
        "duration": 392, // in seconds
        "keys": {
          "keyA": "valueA",
          "keyB": "valueB"

          ...
        },
        "features": {
          "connection_type": "TURN",
          "media_transport": "udp" // udp/tcp/tls
        },
        "stats": {
          "mos": 3.29,
          "score": 5.9,
->        "user_rating": ... 
          "call_setup_time": 164,
          "audio": {
            "send": {
              "mos": 3.29,
              "score": 5.9,
              "bitrate": 13,
              "packet_loss": 3.6,
              "jitter": 8,
              "rtt": 428
            },
            "recv": {
              "mos": 3.29,
              "score": 5.9,
              "bitrate": 24,
              "packet_loss": 0.1,
              "jitter": 4
            },
            "bitrate": 19,
            "packet_loss": 1.9,
            "jitter": 6
          },
          "video": {
            "send": {
              "mos": 3.29,
              "bitrate": 1596,
              "packet_loss": 2.7,
              "jitter": 15,
              "rtt": 159
            },
            "recv": {
              "mos": 3.29,
              "bitrate": 68,
              "packet_loss": 0.1,
              "jitter": 13
            },
            "bitrate": 832,
            "packet_loss": 1.4,
            "jitter": 14
          }
        },
        "audio_device": "Fake Default Audio Input",
        "video_device": "/video/KrankyGeek-1080p.y4m"
      },

      ...
    ]
  }
]

Was this article helpful?

0 out of 0 found this helpful