# How to do an endless video stream

> How I created an endless YouTube live stream from a pre-recorded video using ffmpeg with stream_loop set to -1 and my RTMP stream key, looping it forever.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2022-07-26 | Topics: [Tools](https://flaviocopes.com/tags/tools/) | Canonical: https://flaviocopes.com/endless-video-stream/

I did an experiment for an idea I had for a side project.

My goal was to have YouTube live stream a video I already had recorded.

At the end of the video, the stream would start back from the start.

In case you're wondering I just did the experiment and after seeing it work I said "works", but I'm not actually using this. I also don't guarantee it will work for you, just documenting what worked for me so next time I'll reuse this code.

I guess this would work on Twitch as well but I haven't tried so.. just a guess.

I started a live stream on YouTube and this gave me the **stream key**. 

I had a `video.mp4` video in a folder, and ran this shell script:

```
#!/bin/bash

KEY="the YT stream key" #add yours

ffmpeg -stream_loop -1 -i "video.mp4" -vcodec libx264 -pix_fmt yuv420p -preset medium -r 30-g $((30 * 2)) -b:v 2500k -acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k -f flv "rtmp://a.rtmp.youtube.com/live2/$KEY"
```

Those settings suppose the video is 720p, 30 frames per second.

Don't ask me what all those settings do, I mixed some SO answers and tutorials to make it work.

Make sure you have the `ffmpeg` command line tool [installed](http://ffmpeg.org/download.html) on your system.

This worked on my Mac, and also on an Ubuntu VPS I later used to test this so I could disconnect my Mac and let the VPS do the stream.
