PDA

View Full Version : Routing of streams


Mike
10 Aug 2010, 09:57
Hi guys & girls, I need your help again. I the future I foresee the ability to route video streams, allowing you to take different than the standard paths. This would address requests like this (http://forum.vidblaster.com/showthread.php?t=1048) and this (http://forum.vidblaster.com/showthread.php?t=619). Complex ideas like that require major rewrites, always need to sit in my head for a while so I can find the best way of implementing the feature. I now have a pretty good idea how, but need to start labelling things. For example, how would this process be called, routing? How do we call the parts of modules we connect together, connections, pins? How is the module called where we set this up, router? I know this is possible in the (very) expensive video switchers, how is it called there?

As always, your input is appreciated. With your help, this program will be awesome. Mmm.. many already think it is.. Well, awesomemore then :)

weconverse
10 Aug 2010, 11:13
Nice ;)
Well, I am not a (traditional) video broadcasting pro so I have no clue of what to call it. Seems Johan and Jakob talks about "feeds".

Mike, could you perhaps give us a clue of how it could be technically solved? It's difficult to come with ideas/suggestions when we know nothing about the possibilities.

For example, imagine that Vidblasters current structure could be separated into the three main "feeds": Program, Recorder, and Streamer1 (and Streamer2, etc for the Broadcast version). Then each module could have a right click option with checkboxes for to which of the available feeeds the module should be "added" (default all). Perhaps also a new module called "Feed" could be used in order to combine multiple modules (eg an Overlay and an Effects module), and the Feed module could in turned be added to other feeds. In that way one could easily add multiple modules with one click (at the Feed module).

Mike
10 Aug 2010, 11:26
I was thinking of a more powerful solution, as any limitation in feeds will eventually be that, a limitation. Imagine all modules as er.. modules that have in- and outputs pins. Setting up a profile is loading the required modules and connecting the pins.

Example: you want to stream with overlay, but record without the overlay. By default the output pin of the video switcher would be connected to the video overlay module, and its output pin to program, which in turn feeds both streamer and recorder. If we enable routing, you would take the output pin of the video switcher and besides connecting it to the overlay also connect it to the recorder. Actually the whole concept of Program would be outdated as you could bypass that entirely. Instead it would simply be just another Monitor module which you can connect to any point in the stream. Start seeing the power of this concept? To keep it simple for the less professional users, by default everything would connect as it does now.

Mike
10 Aug 2010, 11:33
This is more than theory btw. The new Video Out module actually scans all modules and looks for output pins that contain video. The ones it finds are added to its Source list. This way any module that sources or transforms video can have its video routed to a DeckLink card.

weconverse
10 Aug 2010, 11:37
Mabe it's because I have not left the vacation mode, but I don't really get it. In particular ""the video switcher". Could you perhaps draw something on a piece of paper, scan, and post it?

mcarrara
10 Aug 2010, 19:27
Would the concept be along the lines of a patch panel. Inputs from one output can be patched to any input jack.

Mark

Johan Lundberg
11 Aug 2010, 08:22
No time for a long reply right now but I really like what I hear! This advanced routing would indeed be extremely powerful. I will gladly discuss this more as soon as I'm back from vacation.

Johan Lundberg
11 Aug 2010, 13:44
I couldn't resist! Now typing this on my phone... ;)

Yes, I would call this routing. The routing would take place in the Matrix. I'm not sure the Matrix need to be a module though (could as well just be put in under settings in a drop down menu).

In the Matrix the modules added to your project would show up as sources and destinations where some modules will become both. Any source can be routed to any destinations (even multiple destinations at the same time).

Are you thinking about a graphical interface or just text?

Will help you further on this soon! :)

Mike
11 Aug 2010, 14:01
@Richard: Enjoy your holiday (mood) :)

@Mark: Yes, although that makes me think of audio..

@Johan: Sorry to be keeping you from your holiday time ;) A graphical representation in some sort of diagram (or in place in the main window?) would be nice, but also a lot of work. A table would be easier, but more prone to mistakes. Ever seen something like this, screen shots?

Johan Lundberg
11 Aug 2010, 14:09
Mike, I can get you some examples of how this can be done. Will not be until next week though.

/Johan (now on an iPad wireless tethered to my phone)

weconverse
11 Aug 2010, 14:25
Would the matrix be sort of hidden/unnecessary for not so very savvy users? Otherwise a foresee a problem with complexity. One of Vidblaster's features is how easy it is to understand how the production comes together.

/Richard (on a nice laptop with full keyboard, 24Mb ADSL ;)

Mike
11 Aug 2010, 14:27
That's what I wrote. You really should wait until that holiday mood passes over Richard..

weconverse
11 Aug 2010, 14:41
Well, that mood is almost gone. I did remember you Mike wrote that. But I was not sure if Johan's matrix concept is the same, albeit with extended terminology. Just wanted to make sure that "by default everything would connect as it does now".

And I think you are right Mike in that a graphical interface would take more time/effort to implement. Better to get something fast with a table.

dan
12 Aug 2010, 06:03
I was playing with an older Panasonic switcher today, the recording side of it on the right (similar to this http://www.hire-av.co.uk/Files/Panasonic-WJ-MX50-Vision-Mixer/Panasonic-WJ-MX50-Vision-Mixer.jpg) had a few buttons...
For the recording output it has a button for either input (cameras) induvidually or the final mix output, ie: after chroma and other mixes to go to tape output.

Maybe the recording module could have a source selection similar to the overlay modules?

Or in each of the source modules you could just have some sort of tick the output you want to output to? That would be similar to a number of hardware switchers I have used.

Regards
Dan

dan
12 Aug 2010, 06:05
Sorry I meant to add that a Matrix module would probably cover this easily and cater for all requirements from the one module.
Inputs and Outputs which can be mapped either way.

Dan

Johan Lundberg
16 Aug 2010, 07:52
Mike, for some quick inspiration you can start by having a look in the manual to the Black magic videohub, which is a hardware video router.

The manual can be found here:
http://www.blackmagic-design.com/downloads/manuals/eng/VideohubManual.pdf

At page 36 you have a basic table selector with all destinations and sources in drop down menu. A few pages later are some more graphical views. Not perfect for this but can be some inspiration. I can get you some more examples on other products when I'm back in business.

Edit:
And here is a picture of it for reference:

http://www.techcrew.se/vidblaster/bm_routing.jpg

Johan Lundberg
16 Aug 2010, 08:12
I've been thinking a bit more about this and depending on how this interface will look and behave it might be easier to understand if we name it video routing instead of matrix. Matrix is more associated with a x-y table where you have sources on one axis and destinations on the other. You then click on the crosspoint you want to connect. This is very common in the pro world and what I first had in mind. I will provide screenshots on this also, but after some consideration I think it might not be the best solution for VB. A table based routing will be alot easier to understand.

Edit:
Example of routing in a X-Y matrix (destinations on top and sources to the left):

http://www.techcrew.se/vidblaster/matrix_crosspoints.jpg

Johan Lundberg
27 Aug 2010, 10:37
Some more inspiration...

Here an example screenshot of a way you can save or load a user defined list of crosspoints for routing:

http://www.techcrew.se/vidblaster/save_crosspoints.jpg

weconverse
17 Mar 2011, 17:06
Mike,
As far as you have reached by now, why is it not possible for the Streamer and Recorder modules to scan all other modules for output pins. As Effect and Video Out do.

Monoscopio
20 Mar 2011, 10:33
Any news on this? Have you decided which way to go? Personally I think the matrix layout is the simplest to set up and to understand.

Mike
20 Mar 2011, 11:30
I'm still working on the innards, as you should have noticed in recent releases. The matrix is then a simple shell that I can add.

I'll tweet some more about this in the upcoming week, and in fact hope to find time and energy to do a video about it, but yesterday I've been working with my son on the VidBlaster Security (working) demo and did a heck of a lot of routing. I was overly excited, as Wesley can confirm much to his shame ("act normal dad"), that whatever demand he threw at me I could solve by stacking modules and routing streams. At that point I wish I had the matrix, as I started loosing oversight. Free placement of modules was the only thing that kept things organized. It did teach me that I am on the right path and working on a unique and awesome tool, together will all you guys. Can't thank you enough for all the feedback (both content and visual). I can only wish I had more time to get all your ideas implemented asap. Alas, I am only human.

jak
13 Apr 2012, 07:36
Regarding visual mode, this is something I posted some time ago in another thread: http://forum.vidblaster.com/showpost.php?p=11952&postcount=10

Thinking about it now, I understand that full "visual" editing mode would take a lot more to implement that a "matrix" configuration, but possibly a display-only mode could be added at some stage - basically a way to get a graphic layout of the connections that has been setup in the current profile, either by using a matrix or by using the source menus in each module.

This graphics picture would be used to verify that all video routing is correctly setup.