To loop real estate videos on YouTube Live from a Linux VPS, run FFmpeg with -re to read media at real-time speed and -stream_loop -1 to repeat an input indefinitely. Send the output to the ingest URL and stream key shown in YouTube Studio, but treat the command below as an untested starting pattern: validate your files, playlist workflow and installed FFmpeg version before relying on it.
A VPS can keep the encoder process away from your office computer, but it does not guarantee an uninterrupted broadcast. You still need to confirm rights for every video and audio track, protect the stream key, test what viewers see, and decide how you will handle stream restarts and archives.
Prepare the VPS and your media
Start with a Linux VPS only after you know what you intend to stream. The workload depends on the media and on whether FFmpeg can copy its existing streams or must decode and re-encode them. There is no universal CPU, memory, storage or network specification for this job. A modest source file that can be copied and a high-resolution file being re-encoded can impose quite different demands.
Make a local working directory for the videos and configuration. Keeping the source files on the VPS or a reliable mounted volume avoids relying on a desktop that may go to sleep or lose its home internet connection. Check available disk space against the total size of the playlist, and leave room for operating-system updates, logs and temporary files. If the playlist lives on remote storage, test what happens when that mount is slow or disconnected; the FFmpeg process cannot stream files it cannot read.
Before transferring footage, make a content inventory. Record which property video, still image, narration, music bed, logo and other graphic appears in each item, and who granted permission to use it. Rights to show a property video do not automatically cover a soundtrack or a voiceover supplied by someone else. Permission and YouTube monetisation eligibility are separate questions: reused footage can still be unsuitable for monetisation if the channel adds little original commentary, modification or viewer value.
A useful channel should offer a reason to stay beyond seeing the same listing repeatedly. You might add accurate location context, a narrated explanation of the property, clear captions, or a deliberate rotation of current listings. Do not imply that a loop is a live camera view if it is prerecorded. For general preparation ideas, the workflow in this guide to building an always-on instrumental stream offers a useful comparison for organising repeated content, even though your footage and rights checks are different.
Choose a VPS by assessing sustained CPU capacity for your intended encoding mode, storage and transfer allowance, network quality to YouTube ingest, and available restart and monitoring facilities. Compare the provider's terms and total cost for the resources you actually measure, rather than assuming a plan marketed for streaming will fit. A provider's advertised uptime terms are not a promise that your FFmpeg process, local files, YouTube ingest or broadcast will remain healthy.
Create the YouTube Live event
Use YouTube Studio's Live Control Room to create a stream or schedule a broadcast. YouTube's encoder setup instructions describe the Studio workflow for obtaining the stream URL and key, configuring the encoder and checking the incoming feed. Follow the current instructions in Studio rather than relying on a remembered menu path, since the interface and available options can change.
A scheduled broadcast and a continuous feed are related but not identical. The scheduled event is the viewer-facing broadcast; the incoming encoder feed is a stream resource that carries audio and video. Google's Live Streaming API documentation on broadcasts and streams explains that distinction and describes arrangements in which a stream can be associated with broadcast events. If you only need one scheduled listing tour, the Studio workflow is simpler. If you need a continuing feed with separately managed events, API-based management is possible but requires development and authorisation work.
For a scheduled event, do not assume that sending FFmpeg output automatically makes the event public. Check the Live Control Room preview, confirm the event's settings, and use the Studio control to go live when the preview is ready. A continuous channel still needs a deliberate event lifecycle: decide whether viewers should see one continuing broadcast, a sequence of scheduled tours, or a feed that supports separately identifiable events.
YouTube says streams under 12 hours are automatically archived. That does not mean an indefinite feed will become one complete archive, or that every broadcast boundary will match your intended edit. Plan archives and event lengths deliberately, and consult the current Studio guidance before starting a long-running stream.
Set the ingest URL and protect the key
YouTube gives the encoder a stream URL and a stream key. Treat the key like a password: someone who obtains it may be able to send a feed to your channel's ingest. Keep both values out of a public repository, shared screenshots, support posts and scripts that other users can read. Avoid putting the key directly in a command you plan to paste into a shared terminal or save in shell history.
A shell environment variable is one practical way to keep the key separate from the example command. Set it in a restricted session or a file readable only by the account that runs FFmpeg. For example, the following is a placeholder pattern, not a complete setup instruction:
export YOUTUBE_URL='rtmp://your-ingest-url-from-studio'
export STREAM_KEY='your-private-key-from-studio'
Use the exact ingest address provided by YouTube Studio; do not copy a URL from an unrelated tutorial or substitute a guessed endpoint. Then construct the destination from the URL and key according to the format YouTube currently displays. Be mindful that environment variables may be visible to processes with sufficient privileges on the same machine, and may be captured by diagnostic tools. Limit VPS account access and avoid logging the final destination string.
If the key is accidentally exposed, rotate or reset it in YouTube Studio and update the encoder configuration. Do not wait for an unknown feed to appear before taking action. Separating the key from your media folder and source-control files makes accidental disclosure less likely, but it is not a substitute for limiting access to the VPS account.
Use FFmpeg's real-time and loop options
For a single local file, the following is a starting pattern for an RTMP-style output. It has not been tested against your files, YouTube account or installed FFmpeg build:
ffmpeg -re -stream_loop -1 -i input.mp4 \\
-c:v libx264 -c:a aac -f flv \\
"$YOUTUBE_URL/$STREAM_KEY"
The FFmpeg project documentation describes -stream_loop -1 as looping input indefinitely; -re reads at native frame rate, equivalent to a read rate of one. In this position, the options apply to the input that follows. Check the FFmpeg documentation and the help for the version installed on your VPS, because option behaviour and available codecs depend on that build.
The -re option matters because a file can be read as fast as the machine can decode it unless you constrain the read rate. For a live ingest, you generally want the file's timeline delivered at real-time pace rather than a burst of its entire contents. The loop option asks FFmpeg to repeat that input; it does not create transitions, verify that the file decodes cleanly, or make the end of one play smoothly into its beginning.
The example requests H.264 video encoding through libx264, AAC audio encoding and an FLV output container. Those are choices to validate, not a guarantee that your FFmpeg installation includes the requested encoder or that these settings are appropriate for the source and channel. If FFmpeg reports an unknown encoder, missing library or invalid media stream, resolve that before interpreting the result as a YouTube ingest problem.
The command also omits deliberate bitrate, frame-rate and keyframe choices. Determine appropriate values from the current YouTube encoder guidance and your media rather than guessing. The FFmpeg bitrate and keyframe checklist explains why those output settings need to be considered together. Use a copy workflow only when the existing streams and container are suitable for the intended output; copying can save CPU, while re-encoding gives you control over output format at the cost of processing load.
Check codecs, picture and sound
Inspect each actual file before building a playlist. Confirm its video and audio codecs, resolution, frame rate, bitrate, pixel format, audio channel layout and container. A filename ending in .mp4 does not tell you whether its streams will be accepted by the command or provide the output you expect. FFmpeg's probing tools can report stream details; record them for every file, not just the first item.
Compare the inputs with YouTube's current encoder guidance in the official setup page. Decide whether to copy or re-encode based on those facts. Copying avoids the CPU work of encoding but preserves the input streams, so incompatible codecs, inconsistent parameters or a problematic container may remain problems. Re-encoding can standardise output, but uses CPU continuously and can introduce quality loss or overload a small VPS. Test the measured load on the actual machine.
Review picture shape and orientation. Property footage may mix landscape and portrait clips, different resolutions or frame rates, and a mixture of drone, phone and camera material. Pick an intended presentation format and test how each source fits it. Stretching a vertical room tour to fill a widescreen frame can distort the property; cropping can remove useful detail. If you add borders, captions or a logo, check that they do not obscure room features or misstate listing details.
Check audio even if the video is the main attraction. Some tours have narration, some have music, and some are silent. Verify that the chosen audio stream exists, is audible at a sensible level, and has no unwanted pauses or abrupt starts. If files have different channel layouts or sample rates, a playlist may expose differences that a single-file test would not. Do not assume a command that starts successfully has delivered intelligible sound to viewers.
Adapt the single-file pattern for a playlist
A single file is the simplest way to validate the path from storage to YouTube ingest. A playlist adds questions the loop option does not solve: how FFmpeg moves between files, what viewers see at each boundary, whether durations line up, and whether all inputs have compatible streams. A successful loop of one property tour does not validate a list of arbitrary tours.
One approach is to prepare a single combined media file using a playlist or concatenation workflow, then loop that prepared output. Another is to use an FFmpeg concat workflow designed for compatible inputs. These approaches are not interchangeable: some concat methods require matching stream parameters, while a filter-based approach may require decoding and re-encoding. The appropriate workflow depends on the source files and whether transitions, titles or narration are needed. The FFmpeg documentation does not establish a universally safe playlist command for arbitrary property videos, so validate the method and every input separately.
If you concatenate, test the first-to-second transition and the last-to-first transition. Look for black frames, frozen frames, audio gaps, sudden volume changes, wrong orientation and unexpected duration. Property footage often includes clips with different camera settings; standardising them in an editing step may be less error-prone than trying to compensate in a live command. Keep the original files so you can rebuild the prepared playlist when a listing changes.
For repeated listings, a playlist plan should also reflect what viewers need. A static order can leave a newly added property near the end of a long cycle. A short slate can identify the channel and clarify that the footage is prerecorded, but repeated slates and identical loops may feel monotonous. The guide to streaming a gaming marathon playlist discusses playlist sequencing in a different context; the same basic need to test order and boundaries applies, while real estate footage requires accurate property context and rights checks.
Keep an inventory that connects each playlist entry to its source, permission record, media details and intended position. When a property is no longer available, update both the playlist and any title or on-screen wording that could imply it remains on the market. If you add background music, make sure its rights cover the planned broadcast use; a video licence does not necessarily include a separate music track.
Test and monitor the feed
Test with a short, controlled session before depending on the VPS overnight. Start with one file, watch the incoming preview in Live Control Room and check the picture, audio, orientation and encoder status. Then test the playlist, including its boundaries, and let it run long enough to expose resource or network problems. A successful preview is evidence for that test, not a promise about later conditions.
Monitor the FFmpeg process, disk space, CPU load, memory, outbound network and YouTube ingest status. Look for repeated reconnects, stalled output, encoder errors or a file that ends unexpectedly. Keep logs useful for diagnosing failures, but do not include the stream key or a fully expanded output URL in them. If you use a process supervisor such as systemd, configure it deliberately and test how it behaves when FFmpeg exits; automatic restart can restore a process, but it cannot fix a bad file, an expired credential or a persistent network fault.
Check that the VPS provider's transfer terms and network characteristics suit a sustained upload. A local speed test is only one observation and may not reflect the route to YouTube ingest at every hour. Do not select a machine solely by a headline CPU count: measure the encoding mode you intend to use and leave room for the operating system and other processes.
The broadcast workflow also needs a human check. Confirm the stream is still showing the intended property, that no obsolete pricing or availability claim remains in the video, and that the event is public or scheduled as intended. For a channel mixing a continuous feed with scheduled tours, the API explanation of separate broadcasts and streams is useful background, but implementing that model means managing the event lifecycle as well as the encoder.
If a VPS process drops, diagnose whether the cause is the input, encoding pressure, storage, credentials, network or YouTube ingest before changing settings blindly. Keep a tested recovery checklist: verify the media and key, inspect the last useful log lines without exposing credentials, restart only when appropriate, and confirm the new preview in Studio. No VPS configuration guarantees continuous transmission.
When the files and channel are ready, compare the operating choices before committing.
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
How do I loop a video on YouTube Live from a Linux VPS?
Use FFmpeg with -re to read the input at real-time speed and -stream_loop -1 to repeat it, then send the output to the ingest URL and key from YouTube Studio. The example in this guide is untested and must be checked against your FFmpeg build and media before use.
Does -stream_loop -1 make a playlist seamless?
No. It loops the input to which the option applies; it does not create a playlist, align different files or smooth transitions. Prepare or configure a playlist workflow for compatible streams, then test each boundary, including the final return to the first item.
Will YouTube archive a 24/7 stream as one video?
YouTube says streams under 12 hours are automatically archived, so do not assume an indefinitely running broadcast will appear as one complete archive. Plan event lengths and archives in Studio, and check YouTube's current guidance for the behaviour you need.
Does permission to show a property video make it eligible for monetisation?
No. Rights clearance and monetisation review are separate checks, and permission alone does not guarantee eligibility. Review YouTube's current channel monetisation policies and consider whether the channel adds original value rather than repeating minimally changed footage.