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.
Example
Section titled “Example”{ "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" } }}Config
Section titled “Config”| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | WHIP endpoint URL. |
headers | map | No | HTTP headers for the WHIP SDP exchange, for example Authorization: Bearer <token>. |
encoding | object | No | Codec and bitrate hints. |
Text metadata
Section titled “Text metadata”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": { ... } }.
Pricing
Section titled “Pricing”WHIP is billed as an RTC sink. It uses output tier pricing and successful WebRTC transport bytes are also billed as egress. Sink pricing.