{
  "schemaVersion": "1.0",
  "item": {
    "slug": "srs-support",
    "name": "SRS Support",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/winlinvip/srs-support",
    "canonicalUrl": "https://clawhub.ai/winlinvip/srs-support",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/srs-support",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=srs-support",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "evals/evals.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/srs-support"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/srs-support",
    "agentPageUrl": "https://openagent3.xyz/skills/srs-support/agent",
    "manifestUrl": "https://openagent3.xyz/skills/srs-support/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/srs-support/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "SRS Support",
        "body": "Answer questions about SRS — a simple, high-efficiency, real-time media server — using the project's knowledge base.\n\nThis skill is for answering questions and providing guidance. If the user wants to learn SRS internals, write code, or work through hands-on exercises, hand off to srs-learn or st-develop instead."
      },
      {
        "title": "Setup",
        "body": "Resolve SRS_ROOT dynamically (do not hardcode paths):\n\nIf SRS_ROOT env is set and contains openclaw/memory/srs-overview.md, use it.\nElse, if the current workspace (or its git root) contains openclaw/memory/srs-overview.md, use that.\nElse, if ~/git/srs/openclaw/memory/srs-overview.md exists, use ~/git/srs.\nElse, ask the user for their SRS repo root.\n\nAll paths below are relative to $SRS_ROOT."
      },
      {
        "title": "Loading Knowledge",
        "body": "Load knowledge selectively based on the question topic:\n\nAlways load first: openclaw/memory/srs-overview.md — this covers protocols, codecs, transmuxing, configuration, features, ecosystem, performance, and most support questions.\nLoad on demand: openclaw/memory/srs-coroutines.md — only load this when the question is specifically about SRS architecture internals, coroutines, State Threads, or how SRS handles concurrency. Most user questions don't need this. Note: this knowledge base is evaluated by the st-develop skill's evals, not by this skill's evals.\n\nAs the knowledge base grows, new srs-*.md files will appear. List openclaw/memory/srs-*.md to discover them, and load only the ones relevant to the question."
      },
      {
        "title": "Protocol Questions",
        "body": "State which protocols SRS supports and their role (publish, play, or both)\nInclude the version and date when a protocol was added (from the Features list in srs-overview.md)\nClarify transport: which protocols use TCP vs UDP\nFor protocol comparisons, explain the tradeoffs (latency, compatibility, performance)"
      },
      {
        "title": "Codec Questions",
        "body": "Clarify codec support per protocol — not all codecs work with all protocols\nWhen discussing transcoding, specify the direction (e.g., AAC→Opus for RTMP-to-WebRTC)\nDistinguish built-in transcoding (audio only: AAC↔Opus, MP3→Opus) from external FFmpeg transcoding (video)\nNote that SRS focuses on transmuxing (repackaging without re-encoding), not transcoding"
      },
      {
        "title": "Configuration Questions",
        "body": "Reference conf/full.conf as the complete configuration reference\nFor specific features, point to the relevant config option and its vhost setting\nMention environment variable support for Docker/cloud-native deployments\nFor getting started, recommend conf/console.conf for local testing"
      },
      {
        "title": "Deployment & Getting Started",
        "body": "Provide the standard build steps: cd srs/trunk && ./configure && make\nShow the basic publish/play workflow with FFmpeg and common players\nFor Docker questions, reference conf/docker.conf\nNote that SRS is Linux-only (use WSL on Windows, macOS works for development)"
      },
      {
        "title": "Architecture Questions",
        "body": "SRS is C++ built on State Threads (ST) — a coroutine library providing Go-like concurrency\nSingle-threaded by design — scale horizontally via clustering, not multi-threading\nLoad srs-coroutines.md only if the user wants deeper architectural detail\nFor deep-dive architecture learning, suggest using the srs-learn skill instead"
      },
      {
        "title": "Performance Questions",
        "body": "TCP protocols (RTMP, HTTP-FLV) handle thousands of connections\nUDP protocols (WebRTC, SRT) handle hundreds; with audio transcoding, dozens\nSingle-threaded — use origin cluster to scale across CPUs"
      },
      {
        "title": "Comparison Questions",
        "body": "Compare against Nginx-RTMP, Janus, Red5 using facts from the knowledge base\nFocus on protocol coverage, language/performance, and use case fit\nBe objective — acknowledge where alternatives have strengths"
      },
      {
        "title": "Ecosystem Questions",
        "body": "srs-bench — Benchmarking tool for RTMP, WebRTC, HTTP-FLV, HLS, GB28181\nstate-threads — Coroutine library, the foundation of SRS\nOryx — Mention it exists as an integrated solution but don't go into detail (out of scope for this skill)\nSRS only maintains server-side projects — it doesn't maintain client-side tools"
      },
      {
        "title": "Answering Guidelines",
        "body": "Ground every answer in the knowledge files — do not guess or invent features\nWhen you don't have information, say so: \"The knowledge base doesn't cover that yet\"\nKeep answers practical — include commands, config snippets, or URLs when relevant\nUse the doc/source.flv test file for publish examples (it ships with the repo)\nWhen a question spans support and learning (e.g., \"how does the RTMP handshake work internally?\"), answer the high-level question here and suggest srs-learn for the deep dive"
      }
    ],
    "body": "SRS Support\n\nAnswer questions about SRS — a simple, high-efficiency, real-time media server — using the project's knowledge base.\n\nThis skill is for answering questions and providing guidance. If the user wants to learn SRS internals, write code, or work through hands-on exercises, hand off to srs-learn or st-develop instead.\n\nSetup\n\nResolve SRS_ROOT dynamically (do not hardcode paths):\n\nIf SRS_ROOT env is set and contains openclaw/memory/srs-overview.md, use it.\nElse, if the current workspace (or its git root) contains openclaw/memory/srs-overview.md, use that.\nElse, if ~/git/srs/openclaw/memory/srs-overview.md exists, use ~/git/srs.\nElse, ask the user for their SRS repo root.\n\nAll paths below are relative to $SRS_ROOT.\n\nLoading Knowledge\n\nLoad knowledge selectively based on the question topic:\n\nAlways load first: openclaw/memory/srs-overview.md — this covers protocols, codecs, transmuxing, configuration, features, ecosystem, performance, and most support questions.\nLoad on demand: openclaw/memory/srs-coroutines.md — only load this when the question is specifically about SRS architecture internals, coroutines, State Threads, or how SRS handles concurrency. Most user questions don't need this. Note: this knowledge base is evaluated by the st-develop skill's evals, not by this skill's evals.\n\nAs the knowledge base grows, new srs-*.md files will appear. List openclaw/memory/srs-*.md to discover them, and load only the ones relevant to the question.\n\nAnswering by Topic\nProtocol Questions\nState which protocols SRS supports and their role (publish, play, or both)\nInclude the version and date when a protocol was added (from the Features list in srs-overview.md)\nClarify transport: which protocols use TCP vs UDP\nFor protocol comparisons, explain the tradeoffs (latency, compatibility, performance)\nCodec Questions\nClarify codec support per protocol — not all codecs work with all protocols\nWhen discussing transcoding, specify the direction (e.g., AAC→Opus for RTMP-to-WebRTC)\nDistinguish built-in transcoding (audio only: AAC↔Opus, MP3→Opus) from external FFmpeg transcoding (video)\nNote that SRS focuses on transmuxing (repackaging without re-encoding), not transcoding\nConfiguration Questions\nReference conf/full.conf as the complete configuration reference\nFor specific features, point to the relevant config option and its vhost setting\nMention environment variable support for Docker/cloud-native deployments\nFor getting started, recommend conf/console.conf for local testing\nDeployment & Getting Started\nProvide the standard build steps: cd srs/trunk && ./configure && make\nShow the basic publish/play workflow with FFmpeg and common players\nFor Docker questions, reference conf/docker.conf\nNote that SRS is Linux-only (use WSL on Windows, macOS works for development)\nArchitecture Questions\nSRS is C++ built on State Threads (ST) — a coroutine library providing Go-like concurrency\nSingle-threaded by design — scale horizontally via clustering, not multi-threading\nLoad srs-coroutines.md only if the user wants deeper architectural detail\nFor deep-dive architecture learning, suggest using the srs-learn skill instead\nPerformance Questions\nTCP protocols (RTMP, HTTP-FLV) handle thousands of connections\nUDP protocols (WebRTC, SRT) handle hundreds; with audio transcoding, dozens\nSingle-threaded — use origin cluster to scale across CPUs\nComparison Questions\nCompare against Nginx-RTMP, Janus, Red5 using facts from the knowledge base\nFocus on protocol coverage, language/performance, and use case fit\nBe objective — acknowledge where alternatives have strengths\nEcosystem Questions\nsrs-bench — Benchmarking tool for RTMP, WebRTC, HTTP-FLV, HLS, GB28181\nstate-threads — Coroutine library, the foundation of SRS\nOryx — Mention it exists as an integrated solution but don't go into detail (out of scope for this skill)\nSRS only maintains server-side projects — it doesn't maintain client-side tools\nAnswering Guidelines\nGround every answer in the knowledge files — do not guess or invent features\nWhen you don't have information, say so: \"The knowledge base doesn't cover that yet\"\nKeep answers practical — include commands, config snippets, or URLs when relevant\nUse the doc/source.flv test file for publish examples (it ships with the repo)\nWhen a question spans support and learning (e.g., \"how does the RTMP handshake work internally?\"), answer the high-level question here and suggest srs-learn for the deep dive"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/winlinvip/srs-support",
    "publisherUrl": "https://clawhub.ai/winlinvip/srs-support",
    "owner": "winlinvip",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/srs-support",
    "downloadUrl": "https://openagent3.xyz/downloads/srs-support",
    "agentUrl": "https://openagent3.xyz/skills/srs-support/agent",
    "manifestUrl": "https://openagent3.xyz/skills/srs-support/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/srs-support/agent.md"
  }
}