Pushing video (WHIP / OBS)
Video and round results are separate: results reach the platform from the result source, while the studio pushes its video to elite over WHIP, and elite delivers it to players' desktop and mobile screens over WebRTC. Whatever the result source, you push the video of your own tables yourself.
Two feeds per table
Every table gets two stream names when it is created:
| Feed | Stream name | Played to |
|---|---|---|
| HD | elite_<table ID in lower case>_hd_<6 random characters> | Desktop players by default |
| SD | elite_<table ID in lower case>_sd_<the same random characters> | Mobile players by default |
- Pushing just one feed is fine: players automatically switch to the feed that is live. If you push only HD, mobile players watch HD too; if you push only SD, desktop players watch SD.
- When both feeds are live, players can switch between HD and SD in the table's video menu; if the chosen feed has no picture they still switch to the other one automatically.
- Both feeds can carry the same picture at different resolutions and bitrates, for example 854×480 at about 1 Mbps for SD, so players on slower networks still get smooth video.
- Players receive the quality you push; the platform does not transcode it into other qualities.
- Tables created before October 2026 have stream names with
_pc_(HD) and_m_(SD); they keep working, and Generate new stream names switches them to the new format.
Push URLs and the push key
In Table → Table management → My tables, click the table's Streaming button to see the HD and SD stream names and push URLs and the push key; the Table workbench shows the same two URLs under Tenant settings → Video push. Push URLs look like this:
https://elite-ingest.ewin888.com/whip/<stream name>| Item | Who can see and change it | Rules |
|---|---|---|
| Stream names and push URLs | Accounts with table settings permission (the Administrator and Operations staff roles) | Generate new push names: the old names stop working immediately and players switch to the new ones, so the studio must push to the new URLs right away |
| Push key (Bearer Token) | Only the Administrator role can show, copy, create or rotate (Generate new) it | Requires two-factor verification within the last 30 minutes (at sign-in, or by entering a code when you click show); every reveal and rotation is recorded in System → Audit log |
- There is one push key per merchant (it starts with
epk_). It covers all your own tables and works only for them. If you have no key yet, click Create push key. - Generate new: the old key stops working immediately and every encoder must switch to the new one; streams that are already live are not interrupted, but the next push needs the new key.
- If the streaming window says the platform push service is still being set up, pushing will fail for now.
- Read-only showcase accounts see the stream names and push URLs masked.
Keep the push key safe
Keep the push key only on the streaming PC or encoder. If it leaks, click Generate new in the streaming window and update every encoder.
OBS settings
OBS Studio 30 and later have a built-in WHIP output:
- Settings → Stream: set Service to WHIP, paste the push URL (HD or SD) as the Server and the push key as the Bearer Token.
- Settings → Output: set the keyframe interval to 1 second so players see video sooner when they open the table. The field appears when the output mode is set to Advanced.
- Click Start Streaming.
HD and SD are two separate WHIP streams. One OBS instance is enough when you push one feed; pushing both needs two outputs — for example two streaming PCs, two OBS instances, or a hardware encoder that can send two streams at once (one OBS instance streams one feed at a time).
Other encoders: enter the push URL as the WHIP endpoint and choose Bearer Token authentication with the push key. If an encoder cannot send a Bearer Token, it can use an X-Stream-Key header instead, or append the key to the URL (?key=<push-key>); URLs may end up in encoder or network logs, so use that form only if nothing else works.
Suggested encoder settings
Requirements and suggestions
The platform only requires WHIP and the push key. A 1-second keyframe interval is the Console's recommendation; the platform sets no resolution or bitrate, so everything else in this table is a suggestion to adapt to your network and picture.
| Item | Suggestion | Why |
|---|---|---|
| Keyframe interval | 1 second | A player who opens the table sees video only from the next keyframe; shorter is faster |
| Aspect ratio | 16:9 landscape, for example 1280×720 or 1920×1080 | The desktop game screens are designed for 16:9 |
| Bitrate | HD about 3 Mbps (1280×720 or 1920×1080); SD about 1 Mbps (854×480) | The streaming cost estimate on the website uses about 1.5, 3 and 5 Mbps; the bitrate directly sets each viewer's traffic and the streaming fee |
| Framing | Keep the card positions and the dealer's hands in the top two-thirds of the picture | On the desktop screens the betting panel and roadmaps cover the bottom of the video |
| Upload bandwidth | Above the two feeds' bitrates combined, with headroom | Too little bandwidth makes the video stall |
Texas Hold'em tables also need their seat frames aligned with the picture; see Hold'em seat positions.
Checking that the stream is live
- Encoder: after you start streaming, OBS shows it is connected in the status bar, with a steady bitrate and no ongoing dropped frames.
- Push rejected: the elite push endpoint returns these errors (encoders usually only report a failed connection; see their logs for details):
| HTTP | code | Cause | What to do |
|---|---|---|---|
| 401 | INVALID_PUSH_KEY | No push key, a malformed key, or a key that has been rotated | Paste the current push key as the Bearer Token |
| 404 | STREAM_NOT_FOUND | No such stream name: the names were regenerated, the table was removed, or it is not your table | Use the push URL shown in the Console |
| 404 | NOT_FOUND | Malformed push URL | The URL must be …/whip/<stream name> |
| 403 | TENANT_DISABLED | The account is disabled | — |
| 503 | PUSH_UNAVAILABLE | The platform push service is temporarily unavailable | Try again later |
| 502 | UPSTREAM_ERROR | The video service cannot be reached for now | Try again later |
- Texas Hold'em tables: in My tables → Edit, the background of Seat positions (desktop) is a live snapshot of the table's video (HD first, SD when HD has no picture); click Capture again to confirm there is a picture.
- Player screens: once the table is open, enter it with one of your own test players on a computer and on a phone to confirm the video; when both feeds are live, switch between HD and SD in the video menu to check each. The HD badge on the toolbar means the player is watching HD. The video signal icon at the table (green, yellow, red) follows actual playback; on desktop, hover over it to see the resolution, frames per second and packet loss.
Streaming fee
- The streaming fee is based on the video your players watch: pushing video to elite is not billed, and nothing is billed while nobody is watching.
- One viewer watching for an hour uses about "bitrate in Mbps × 0.45 GB": about 1.35 GB at 3 Mbps.
- At the time of writing (September 2026) the price is USD 0.09 per GB; the current price is shown in the Console under Plan & billing → Plan and in the pricing section of the website. At USD 0.09, one viewer-hour costs about USD 0.12.
- A lower bitrate on the SD feed lowers the traffic of mobile players, who watch SD by default.
- When other merchants enable a table you share with them, the video their players watch is billed to them.
- On the free demo plan, video is limited to 3 viewers at a time and 30 minutes per session; when your prepaid credit runs out outside a grace period, video stops playing.
For how fees are charged and a worked example, see Going live and costs.