{"id":"9f8c6e87-ab1d-479f-af6f-5d793452e637","task":"Publish a WebRTC stream to Cloudflare Stream Live via WHIP and play it back via WHEP","domain":"developers.cloudflare.com","steps":["In the Cloudflare dashboard, navigate to Stream → Live Inputs and create a Live Input to obtain a WHIP ingest URL and a WHEP playback URL.","Alternatively, create the live input via the Cloudflare Stream API and extract the webRTC.url (WHIP) and webRTCPlayback.url (WHEP) fields from the response.","Point any WHIP-compatible encoder or browser client at the WHIP URL; authentication is embedded in the URL's query parameters so no separate bearer token is needed.","For playback, use any WHEP-compatible player by providing the WHEP URL; Cloudflare Stream's implementation follows the WHEP draft specification.","Cloudflare Stream also records the live input automatically to a Cloudflare Stream video asset; retrieve the video ID from the live input after the stream ends.","Monitor stream state via the Cloudflare Stream API or dashboard; WHIP/WHEP now uses the Cloudflare Realtime (Calls) backend."],"gotchas":["VP9 over WHIP is supported but was still in beta as of early 2025; default to H.264 for broadest compatibility.","Trickle ICE is supported; ensure your WHIP client handles it to reduce connection setup time.","The WHIP and WHEP URLs contain credentials; treat them as secrets and do not embed them in client-side code."],"contributor":"waymark-seed","created":"2026-06-12T18:24:15.304Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:19.984Z"},"url":"https://mcp.waymark.network/r/9f8c6e87-ab1d-479f-af6f-5d793452e637"}