How to stream from Wowza to your own Roku channel

Many of our clients ask how to put their live stream on Roku like a regular TV channel. The good news is you can do it with your Hosting Marketers streaming service using a small Roku app that plays your HLS (.m3u8) link.

Below is the exact process, start to finish.


1) Decide what you’ll stream

  • Live streaming from OBS, vMix, Wirecast, etc.
  • On-demand MP4 files hosted on your server.

If you’re unsure about bitrate or viewer caps, we can customize your package.
>> Wowza Streaming Engine plans


2) Find your HLS link in the control panel

Roku plays HLS. Grab your playlist URL from the control panel:

  1. Log in to your Wowza RTMP control panel.
  2. In the left menu, open Widgets & Links.
  3. Copy the HLS / playlist.m3u8 URL.

Example:

https://5caf24a595d94.streamlock.net:1937/ajewxuqktbm/ajewxuqktbm/playlist.m3u8

Tip: Ensure the stream is public (no token/IP lock) while testing.


3) Prepare your Roku developer environment

You need a Roku device and a free developer account.

When you enable Developer Mode, write down the device IP (e.g., http://192.168.1.25) and the password shown on your TV.


4) Download the Roku example app (template)

Use a ready-made SceneGraph example and swap the demo URL for your HLS link.

Unzip it on your computer. You’ll see:

  • manifest – app metadata
  • source/ – BrightScript files (e.g., MainScene.brs, main.brs)
  • components/ – UI elements
  • images/ – icons and splash screens

5) Insert your Hosting Marketers HLS link

Open /source/MainScene.brs and replace the demo URL:

videoContent.streamFormat = "hls"
videoContent.url = "https://5caf24a595d94.streamlock.net:1937/ajewxuqktbm/ajewxuqktbm/playlist.m3u8"
videoContent.title = "Live Stream"

If the template also references a URL in /source/main.brs, replace it there too.


6) Update channel info and images

Edit the manifest file:

title=Hosting Marketers Live
description=Live streaming powered by Hosting Marketers (Wowza)
provider_name=Hosting Marketers
major_version=1
minor_version=0
build_version=00001

Replace images in /images with your branding using Roku’s sizes:

File nameResolution
icon_focus_hd.png290×218
icon_focus_sd.png246×140
splash_fhd.jpg1920×1080
splash_hd.jpg1280×720
splash_sd.jpg720×480

7) Sideload the app to your Roku (test build)

Create a ZIP of the app contents (not the parent folder):

Windows/macOS example:

zip -r my-roku-channel.zip manifest source components images
  1. Open the Roku developer web address (e.g., http://192.168.1.25) in your browser.
  2. Log in as rokudev using your password.
  3. Click Upload, select your ZIP, then Install.
  4. Your channel launches—verify the stream plays smoothly.

8) Package for publishing

  1. From the Roku developer page (on the same device), create a signing key.
  2. Use Packager to generate a .pkg file.
  3. In the Roku Developer Dashboard: https://my.roku.com/signin >> Developer Dashboard >> Public Apps >> Create Channel.
  4. Complete your Store Listing, upload the .pkg, run Static Analysis, and Schedule Publish.

9) Recommended encoder settings for Roku

  • Video codec: H.264 (Baseline/Main)
  • Audio codec: AAC (44.1 or 48 kHz)
  • Bitrate: 800–1500 kbps for broad compatibility
  • Frame rate: 25–30 fps
  • Keyframe interval: 2 seconds

If InstantTV/Roku warns about bitrate, lower to ~1000–1200 kbps and retry.


10) Optional: test the same link on other players

Your HLS URL also works in InstantTV, VLC, iOS/Safari, and most Smart TVs.
Paste it into “Add Stream” or “Custom URL.”


FAQ

My live video won’t play on Roku. What should I check?
Most issues are bitrate related. Try 800–1500 kbps, H.264 + AAC, keyframe 2s. Always use the HLS (.m3u8) link from Widgets & Links, not RTMP.

Where do I find the Roku-compatible link again?
Control panel >> Widgets & Links >> copy the HLS / playlist.m3u8 URL.

Do I need adaptive bitrate (ABR)?
Not required. Single-rendition HLS works. ABR improves experience on slow networks and can be configured on request.

Can I submit a private channel instead of public?
Yes. You can sideload for testing and also publish unlisted/private channels for controlled access.


Try it free

Want to test first? Grab a free demo account and try HLS + Roku with no risk.
https://hosting-marketers.com/customers/index.php/store/rtmp-server/demo-account

End-to-end: from OBS to Roku (InstantTVChannel + Roku Developer)

Prereqs

  • Live encoder (OBS) pushing RTMP to your Hosting Marketers / Wowza endpoint.
  • Your HLS playback URL (from Widgets & Links in the control panel). Example:
    https://5caf24a595d94.streamlock.net:1937/ajewxuqktm/ajewxuqktm/playlist.m3u8
  • InstantTVChannel.com access (client login).
  • Roku Developer account access: https://developer.roku.com/apps

Step 1 — Verify your HLS link

  1. Start the stream in OBS (green “LIVE” indicator).
  2. Test the HLS in a player (VLC >> Media >> Open Network Stream >> paste URL).
    If it plays in VLC, it will play on Roku.

Screenshot placeholder: “VLC playing the HLS link (proof the feed is live).”
Alt text: “VLC window showing live HLS playback from Hosting Marketers stream.”

Step 2 — Open the channel in InstantTVChannel

  1. Log in to InstantTVChannel.com.
  2. Go to Channels and click the channel name (e.g., The Hip Hop Garage).

Screenshot placeholder: “InstantTVChannel >>> Channels page with the target channel selected.”
Alt text: “InstantTVChannel channel list highlighting the selected Roku channel.”

Step 3 — Add the live item under Content

  1. Left menu >> Content.
  2. In the tree, select the Live folder (or create a new one: Cmds >> New Category/Folder >> name it “Live”).
  3. Right-click that Live folder >> Cmds >> New Content Item.
  4. Click the new item and fill the fields:
    • Title: Live Stream
    • Content / Stream URL: paste your HLS .m3u8
      Example: https://5caf24a595d94.streamlock.net:1937/ajewxuqktm/ajewxuqktm/playlist.m3u8
    • Content Type / Format: HLS / HTTP Live Stream
    • Bitrate (kbps): 1000–1500 (start with 1200 for Roku stability)
    • Audio: AAC
    • Is Live: Yes
  5. (Optional) Add a poster: 1280×720 or 1920×1080, HTTPS URL.

Note: If you see a red “Cannot load poster image” warning, it’s only the image URL — it doesn’t affect video playback. Replace or remove the poster URL.

Screenshot placeholder: “Live content item open with Stream URL set to the HLS and a playing preview.”
Alt text: “InstantTVChannel content editor showing HLS URL and live video preview.”

Step 4 — Build and download the Roku package (.pkg)

  1. Left menu >> Channels.
  2. Click the Pkg icon (yellow cube) for your channel.
  3. Click Download Pkg to download the .pkg file.

Screenshot placeholder: “Channels page with the yellow Pkg icon and Download Pkg button.”
Alt text: “InstantTVChannel channels page showing the package download button.”

Step 5 — Upload the package in Roku Developer Dashboard

  1. Go to: https://developer.roku.com/apps and click your channel name.
    If you land on Static Analysis, click the channel name in the breadcrumb (e.g., Public apps / The Hip Hop Garage / Static analysis >> click The Hip Hop Garage).
  2. Open the Channel Package section and Upload package (.pkg) you downloaded.
  3. Click Save, then Run Static Analysis.
    Warnings are normal (auth/billing libraries, memory events, ads libs). Errors must be fixed.

Screenshot placeholder: “Roku Static Analysis page showing warnings only.”
Alt text: “Roku Developer static analysis report with non-blocking warnings.”

Step 6 — Schedule publishing

  1. In the channel sidebar, open Schedule Publish.
    Direct link pattern (replace APPID):
    https://developer.roku.com/apps/public/APPID/schedulePublish
  2. Enter short Release notes (example):
    “Updated live stream source and optimized bitrate for Roku playback; verified HLS via Hosting Marketers.”
  3. Confirm to Schedule (or Publish Now, if available).

Screenshot placeholder: “App scheduled for publishing confirmation screen.”
Alt text: “Roku Developer confirmation message stating app scheduled for publishing.”

While Roku reviews

  • Keep the HLS reachable (leave OBS running a loop if needed).
  • Don’t edit anything in the channel until the status changes (edits can cancel the schedule).
  • Typical approval: same day to 1 business day.

Recommended encoder settings for Roku

  • Video: H.264 Baseline/Main
  • Audio: AAC 44.1/48 kHz
  • Bitrate: 1000–1500 kbps
  • FPS: 25–30
  • Keyframe interval: 2 seconds

Common pitfalls

  • Zipping the wrong level (for Roku SDK builds): manifest must be at the ZIP root.
  • Using RTMP URL instead of HLS. Roku requires .m3u8.
  • Too-high bitrate (over 2–3 Mbps) causing stutter or playback errors.

Helpful links

By Admin