vMix Forums
»
General
»
Feature Requests
»
Video Input Scheduling feature
Rank: Administration
Groups: Administrators
Joined: 1/13/2010(UTC) Posts: 5,211 Location: Gold Coast, Australia Was thanked: 4301 time(s) in 1523 post(s)
|
To prevent deadlocks none of the API functions will block (or wait for a response) if there is UI stuff involved. This is in case the user currently in the middle of doing something. The API function will execute only once UI activity is idle.
I can probably make an exception for AddInput since it sounds like it is important for it to send the result.
Regards,
Martin vMix
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Quote:I can probably make an exception for AddInput since it sounds like it is important for it to send the result. Nay, i fully understand the need to prevent any situations that could compromise vMix's realtime capabilities. So this means, it's not (easily) possible to provide usefull feedback directly in the web-results, right? Then i'll have to call the status output to get the info i need - no showstopper, just a little more complicated and putting additional load to the web-serving part of vMix. As long as we can have non-changing guids to reference the inputs instead of (or in addition to) input numbers i'm confident we can build the external scheduler.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
@Martin: After some more consideration, i'd like to come back to your first idea, that is: let us provide a reference string when we call the api-function "AddInput" ourselves, this way there would be no need for our scheduler to query the status-page in order to get the guid. The syntax you suggested earlier would be perfect: Code:?Function=AddInput&Input=guid&Value=Video|c:\video.wmv
You suggested to use a guid to reference the input. Is it ok if our programm (scheduler) provides that guid by calling System.Guid.NewGuid() from mscorlib.dll? All subsequent api-calls that manipulate Inputs would then either use the input number (backward compatible to current api syntax) or that guid. So when input #3 has guid 0f8fad5b-d9cb-469f-a165-70867728950e the following two api-calls would have the same effect: Code:?Function=RemoveInput&Input=3
?Function=RemoveInput&Input=0f8fad5b-d9cb-469f-a165-70867728950e
|
|
|
|
Rank: Guest
Groups: Joined: 1/13/2010(UTC) Posts: 230
Was thanked: 3 time(s) in 3 post(s)
|
hello macjaeger, how`s going the app? :)
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Thanks for asking! I'm working on some parts of the code, but mostly background stuff, so there's nothing to show yet. I'll be able to go into more detail after tomorrow - we are in the middle of final exams at our school, and that means that i have a lot of paper work to manage these days. Gladly after tomorrow there are two weeks of holidays coming up, and though i'm away for a couple of days i hope to get a first basic scheduling app up and running then. It won't be very pretty, the gui is usually the last part to code (and often the hardest too), but we will be able to test the basic operations.
For some features i will have to wait until Martin finds the time to expand the API. Right now there's no usefull way to remotely create videolist / playlist, but i hope Martin will add that functionality to the "AddInput" function in a future release. If he doesn't, there are other ways to accomplish the "play random files from folder x" feature - but it would be a lot easier to code if he adds that to the api. Even more important would be the possibility to reference Inputs by guid, like we discussed earlier. I have a workaround coded, but it is not as reliable and much slower than necessary - and if someone touches vMix' interface while my workaround is running there could be complications like leftover inputs that should have been removed hours ago or - worse - active inputs suddenly vanishing during playout...
I know that having a working "alpha" version might encourage Martin to add those api changes (seeing that i'm not only talking, but actually delivering code...), but without these changes the scheduling app will not be as powerfull as it could...
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Just to give you some update on the basic structure of our project:
There will be two seperate programms: one has the working title "control", the other i call "manager".
"control" runs on the same machine as vMix and controls vMix through the web-interface. It reads an xml-file which contains this day's schedule and tells vMix at the right time to load the next clip, start it, remove the input, ... . control won't have many control elements, just some buttons to de/activate it, to (re)load the schedule and probably a simple visualization of scheduled events (you can't change events there, maybe remove one). It is intended to run by itself and usually needs no user interaction. It will probably monitor the contents of a data folder for changes, and (re)load schedule-files whenever they change.
"manager" can be run on any machine, it's a standalone application to create and manage the xml-files that control reads. My first implementation of manager will be very basic, just enough interface to get the job done. The idea is, that someone else could step up and create a more sophisticated, more appealing version to replace my manager, or even a web-app. You could even create a schedule with notepad... To simplify my initial release, my "manager" will have to run on the same physical machine as "control" and vMix, so that it can directly access the same files and folders as them (so i won't have to translate network-mapped paths to local paths etc.).
|
1 user thanked macjaeger for this useful post.
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/26/2013(UTC) Posts: 373 Location: London Thanks: 41 times Was thanked: 37 time(s) in 36 post(s)
|
Well done @macjeger, the explanation sound great, and wish u all the best....
Cheers!
Rottimmy
|
|
|
|
Rank: Guest
Groups: Joined: 1/13/2010(UTC) Posts: 230
Was thanked: 3 time(s) in 3 post(s)
|
thats amazing, i can`t wait to test your apps on my pc. take the time as you need, you are the best :) regards, melody www.espiritosanto.cc
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Just to keep you curious: Over the weekend i built a first alpha version of the "manager" part of your project. It's far from finished, lacks a lot of comfort functions, but you can do basic scheduling in it: You can add the following types of "events": - operator: during this time vMix is free for manual control - blackness: during this time vMix' output is blacked out - videoclip: play a videoclip - audioclip: play a audioclip - image: show an image - photos: show photos from a folder For each event you can select the duration (with video/audio media you can either stick to the original media duration or chose the duration; if neccessary, you can decide to loop the video after playback or cut to black at the end). You can also select the type of transition at the beginning of the event and it's duration; for photo-shows this will also be used between images (i have yet to add image duration). And of course you can re-arrange the order of the events. You can Load/Save the schedule to an xml-file, which will be used as input for "controller". To give you a hint of this xml-files' syntax: I'm going on vacation for a few days, and will continue my work next week. Then i'm going to get the "controller" part up and running (a proof-of-concept version is already done), and then you'll get some donwload-links as well... Some features won't be usable until Martin upgrades the API, but i think we'll have at least basic functionality.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/26/2013(UTC) Posts: 373 Location: London Thanks: 41 times Was thanked: 37 time(s) in 36 post(s)
|
What a commitment ad a good job... I wasn't expecting to see some features, but @Macjaeger added them, e.g. Photo, images etc.
This is really looking good.
Well done ... Do have a fun filled holiday.
Regards, Rottimmy
|
|
|
|
Rank: Guest
Groups: Joined: 1/13/2010(UTC) Posts: 230
Was thanked: 3 time(s) in 3 post(s)
|
it looks fantastic... congratulations for what is done in the app, seems that something beautifull is comming out... would be good if some "save timetable in text" option will be available, it gives possibility to "paste" timetable on a blog, on a web site or on the social networks. good job by the way, have fun on your deserved vacations. regards, melody www.espiritosanto.cc
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Saving schedule to text is easy to implement, once i'm back from the woods (funny enough i have cell reception out here ;-) ). Can you provide a sample how you'd like the schedule to look? Times and Titles only, i guess. And would you rather save it to a file, or have it in a popup text-window for copy&paste?
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/26/2013(UTC) Posts: 373 Location: London Thanks: 41 times Was thanked: 37 time(s) in 36 post(s)
|
macjaeger wrote:Saving schedule to text is easy to implement, once i'm back from the woods (funny enough i have cell reception out here ;-) ). Can you provide a sample how you'd like the schedule to look? Times and Titles only, i guess. And would you rather save it to a file, or have it in a popup text-window for copy&paste? Well done once again and I do hope you're enjoying the woods (lol). Will it be possible to save each day schedule in an XML format or into a notepad for a reuse? E.g. A schedule for this week Monday can still be used next week Monday but with a slight changes to the videos, by that we will not have to do it all over again but upload the already saved videos and make the slight changes. One could even do d changes in the notepad or the XML by adding the correct path and upload in case of videos that have episodes and you will want to play the same episodes at the same time each week.... Good job once more and do have fun.... Regards, Rottimmy
|
|
|
|
Rank: Guest
Groups: Joined: 1/13/2010(UTC) Posts: 230
Was thanked: 3 time(s) in 3 post(s)
|
in my case, a popup text-window for copy&paste seems enough. an html popup text-window would be good too :) regards, enjoy the woods :) melody www.espiritosanto.cc
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Damn2Good4U wrote:Will it be possible to save each day schedule in an XML format or into a notepad for a reuse? E.g. A schedule for this week Monday can still be used next week Monday but with a slight changes to the videos, by that we will not have to do it all over again but upload the already saved videos and make the slight changes.
One could even do d changes in the notepad or the XML by adding the correct path and upload in case of videos that have episodes and you will want to play the same episodes at the same time each week.... No, this won't be possible in the future... ... it already is ;-) The xml-files are rather simple (see photo above) and can easily be edited by hand. They can be loaded again, and you only have to change the top-line setting ("start of schedule" or so), and save it again. You can also "append" a schedule, this means: take all events from an xml-file and add them to the end of your current schedule. So you could create a "snippet" of a schedule, for example a set of commercials, or commonly used trailers, and load them where ever you need them. Or you could take last mondays schedule, change one event, and save the whole package for next monday. In a later version i can imagine using pattern for filenames, like "newscast_#date#.wmv" where "#date#" would be replaced by that days date - but let's do the other half of the programm first, from there we can discuss options for further enhancements. Please remember: the scheduling part, "vMixManager", is not very sophisticated yet. It's mostly a tool to provide the schedule-files for "vMixControler", something to get the project started. If that second application (controler) works well, i'll write a comprehensive (hopefully) documentation for the xml-file-syntax and provide the full source codes, and maybe i can encourage others to build a much nicer gui for the day-to-day scheduling. My main effort will go into "controler", because that is - in my eyes - the more difficult task. Quote:an html popup text-window would be good too :) html or bbcode is no biggy either, if you can provide a sample; coding isn't that hard for me, but my imagination is somewhat limited... ;-) By the way, just to make you jealous: i've been climbing through treetops for the better half of today, a really exciting, yet also straining exercise. Ten to fifteen meters above ground, at first almost seasick only thinking of the height, but soon learning to "feel" the trees' movements, and to trust their sturdiness. I'm looking forward to climbing up again tomorrow, even though my fingers, hands and arms ache.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/26/2013(UTC) Posts: 373 Location: London Thanks: 41 times Was thanked: 37 time(s) in 36 post(s)
|
You have answered it all... We do not need more than a simple thing for now... Since a week or a day schedule can be changed and for another week show is very great...
What we should be thinking of is how to schedule a whole week video :)
How I wish I could be part of the climbing... Lol... Adventure pictures plsssssss.
Take care and keep safe.
Regards, Rottimmy
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Back from the woods, and knee deep in coding vMixControler. I had my first "magic moment" this morning, when vMixControler was running a simple sequence of videoclips that i had scheduled before, all by itself. Next things to do are adding code to support all the other input types and a lot of gui-work, but the basic design for vMixControler is ready. I have to do some ugly workarounds for the moment, until v10 is available, but it works for now. And at the moment there are hardly any checks for "unexpected situations", like corrupt xml-files, or unsupported media-types. So there is a long road ahead, but we'll get there. @melody & rottimmy: How'd you handle the organisation of scheduling files? One file for each day? Multiple files per day? How'd you name those files? Would you have vMixControler load them automatically? If so, when? When it has less than, let's say, an hour worth of scheduled events? Or rather each day at a given time? Or whenever there's a new file available? @Martin: I am coding support for the input-type "photos" (folder of images). Is there a way to set the slideshow-settings via api? If there isn't yet, could you please add this functionality? It would also be great to have an option to "randomize" the slideshow. How about Code:?Function=AddInput&Input=guid&Value=Photos|c:\imagefolder|5|Fade|500|random
or Code:?Function=AddInput&Input=guid&Value=Photos|c:\imagefolder&Transition=5&Effect=Fade&Duration=500&Random=true
for a slideshow of "c:\imagefolder" with 500 ms Fading every 5 seconds and random images.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
@Martin: Yet another API-request... Is there a way to add an input "Colour" via API? If there is: what's the syntax? And if there isn't - well, you guessed it: Could you add it? I'd at least need a way to add solid black (FadeToBlack won't do for my purpose), but it'd probably more generic to have something like (for solid yellow): Code:?Function=AddInput&Input=Colour|ffff00
This is also the moment when i politely ask if there's an api-documentation, even if it's only a thorough list of examples that i can work from?
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/25/2013(UTC) Posts: 228
Was thanked: 36 time(s) in 25 post(s)
|
Hmm... Most features work, more or less, as far as i could go withou API-changes. But something bothers me:
@Martin: Am I missing something? Or is it really not possible to AddInput audiofiles via Api? Will it be possible?
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/26/2013(UTC) Posts: 373 Location: London Thanks: 41 times Was thanked: 37 time(s) in 36 post(s)
|
macjaeger wrote:Back from the woods, and knee deep in coding vMixControler.
@melody & rottimmy: How'd you handle the organisation of scheduling files? One file for each day? Multiple files per day? How'd you name those files? Would you have vMixControler load them automatically? If so, when? When it has less than, let's say, an hour worth of scheduled events? Or rather each day at a given time? Or whenever there's a new file available? Welcome back and good work so far, well done... I think you will need to expatiate more on your question please? Regards, Rottimmy
|
|
|
|
vMix Forums
»
General
»
Feature Requests
»
Video Input Scheduling feature
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.
Important Information:
The vMix Forums uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close