Skip to content
Console

whip

Publish upstream media to a WHIP endpoint. AVFlow handles the required media preparation internally based on the requested encoding and endpoint capabilities.

WHIP remains media-only (RFC 9725), with no data channel. AVFlow can embed ASR captions, audio levels, and layout info as JSON DataEvents in H.264/H.265 user_data_unregistered SEI or an AV1 ITU-T T.35 Metadata OBU when the selected output path supports in-band metadata. If metadata cannot be carried for the selected path or codec, text events are reported as whip.metadata_unsupported. VP8/VP9 do not carry in-band text metadata.

{
"name": "whip_out",
"type": "whip",
"inputs": ["mix_video", "mix_audio"],
"config": {
"url": "https://whip.example.com/live/stream/whip",
"headers": { "Authorization": "Bearer <token>" },
"encoding": { "videoCodec": "h264" }
}
}
FieldTypeRequiredDescription
urlstringYesWHIP endpoint URL.
headersmapNoHTTP headers for the WHIP SDP exchange, for example Authorization: Bearer <token>.
encodingobjectNoCodec and bitrate hints.

Wire an ASR node, audio mixer with audio levels, or video mixer with layout info into inputs to enable text metadata. AVFlow keeps metadata in the video bitstream before RTP packetization when the selected output path supports it. Text metadata requires a video input; AVFlow does not create an implicit black track. Use an explicit video_generator when a carrier is required.

When in-band metadata cannot be carried for the selected output path, AVFlow publishes audio/video only and reports whip.metadata_unsupported when a text event reaches the sink.

All in-band payloads use fixed UUID 4156464c-4f57-5445-5854-4d4554410001 (AVFLOWTEXTMETA). This is a fixed private avflow text-metadata namespace; event routing is inside the JSON body: { "type": "avflow.asrText" | "avflow.voiceAgentText" | "avflow.audioLevels" | "avflow.videoMixerLayout", "data": { ... } }.

WHIP is billed as an RTC sink. It uses output tier pricing and successful WebRTC transport bytes are also billed as egress. Sink pricing.