Skip to content
streamneo.
Troubleshooting12 min read

How to Make OBS Reopen a Looping Sleep Video When Playback Ends

Set up an OBS Media Source to loop a sleep video, and learn how Loop differs from restart-on-active and end-of-playback display settings.

sn.
StreamNeoPublished 4 October 2026
Worth sharing?

To make OBS replay a sleep video when it reaches the end, add it as a Media Source and enable Loop in that source’s Properties. If you also want playback to start from the beginning whenever the source becomes visible or active, enable Restart playback when source becomes active as a separate setting.

Those controls are easy to mix up, but they do different jobs. Loop repeats at end-of-file; restart-on-active resets playback when the source becomes active. Show nothing when playback ends changes what OBS displays after playback ends and does not make the video repeat.

Add the sleep video as a Media Source

In your scene, add a Media Source and point it at the sleep video file. In OBS, use the Sources panel’s add control, choose Media Source, give the source a clear name, and browse to the file. Naming it something recognisable, such as “Rain sleep loop”, makes it easier to select the right source later if the scene contains a clock, artwork, or other overlays.

A Media Source is the straightforward built-in choice when the job is to play one file. OBS’s Media Sources guide describes this source on Windows, macOS, and Linux. It lists formats including MP4, TS, MOV, FLV, MKV, AVI, GIF, and WebM, but a listed container does not guarantee every codec, export, or damaged file will play correctly.

When you add the source, OBS may ask whether it should be local or supplied from a network location. For an ordinary file already on your computer, use the local-file option and select the actual video. If the option to create a source is available, create it; if you are updating an existing source, select that source instead. The important point is to set playback options on the Media Source that is actually present in the scene, not on a different source with a similar name.

If you have separate versions of the sleep video, avoid switching files until the basic loop works. Start with the intended file, confirm that it plays in the preview, and only then adjust scene layout or add automation. This keeps diagnosis simple: a failure to play at all is different from a file that plays once and stops.

Enable Loop to repeat at end-of-file

Open the Media Source’s Properties and turn on Loop. With Loop enabled, OBS starts the file again when playback completes. That is the control for continuous repetition of one file; it does not depend on the source being hidden and shown again.

After enabling Loop, check the preview and let the video reach its end. A short test file makes this check quicker than waiting through a full-length sleep recording. If the image returns to the opening frame and begins playing again, the end-of-file repeat is working. For a long file, you can first test with a copy trimmed to a shorter duration, then return to the intended full file once you have confirmed the behaviour.

Keep the distinction clear: Loop handles the end of the media. It is not a command to restart because a source has just become visible, and it does not mean that OBS must hide the source at the end. A video can loop while remaining visible throughout; that is normally what you want for a static sleep scene.

If you are setting up a playlist rather than a single sleep video, consider a VLC Video source instead. The OBS guide describes its playlist controls, including Loop Playlist, which restarts when the source runs out of media files. VLC must be installed for VLC Video to appear as an available source. For one file, the built-in Media Source and its Loop checkbox are the simpler documented route. If you are comparing a different approach to cycling several files, the distinction is similar to the one in this guide to looping a video playlist to YouTube Live with FFmpeg: choose a playlist workflow only when you need a playlist.

Use restart-on-active for source reactivation

The Restart playback when source becomes active setting addresses a different moment: when the source becomes active or visible. If enabled, playback begins again from the start when that activation happens. It can be useful when you switch away from the sleep scene and later return, or when you deliberately hide and show the source and want it to begin at its opening frame.

It is not a substitute for Loop. Suppose your sleep video reaches its final frame while its source remains active. Loop makes it play again. Restart-on-active alone does not tell OBS to repeat a file at end-of-file; it waits for the source to become active again. If you need both continuous replay and a fresh start when returning to a scene, enable both settings and test each behaviour separately.

Think about the scene transition you actually use. If the sleep source stays active all night, Loop is the setting that matters for repetition. If the source is hidden while you show another scene, then made active again later, restart-on-active decides whether playback resumes from the beginning or continues according to the source’s playback state. The choice depends on whether you want continuity or a fresh start on returning.

For example, a devotional channel might show a short opening slate, then switch to a longer sleep or meditation video. If the video should always begin at its first frame after the slate, restart-on-active may suit that transition. If it should also repeat once it reaches the end, Loop remains necessary. Testing these choices in OBS before going live is more reliable than assuming one checkbox covers both cases.

A scene with several sources can make activation less obvious. A source may be present in a scene but hidden, or it may be visible in a scene that is not currently selected. When testing, use the eye control in the Sources panel or switch scenes deliberately, then observe whether the file resets. That tests activation behaviour; waiting for the end of the file tests Loop.

Understand Show nothing when playback ends

Show nothing when playback ends governs the display after playback ends. When enabled, OBS hides the source rather than leaving its last frame visible. When disabled, the final frame can remain on screen. Neither choice makes a file loop, so do not turn this setting on expecting it to reopen the video.

The visible symptom can be confusing. A black or empty region after a file ends may mean the source is set to show nothing at end-of-playback, while a frozen image may mean the last frame remains. In either case, inspect Loop separately if the intended behaviour is to replay. Change the end display only after deciding what you want viewers to see if playback genuinely stops.

For a sleep scene, a held final frame might look like a still image rather than a failure, but it is not a reliable replacement for looping. If the file ends and remains frozen, motion or audio may have stopped even though the image is still visible. Conversely, a source that disappears can expose another layer in the scene, such as a background colour or a starting slate. Check what sits underneath the Media Source before deciding which end display is appropriate.

The key diagnostic questions are separate: did the media replay, and what did OBS show at the point playback ended? Loop answers the first question. Show nothing when playback ends affects the second. Restart-on-active concerns what happens when the source becomes active. Keeping those questions distinct prevents a display setting from being mistaken for a playback setting.

Test the source behaviour in the scene

Test in the scene where the sleep video will actually run. A source can behave differently from what you expect if you have configured one copy, then placed another copy in the live scene. Select the intended source, open Properties, and confirm the selected file and the Loop setting before starting the test.

First, watch the file reach its end without hiding the source. This tests end-of-file repetition. Next, if you use scene changes or visibility controls, hide the source or switch to another scene and bring it back. This tests restart-on-active. Finally, look at the scene underneath the source if you are also testing the end display. This helps distinguish an ended file from a source that is simply hidden or covered by another layer.

A useful test plan is small and deliberate:

What you want to verify What to do What the result tells you
Repeat a single file Leave the source active until the file ends If it starts again, Loop is working
Reset on reactivation Hide the source or leave its scene, then return If it starts at the opening frame, restart-on-active is working
Choose the end display Test with Loop off in a temporary setup, or use a short test file You can see whether OBS hides the source or holds the final frame
Cycle several files Test the playlist in a VLC Video source You are checking playlist behaviour rather than single-file looping

When you run a real 24/7 channel, include the surrounding routine in your test. Confirm that the correct scene is selected, that the sleep video is not obscured, and that the audio you expect is present. A successful loop in the preview proves the source repeated; it does not, by itself, prove that every scene transition or the full broadcast is configured as you intended.

Long-running streams also bring up problems that are separate from a file ending. If audio and video gradually drift out of sync, that is not fixed by changing Loop; see the checks in this guide to OBS audio sync drift on a long YouTube live stream in India. For a channel that uses a recorded service as its programme, the broader scene and playback choices are covered in this walkthrough of continuous YouTube streams of recorded church services with OBS.

If the source is intended to stay on all night, avoid relying on a person to notice the final frame and click Play. Let Loop handle ordinary repetition, and use restart-on-active only for the scene-return behaviour you intend. If you later add scripts or other automation, test those changes independently from the basic Media Source settings.

Troubleshoot a file that still stops

If the video plays once and stops, first reopen Properties on the Media Source in the live scene and confirm that Loop is enabled. Check the actual source, not just a similarly named copy. It is easy to configure a test source or an earlier version and overlook the one that is visible in the scene being streamed.

Then identify what “stops” means. Does the source disappear, does the final frame remain frozen, or does the picture go black? A disappearance points you to the end-display setting and scene layers. A frozen final frame suggests playback reached the end but did not repeat. A black display can also be caused by the file or its decoding, so do not assume the Loop checkbox is the only possible cause.

If the source does not play reliably at all, test the file outside the live scene and use a known-good export. The formats listed in OBS’s guide are not a promise that every encoding inside those formats will work. A file that is damaged, encoded in a problematic way, or stored somewhere the computer can no longer access may need to be exported again or moved to a stable local location. Make one change at a time so you can tell whether the issue was the media or the source configuration.

For a playlist, verify that you are using the VLC Video source and that VLC is installed. The built-in Media Source is appropriate for one file, while VLC Video offers playlist behaviour and its own controls. Do not assume that a Loop setting in one kind of source controls the other; inspect the source type and the relevant property names.

Automation has a narrower edge case. OBS issue #11040 documents a timing problem in a scenario where automation hides and quickly re-shows a Media Source after a playback-ended event. The issue discussion reports waiting at least 60 frames after that event before changing source visibility as a workaround for that particular scenario. Treat this as specific to the reported automation pattern, not as a delay required for normal looping or ordinary scene changes.

For a straightforward sleep stream, begin with the built-in Media Source and its Loop setting. Add automation only if you have a specific behaviour that the source settings cannot provide, and test it separately. If your needs shift from one file to a sequence, you can compare the different workflow in this guide to making an OBS podcast playlist play continuously on YouTube in India.

If the source settings are correct but the overall operation still depends on leaving your personal computer running, that is a separate decision from how OBS loops a file. StreamNeo can remove the need to keep that computer on for the broadcast: you upload the video and provide your YouTube stream key, then the file runs as a live stream without OBS on your desktop. It is YouTube-only, so it is relevant when your goal is a single uploaded video running continuously rather than configuring a local OBS scene.

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

Does restart-on-active make a sleep video loop?

No. It resets playback when the source becomes active; it does not repeat the file just because playback reached its end. Enable Loop for end-of-file repetition, and add restart-on-active only if you want a fresh start when the source is reactivated.

Should I enable Show nothing when playback ends?

Choose it according to what you want displayed if playback ends without repeating. Enabled, it hides the source; disabled, the final frame can remain visible. Neither setting controls whether the video loops.

Should I use Media Source or VLC Video?

Use Media Source for one sleep video and turn on its Loop setting. Use VLC Video when you want playlist behaviour; OBS documents playlist looping there, and VLC must be installed for the source to be available.

Why does the video still appear stopped if Loop is on?

Check that Loop is enabled on the exact source used in the live scene, then test the file through its end. If the source disappears or freezes, inspect the end-display setting and the scene beneath it separately; if the media itself fails to play reliably, try a known-good export.

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 Troubleshooting guides ↗ · All topics ↗