Skip to content
streamneo.
Setup Guides12 min read

How to Run a Fireplace Live Stream on YouTube from a VPS

Loop fireplace footage from a VPS to YouTube Live with FFmpeg, RTMPS, channel checks, monitoring and archive planning.

sn.
StreamNeoPublished 4 October 2026
Worth sharing?

A VPS can loop a fireplace video and send it to YouTube Live while your own computer is switched off. The workflow is to enable live streaming, create an encoder stream in YouTube Studio, run FFmpeg in real time on the VPS, and deliver the feed over RTMPS.

This is different from creating a scheduled event. A scheduled event gives viewers a page and a time, but it does not supply the video feed by itself. Your encoder still has to connect and send the picture and sound.

Check that your channel can go live

Before choosing a VPS or preparing a command, check the channel. YouTube requires a verified channel for encoder streaming, and the channel must not have a live-streaming restriction in the previous 90 days. If this is your first time enabling live streaming, activation can take up to 24 hours, so do not leave this step until the evening you want the fireplace to start.

You can review the current requirements in YouTube's live-streaming eligibility guidance. The exact controls shown in Studio can change, but the important point is that a working VPS cannot bypass a channel-level restriction.

You also need the rights to use the fireplace footage and every sound in it. A recording that you made yourself may still contain music, a television programme, or another person's work. If you are using a purchased or downloaded ambience video, read the licence rather than assuming that a personal-use permission covers a public live broadcast. YouTube's Community Guidelines and policies for live streaming remain relevant to prerecorded footage sent through an encoder.

If a claim or takedown later affects the channel, the distinction matters. The difference between a copyright claim and a strike on live streams is worth understanding before you build a channel around one long recording.

Create the stream in YouTube Studio

Open YouTube Studio and go to the live controls. Choose the encoder workflow, then create a new stream or open an existing one. YouTube will provide a server URL and a stream key. The URL identifies the ingestion service; the key identifies the stream destination within your account.

Copy both values carefully. Do not put the key in a public repository, paste it into a screenshot, or include it in a support ticket without removing it. Treat it like a password. If you think it has been exposed, reset it in YouTube Studio and update the VPS command or service configuration.

You may create the stream immediately or schedule it for later. The scheduling choice controls the event page and publishing time. It does not replace FFmpeg. A scheduled fireplace event with no active encoder will show no useful programme when the time arrives.

For a simple continuous broadcast, the practical sequence is:

  1. Create or select the encoder stream in YouTube Studio.
  2. Copy the precise RTMPS server URL and stream key.
  3. Start FFmpeg on the VPS.
  4. Wait for the preview and stream-health indicators in Live Control Room.
  5. Publish or begin the event according to the controls shown for that stream.

YouTube's interface may offer a preview before publication. Use it. It lets you check the crop, movement, sound level and connection before viewers are sent to a black or silent feed.

Choose and prepare the VPS media source

A VPS is an always-available computer reached remotely. For this task it needs enough CPU capacity to encode the chosen picture, enough outbound network capacity to sustain the stream, and enough storage if you intend to keep a local recording. Those needs vary with resolution, codec, frame rate and the source file, so there is no universal CPU, memory or bandwidth specification that can be stated responsibly for every provider.

Choose the video before choosing the FFmpeg settings. A fireplace scene often contains dark gradients, sparks and slow movement. A file that looks clean locally may show colour banding or blockiness after live encoding. If the source has a visible join, the loop will repeat that join every time it reaches the end. The guide to creating a seamless loop for a YouTube nature live stream covers the editing problem separately.

Upload the source to a known directory on the VPS and check its name, duration and permissions. Avoid filenames with spaces while you are testing. A simple path such as /home/stream/fireplace.mp4 makes logs easier to read and reduces quoting mistakes.

The source does not need to match the final broadcast profile exactly. FFmpeg can scale and encode it, but each conversion uses CPU. If the source is already the intended size and frame rate, leaving it close to that format may reduce unnecessary work. If the source is very large, lowering the output size can be more practical than asking a small VPS to resize and encode continuously.

There are also operational choices to make:

Choice What changes Main trade-off
Software encoding on the VPS FFmpeg uses the VPS CPU No separate encoder device, but sustained CPU use must be watched
Higher resolution More detail in the player More encoding work and outbound data
H.264 or another supported codec Changes compatibility and processing needs Select it with the current YouTube settings table, not in isolation
One long session Little manual intervention during the day Archive behaviour becomes important after long runtimes
Recurring shorter sessions Planned restarts and new sessions More scheduling and continuity work

YouTube lists H.264, H.265 and AV1 video, along with AAC or MP3 audio, for encoder workflows. Its current recommended live encoder settings should be treated as the source of truth for the resolution, codec and bitrate combination you choose. The published table can change, and the right bitrate is not determined by resolution alone.

For a first test, 720p30 or 1080p30 may be a sensible profile for a static fireplace scene if the VPS can encode it and the connection can sustain it. Do not select a bitrate merely because it worked for a different source. Use constant bitrate, aim for a two-second keyframe interval, and keep the interval within YouTube's stated limit.

If the fireplace video includes music, verify that the music is licensed for YouTube streaming. A silent visual loop can be easier to operate, but do not remove or add audio options blindly. Confirm the resulting stream in the Studio preview.

Install and run FFmpeg

Install FFmpeg using the package method supported by your VPS operating system, then confirm that the binary runs. The exact package version and available encoders depend on the operating system and image supplied by the VPS provider. Check the output of ffmpeg -version and confirm that the encoder you intend to use, such as libx264, is available.

The following is an illustrative starting command for a compatible file:

ffmpeg -stream_loop -1 -re -i fireplace.mp4 \
  -c:v libx264 -preset veryfast -tune stillimage \
  -r 30 -g 60 -keyint_min 60 -sc_threshold 0 \
  -b:v 2500k -maxrate 2500k -bufsize 5000k -pix_fmt yuv420p \
  -c:a aac -b:a 128k -ar 44100 \
  -f flv "rtmps://YOUR_INGEST_HOST/YOUR_PATH/YOUR_STREAM_KEY"

This is not a tested universal command or a guarantee that the stream will remain connected. Replace the final URL with the exact server URL and key supplied by YouTube. Depending on the way YouTube displays the values, the host, application path and key may need to be combined carefully. Do not add spaces or punctuation that are not part of the supplied values.

The important options have specific jobs. -stream_loop -1 asks FFmpeg to repeat the input indefinitely. -re reads the file at its natural playback rate rather than sending it as quickly as the VPS can process it. Without real-time pacing, a prerecorded file can be consumed too quickly and cannot behave like a live programme.

At 30 frames per second, -g 60 requests a two-second group of pictures, while -keyint_min 60 and -sc_threshold 0 make the interval more consistent. The video bitrate in this example is only an illustrative starting value. Compare your chosen resolution and codec with YouTube's current table, then adjust for the actual capacity of the VPS and its outbound connection. A value that is too high can cause congestion; one that is too low can make the image look poor.

-tune stillimage may be useful for a scene with little movement, but it is not a substitute for testing. The -preset setting changes the balance between CPU use and compression efficiency. If the VPS is struggling, inspect its CPU usage rather than assuming that a faster preset has solved the complete problem.

The output format is FLV because it is commonly used for RTMP-family delivery. FFmpeg's official protocol documentation explains its protocol and URL support. YouTube recommends RTMPS for ordinary encoder streaming, so use the secure endpoint shown in YouTube Studio rather than changing it to an unencrypted address.

Send the feed to YouTube over RTMPS

RTMPS is the encrypted extension of RTMP used for the connection between the encoder and YouTube's ingestion service. YouTube's guidance requires the valid ingestion endpoint, application path and stream key, and uses port 443 for RTMPS. That is why the endpoint from Studio matters more than a URL copied from an unrelated tutorial.

Start with a short private or unlisted test. Watch the VPS terminal for connection errors, then open Live Control Room and check that the preview appears. If the connection fails immediately, inspect the URL, key, firewall rules and whether the VPS permits outbound connections on the required port.

If the preview connects but reports unstable health, compare the outgoing bitrate with the connection's sustained capacity. A connection that is fast for a brief download is not necessarily suitable for a continuous upload. Also check whether the VPS is sharing its network capacity with backups, updates or another process.

YouTube's encoder guidance recommends constant bitrate and a two-second keyframe interval, not an interval above four seconds. It also advises testing at the intended resolution and monitoring the stream health and messages during the event. Treat those checks as part of the setup rather than something to do only after viewers complain.

Keep the stream key out of shell history where practical. A command typed directly into a terminal can be retained by the shell, and a process listing or log may expose its arguments. Use sensible file permissions for any private configuration file and never paste the full command into a public issue or forum post.

Keep the live feed under observation

A VPS removes the need to leave your home computer switched on, but it does not remove operations work. FFmpeg can exit because of a bad input file, a lost connection, a VPS restart, a full disk or an encoder error. You need to know whether the process is running and whether YouTube is receiving a healthy feed.

During the first test, watch four things:

  • the FFmpeg output and exit status
  • CPU and memory use on the VPS
  • outbound network activity and connection errors
  • YouTube's preview, stream health and warning messages

For a longer run, configure a service manager or restart process only after you understand how it behaves. A restart policy can launch FFmpeg again after an ordinary process failure, but it does not prove that the new process has the right key, file path or network route. Test by stopping the process deliberately and observing the recovery rather than discovering the behaviour overnight.

FFmpeg documentation describes TCP keepalive as a way to help detect dead peers on long-lived connections. That is a protocol-level aid, not a promise of reconnection or uninterrupted broadcasting. Reconnection logic, process supervision and YouTube's acceptance of a new connection are separate matters.

Keep logs, but rotate them. A verbose process that writes indefinitely can consume the same disk space you need for a local recording. Check the source file after uploading, and keep a second copy somewhere you can reach if the VPS is lost or rebuilt.

If maintaining a VPS, monitoring process and recovery configuration is the part you least want to handle, StreamNeo removes that particular always-on computer task by taking an uploaded video, your YouTube stream key and the live broadcast workflow into one YouTube-only service, with a free 24-hour trial that needs no card.

For other ways to avoid leaving a personal computer running, compare the practical differences in running a 24/7 YouTube stream without your PC on. That does not remove the need to check rights, stream health or archive requirements.

Plan for long-stream archives

Do not treat YouTube's live archive as your only copy of a fireplace programme. YouTube says streams under 12 hours may be archived automatically, while a stream longer than 12 hours may not be captured at all. The wording is important: a stream beyond that duration is not something you should assume will be available as a replay.

If the recording matters, write a separate local recording while FFmpeg sends the live output, or preserve the original source file and any edited version. A local copy gives you an independent source if the live archive is incomplete. It also lets you cut a shorter replay without relying on the live event's processing.

A separate recording consumes disk space and may require a second encoding process, so check CPU, storage and file permissions before enabling it. You can also keep the source file as the master copy and plan shorter live sessions when an archive is important. Shorter sessions improve the chance of automatic archiving, but they require planned stops, starts and viewer communication.

There is a difference between a continuously running encoder and a sequence of scheduled events. The first keeps one FFmpeg process and one live connection active until something stops it. The second requires a plan for ending one session, starting another and ensuring that the next encoder connection reaches the correct event. Scheduling alone does not provide the moving fireplace picture.

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 loop one fireplace MP4 forever with FFmpeg?

Yes. -stream_loop -1 asks FFmpeg to repeat the input, while -re paces playback in real time. You still need a valid YouTube stream, a compatible output profile and a process that remains running.

Does scheduling a YouTube Live event start the video?

No. Scheduling creates the event and its timing, but an encoder must send the actual video and audio feed. Start FFmpeg and confirm the preview before treating the event as ready for viewers.

Is a VPS enough to guarantee a 24/7 broadcast?

No. A VPS can keep the encoder away from your home computer, but failures can still occur in the process, source file, network path or YouTube connection. Monitor the feed and test restart behaviour before relying on it overnight.

Will YouTube always save a 24-hour fireplace stream?

No. YouTube states that streams longer than 12 hours may not be captured as archives. Keep a separate local recording or source copy if the replay is important.

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 ↗