For governments that broadcast meetings to citizens, Govinity provides a Control Room on the Media tab — a single panel that handles the entire live-streaming lifecycle, from enabling the stream before the meeting starts, through monitoring the encoder signal, going live publicly, and ending the meeting at the close.
This article walks through the Control Room state machine, what each state means, and what the buttons do. The flip side — uploading a recording after the meeting (for governments that don't stream live, or for catching up if the live stream failed) — is covered separately in Recordings: Upload and Processing.
Where to find it
On any meeting page, click the Media tab. If your government is set up for live streaming, the Control Room appears.
[IMAGE: The Media tab showing the Control Room with the stage and contextual action button]
The Media tab requires the Recording module (hasRecord flag) on your government. The streaming features additionally require:
The ENABLE_MEDIA_STREAMING feature flag to be on for your workspace.
A Media Encoder to be assigned to the meeting (set on the meeting's Edit Meeting dialog or auto-filled from the meeting's saved location).
Without an encoder assigned, the page shows a "No Media Encoder Selected" zero-state with an Edit Meeting button to assign one. See Setting Up Live Streaming for Your Government in the admin docs for encoder configuration.
The Control Room layout
The Control Room is a single card with two layout regions:
[IMAGE: The Control Room card showing the stage area, status badge, action button, and encoder footer]
Stage — a 16:9 video preview area showing the encoder's incoming signal. When the encoder is offline, you see a placeholder; when it's sending a signal, you see the preview; when you're live, you see the broadcast.
Action area — a contextual button at the top-left that adapts to the current state (Enable Stream / Cancel Setup / Go Live / Stop / End Meeting).
Status badge — a top-right indicator showing the current state (Offline / Awaiting Signal / Ready / Streaming / Reconnecting).
Encoder footer — at the bottom, the encoder's name and location for quick reference.
The Control Room state machine
Five states the Control Room moves through during a streaming session:
1. Offline
The default starting state. The encoder hasn't been told to start; nothing is happening.
[IMAGE: The Control Room in Offline state showing the placeholder stage and Enable Stream button]
Stage — placeholder graphic.
Status badge — "Offline" (muted).
Button — Enable Stream.
Click Enable Stream to tell Govinity to expect a signal from the encoder. The state moves to Awaiting Signal.
2. Awaiting Signal
Govinity has enabled the stream and is waiting for the encoder to actually start sending data. Typically you'd now go to the encoder hardware/software and start it broadcasting.
[IMAGE: The Control Room in Awaiting Signal state with a pulsing badge and Cancel Setup button]
Stage — placeholder.
Status badge — "Awaiting Signal" (pulsing amber).
Button — Cancel Setup.
Polling — Govinity checks the encoder status every 5 seconds.
Click Cancel Setup to back out — you'll go back to Offline.
Once the encoder starts sending, the state moves automatically to Preview (no clicks needed).
3. Preview
The encoder is broadcasting and Govinity is receiving the signal — but the stream isn't public yet. This is your moment to verify everything looks right (camera angle, audio levels, color) before going live.
[IMAGE: The Control Room in Preview state with the video showing on the stage and Go Live + Stop buttons]
Stage — live video preview from the encoder.
Status badge — "Ready" (blue).
Buttons — Go Live (success) and Stop (outline).
Toast on transition — you'll see "Encoder Connected" when the signal arrives.
Click Go Live to make the stream public — citizens watching the meeting on the public portal will start seeing the broadcast. The state moves to Live.
Click Stop to back out — the encoder will be told to stop, and you'll return to Offline. Useful if you started the encoder by mistake.
4. Live
The stream is public. Citizens watching on the public portal see what your encoder is sending. The meeting is officially in progress and being broadcast.
[IMAGE: The Control Room in Live state with a green Streaming badge and End Meeting button]
Stage — live video.
Status badge — "Streaming" (green).
Button — End Meeting.
Polling — Govinity checks the encoder status every 10 seconds to detect dropouts.
Live Timer — the top of the meeting page shows a live-updating "Meeting is Live: HH:MM:SS" timer.
If the encoder drops the signal mid-stream, the badge flips to "Reconnecting" (amber) and you'll see a "Encoder Disconnected" toast. Govinity will attempt to reconnect; if the encoder comes back, the badge returns to "Streaming."
5. Occupied
A special state shown when the assigned encoder is currently in use by a different meeting. This happens if two meetings are scheduled to use the same encoder and one is currently streaming.
[IMAGE: The Control Room in Occupied state showing the name of the conflicting meeting]
Stage — placeholder.
Status badge — "Occupied" (or similar conflict indicator).
Message — "This encoder is currently in use by: [Other Meeting Title]."
You can't start a new stream from this meeting until the encoder is free. Either wait for the other meeting to end, edit this meeting to assign a different encoder, or end the conflicting stream first.
End Meeting (the most important button)
Clicking End Meeting from the Live state has two effects:
Stops the stream. The encoder is told to stop broadcasting and the stream is taken down from the public portal.
Sets the meeting to Completed. Govinity calls the meeting's
setCompleteaction behind the scenes.
This means End Meeting is a dual-purpose button — it ends both the stream and the meeting. After clicking, the meeting's status flips to Completed and the meeting page changes its presentation accordingly (Edit Meeting button disappears, Set Complete button is gone from the Actions sidebar, etc.).
A toast confirms: "Your live stream has been stopped and the meeting was marked complete."
This is intentional — most governments end the live stream and end the meeting at the same time. If you need to stop the stream without completing the meeting, the workaround is to use the Stop button while in Preview state (which only happens before going live). Once you're Live, the only off-ramp is End Meeting.
A typical streaming workflow
For a regular Council meeting:
Day before: Confirm the encoder is assigned to the meeting (visible in the Meeting Event Details card on the Overview tab).
15 minutes before meeting: Open the Media tab on the meeting. The Control Room shows Offline state. Click Enable Stream. The state flips to Awaiting Signal.
10 minutes before meeting: Go to the physical encoder hardware (or your streaming software) and start the broadcast. The Control Room state moves automatically to Preview within a few seconds. Verify the video and audio look right.
Right at the meeting start: Click Go Live. The state flips to Live and citizens start seeing the broadcast.
Throughout the meeting: Switch tabs to take roll call, follow the agenda, record minutes. The Control Room continues to stream in the background; the live timer at the top of the page shows how long you've been streaming.
At the close of the meeting: Click End Meeting. The stream stops and the meeting is marked Completed. Citizens see "Meeting Ended" on the public portal.
After the meeting: The encoder has been creating a recording behind the scenes. Switch to the Media tab a few minutes later — the recording will have appeared as an archive. See Recordings: Upload and Processing for what to do next.
When the stream drops mid-meeting
If your encoder loses connection while live, here's what happens:
Toast: "Encoder Disconnected. The video signal was lost."
Status badge: "Reconnecting" (amber).
Polling continues. Govinity keeps watching for the signal to return.
If you can resolve the encoder issue (restart the encoder software, check the network), Govinity will detect the restored signal and the badge will go back to "Streaming." Citizens will see a brief gap in the stream but won't get a "stream ended" notification.
If you can't recover the signal and the meeting must continue without streaming, click End Meeting. The stream officially ends and the meeting is marked complete. Any minutes recording or roll call work in other tabs continues unaffected.
What the public sees
When you Go Live, citizens visiting the meeting's public portal page see the stream embedded in the meeting page. The video plays automatically (where browser policies allow) and has standard player controls (play/pause, volume, fullscreen).
While the stream is active, the meeting's public portal page shows a "Live" indicator. After End Meeting, the live indicator is replaced with the recording (once processing completes — typically a few minutes after the stream ends).
For meetings marked as Private (in the Edit Meeting dialog), the live stream is not visible publicly even while it's broadcasting. Same dynamic applies to the recording.
The escape link: "Not streaming? Upload media instead."
Below the Control Room, a small link reads "Not streaming? Upload media instead." Clicking it switches the page to the recording-upload mode (covered in Recordings: Upload and Processing).
Use this when:
You're not planning to stream this meeting but want to upload a recording afterward.
The live stream failed and you want to manually upload a recording instead.
You're cleaning up old data and want to add a recording for a meeting that's already over.
A reciprocal "Back to stream controls" link returns you to the Control Room.
Common questions
My encoder won't connect to the stream — what do I check? First, verify the encoder is configured correctly (URL, stream key, codec settings). Then verify the network the encoder is on can reach Govinity's streaming endpoints. The polling will detect a working connection within 5 seconds.
Can I stream without a media encoder? No. Govinity's live streaming requires a configured encoder. For impromptu live coverage, you'd need to record on a phone or other device and upload the recording afterward — see Recordings: Upload and Processing.
Can I stream a meeting that's marked Private? The encoder will work, but the public portal won't show the stream to citizens. Private meetings are private regardless of streaming.
Can two meetings share the same encoder simultaneously? No. The Occupied state surfaces when an encoder is in use elsewhere. You'd need to wait for one meeting to end, or assign different encoders to the two meetings.
What happens to the recording if the stream drops? The portion of the stream that successfully captured becomes an archive. If the encoder restarts and reconnects, multiple archive segments may be created. The Media tab will show all the archives after the meeting; you may need to manually consolidate or just use whichever segment(s) are most complete.
Can I go back to Preview after going Live? No — once Live, the only forward state is End Meeting. If you need to fix something (camera angle, audio), do it before clicking Go Live.
Does ending the stream also stop the meeting recording? Yes — the recording is created by the streaming session. When you click End Meeting, the recording finalizes and processing begins. You'll have a playable recording within a few minutes.
What this article doesn't cover
Recording upload and post-stream processing — see Recordings: Upload and Processing.
Transcripts and timestamps — see Transcripts and Timestamps.
Encoder hardware setup — your encoder vendor's documentation, or Setting Up Live Streaming for Your Government in the admin docs.
Public portal display of streams — covered in the public portal documentation.
What to read next
Recordings: Upload and Processing — what happens after the stream ends.
Transcripts and Timestamps — AI features for the captured recording.
Setting Up Live Streaming for Your Government (admin) — encoder configuration prerequisites.
Need help?
If the Control Room won't load, check that the Media tab is enabled (hasRecord flag) and that an encoder is assigned to the meeting. If the encoder won't connect, verify the encoder configuration with whoever set it up — typically the encoder URL and stream key need to match what Govinity issued. For anything else, reach out to Govinity support.
