Skip to content
streamneo.
Setup Guides11 min read

How to Schedule MP4 Files in AWS Elemental MediaLive for YouTube

Configure MediaLive inputs and schedule actions to switch MP4 files in order, then send the live output to YouTube and verify playback.

sn.
StreamNeoPublished 4 October 2026
Worth sharing?

To schedule MP4 files in AWS Elemental MediaLive for YouTube, attach the files as inputs to a channel and create schedule actions that switch between those inputs. MediaLive does not take a playlist file and automatically rotate through it: the channel schedule defines which attached input is used and when.

For a small, fixed set of clips, you can make one input per MP4. For a changing set stored in Amazon S3 or AWS Elemental MediaStore, a dynamic MP4 input can be reused with a different object path in each switch action. In both cases, you must plan and create the sequence of actions.

How MediaLive handles a file playlist

Think of this as three connected pieces: source files, channel inputs, and schedule actions. An input gives MediaLive a way to read a source; attaching it makes it available to a channel; a schedule action tells the channel to switch to a particular attached input. The schedule belongs to the channel. Adding several inputs does not itself create a playlist or make them rotate.

AWS puts the distinction plainly in its MediaLive User Guide: “There is no implicit switching.” A file sequence therefore needs an action for each transition you want. The action can name a different static input, or it can reuse a dynamic input and provide a new file path. A YouTube playlist in YouTube Studio is a separate thing; MediaLive schedule actions switch the channel's ingest input, not items in a YouTube playlist.

This setup suits a planned sequence of prerecorded segments that you want to present as one live output. It is not a one-click upload, and it does not promise seamless transitions. Check that each source has the expected duration, audio, and picture before you build the schedule. If your requirement is simply to loop a set of clips without configuring a broadcast channel, the workflow in this guide to looping restaurant videos on YouTube Live may help you compare approaches.

Prepare the MP4 files and inputs

First choose how the files will be represented in MediaLive. With a short, stable sequence, create one MP4 input for each file. This makes the action list easy to read: “switch to morning prayer,” then “switch to the notices,” for example. The trade-off is that adding, removing, or replacing files means updating the input attachments and schedule as well.

For a larger or changing set of objects, consider a dynamic file input. AWS documents dynamic MP4 and TS inputs for files in S3 or MediaStore. You configure a URL template containing $urlPath$, then provide the corresponding object path in each schedule switch. For example, an S3 template can use s3ssl://$urlPath$, with an object path such as my-channel/segment-a.mp4 supplied by the action. This is not a general mechanism for any public MP4 URL; keep the source in a supported location and follow AWS's current input configuration requirements. See the AWS documentation on dynamic inputs.

Before creating the inputs, make a simple inventory: sequence number, filename or object path, intended start, expected end, and whether the next item should start by the clock or when this file ends. Confirm the files are accessible to the MediaLive input configuration and that their audio and video are usable for the output you plan to send. Keep filenames and paths unambiguous; a typo in a dynamic object's path can send the switch to the wrong source or prevent it from playing.

MediaLive's MP4 input configuration also distinguishes single-class and standard-class inputs. The former uses one source URL, while the latter uses two. That is a source/resilience configuration choice, not a way to control the order of files. Choose according to your source design and current AWS documentation rather than assuming that two URLs create a playlist or a schedule failover. If you are deciding between a local computer and a cloud-based workflow, this overview of continuous streaming methods gives useful context, though it describes a different setup.

Create and configure the MediaLive channel

In the AWS Elemental MediaLive console, create the inputs you need, then create a channel and attach each input that a schedule action will use. With a dynamic input, attach that one input and plan to pass a different object path for each file switch. Check the channel's input attachments carefully: an action can only switch to an input attached to that channel.

Plan the action order before starting the channel. Give each action a clear name that helps an operator identify the intended clip, such as switch-to-evening-bhajan. Record whether it is immediate, fixed-time, or follows another action. AWS recommends using the schedule to control the initial ingest order. In particular, create the initial immediate switch before starting a newly configured channel; do not expect the channel to infer which input should play first.

The channel also needs an output group and encoding configuration. Those settings determine how MediaLive packages the live output, independently of the file-switch schedule. Choose video and audio settings that your source and YouTube ingest can support, and check YouTube's current live encoder recommendations rather than copying settings from an unrelated stream. A Punjabi music stream at a particular resolution and frame rate has different practical constraints from a static devotional image with audio; the YouTube settings guide for a Punjabi playlist can help you think through that distinction.

Treat the schedule and attachments as one configuration. If you add a new clip later, add or update the input and the corresponding action; a schedule entry cannot conjure an unattached source. During a running channel, AWS allows actions to be added, but make changes deliberately and review the future sequence so the live output does not switch to an unintended file.

Add schedule actions for input switches

For each segment, create an input-switch action in the channel schedule. The action specifies when it should start and which input attachment to use. With a static-input sequence, each action points to the attachment for the next MP4. With a dynamic input, the action points to the same attachment and also supplies the relevant object path. Keep a separate action for every intended transition; a dynamic input is reusable, but it does not advance by itself.

For the first item, create an immediate action before channel start so the channel has a defined initial source. Then add the later actions in the intended order. For a dynamic switch, take care that the path belongs to the exact file intended for that point in the sequence. Review the action names, target inputs, and paths side by side with your inventory before saving.

A schedule is not the same as a media playlist editor. It does not automatically read a folder, sort filenames, or return to a “main” input after a clip. If you want a file to play again later, schedule another switch to it. If you want an indefinite rotation, you must plan how to maintain the schedule or use a different playout design. The practical difference matters for overnight operation: a sequence that ends without another planned action does not imply that MediaLive will start the first item again.

For a manual command-line workflow, AWS's input-switch action documentation shows the fields used to identify the target and configure timing. The console and API details can evolve, so use the current service interface for the channel you are configuring.

Choose action timing and order

Use a fixed start when a clip must begin at a particular UTC wall-clock time. This is suitable when a programme grid matters more than the exact length of the preceding file. AWS documents a scheduling horizon for fixed input switches: at creation, the action must be at least 15 seconds ahead and no more than 14 days ahead. Confirm the current console or API behaviour before relying on those limits in a production schedule.

Use a follow start when the next clip should begin after a referenced file action ends. The following action must explicitly reference the earlier input-switch action; this is not automatic playlist advance. AWS requires the previous input's source-end behavior to be set to Continue for follow timing. Check that behaviour on the preceding file input, and verify the reference points to the action you intended. If the file is clipped with start or stop timecodes, account for that selected range rather than assuming the whole source will play.

Use immediate for a switch meant to take effect now. AWS notes an internal 10-second timing offset for immediate switches on standard two-pipeline channels. Treat immediate as a control choice rather than a precise wall-clock cue, and consult the current AWS guidance for the channel type you use.

Timing choice What it means Useful when Check before relying on it
Fixed Starts at a specified UTC time A programme grid sets the transition Confirm the scheduling window and time zone
Follow Starts after a referenced action ends Clip length should determine the next start Previous source-end behavior must be Continue
Immediate Takes effect now Selecting the initial input or changing source now Account for channel behaviour and any timing offset

For a continuous sequence, follow actions are often easier to reason about because a delayed clip does not force every later start onto an old wall-clock plan. Fixed actions are useful when you need a segment to begin at a defined time, even if that means the previous item is cut or has a gap depending on the configured transition. Neither choice removes the need to create the next action. Before starting, read the sequence from the first action to the last and ask what the channel should do after the final one.

Configure the YouTube output

Create or select the live stream in YouTube Studio's Live Control Room. From there, obtain the stream URL and stream key for the encoder connection. Configure MediaLive's output destination using the current values shown for that stream and the output group settings appropriate to your channel. Prefer the RTMPS endpoint when YouTube presents it and your configuration supports it. Do not copy an endpoint from an old tutorial or guess a field value: the exact MediaLive fields depend on the channel and output configuration.

The stream key is a credential used to identify and accept the incoming encoder feed. Keep it out of screenshots, public notes, source examples, and logs that others can access. If it is exposed, replace it through YouTube Studio and update the MediaLive output configuration. YouTube's encoder setup instructions explain where the connection details are obtained.

Do not assume that because the source is MP4, the output should use the same codec, bitrate, frame rate, or resolution as the file. The source files may differ, and the channel output is an encoding decision. Compare the output profile with YouTube's current recommendations for the ingestion protocol and resolution, then test with representative motion and audio. If the stream includes long periods of still artwork, check that the audio remains present and that a change in picture is not being mistaken for a failed feed.

Start the channel and verify playback

Before starting, confirm that every action's target is attached, every dynamic path is correct, the initial action exists, and the sequence is in the intended order. Check the channel's output destination and verify that the correct YouTube stream key is configured. Then start the MediaLive channel and watch the YouTube Live Control Room for preview and stream health. A configured channel is not proof that YouTube is receiving a usable feed.

Test the actual transitions with representative files. Watch a switch from one clip to another, listen for abrupt silence or unexpected levels, and check that the next action occurs at the intended time. For a fixed action, compare the transition with UTC. For a follow action, confirm the prior file actually reaches its configured end behaviour and the next action references it. YouTube recommends monitoring stream health; inspect the current status rather than relying only on a local view of the source files.

For a channel expected to run overnight, make a schedule long enough for the period you intend to cover and decide who will review or extend it. AWS permits schedule actions to be added while a channel runs, which can help an operator extend a plan, but it is still an operational task. Consider what should happen if a file is shorter than expected, an input fails, or the final action has no successor. A tested recovery plan is more useful than assuming the schedule will choose a fallback.

If maintaining input attachments, action order, and cloud-channel settings is more work than the channel needs, compare the operational model with a workflow that accepts a finished video and runs it as a continuous YouTube broadcast. StreamNeo removes the need to keep your own computer on for that uploaded-file workflow; it does not replace MediaLive's configurable input-switch schedule when that is what your production requires.

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 MediaLive automatically play all attached MP4 inputs in order?

No. Inputs make sources available to the channel, but there is no implicit switching between them. Create schedule actions that identify each target input and the timing for each switch.

Can one dynamic input handle multiple MP4 files?

Yes, for supported MP4 files in S3 or MediaStore, a dynamic input can use a URL template with $urlPath$, and each switch action can supply the relevant object path. You still need a separate action for each transition you want; the input does not discover or advance through files on its own.

Should I use fixed or follow timing?

Use fixed timing when the next clip needs to start at a specific UTC time. Use follow timing when it should start after a referenced file action ends, and make sure the preceding input's source-end behaviour is Continue.

How do I know YouTube is receiving the channel?

Check for a preview and inspect stream health in YouTube Studio's Live Control Room after starting the channel. Test representative audio, motion, and at least one scheduled transition before relying on the setup.

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 ↗