To relay a stream from an encoder through an Ubuntu server to YouTube, install NGINX with the third-party nginx-rtmp-module, configure a local RTMP application, then have NGINX forward that input to the RTMPS address and stream key shown in YouTube Live Control Room. Installing the ordinary Ubuntu nginx package alone does not necessarily provide RTMP support: for NGINX Open Source, the documented community-module route is to build NGINX with the module or build a compatible dynamic module. This guide explains the source-build path and keeps the encoder-to-server and server-to-YouTube connections separate.
What you are installing—and what you need
nginx-rtmp-module is a third-party module for NGINX. It adds RTMP publishing and relay capabilities; HLS, DASH, recording and FFmpeg integration are additional capabilities, not prerequisites for a basic relay. The module project documents compiling it into NGINX, while NGINX explains static and dynamic third-party module builds and cautions that third-party module stability is not guaranteed (module README; NGINX configure documentation).
As an Amazon Associate I earn from qualifying purchases.
The path below is for NGINX Open Source on an Ubuntu server you administer. You need an encoder such as OBS or FFmpeg, a YouTube channel able to go live, the YouTube stream’s RTMPS endpoint and key, and a network path that permits the required connections. The module project provides source-build guidance, and its getting-started wiki lists build tools and development libraries; that wiki was last modified on 2020-03-23, so treat it as contextual guidance rather than a current, release-pinned Ubuntu recipe (getting-started guide).
Commands and package availability can vary by Ubuntu release and NGINX version. No tested package/version matrix is established here, so select the NGINX source version and Ubuntu-compatible build dependencies for the server you actually run. Build the module against the NGINX source/build you intend to operate; a module built for a different NGINX version or binary may not load correctly.
#1 Best Overall
- Compact but Powerful Design: ZowieBox is smaller than a phone, featuring a tally light and LCD screen for streaming status. Capture console gameplay in up to 4K with zero-lag HDMI passthrough, while the built-in video encoder converts video for IP streaming. The IP stream can also be decoded back to a 4K HDMI signal.
- Standalone Game Streaming: Just plug and play—ZowieBox enables PC-free live gaming without affecting gameplay. As an RTMP hardware encoder and HDMI streamer, it delivers stable streaming directly from your source, making it ideal for gaming, live events, and professional broadcasting.
- NDI|HX3 Converter Technology: ZowieBox converts HDMI signals to NDI|HX3/HX2/HX, functioning as an NDI video encoder, or NDI Video Decoder for flexible IP workflows. Certified NDI technology enables low-latency gameplay streaming through OBS/vMix. Note: Encoder and decoder modes cannot run simultaneously; full NDI signals are not supported.
- UVC to HDMI Conversion: Supporting up to 4K@30fps and 1080p@60fps decoding, ZowieBox enables flexible conversion for webcam and video workflows. As a video decoder and HDMI to IP converter, it expands connectivity options for professional video devices. Note: USB capture card functionality is not currently supported.
- All-around Configuration Options: Control ZowieBox through its web UI on a PC, phone, or tablet. Manage connected PTZ cameras, tally light, video/audio, OSD, work mode, streams, network, and system settings. Support for VISCA over IP encoder workflows enables flexible PTZ control, while the dashboard provides video preview and system status.
Choose the right NGINX route
| Route | What it means | Best fit |
|---|---|---|
| NGINX Open Source with community module | Build NGINX with nginx-rtmp-module statically, or build a compatible dynamic module where supported. |
Operators choosing the Open Source route and able to manage a source build. |
| NGINX Plus RTMP module | NGINX documents nginx-plus-module-rtmp as a package from its official NGINX Plus repository. |
Operators already using NGINX Plus and following its matching package instructions (NGINX Plus RTMP module instructions). |
These are different product and maintenance contexts, not interchangeable installation commands. The Plus package documentation does not establish that the package is available for generic Ubuntu NGINX Open Source installations.
Build NGINX Open Source with the RTMP module
The community module README’s documented approach is to configure NGINX from its source directory with --add-module=/path/to/nginx-rtmp-module, then run make and make install (module README). The following is the build shape, not a copy-and-paste version-pinned recipe: use source archives and dependency package names appropriate to your chosen Ubuntu release, and do not overwrite an existing production NGINX installation until you have planned the change.
Rank #2
- 【Innovative Product with Leading Technology】- Equipped with an advanced H.265 /H.264 dual encoding chip, supports 4K UHD (3840x2160) video input and output, with a maximum frame rate of 30fps at 4K resolution and up to 120fps at 2K and lower resolutions, delivering a smooth and detailed visual experience. It also supports HDCP 1.4 decryption, easily decoding various HDMI ultra HD video sources, delivering a cinematic visual experience for both professional live streaming and 4K ultra HD content transmission.
- 【Multi-protocol and Multi-platform Compatibility】- Fully compatible with streaming protocols such as HTTP, RTSP, RTMP(S), SRT, HLS(M3U8), MP4, Multicast(UDP, RTP, PTL), FLV, WebRTC, TRTC, ICECAST, it can simultaneously output 4 video streams with different protocols and push them to live streaming platforms such as YouTube, Facebook, Twitch, and Vimeo with one click. Simultaneous live streaming across multiple platforms can be achieved without additional equipment.
- 【Highly Customizable Settings to Meet Individual Needs】- It supports adding static text, scrolling captions, brand logos, and timestamps. Users can freely adjust core parameters such as video resolution, frame rate, and bitrate, and also perform personalized editing functions such as video cropping, rotation, flipping, and mirroring. It supports dual input of HDMI embedded audio and line-in audio, with adjustable sound quality, making your live stream content more distinctive and allowing you to create a unique brand live stream style.
- 【Stable and Efficient Transmission, Easy Operation】- Employing HDMI to Ethernet core connection technology, it ensures stable and reliable network transmission with low latency and no lag, adapting to various network environments. Equipped with an intuitive user interface and detailed instruction manual, no professional technical background is required; setup can be completed quickly after connecting the device. It is also compatible with multiple terminals such as computers and mobile phones for management, and the video stream status can be viewed in real time via a URL.
- 【Lifetime Free Warranty and Technical Supports】- All URayCoder video codecs come with a lifetime free warranty and technical supports, supporting secondary development and feature customization to meet enterprise-level personalized needs. Meanwhile, we providing many kinds of customization services such as shell pattern printing, logo addition, hardware and function development, ensuring reliable quality and worry-free after-sales service.
- Prepare the host. Choose an Ubuntu release and note the NGINX version/build that will run. Install build tools and the development libraries required by that NGINX build and module. The dated getting-started guide lists build-essential, PCRE development files, SSL development files, Git and zlib development files; verify their current package names for your Ubuntu release.
- Obtain matching source trees. Download the NGINX source version you intend to build and obtain the
nginx-rtmp-modulesource. The project README uses the module source path as the value of--add-module. The module repository’smasterbranch is not a version pin, so for a managed installation choose and record a specific source revision compatible with your NGINX build. - Configure the build. From the NGINX source directory, configure the normal options required for your deployment and add
--add-module=/absolute/path/to/nginx-rtmp-module. NGINX also documents--add-dynamic-module=<PATH>for dynamic builds when the module supports that mode; a dynamic build must be compatible with the NGINX binary and loaded usingload_modulein the NGINX configuration (NGINX configure documentation). - Compile and install. Run
make, thenmake installin the configured NGINX source tree, as described by the module README. Account for your existing service, binary path and configuration before installation; do not assume a source-installed NGINX uses the same paths or service integration as Ubuntu’s packaged NGINX. - Confirm the running binary supports RTMP. Use the binary and configuration you plan to run. If NGINX later reports an unknown
rtmpdirective, the running binary does not have the module available, or a dynamic module has not been loaded. Resolve the build or loading mismatch before proceeding.
Configure a local RTMP input and YouTube relay
The local encoder publishes to your Ubuntu host at a URL shaped like rtmp://HOST/APPLICATION/NAME. The application path component must match an application {} block in the NGINX RTMP configuration. The module README documents the general form as rtmp://rtmp.example.com/app[/name] (module README).
Put the RTMP configuration inside the main NGINX http-independent configuration context, not inside an http {} block. For a minimal relay, an example is:
Rank #3
- 【Hardware H.265/H.264 Encoding at 1080P60】Dedicated hardware encoder delivers broadcast-quality 1080P60 streams with H.265/H.264 compression. Reduces bandwidth usage by up to 50% compared to legacy H.264-only solutions, while maintaining crisp, crystal-clear video output.
- 【Broad Protocol Support for IP Distribution】 Supports SRT, RTMP(S), RTSP, UDP, HTTP, HLS, WebRTC, TRTC, Icecast and SHOUTcast — integrate seamlessly with CDNs, surveillance NVRs, IPTV systems and browser-based monitoring dashboards. One device replaces multiple single-purpose streaming boxes.
- 【Browser-Based Setup in Minutes】 Set up in minutes through any browser — no software, drivers or OS compatibility issues. DHCP is enabled by default to prevent IP address conflicts on your network. Note: basic networking knowledge (IP address, RTSP/RTMP configuration) is recommended for advanced streaming setups.
- 【Compact Design with Flexible Deployment】Palm-sized form factor (approx. 90×54×29mm) fits easily behind monitors, on shelves, or in equipment racks. Low power consumption ensures reliable 24/7 operation for live events, remote monitoring, and digital signage.
- 【Professional Audio & OSD Overlay + 1-Year Warranty】 Supports HDMI embedded audio plus external 3.5mm input. Built-in OSD generator adds scrolling text, logos, or timestamps directly to the video stream — ideal for branding, event info, or security labeling. Backed by a 1-year warranty and 24/7 online technical support.
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
push rtmps://YOUTUBE_RTMPS_HOST/YOUTUBE_APP/YOUTUBE_STREAM_KEY;
}
}
}
This is a configuration pattern, not a universal YouTube destination: replace the push target with the complete RTMPS URL and key for the specific stream, copied from YouTube. Do not publish a real stream key in a configuration repository, screenshot or public support post. Restrict access to the configuration file and server, and rotate the key in YouTube if it is exposed. The example uses the module’s RTMP application and relay concepts; verify directive syntax against the module version you build.
In this example, live is the local application name, so the encoder’s URL will use /live/. The final name is chosen by the encoder and identifies the published stream; the YouTube destination belongs in the NGINX push target, not in the encoder’s local URL.
Rank #4
- 4K & HD STREAMING IN H.264 AND H.265 – Self-contained processor supporting H.264 and H.265 encoding in HD or Ultra HD (up to 2160p60) via SRT or RTMP, streaming directly to YouTube, Facebook, X, Twitch, Zoom, Microsoft Teams, OBS, Wowza, and many more — no encoding PC needed.
- 12G-SDI INPUT WITH STANDARDS CONVERSION – Supports input resolutions up to DCI 4K60 with an SDI input and SDI loop output, plus Teranex-powered automatic standards conversion so any HD or Ultra HD source streams cleanly at any target resolution.
- DUAL MONITOR OUTPUTS – Features both SDI and HDMI monitor outputs with a user-configurable standards converter on both the 12G-SDI Out and 4K HDMI Out, so you can feed a confidence monitor or downstream device at any required format independent of your streaming standard.
- ETHERNET + 5G/4G MOBILE WITH AUTO-FAILOVER – Connect via Gigabit Ethernet (10/100/1000BASE-T) or tether a smartphone via USB-C for mobile data, with automatic switchover between connections — ensuring your stream stays on air even if the primary internet connection drops.
- CLOSED CAPTIONS, TIMECODE & REST API – Supports embedding CEA-608 and CEA-708 closed captions in live RTMP streams, source timecode over RTMP and SRT, and offers a REST API over Ethernet for external HTTP control — ideal for broadcast automation and accessibility-compliant workflows.
Find the current YouTube RTMPS address and stream key
- Open YouTube Studio and enter Live Control Room for the stream you are setting up.
- In that stream’s Stream settings, reveal the RTMPS URL using the lock control and copy the displayed address.
- Copy the stream key for that stream from its settings, then use the complete RTMPS destination and key in the NGINX relay configuration.
- Keep the key private. YouTube’s RTMPS help explains that RTMPS is RTMP over a TLS/SSL connection and describes using the stream settings to obtain the secure destination (YouTube Help: Encrypt your stream using RTMPS).
YouTube’s address and key are stream-specific/current settings; do not rely on a hard-coded universal endpoint or key copied from an example. If YouTube reports an SSL error, first confirm the destination scheme is rtmps. YouTube says trying port 443 may help in some cases; use the address and port applicable to the stream rather than changing the local encoder URL (YouTube Help).
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Open the right network path
The encoder connects to the Ubuntu relay; NGINX separately connects outbound to YouTube. For the example, the local RTMP server listens on port 1935. Permit that inbound connection only from the encoder or trusted network where possible. The relay host must also be able to make the outbound RTMPS connection to YouTube. If the encoder is on the public internet, consider restricting inbound access by source address or placing the encoder and relay on a private network rather than exposing an unrestricted publishing endpoint.
Best Value
- ⭐【Innovative Product with Leading Technology】- Equipped with an advanced H.265 /H.264 dual encoding chip, supports 4K UHD (3840x2160) video input and output, with a maximum frame rate of 30fps at 4K resolution and up to 120fps at 2K and lower resolutions, delivering a smooth and detailed visual experience. It also supports HDCP 1.4 decryption, easily decoding various HDMI ultra HD video sources, delivering a cinematic visual experience for both professional live streaming and 4K ultra HD content transmission.
- ⭐【Multi-protocol and Multi-platform Compatibility】- Fully compatible with streaming protocols such as HTTP, RTSP, RTMP(S), SRT, HLS(M3U8), MP4, Multicast(UDP, RTP, PTL), ONVIF, FLV, WebRTC, TRTC, ICECAST, it can simultaneously output 4 video streams with different protocols and push them to live streaming platforms such as YouTube, Facebook, Twitch, and Vimeo with one click. Simultaneous live streaming across multiple platforms can be achieved without additional equipment.
- ⭐【Highly Customizable Settings to Meet Individual Needs】- It supports adding static text, scrolling captions, brand logos, and timestamps. Users can freely adjust core parameters such as video resolution, frame rate, and bitrate, and also perform personalized editing functions such as video cropping, rotation, flipping, and mirroring. It supports dual input of HDMI embedded audio and line-in audio, with adjustable sound quality, making your live stream content more distinctive and allowing you to create a unique brand live stream style.
- ⭐【Stable and Efficient Transmission, Easy Operation】- Employing HDMI to Ethernet core connection technology, it ensures stable and reliable network transmission with low latency and no lag, adapting to various network environments. Equipped with an intuitive user interface and detailed instruction manual, no professional technical background is required; setup can be completed quickly after connecting the device. It is also compatible with multiple terminals such as computers and mobile phones for management, and the video stream status can be viewed in real time via a URL.
- ⭐【Lifetime Free Warranty and Technical Supports】- All URayCoder video codecs come with a lifetime free warranty and technical supports, supporting secondary development and feature customization to meet enterprise-level personalized needs. Meanwhile, we providing many kinds of customization services such as shell pattern printing, logo addition, hardware and function development, ensuring reliable quality and worry-free after-sales service.
- Encoder-to-relay: encoder’s server URL is
rtmp://YOUR_SERVER/live; its stream name/key is the name portion, for examplechannel1. - Relay-to-YouTube: NGINX’s configured
pushtarget is the RTMPS endpoint and stream key copied from Live Control Room.
Test the configuration and verify the live path
- Validate before reload. Run
nginx -tusing the NGINX binary and configuration path that will actually serve the relay. NGINX documentation demonstrates this test before applying configuration changes (NGINX module administration documentation). - Apply the change carefully. Reload or restart the correct NGINX service only after configuration validation succeeds. A source installation may not use the Ubuntu package’s service or file paths.
- Configure the encoder’s local destination. In OBS, choose a custom server and enter the local RTMP address plus a stream name. The module’s dated getting-started guide also describes OBS and FFmpeg as example publishing clients; use client settings appropriate to your encoder and server (getting-started guide).
- Start with a private or unlisted YouTube stream. Start the encoder and inspect YouTube Live Control Room’s preview/status. A successful encoder connection to NGINX alone does not prove the second, outbound relay leg reached YouTube.
- Check logs on both sides. Inspect the NGINX error log and service output for connection, configuration or TLS errors; compare those timestamps with YouTube’s preview/status. Keep the stream key out of shared logs and screenshots.
No end-to-end installation or performance test is implied by these steps. Confirm the result in your own server logs and YouTube preview before relying on the relay for a public broadcast.
Troubleshoot common failures
| Symptom | Likely cause | What to check |
|---|---|---|
NGINX says unknown directive "rtmp" |
The running NGINX binary lacks the module, or a dynamic module is not loaded. | Confirm you are invoking the binary you built; rebuild with the module or load a compatible dynamic module before using RTMP directives. |
| Encoder cannot connect to the server | Wrong host/application path, NGINX not listening, or inbound network access blocked. | Match the URL’s application component to the configured application block; check listener and firewall/network rules for the local RTMP port. |
| Encoder connects, but YouTube stays offline | The local ingest leg works, but the relay target, key or outbound connection may be wrong. | Check the push destination and key against the specific stream’s Live Control Room settings, then inspect NGINX logs and YouTube preview. |
| YouTube reports an SSL/TLS error | The secure protocol or destination may be incorrect, or the connection path may reject it. | Confirm the target uses rtmps. YouTube notes that port 443 may help in some SSL-error cases; use the current stream settings. |
| Configuration test fails after an edit | Syntax error, misplaced RTMP block, or directive/module mismatch. | Use nginx -t against the active configuration, fix the reported file and line, and test again before applying changes. |
| Build succeeds but deployment behaves differently from package NGINX | The source-installed binary, configuration path, or service integration differs from the packaged setup. | Check the exact binary, its configuration path and the service command used to start it; avoid mixing a module with an unrelated NGINX build. |
Copyright, keys and YouTube channel rules
A working RTMP relay does not grant rights to the video or audio being broadcast and does not make a stream eligible for monetization. Use material you own or are licensed to stream, and check YouTube’s current copyright and live-stream policies before broadcasting. Keep the stream key private: anyone with a valid key may be able to publish to that stream until you replace it.
Or let it run in the cloud
If your goal is simply to keep uploaded videos looping on a YouTube channel, rather than to operate a relay server, StreamNeo is a cloud option: upload a recording or build a playlist, add your YouTube stream key once, and go live. Nothing has to stay on at home; it streams the uploaded video as made, up to 4K 60fps at one price per slot, with automatic recovery if YouTube drops the stream. The first day is free with no card, one free day per account. Monthly billing is $9.99 per month. StreamNeo plays uploaded videos to YouTube; it is not a camera-based live encoder. Start the free day with StreamNeo.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




