Automate 24/7 Stream for a scheduled Playlist

Hey, I figured I'd throw my solution in here for anyone else scouring through this 4 year old thread. There is some good stuff in here so I suggest you read through it but for me this is what I landed on.

The github does a pretty good job of explaining what it does and how to set it up so i won't type it in here. I'll just say that I have VLC-Scheduler running with VLC set to automatically start in full screen with no controls visible (just the video), in OBS I have a window capture of VLC and an audio device capture of a virtual cable (https://www.4kdownload.com/products/videodownloader/8) that VLC audio output is being pointed to. I have 4k-video-downloader (https://www.4kdownload.com/products/videodownloader/8) looking at the youtube channel and downloading new uploads to the directory that vlc scheduler is using. That's it.

I'm starting as simple as possible for now and as I come up with solutions I'll be replying in this thread.
it says it is not maintained, ar eyou the person who created this?
 

bcoyle

Member
@hammerheaddown ,@Mo_Nipple . Seems like a very good question. I see the github post is a year ago. But I do realize that this thread is about ideas. Personally I enjoy hearing what other people think about the subject. Some align with what I'm doing, some don't. But no one has really done a 24/7 yet , because it's basically a big job. Even providing documentation for other people to use is a time sink.
 
well i have actually converted it to using SRT streaming since it is less than a second of latency in most cases..

SRT Streaming can be be ingested directly from the FFMPEG streaming playlist

still working out some kinks in the playlist but it will use FFMPEG and it's Concat Demuxer. working on creating the playlist into a csv file and then reading that csv into ffmpeg.
 

bcoyle

Member
well i have actually converted it to using SRT streaming since it is less than a second of latency in most cases..

SRT Streaming can be be ingested directly from the FFMPEG streaming playlist

still working out some kinks in the playlist but it will use FFMPEG and it's Concat Demuxer. working on creating the playlist into a csv file and then reading that csv into ffmpeg.
Seems like you are having fun.
 

bcoyle

Member
well i have actually converted it to using SRT streaming since it is less than a second of latency in most cases..

SRT Streaming can be be ingested directly from the FFMPEG streaming playlist

still working out some kinks in the playlist but it will use FFMPEG and it's Concat Demuxer. working on creating the playlist into a csv file and then reading that csv into ffmpeg.
I'm always interested in what people will do with their tool after they finish it. i.e. what is the dream? Mine is a type of community public tv station.
 
Been working on this a lot and tweaking it..

basically a whole new rewrite of the code, adding a lot of error handling too.

I will have tow available, one that is working with the current time to choose to play video etc and one that is just a looping streamer, complete with playout log that shows times of played files.

you will be able to create a file in google docs or excel and save as a comma separated text file and load it up.

Just completed today that you can update that playlist as needed as well,it will check for updates to the playlist

just a quick update and should have something together soon for testing
 

bcoyle

Member
Been working on this a lot and tweaking it..

basically a whole new rewrite of the code, adding a lot of error handling too.

I will have tow available, one that is working with the current time to choose to play video etc and one that is just a looping streamer, complete with playout log that shows times of played files.

you will be able to create a file in google docs or excel and save as a comma separated text file and load it up.

Just completed today that you can update that playlist as needed as well,it will check for updates to the playlist

just a quick update and should have something together soon for testing
I like that you have created something useful in a short period of time. My app is taking so darn long, that I think people give up on it.
 
so many things that can go wrong using the timestamp version

what i have found is that you lose about 4-6 seconds between fade out and fade back in... but it looks much better with the fades... FFMPEG has some overhead i cant do anything about. I have to check the next time and calculate when to start the fadeout and the length b4 next video .

it is all the code to check times that causes about 2-3 seconds of delay. this method does make sure your shows start at 12:00:00 it will start at 12:03 and end at 12:57 making sure the next starts correctly. it also seeks ahead 2-3 seconds just to be safe

The alternative is just do all the work and be sure all videos are exactly as you want, load them up in playlist and get about 2-3 seconds of delay. this does ZERO calculations just plays it as is so you could have stuff that runs over the time you'd like so if you want to have a show start at 12:00:00 this method could have you starting at 12:03 and throughout the day have you 1-2 minutes out of whack. no seeking of time and if its 60 long the next video would start at say 13:06 and next hour at 14:12

the timestamp version sticks with the 12:03 start/fade-in and end at 12:57:00 fade out . EVERY hour or how ever you shows run

so I have two versions... 1 less work 2-3 seconds extra between videos and 1 that is more work to be sure all videos are EXACT times you want
 

bcoyle

Member
so many things that can go wrong using the timestamp version

what i have found is that you lose about 4-6 seconds between fade out and fade back in... but it looks much better with the fades... FFMPEG has some overhead i cant do anything about. I have to check the next time and calculate when to start the fadeout and the length b4 next video .

it is all the code to check times that causes about 2-3 seconds of delay. this method does make sure your shows start at 12:00:00 it will start at 12:03 and end at 12:57 making sure the next starts correctly. it also seeks ahead 2-3 seconds just to be safe

The alternative is just do all the work and be sure all videos are exactly as you want, load them up in playlist and get about 2-3 seconds of delay. this does ZERO calculations just plays it as is so you could have stuff that runs over the time you'd like so if you want to have a show start at 12:00:00 this method could have you starting at 12:03 and throughout the day have you 1-2 minutes out of whack. no seeking of time and if its 60 long the next video would start at say 13:06 and next hour at 14:12

the timestamp version sticks with the 12:03 start/fade-in and end at 12:57:00 fade out . EVERY hour or how ever you shows run

so I have two versions... 1 less work 2-3 seconds extra between videos and 1 that is more work to be sure all videos are EXACT times you want
I've encountered some of the problems you are seeing. My app is a windows standalone program talking/commanding OBS thru a web socket
. In the player, I know what is coming up next. I'm using object oriented programming so, I create a couple of instances of objects that contain all the info to run a program/time slot. After starting the current running program, I have my program get the next scheduled instance/program/video ready to go. this includes video length etc.

In the scene, I have the a ffmpeg or vlc source ready to go. Above it in the scene list is another source loaded with a black jpeg. This I can send commands to, to get it to fade to black and back out again. I set the black source to opacity to 100 to block the source I wish to run. I then start the running video and wait 1/2 second and the start the black source to full transparency. There is a plugin that you can use to do this. I just send the commands myself. I also mute the running video for 1/2 second so as to not get annoying startup clicks and noises.

I know when the video will end, so schedule the black jpeg to fade to 100% opacity over about a seconds time timed to hit the video end correctly. Basically, I'm loading and starting a vlc source but controlling fade in/out myself using the black jpeg source.
 
Last edited:

bcoyle

Member
How could I get a copy of the Playlist Manager plugijn
I'm not this guy, but the original post is more than a year old and haven't seen any more from him. You might try a PM. You might want to go back and look at some of my posts, because I'm working on a 24/7 myself.
 

Tomasz Góral

Active Member
Hello everyone,
i want add new solution to scheduler, my first version work as html page, i'm not satisfied.
Now i got version as program on windows.

What you need:
OBS
OBS WebSocket (version 4.9.1)
https://weblive.pro/scheduler_for_obs.exe (zip file, selft unpack).
https://dotnet.microsoft.com/en-us/download/dotnet/6.0 version .NET Desktop Runtime 6.0.7

1657742863560.png


Very simply app.
In OBS need 3 scenes.
Stop scene - after play last video, program switch to this scene
Scene 1 - first scene with first Media Source
Scene 2 - second scene with second Media Source

In this scenarion, program check time, if start time is exacly same load video to Media Source and run (first time Scene 1), on Start End on last file system switch to Stop scene.
 

bcoyle

Member
Hi, lots of work, isn't it. What program language are you using, i.e vis basic, C++ ?. I can see that this is just the start for you. What are your plans for more features?
 

Tomasz Góral

Active Member
Hi, lots of work, isn't it. What program language are you using, i.e vis basic, C++ ?. I can see that this is just the start for you. What are your plans for more features?
Yes it's VB.net, not lots of work only 6h.
Plans for features, i think about play from folder 'playlist', folder will be as 'one' file on the grid.
Folder can be played as sorted from A to Z or random, i think about play from folder with maximum time e.g. in folder i got 10h video, but use rand function to play only first 2h, video will be played to the end file and go to next position on list.
- folder with self refresh , before play first position from folder, program refresh files from folder, you can add new file to play
 

bcoyle

Member
Yes it's VB.net, not lots of work only 6h.
Plans for features, i think about play from folder 'playlist', folder will be as 'one' file on the grid.
Folder can be played as sorted from A to Z or random, i think about play from folder with maximum time e.g. in folder i got 10h video, but use rand function to play only first 2h, video will be played to the end file and go to next position on list.
- folder with self refresh , before play first position from folder, program refresh files from folder, you can add new file to play
That's an amazing amount of work for only 6 hours. I am also using vb.net because it's an amazing development language. I know that it is not strict typed, which is why I like it. Concentrate on the project and not on dotting all the i's. Let vb do all the casting. It has bitten me in the past, but well worth the speed of development.

When you mention 10 hour files, it seems like it may be recorded games??? What kind of channel are you trying to develop?

Anyway, nice to have another vb programmer around.

I assume your name is Thomas, mine is Bill.
 
Top