Skip to content
streamneo.
Setup Guides13 min read

How to Install OBS on an Oracle Cloud VPS for a YouTube 24/7 Stream

A deployment checklist for OBS on an OCI Ubuntu VM, from stream setup and installation checks to capacity testing and recovery.

sn.
StreamNeoPublished 5 October 2026
Worth sharing?

Running OBS on an Oracle Cloud Infrastructure (OCI) virtual machine can move your broadcast off your home computer, but it does not make the stream self-maintaining. You need to provision a suitable VM, verify OBS installation and its headless display setup for your Ubuntu release, configure YouTube Live, and test the complete path before relying on it.

Treat this as a deployment checklist rather than a copy-and-paste recipe. Commands and capacity assumptions need validation on the image and shape you actually choose; a Free Tier VM is not guaranteed to encode a particular resolution or stay live without interruption.

Plan the OBS-on-OCI setup

First decide what OBS needs to produce. A scene with a static image and a looping audio track has different demands from several animated sources, browser overlays, transitions and a high-frame-rate video. The codec, resolution, frame rate and scene complexity all affect encoding load. A cloud VM being powered on says nothing by itself about whether OBS is rendering frames or YouTube is receiving them.

Write down the intended output profile, audio sources, source files and restart expectations. If you are relaying prerecorded material, confirm that your source can loop cleanly and that audio does not end before the video. For a simpler scene, a static-image lecture setup in OBS is a useful way to think through what the scene actually needs before selecting compute.

You also need a YouTube channel that is eligible to go live and access to its Live Control Room. YouTube may require activation or account verification before encoder streaming is available, so check the current YouTube live-streaming requirements rather than assuming a new channel is immediately ready. Keep the YouTube stream key private: it is a credential that lets an encoder send to the configured destination.

There are three separate operating responsibilities: the OCI account and VM, the OBS application and session, and YouTube ingest and channel state. Decide who will monitor each one, how you will know if the broadcast stops, and what you will do if the VM needs maintenance. If the actual goal is simply to loop an existing video around the clock, rather than learn Linux and operate OBS, compare that need with a hosted prerecorded-streaming service. Hosted operation changes the work you do, but does not remove the need to check YouTube’s stream health and channel requirements.

Choose and provision an OCI VM

OCI offers compute shapes with differing CPU, memory and network characteristics. Flexible shapes allow a choice of resources within the limits of the selected shape; network bandwidth can scale with OCPUs. Consult OCI’s compute shapes documentation and the current Free Tier details before creating anything. Eligible shapes, capacity and availability can differ by region and may change. Do not choose a shape simply because it is labelled free or eligible.

A practical selection process is to start with a modest scene description and an intended output profile, then provision a shape that can be tested against both. OBS encoding may use software encoding on the CPU, or a hardware encoder if the VM actually exposes suitable hardware and the chosen OBS build supports it. Do not assume a GPU or hardware acceleration is present because an OCI VM exists. If your workload needs a particular accelerator, check that the shape offers it and that it is available in your region.

Create an Ubuntu instance only after checking that the exact Ubuntu image and release fit your intended OBS installation path. Choose a region for which the required shape is available and consider network route quality to YouTube as something to measure, not infer from geographic distance. Allocate enough block storage for the operating system, OBS and any local media you plan to play. Large prerecorded files can make storage a separate cost and capacity concern; keep a copy elsewhere if the source is difficult to replace.

For access, configure SSH using a key pair and restrict administrative access to addresses and users you control. The encoder connection to YouTube is outbound. Do not open arbitrary inbound ports merely to make an outbound stream work. Review OCI’s security rules guidance and the host firewall behaviour of the Ubuntu image before changing network rules. Administration access and streaming traffic are different concerns.

Once the instance is created, record its shape, image release, region, storage allocation and network configuration. Those details matter when you troubleshoot later or reproduce a working setup. Avoid leaving passwords, stream keys or private source files in shell history or public notes.

Install OBS on Ubuntu

OBS installation on Linux depends on the distribution and release. The OBS Linux page is the right starting point, but do not blindly apply a command written for a different Ubuntu version. Check the current OBS Studio Linux installation information against the exact release shown on your VM, including whether the instructions use Ubuntu’s package sources, a repository or another packaging method. Then confirm the installed build launches and includes the sources and encoders you need.

This is especially important on a headless VPS. A remote server may have no desktop session or physical display, while OBS is a graphical application that needs a display context. Installing the package alone does not prove that OBS can start unattended after a reboot. Before committing to an operating method, validate how that specific Ubuntu image will provide and maintain the display/session OBS requires, and whether the selected OBS package supports that arrangement. Do not treat a desktop session, virtual display or process manager as interchangeable fixes without testing their interaction.

Follow the chosen release’s supported installation procedure, then launch OBS under the same user and session model you intend to use continuously. Confirm that it can open the intended media, render the scene and select the intended encoder. If installation fails, capture the Ubuntu release, package source and error rather than mixing instructions from several versions. An upgrade can change dependencies or session behaviour, so repeat the test after a major OS or OBS update.

Set up the scene only after the application starts reliably. Use a local test file first and check that it loops or transitions as intended. The guide to streaming recorded services continuously covers the content side of a continuous broadcast; on the VM, also confirm file paths remain valid for the user that starts OBS. A media file available in your SSH login directory may not be available to a service or another account.

Configure OBS for YouTube Live

In YouTube Live Control Room, create or select the intended live stream and use its encoder settings to obtain the server destination and stream key. Enter the destination and key in OBS’s stream settings, selecting the YouTube service or a custom ingest destination as appropriate to the current interface. The key must not appear in screenshots, logs, public repositories or messages. If it is exposed, replace it through YouTube’s controls and update OBS. For more on the credential risk, see how to protect a YouTube stream key.

Choose an output profile that your instance can sustain, not just one that matches the highest setting in the OBS menu. YouTube’s current live encoder settings list recommended ingest values by codec, resolution and frame rate. For SDR H.264, YouTube recommends CBR, a keyframe interval of two seconds (no more than four), and frame rates up to 60 fps. It recommends RTMPS for encrypted transport. Follow the row for your chosen codec and format rather than transferring a bitrate recommendation from a different profile.

For example, the YouTube guidance lists H.264 at 1080p30 with a recommended 14 Mbps and a minimum of 5 Mbps; 1080p60 is listed at 17 Mbps recommended and 6 Mbps minimum. Those are YouTube ingest recommendations, not evidence that your OCI shape can encode at that profile or that your network path will sustain it. If you are unsure, choose a lower profile that your scene and VM can handle in testing. You can also compare the settings considerations in this 4K OBS guide, while keeping in mind that its GPU context differs from a general-purpose VPS.

Set audio deliberately as well. YouTube’s encoder guidance supports AAC or MP3; choose a format and sample rate available in the installed OBS build, then listen to the private test from a separate device. Check for silence, clipping, unexpected desktop audio or a track that stops when a media file ends. A preview that looks right on the OBS canvas can still have an incorrect audio source or destination.

Check CPU, memory and network headroom

Capacity is a measured property of the whole setup. CPU use depends on the encoder, profile, scene and source decoding; memory use depends on OBS, the desktop/session arrangement and media. A static image with audio may behave very differently from video with animated overlays. Start with the simplest version of your intended scene, then add the real sources and observe the workload under representative conditions.

Watch CPU and memory while OBS is rendering and streaming, not just while the VM is idle. Look for sustained CPU saturation, dropped or skipped frames in OBS, memory pressure, and signs that the session becomes unresponsive. If the result is unstable, reduce scene complexity, frame rate or resolution, or use a shape with resources better matched to the workload. Do not infer reliable overnight performance from a short idle test, and do not assume that increasing CPU alone fixes a weak network route.

Network capacity needs separate testing. YouTube says total outgoing stream bitrate must fit within available upload bandwidth and recommends 20% extra capacity. By that guidance, a 10 Mbps stream implies planning for at least 12 Mbps of sustained available upload; this is a planning calculation, not a guarantee for any OCI region or route. Measure actual outgoing behaviour during a representative stream and leave room for other traffic or variation. The bitrate guidance for a 24/7 rain stream can help frame the content choice, but the ingest profile must still match your own format and test results.

Decision What to check What the result means
VM shape CPU, memory, network characteristics and available acceleration Whether the instance is a plausible test candidate, not proof of capacity
OBS output Codec, resolution, frame rate and scene complexity The encoding workload you need to sustain
Upload path Sustained outgoing bandwidth and stream health Whether the route can carry the chosen bitrate with headroom
Media and audio Loop, duration, file access and sound continuity Whether the content remains correct after the first playback

If the workload does not fit, change one variable at a time and repeat the test. A lower output profile may be the sensible trade-off for a simple always-on channel; a complex scene or sharper picture may justify a larger shape and the associated cost. OCI compute prices and terms vary; check the current OCI listing for your selected region and shape before budgeting rather than relying on an undated estimate.

Keep the stream supervised and recoverable

A 24/7 process needs a plan for both expected maintenance and unexpected failure. Decide how OBS will start after an instance reboot, what session or display it will use, and how a supervisor will detect that the application has exited or become unresponsive. Validate the chosen Linux supervision approach with the graphical session before relying on automatic restarts. A process manager that can relaunch a binary may not restore a working OBS display or a healthy connection to YouTube.

Recovery should be observable. Keep a way to check that OBS is still encoding and sending, and check YouTube Live Control Room to confirm the ingest state. A running VM, an active OBS window or a process listed by Linux is not enough. If YouTube shows a disconnected stream, inspect OBS’s connection and dropped-frame indicators, the VM’s resource state, and the stream’s current destination before restarting blindly.

Document a recovery sequence that another person can follow: confirm the VM is reachable, check whether the OBS session is alive, inspect the YouTube control room, then restart the relevant component if appropriate. Keep a known-good copy of the scene configuration and source files, but store secrets separately. If a reboot is required, verify the actual broadcast comes back rather than assuming startup automation worked. There is no setup here that guarantees uninterrupted operation; maintenance, process faults, route changes and YouTube-side issues remain possible.

If operating an Ubuntu desktop session, OBS updates and VM maintenance are your responsibility. Schedule changes when someone can observe them, and repeat the end-to-end test afterwards. Keep the operating system supported and apply security updates, but do not update blindly during a critical broadcast without a rollback or recovery plan.

Test stream health and restart behaviour

Before using a stream as a public channel, run an unlisted or private test with the same scene, media, audio, output profile and VM session you intend to keep. YouTube recommends testing before an event and checking the Live Control Room preview. Its streaming tips also advise allowing at least 15 minutes before a scheduled event to start an encoder. For an always-on channel, the equivalent is to test well before you depend on the stream, not to start it for the first time at the point you need it.

Watch the preview from YouTube and the public or unlisted watch page from another device. Check picture continuity, audio, correct orientation, overlays, loop transitions and whether the video ends unexpectedly. Compare OBS’s dropped-frame and encoding indicators with YouTube’s health messages. Keep the test running long enough to include a complete media cycle and the likely problem points in your scene. YouTube recommends ongoing audio and video monitoring; retain a practical way to perform those checks after launch.

Test recovery in a controlled window. Restart OBS using the method you intend to use, and confirm it reopens the right scene, authenticates with the configured stream key and reconnects. Separately test what happens after a planned VM reboot, if your operating method supports it. Observe whether YouTube resumes the same broadcast or requires a new stream session. Do not simulate failure during an important public transmission just to see what happens.

For each test, record the date, Ubuntu release, OCI shape, OBS version, output profile and observed issues. This gives you a baseline for later changes. If you alter the VM shape, encoder, OBS version, media source or network rules, repeat the relevant test. A successful preview on one configuration does not validate a different one.

If maintaining a Linux desktop and OBS process is more work than the channel needs, consider whether a hosted option fits a prerecorded loop. Conversely, if your stream depends on a live OBS scene, custom sources or frequent manual changes, self-hosting may give you the control you need. YouTube’s encoder directory lists services and software categories; its inclusion is a directory entry, not a performance guarantee or recommendation for your particular workload.

Before committing, compare the operating options on the pricing page. When the file and channel are ready, start free — 24-hour trial, no card.

FAQ

Can I install OBS on any Ubuntu release?

Do not assume the same installation instructions work on every Ubuntu release. Check the current OBS Linux directions against your exact image, install using a supported method, and verify the package launches with the display/session arrangement you will use on the headless VM.

Can an OCI Free Tier VM stream at 1080p?

There is no guaranteed answer based only on Free Tier eligibility. Encoding depends on the selected shape, available resources, OBS build, scene, codec, frame rate and network path, so test the full stream at the intended profile before relying on it.

Does a running OCI instance mean my YouTube stream is live?

No. The VM can be running while OBS is stopped, stalled or unable to reach YouTube. Check OBS’s encoding and connection indicators and confirm ingest in YouTube Live Control Room.

Do I need inbound firewall ports for the YouTube stream?

The encoder sends stream traffic outbound to YouTube, so opening arbitrary inbound ports is not a requirement for that connection. SSH administration is a separate access path; check OCI security rules and the Ubuntu host firewall for the exact rules your setup needs.

YOU’VE REACHED THE END

Keep the ideas coming.

More guides, useful tools and a little help for your next broadcast.

Back to the journal ↗
YOUR NEXT READ

A little more to explore.

More Setup Guides guides ↗ · All topics ↗