logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

4 Pages<1234>
Options
Go to last post Go to first unread
admin  
#41 Posted : Sunday, May 12, 2013 7:21:49 AM(UTC)
admin

Rank: Administration

Groups: Administrators
Joined: 1/13/2010(UTC)
Posts: 5,155
Man
Location: Gold Coast, Australia

Was thanked: 4153 time(s) in 1492 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
macjaeger  
#42 Posted : Sunday, May 12, 2013 9:20:13 AM(UTC)
macjaeger

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.
macjaeger  
#43 Posted : Monday, May 13, 2013 10:19:13 AM(UTC)
macjaeger

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


melody  
#44 Posted : Friday, May 17, 2013 10:38:13 AM(UTC)
Guest

Rank: Guest

Groups: Guests
Joined: 1/13/2010(UTC)
Posts: 230

hello macjaeger, how`s going the app? :)
macjaeger  
#45 Posted : Friday, May 17, 2013 12:36:13 PM(UTC)
macjaeger

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...
macjaeger  
#46 Posted : Friday, May 17, 2013 5:25:12 PM(UTC)
macjaeger

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.).
thanks 1 user thanked macjaeger for this useful post.
Damn2Good4U on 5/17/2013(UTC)
Damn2Good4U  
#47 Posted : Friday, May 17, 2013 6:26:27 PM(UTC)
Damn2Good4U

Rank: Advanced Member

Groups: Registered
Joined: 2/26/2013(UTC)
Posts: 373
Man
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
melody  
#48 Posted : Saturday, May 18, 2013 7:42:06 AM(UTC)
Guest

Rank: Guest

Groups: Guests
Joined: 1/13/2010(UTC)
Posts: 230

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
macjaeger  
#49 Posted : Tuesday, May 21, 2013 9:17:56 AM(UTC)
macjaeger

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:

UserPostedImage

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:

UserPostedImage

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.
Damn2Good4U  
#50 Posted : Tuesday, May 21, 2013 7:22:01 PM(UTC)
Damn2Good4U

Rank: Advanced Member

Groups: Registered
Joined: 2/26/2013(UTC)
Posts: 373
Man
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
melody  
#51 Posted : Wednesday, May 22, 2013 6:14:26 AM(UTC)
Guest

Rank: Guest

Groups: Guests
Joined: 1/13/2010(UTC)
Posts: 230

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
macjaeger  
#52 Posted : Wednesday, May 22, 2013 3:12:12 PM(UTC)
macjaeger

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?
Damn2Good4U  
#53 Posted : Thursday, May 23, 2013 4:30:41 AM(UTC)
Damn2Good4U

Rank: Advanced Member

Groups: Registered
Joined: 2/26/2013(UTC)
Posts: 373
Man
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
melody  
#54 Posted : Thursday, May 23, 2013 5:28:11 AM(UTC)
Guest

Rank: Guest

Groups: Guests
Joined: 1/13/2010(UTC)
Posts: 230

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
macjaeger  
#55 Posted : Thursday, May 23, 2013 2:16:50 PM(UTC)
macjaeger

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.
Damn2Good4U  
#56 Posted : Thursday, May 23, 2013 9:33:13 PM(UTC)
Damn2Good4U

Rank: Advanced Member

Groups: Registered
Joined: 2/26/2013(UTC)
Posts: 373
Man
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
macjaeger  
#57 Posted : Monday, May 27, 2013 9:53:06 AM(UTC)
macjaeger

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.
macjaeger  
#58 Posted : Monday, May 27, 2013 11:09:31 AM(UTC)
macjaeger

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?
macjaeger  
#59 Posted : Monday, May 27, 2013 7:18:57 PM(UTC)
macjaeger

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?
Damn2Good4U  
#60 Posted : Monday, May 27, 2013 7:38:07 PM(UTC)
Damn2Good4U

Rank: Advanced Member

Groups: Registered
Joined: 2/26/2013(UTC)
Posts: 373
Man
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
Users browsing this topic
Guest
4 Pages<1234>
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.