Controlling NDI Studio Monitor with vMix Scripting

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone welcome back to streaming alchemy i'm john mahoney and on today's show we're going to be talking about how you can do remote control of ndi studio monitor now this is something that probably everybody that's doing any sort of ip based production you're using it in your productions so we think there's a lot more in there than you've probably had a chance to touch on yet so we're going to cover that and cover how to do all the remote controls of those functions inside a ndi studio monitor using vmix scripting so uh let me jump in first and talk a little bit about some of the capabilities that are already inside ndi studio monitor so right now for most people you know you can pick up any type of ndi source and display it it has audio and audio meters so it lets you not just listen but actually monitor the audio levels another function inside studio monitor that is really significant is it gives you the ability to record the source that you're monitoring and that does it as sort of in the native ndi stream format so it's very low uh compute intensive so you can do this even on lower end systems so you can do this on on lower end system sorry if the audio is a little low here just the mic was out of whack here so uh so in in addition to that you can do picture in picture and you can do overlays so if you have picture in picture you can have the main video coming in and a smaller video on the side but with overlays you can also do things with alpha channel so if you have alpha channel in your ndi source you could do that as an overlay which could put statistics messages other types of things up on top and the last thing you can do is you can actually use ndi studio monitor as a redistribution point for an ndi feed so say you wanted to take in a camera that on its own couldn't support multiple viewers you could pick that camera up as a single stream inside ndi studio monitor and then have studio monitor republish that stream for multiple people to view the output of that camera so there's a lot of functionality baked into studio monitor and it's really something that once you start to use it there's more and more use cases you're going to find for it so before we get into how we do the remotes let me just jump into our comments section here so we have rudy rudy has joined us uh so thank you rudy for uh you know taking the time to to be with us here uh let's see so we also have uh richard ignacio richard uh hello so yes the audio was a bit low and uh so hopefully it's a little bit better now so we have uh cesai from minnesota wishing us all a happy friday so nice to say i hope you're having a great friday as well so uh gee has popped in uh he uh gee i'm glad you you made it it's always great to have uh one of the true experts in this field uh join us here so let's see so let's see so gee was also mentioning about the audio uh and uh he said i should use the loudness meter plugin and i also have uh john simon john's joining us from montreal so john great having you here thank you okay so let's let's see where do i want to start let me go over here and show you uh ndi studio monitor and this is what you're used to seeing but one of the things you'll notice down here based on how i have this configured is it has a web control url and that web control is the ip address of the computer that ndi studio monitor is running on and then a port number and it starts at port 80 and every new instance of ndi studio monitor that you bring on bumps the port up by one so this is actually for this demo this is the fifth ndi studio monitor i have running on here but what i wanted to show you is exactly how you can get this set up so in the upper corner if you come back here there's a little hamburger menu and when you click on that and go down to settings then over to application you'll see that you have things that are called allow web control which means that i am telling ndi studio monitor i can make command remote command based control requests to this version of studio monitor through the ip and it also says i can show the web control url which we just have on there as well so we can all track the ip address for this but with the allow web control checked i now can take and use other types of scripting commands to pass control over to uh studio monitor but let's go back to the foundational one this was set up so that you can use just a web browser to control studio monitor so let me call that up here i think i have this here all right so this is when i go to that address 178 colon 84 over here this is what i have available to me in studio monitor so i can pick a source for that i want i can pick an overlay uh i can set that overlay as a picture in picture or just uh a full screen overlay i can have it record i can have it show the uv meters and i can have mute audio so this is what's just available currently inside of studio monitor using any sort of browser device and that means you can also use this on a mobile device like a phone and it should work totally fine but it does have to be on the same network or have access to the same network that you're running studio monitor on but this is the full suite of capabilities that you have inside of studio monitor already and what we're going to do is we're going to tap into them using json and vmix scripting so probably the first thing to do would be to talk a little bit let me close off a few of these things here to talk a little bit about how we're gonna do this so because everybody's studio monitor could be on different systems and in any given production you may have different studio monitors that you may want to control running on different systems we didn't want to hard code anything inside of the script itself and we wanted the script really to just be an agent that acted on some variables we can pass it and to do that we're going to be using the dynamic values inside of vmix so let me open up settings over here and if you'll notice this vmix session has it's a blank session but it has scripts and it has shortcuts in it and this is so you can see this is all happening with remote sources nothing inside of vmix directly so if i go over to the shortcuts sort of go through what i have set up here this ndi monitor ip what this lets me do is say i'm going to set the dynamic value 1 to the ip address of the studio monitor that i want to control and so if i just open this up it's basically doing i'm taking a stream deck button i set the dynamic value as the function and i'm telling it what's the ip address and port for that studio monitor so this now gives me the ability to switch between different studio monitors that i may want to control and it's very very simple this way i just put in different ip addresses into value one in the dynamic values and then for the sources the source works slightly differently so there's two parts to a source let me open this up oh let me let me get one that isn't none so uh so there are two parts to the source the first part is sort of the name of the computer or the device and the second in parentheses is the name of the ndi channel that that device is delivering so almost all ndi sources will break up this way and this will give you a very easy way now to specify when you tell studio monitor to change to a different source this lets you specify what source that is and we're putting that in dynamic value 2. so from a scripting point of view we've created a very generic script that directs commands to the studio monitors ip address that you set up in value one and if it's for a change of ndi source we're taking that out of value two but the code now will stay the same and we only have to change sort of text inside of a shortcut to get this to work so with that sort of as a background let me jump into the code and we can take a look at this so i will open up studio monitor here oh do you want to open up video visual studio code here and we'll take a look at what we have set up so because we are doing we're still using elements in vmix for the uh dynamic values we'll need to open up the shortcut uh the xml file for vmix so we are as usual opening it up and loading it in and in this script what we want to do is we want to use those two values to change the sources inside a given studio monitor so this is where we we just jump in and we're going to pull out the two dynamic values we have set up we're going to pull out the ip of studio monitor and we're going to pull out the source that we want to set that studio monitor too and so we're just pulling those out of dynamic value 1 and dynamic value 2 with the select single node so this is all code that we've we've touched on in the past so what we need to do though is when we send something to studio monitor we're sending it as a json object which is a data object inside of javascript and it requires us to set up the url that i want to send it to as well as other elements in here and that's what we have going on right here we're setting up the url and in this case we're plugging in dynamically the ip address but the rest of it is set up in a very specific way to change sources inside of studio monitor this is the ip not just the ip this is the uri the full descriptor of what has to where you have to send those messages to and so it's a configuration so we're saying this is version one of the studio monitor interface and we're sending a configuration command so that's what we're doing we're doing this dynamically and setting it up so we have this ready and we're storing that as the url source we then have the three sort of core objects inside the json object that we're going to have to send out and while i won't go into json in today's show as you know a structured representation i'm just going to talk about what we're doing with the objects so the first component is what we call the the payload this is the the command set that we actually want to send to studio monitor and so again this comes in and it's predefined by studio monitor so this is things that i don't really have a choice it's specifying the payload is saying for this version of studio monitor we want to set the ndi source and the ndi source that we're going to set is the name of that was in value 2 which is the monitor source and this is now all structured for a json format but that's all we're doing here logically in the code the next thing we have to tell it is what sort of encoding to use and we're just using utf-8 but you could use symbol ascii it's it's fairly flexible here for what you want to do but it has to know how it's going to read that and what makes this important is we need to send this data this payload uh of com of a command to studio monitor using basically sort of biting coding basically we take what's a string and we break it into a sequence of bytes and that's what we're doing with this last command here we're taking this encoded format of the json payload source so this is what we just set up here that we want to tell tell it what to to do we're encoding that as a sequence of bytes and that's just the data object that you know we're using here so it's it's something that is necessary for the way we're going to send these commands and so that's what we're going to do next so what we want to do is we want to do this as a post request so this has a very specific format so when we do a post request we need to set the method so first let me take a step we are going to do uh the http web request which uh is just a different type of web control that we've looked at where i'm creating basically based on this url that we set up i'm basically creating a connection to say now i want to be able to talk to this web point this url and send things to it and that's what i opened up here where i create a post request which is an http request set up with the url we just specified then we're telling it the way i'm going to talk to that web request is using the post method and then i'm going to actually tell it what's the content type and again this is just an encoding format so it's it's telling it what format uh to expect when i when i tell it when i'm talking to it and then i have to give it the length of the content and so what i'm doing with that because it has to know when i send it a message how long is that message when does it stop reading it so i pull the content length out or set the content length in this post request by just measuring the length of the byte source that we set up which is what we just did in the last section where we converted the string to bytes and at that point we actually will open the stream to send the json request that's where we're doing this where we say request the stream and then we are writing those uh byte source out as the payload for that length so it's very very simple what we're doing here but it just requires a set of structure steps around it to make this work so everything we're doing here is we write this out then we uh you know this will you know close up the json request and uh we should basically at this point uh you know we close things and we're done so oh so i think i i have some code so so basically let me i'll i'll correct this here i'm sorry about that but so basically all we're going to do now is we're just going to close this at the end so uh after we write the json the json request and then we're just going to close the stream so up that was a a mistype on my part but this is how we have this set up so format the command set it up as a json object open up a web request uh and stream the json object as a byte stream to the web request and close it that's how this works and so this is basically the same thing that we would do for any of the other commands and there are a whole range of commands basically everything you saw in that web interface is available as a command you can send using this model and we have this for for record on and off as well so i mean we can just take a quick look all of the stuff is the same uh in the beginning except for record this is a fixed command so we don't need to specify a second value like a second argument in here so we're doing the same thing setting up putting the monitor ip in place for the studio monitor we want to talk to and we're going through and the payload in this case just says recording is true or recording is false but after that everything is identical so this is a great template for sending any of these commands that you want to send uh some of the things in all these like if you look where i set up the url as opposed to configuration now it's talking about recording here at the end so right here this bit is different but again that's just because it's a different url a different web point that we're talking to in studio monitor to handle this command but structurally this is all the same so with that said let's let me give you a sort of a general view here of how this would work in practice so i'm going to close this all down and let me switch over to here and tell you a bit what we have here so over here i have a stream deck and across the top i have five different destinations that i can use five different studio monitors that i have uh set up here i have eight different potential sources that i can take and then i have the ability to specify a record or to stop record with these two buttons here and so the way i can do this is i can select any one of the studio monitors i want to talk to if i want to select a source for it and to change it i can select the source then print press take to put that source on it or if i simply want to record it or stop recording i select the source and then click on record or stop record and what we have in this section right over here is the four the first four of the studio monitors that i have and so let me show you how this would work so if i wanted to take and change the video in studio monitor two i could come up here and select i'm going to change that and i want to change that to source 7 which i believe is one of the tricaster interfaces and when i click take it now stops and goes over and pulls the tricaster interface for the show that we're running right here and if i want to now change that again because it's already selected i could just turn around and say no actually what i wanted was the multi-view so i could do that switch to the multi-view or i could go and say gee i'd really like the main camera here and do that where i switch to the main camera we have here and it's just the mirror of that so it's a very simple way to go and do these types of swaps and this can be useful in a lot of different cases so say you have a confidence monitor and based on what's going on you may want to show different things to the talent on set so if you had a video call you may want to show a full screen of the person but if they're doing slides you may want to show them their slides you can do this now without having to think about what's in what's streaming out in the production this basically gives you the ability in studio monitor to just pull sources off the network that are appropriate for that talent and it can be used for signage in in a show where if you want to go to segments you could just turn around and switch what you want to have happen with the signage or you could do interesting things where it's dynamic the code that we wrote could be a loop which rotates images across multiple monitors so you could create some dynamic movement behind a set where you have different uh visuals moving between different monitors and you could set that up and have that loop and do those types of switches so lots of different things that you can do with these types of controls the other thing that's really valuable is recording so if i jump back here say i wanted to go and say let's record monitor one what's going on in studio monitor one i just press studio monitor one here and then i click record and what this will do is it will go and send the record command and now you can see over here i'm recording what's here and i could just go and stop it and that will fade and then i could just pick another source and go okay let's record studio monitor three and so this would go and you know basically pick this up and do the recording and you'll see that you know when it comes on uh uh the the display that the recording has started and again you could just turn and stop these so this could be something where you have this all set up uh at an on a system and give gives you that can give you effectively iso chords and you can in your studio just turn around and say okay i want to start recording each one of these but the other piece to this is that you can use any of the other functions in this way so if you wanted to do overlays and put different overlays that you could show to talent so if you want to turn around and have a countdown timer where you didn't want it on screen all the time you could send that out as an overlay uh every now and again to say okay or if their time is up and you want to put something across the bottom that basically says stop now you could do these types of things and that could all be controlled through a simple script the other piece and all this because i've mentioned uh in our last show that we're looking at sort of moving beyond just vmix scripting to other types of script controls that we can use for automation everything i showed here would be uh node.js javascript compatible so even if you weren't doing this inside of vmix this is definitely something that you could do using something like node and pull that together as another way to accomplish everything so that's really everything that i uh you know having a show for the show so let me just jump back in and uh see everybody else that joined us so let's see so we have uh who else crystal fire productions so hi crystal fire joining us from paris that is great to see you thank you for joining us today so uh uh so gee uh just comment he says scripting is so much fun just send an email with it now need to trigger a situation to warn me so so uh yeah i mean uh you you can do uh you know joking aside you can do so much with scripting that i think it opens up the possibilities far beyond what's inside the production tools you're using directly and it lets you think differently about how you want to do control how you want to do visuals you know that whole space opens up so let's see we have mm joy uh from bangladesh mm thank you for joining us great to have you here and uh so we have uh dennis van dalen so hello again from the netherlands dennis thank you uh and we have uh maybe the great matey good to see you here again so hope all is well with you so thank you for joining us here so uh we're gonna wrap the show up today so it wasn't uh a very long show but we're gonna stay around after the show uh for our post show session so please if there's any other questions whether it's about this or anything else about live streaming production that you want to talk about just get the questions into the comments section and we'll jump in and try to cover everything we can uh and again you can you know this these can be broader questions than just what we covered here so we're uh we've got two more shows left in season two of streaming alchemy so we will be back again next week for another show and we'll probably wrap it up with one more show the week after so uh i appreciate everybody who's joined us for this season and we will uh you know we'll try to wrap this up covering everything that we think would be interesting for you that we haven't touched on around uh scripting so if i don't see you see you next week and uh otherwise we'll be back in a few minutes a few seconds actually for the post show so see in a few hello everyone welcome to the post show here so this was this was interesting because when this is something that i've actually wanted to add to our own productions and it was really it's just you know the shoemaker's children you you never do stuff for yourself really uh but this was something i wanted to to touch on and sort of integrate into our own production flow and so this was just a good opportunity to do this here at the end and it also it was a good segue because we've covered a bit in the past two shows about web requests and how to how to work with those in both vmix and and node.js when we did sort of the brief intro and this gave us a way to sort of follow on from that with the same constructs of doing web requests to control automation so i think it really sets us up for where we want to go next season with more focus on uh scripting outside of vmix scripting on its own so that definitely is a part of what we have in the plans so uh hopefully this this is something that you'll find useful as well and we'll we'll post all these up in our github repository so you'll be able to download this and i think that's what we wanted to set up was really a simple framework where you could you could just plug this in and use this without having to really rewrite a lot of code but you can still get it to do the types of things you want it just by changing some shortcuts inside of vmix and making it one run that way so let me throw this if there are any questions uh i'd love to you know to talk about them here with you so we'll pull that out so let me talk a bit about uh well sort of waiting for that oh so dee's asking and this is interesting john uh what's my opinion on using scripting or instead you know have the possibility of adding a feature request so this is this is interesting because i think there's there's two dimensions to this one one is sort of a dimension you can take as a creator doing your own scripting can let you bring something that's unique to your productions so if you have the ability to script it is a market differentiator for you so you can add a unique value whereas when a function is in the core product that's something that everybody has access to directly and can you know sort of lowers the threshold for adding that type of capability but i think there's there's really a place for both because scripting can let you go so far ahead and and do so many different things that really feature requests would only make sense for things that you think have broad application uh but i think the the value of scripting is really around that unique creative side that you have where you want to i mean when i think of scripting let me tell you a step back when i think of scripting i'm always thinking of what would i like to deliver and then how do i go about doing that so it isn't so much where the script is the start point it's really the script is the bridge that lets me get to the end point and that's how i really approach thinking about you know writing a script what what would be interesting to do that you can't do with the package out of the box so that's really you know how i think i would weigh this a bit but you know it's i think it's you know i'm sharing these things here because i i definitely believe in the power of having a community so i think if there are things we believe are globally useful i would definitely put those in as feature request and i do know that because you know so many people here have done so many creative things that you know there's still a lot of space to create that differentiation so not really a firm answer but just sort of a general thought process around uh you know your question gee so hopefully that was uh helpful so let's see so we also have calvin klock he says he's just getting here now uh so how can i catch up on all the content you have done on this topic so calvin we have two places so if you go to streaming alchemy on youtube we have all our shows and this sort of organized you know reverse date and we try to talk you know in the title specifically about what we'll cover so we have a lot of shows on scripting starting back from about i guess seven months ago six months ago uh where we we jump into scripting initially and then sort of run forward with that we are also we also have a page on facebook which also has all of our shows the facebook pages are not always as easy to navigate uh in terms of finding all the the older shows and youtube just has an easier way to navigate but it's it's on both platforms so you should be able to to catch up that way but thank you for wanting to take the time to to dig in deep to this we definitely appreciate that here so let's see so peter uh peter from berlin uh thank you for joining us here peter it's always great to see you and i appreciate you coming in on your friday night as i'm i'm i'm used to saying here it's it it impresses me that people are you know open to taking their their their friday nights and uh spending that with us so we're definitely grateful for that so so matey just said he's a c plus plus developer and i always add the functions i need because the course offers not tailored uh for individual needs uh that's i i think that that's really the case and let me sort of jump off from that because i think there's a there's a valuable point in you know what made he's talking about the c plus plus developer and adding functions one of the things that you can't do in vmix scripting directly is create function libraries and this is something that you can do in something like node.js where you can create objects and classes and have inheritance and all the things you're used to in programming languages what this means when you move outside of sort of the vmix scripting sandbox is that you can now do things where you create libraries of functions and classes and objects that you will use to create new things so you can sort of build libraries say these are all the core things that i want to do and then you use those in a an intelligent way with more logic per production to create interesting outcomes but you add to them over time to add interesting core capabilities and that's really the the model i think matey is is pointing at where you have uh you have this library that now becomes uh a palette that you can use to paint scripts and to sort of paint functionality without having to invent everything from scratch and it also means that you could do things where so for instance say i want to change a source i could turn around and say i said an argument to say am i changing this source in vmix or am i changing it on a tricaster and the scripts then can become a lot more portable because you have the ability to in creating functions to create logic that sort of hides behind that function boundary and that creates another capability where your scripts can be used across platforms and of course production so some really cool stuff as you move you know forward in looking at different ways to do scripting and having more full-featured language platforms uh that you want to do it on so let's see so so tom let me just kind of just want to make sure i uh so we have anderson springer he says hi just made it in anderson thank you for joining us so uh yeah you should be able to just you know catch up on the the replay and that would be great but i appreciate you making the time to to join us here so tom eagle so tom would say could you do today's script in c plus plus oh the the quick answer is yes it's uh it was definitely possible to do this in in c plus plus or in c sharp uh you you know basically everything that we're doing in visual basic is the db is visualbasic.net so if you had access to.net all those functions would be there for you and uh you know so this would definitely be something you could do in c plus plus uh and c sharp you know which is sort of closer to net natively but you know both would would work with net calls so so let's see uh so calvin uh clock just asked he said iblin exploring twitch which is highly interactive with viewers and i have realized that my facebook and youtube live streams would benefit from allowing users to trigger things like uh let's see like pop-up animations do you think this is possible to develop with scripting okay so this is this is another piece to sort of the scripting puzzle if you if you are using someone else's platform so facebook youtube twitch any of those they control the interactivity that happens with the end user so you can if they pass information back like if a user can raise a hand or to you know when people comment all of those things are coming off of the platform so you're one level removed so in coding those types of interactive things you can only leverage what's available inside the platform one of the things that you can do is you could create your own viewing platform for your streams so you could do something like say you streamed to youtube you could embed that youtube stream into your own web page with your own url and then have that interactive functionality baked into your browser front end because now you even though youtube is streaming the video you're controlling that interactivity with the user so that would be one way to sort of connect the two ends together and that is using a cdn to stream but still controlling the end portal that the user receives that stream in so that would give you that ability the other thing which is sort of generally available inside all platforms is some form of commenting so if you have the ability to read comments from people you could give people a vocabulary that they could use in comments that you could then process for them so you could use something like uh you know a hashtag and different letters or different terms that when you see somebody comment with that that could trigger actions on your end uh to to happen so this would be something that you know is definitely possible even in existing platforms as sort of a hybrid approach but definitely something that that would be possible sort of as a in interactive engagement tool uh but without you know the full control of the end user experience so uh and you know and some platforms do have apis so you can you know i i i haven't really explored that especially because most of what i do is is focused on uh facebook and youtube but i know twitch does have a fairly rich environment so it's possible that you know if the platform has an api and opens that up to you you could write code specifically around that for those types of engagements so a pretty broad circle of options based on the platform and how how deeply you want to to integrate with a single platform versus being more general all right so so peter just asked uh am i coming uh next year to nab so we we are definitely planning on being at nab so our you know we definitely hope that nab is planning on being at nab next year uh i think uh there is a uh a lot of pressure for them to to really you know pull the show off uh in april but uh if they if there's gonna be an nab we we are definitely planning on being there so so let's see so we have powell uh paul regards from poland paul thank you very much for joining us i appreciate it so we have from matey he's saying it's fantastic to manage the back end of the production so absolutely i think it's i think you know the operational side of video production is is fascinating and uh it it lets you extend yourself creatively both in terms of the visual creatives uh elements as well as sort of the technical creative elements because i think this is what makes this such a cool field today it's it's becoming distributed and remote so you can do this thing with broader teams everybody in different locations you have the ability to do so much yourself now uh where before you know either because of expense or because the number of people involved it wouldn't be something you could pull off so this gives you now the ability to really build teams and build productions that happen to so many different creative elements and to pull in the people with those key strengths so you know somebody who's really visually oriented could focus there while somebody who's more code oriented can focus there and other people on the workflow side and how these people interact is really where the interesting piece is because code can impact workflow and it can impo impact you know the visuals in a creative space and how those interactions happen so lots of fun stuff on the back end of productions so let's see uh tara wright he said hey man well wishes from texas ah well terrell thank you for uh for joining us here and uh hello back to everybody in texas so let's see so matey's asking is it possible uh you know it's possible to do this but you open yourself up to uh lots of vulnerabilities so i think you know i think if you're looking at this you don't necessarily open yourself up to a whole lot uh when you move scripting uh to you know when you do scripting and you're pulling in data from outside sources you really have a lot of control about what gets into your production center the other thing though is that for a lot of people when they start to do these types of things there's a lot of people looking at deploying components of their productions up into things like amazon you know for aws where you could run things so if you had different issues where you were worried about security you could do things like stream from amazon amazon has like amazon elemental and this whole infrastructure specifically focused on live streaming or you could just do something like deploy obs or vmix up there stream from there and uh you know to your provider and do scripting and automation around that so whether you're doing something that's sort of half and half where you use aws as a almost like a proxy system where aws has code that talks out to the end users and to that interface and then it has a private interface that talks back to the studio some lots of different ways to do this and you can do this again even without going aws you can just do this through sort of the architecture of your studio network where you could have what they used to call a dmz sort of a a space outside the private network that people from the internet could access uh that would then have logic that would talk into the network so there was no direct connections between the outside world and your production network but this is you know i i personally don't think there's a huge risk for you know doing a lot of stuff if it's if it's web-based and you're still driving off of that that's a a well understood technology model that i think there's a lot of very good tools in place already to you know create the security that you'd want but that you know everybody has to sort of weigh that for themselves so that's not something i would ever tell somebody oh sure just go ahead and do it but you know i i think you know from how we would approach it it would probably be something that i'd i'd be pretty comfortable so let's see so so ghee uh was saying still prefer scripts externally like applications and i i i agree i think vmix scripting is great as a sort of a quick platform to execute things but if you're doing this as part of a business where you depend on these scripts and the maintainability and the ability to assemble and test you know quickly being in a sort of an external scripting platform an application platform i think is a lot of advantages for this so i definitely agree with with gee on that so so let's see so maybe saying would you stay would stay away from giving anyone to manipulate the stream yeah i mean it depends on what you're talking about so if you had something where say you had multiple cameras and you wanted to give people a uh the ability to pick one of multiple streams that you could be sending out that could be something uh that i would not be afraid to give to users because you're basically giving them the ability to pick a stream that's already there but it's not impacting the streams themselves so in that sense i think you know this is something actually we thought about doing something like this where we were going to have sort of cameras on the people doing the switching and sort of running the production so for people who wanted to sort of see behind the scenes we'd have the mainstream but we'd also have sort of uh little windows on the side and what we streamed with sort of a composite of what was going on in the production we decided not to do it for a variety of reasons but this was something that you may have something that you'd like to do like that uh where people could pick what they wanted to hear uh what they wanted to see and you know that could be for the for languages so people could say gee i wanna i wanna go to english i wanna go to spanish you know i want to go to french that type of thing where you know you could have different audio tracks that you'd use and do those types of things so it's i wouldn't sort of set it as a blanket no i wouldn't do this but you know you definitely want to make sure you can maintain the quality for everybody and that one person in the audience can't destroy the experience for anybody else i guess that's a good way to sort of sum up the thinking on that so andrew so andrew said hello and he's watching from the philippines so andrew thank you for joining us so uh so so maybe saying he means to give some sort of control to a view you may get uh distributed denial of service uh yeah i mean it is it is possible but uh that would be something where you know if you're doing this in your own front end uh yes you could get that but then that could happen you know with a bad actor once they have an ip address to go after you know wherever you're you're hosting your show that could definitely be be you know something that they could do uh i understand the concern i know the the issue that has happened on twitch where you know they've you know there's been sort of that mob flash mobbing on twitch that has disrupted things so i don't really know too much on the technical side of uh what's going on with that but definitely you know if that's the concern the interactivity you could do certainly could be through uh different types of interactivity of comments where you're just coming in and yeah i mean the other thing also to keep in mind is that you throttle everything so if the front end is sending messages to your back end uh that front end is running inside of chrome or edge or whatever browser the the person is using so if that you know that can actually have some logic in it to throttle to prevent people from sort of spamming messages back and so if somebody wants to do this it's probably something that's going to happen at the much lower level where they have ips and ports and they're going to go after you that way for some sort of denial or they'll just be disruptive you have you know comment spam and other things that you know people can put in to platforms so i so i i i understand the concern in this so it's definitely something that you should weigh but my gut feeling about these things is that for the most part you you probably you know wouldn't be too exposed with any of this so let's see so uh calvin said uh he's been looking for these keys for a long time uh vmix social is unique in its ability to bring native comments from youtube facebook twitter twitch etc and scripps unlocks these uh you know these comments uh yes the i mean we've done a few shows on uh dealing with things coming in through vmix social and it it is very very powerful i mean a few weeks ago probably a month ago we did a show where we took the of everybody that posted a comment we took their avatar and we put them up in a basically a sort of a template that showed everybody that comment on the show almost sort of like a little badge so you could sit there and sort of acknowledge the people that were interacting with the show by showing their avatar on the side of the screen so we showed how to do that but we could take and use what's coming in in comments they post or you know any other things that you know are available through the the vmix social channel and there are a fair number of fields that you can pull and that then all becomes something you can script and not only can you script it in vmix but if you have access to vmix's xml then you can script it in other scripting tools as well so pretty broad uh set of options for working with uh vmix social you know in as a as a scriptable automation platform so so jp nadu so jp is asking can you touch on sending a stream from vmix to remote location without sending to a streaming site the best way to do this would be something called srt secure reliable transport vmix has that baked in natively and what you can then do is either in another vmix or through any one of numerous srt applications you can pull that feed out and leverage it remotely and the great thing about srt is that it has it has a slight latency to it but for that latency you get a lot you get the ability to request drop frames so if you're dealing with marginal internet connections you have the ability to basically if you're missing frames srt will go back and try to to collect them and reassemble a solid signal for you so the quality of the signal tends to be very high and you can adjust the latency in srt to accommodate poor quality in your network so it you give it enough time to go back and collect any dropped packets that may happen and so that really is perhaps the most effective way to do this and the other thing is that there are lots of simple devices now that will handle srt both in and out so you could you could take like have a magewell device uh or a kilo view device i believe bird dog is adding srt to uh their devices now so this would mean that you could send the stream from vmix and have a small little device sitting on the back of a tv set that could display that as video to a remote location like an auditorium so if you're doing something with like an overflow room and you needed to to set up tvs there srt would be perfect for that and can give you really high quality and the latency is is when i talk about adding additional latency you're still talking something like under a second so you know 500 milliseconds 250 milliseconds so you can definitely fit this into something that for the user experience would feel real time so so yeah so so so uh gee is also asking us to i know you i know you asked last time gay sorry we haven't we haven't uh set all this up so we are going to be we're going to be doing uh an overhaul when we close out season two so there would be a lot of things that we're going to be upgrading and uh hopefully improving in the process so i don't always equate the two sometimes upgrades can be uh you know a step back but you know we're going to try to take care of a lot of different things when we have a little down time here so so let's see so uh jp uh was with adding that ndi 5 seems to require opening ports on the remote side so as as far as i know uh it's something that you can control on your side for for for having though those ports so it's the sort of thing where if you needed to bring people in from a remote location you could still do it in a studio where you have control of the network infrastructure so say you were broadcasting from a sports venue or a hotel uh conference center something like that you wouldn't have to get them to do anything special on their side this would be a one-sided exercise and that's that's definitely true for srt uh though i'd have to i'd have to to check that on the uh the ndi5 side i don't remember off the top my head on that but uh so i think you know that's an acceptable thing because it it gives you that security where you have you are very specifically allowing a certain system on a certain port to to make it through to you uh and you know that's a fair tradeoff especially because it's only on one side so it's a side that you can control so you know but it's it's something that uh hopefully will work for you so let's see so maybe uh was talking about he says as he understands that it comes in vmix25 so with let me let me switch uh switch the context here so we in what we were talking about is the previous uh question about being able to stream something to a remote uh location so in in vmix 25 they're going to be using a protocol called hls which was i think originally developed by apple and it's a streaming protocol that goes to a browser and you know most browsers you can type that in as a url and you'll see the stream that way as far as i know that is still designed around something that is on your local network where you're doing it so this is not something that i believe would work if you wanted to stream something to a remote location that you'd still need srt uh the key with both of these i mean using they both use basically a reliable udp type protocol so the ndi and srt so that's the point that lets it go over the internet that's why you can't really even at low band with ndi you can't really just stream that out over the internet and have somebody connect remotely you could theoretically if you had really good internet that would work but you it isn't designed to be transported across uh a sort of a lossy non-reliable network and that's what the internet is even a great internet is still less reliable than a local network so that's why they they developed bridges really to to you know cover that last hop in the ndi ecosystem and and do those those types of remote connections but that's something that uh is you know i think vmix uh uh will have that for the local but i think for remote you still you end up using something like srt or ndi bridge so you know i mean it is possible you know that port forwarding if you did that you you could make something like that work so it would be uh it'd really be a question of how much bandwidth the hls stream uh would take and whether that's something you could reliably stream out but you know that's we'll wait and see i haven't i haven't gotten my hands on the new vmix yet so uh we'll see what they said they will be doing you know early releases starting soon so we'll see so let's see so so he's asking me if i need a tutorial on how to quickly change a font in a title so uh if i if i get stucky i'll i'll make sure to to keep you on speed off with that one so thank you so uh so uh so maybe saying it can uh is it can be encapsulated in a in a vpn connection so yes uh and again i'm i don't want to stray too far out of my technical lane here uh i am not sure whether vpn provides the reliable transport element or whether it simply provides the secure point-to-point connection and you're still in terms of the quality of the connection you're still working within the framework that the internet provides so not a hundred percent sure on that but uh this that would be something to check because i you know it's it's possible it may be something that some vpn providers because it's it's logic on both sides may may add but uh i'm not sure you know it may be something that's out there but a good point to to keep in mind if you have that so so so let's see uh so uh so so gee is laughing so thank you gee so so uh we have uh david he david just jumped in and said he arrived late today but i will watch later david uh thank you and thanks for popping in to join us even if you're late everybody's welcome here and uh so uh uniquely the same was was saying he uh he was trying to you know understand more about the distributed denial of service uh concern uh when he's asking mateys so that maybe i mean that's something that that you could could certainly you know share but i think it's uh it's everything in this you know i think to be fair to everybody everybody has different experience with securing uh their their own environment and it is not a simple thing to do so for any case that anybody has about what they be willing to do or not i i give people a ton of latitude because when you have a production that gets disrupted because somebody hacks in or does something that just ruins the the overall production or forces you to go to some sort of deprecated backup production model uh to limp by that's not something anybody really wants to deal with and uh that that can be painful so i i give people a lot of latitude when they say they're not comfortable with something going across the network i i i can give an opinion but it's an opinion based on my knowledge of you know what's happened to me and also the the confidence i have in the technical people around me so i mean which is another thing a lot of people are in this because they're creatives and they're not technologists and as more these things move to uh deeper technical realms i think those people should definitely approach things cautiously because there could be vulnerabilities that somebody from a technical background wouldn't recognize but you know if they weren't addressed could lead to you know all sorts of you know technical penetrations and other things that you know you wouldn't want to have to deal with in a production so so uh so so so i okay gee gee let me know exactly what i need to do so uh i i guess i can take your speed dial now so so so thank you so uh so yeah so you know maybe's point was that if you get flooded uh you can uh you know it could make your your stream crash i i i think in all of these things uh it it's gonna be a question of you know the front end if the youtube or facebook are are hosting the front end and what the guest is interacting with those would probably be fine and i'm sure they have some throttling mechanism in place to stop too many things from coming in it's also ultimately if you're just reading this as some sort of script it would be something that you could manage from that end but if you're doing this as your own front end yes there are exposures that you could have with that so let's see so has anyone figured out how to get google doc into vmix as a data source not a google sheet uh i took a look at this i know this was something that the gee and i were actually joking about uh on a pass show uh you know that he said i it's all mine he didn't want to touch it uh i have not been able to to get that to happen it is definitely something that i think would be interesting if i could pull that in as text and i'm still looking at what the options are for that but i haven't had enough time to really dig in and you know to the google api and see what is possible around that so you know my apologies uh jp but uh maybe this is something we'll be able to get to in season three so and so terrell is saying thanks for scripts uh you shared on facebook this hacking into events never crossed my mind so yeah i mean in all of these things uh you know ultimately it is less about the front end itself and more about the infrastructure so giving people the ability to interact with you in and of itself is not going to be a vulnerability uh it's how you can handle different types of events that could come up where people could do things like spam you how do do you have the ability to do throttling and to segment your network or shut people off if you see ip addresses that are sort of saturating the inbound queue so things of that sort so in all of these things these are general business problems as well you know how how do you stop somebody you know in any one of the public sites out there from becoming a bad actor and being disruptive to other people so i think the goal in all of these things is first and foremost is to protect the integrity of your studio uh and then secondarily to protect the integrity of the production so you don't want people to be able to disrupt that and if you can accomplish those two things where you know you have some plan in place to do that then the risk goes down but as i said you know once people have an ip address and once people have uh you know different types of ports that they you know can connect to you you end up having some level of you know sort of distributed denial of service some of it also comes down to why why would somebody do it to you uh so you are more exposed if it's a high profile event because most people from a hacking point of view uh want to get the notoriety associated with i brought down the you know the big stream of the super bowl or whatever you know that's that's bragging rights i mean if somebody comes and brought down the streaming alchemy show i don't think they'd be uh posting that on their you know their twitter handles or uh you know uh or either twitch handles or anything like that so you'd end up you know you'd end up yes being disruptive but i don't see what we do as as being an attractive target though you you never know uh so it's it's something to uh to to keep in mind though so so let's see gee says how to freeze a local ndi feed copy a big file over that network yeah yeah there well there's there's lots of ways to freeze ndi feeds uh if you are you know not paying attention but uh yes anything that sucks up bandwidth is is is going to be uh disruptive to ndi and i think you know this is sort of a different vein than what we were just talking about but i think as you think about building ip focused infrastructures you really have to think about how you route traffic around your network and i say network as if it's monolithic and and i think what you'll find is that you'll be using multiple networks as part of your production studio so things that you'd want to do as downloads and other things would go all happen on one network and all your ip video would be another and things like dante which people are used to right now that's all your audio that can be another network so as you think about setting up ip based production spaces you really do start to look at the network architecture and network segmentation is becoming important and that's actually the big attraction for a lot of people to deploying productions in aws uh and that's the network connecting all the devices there are enormous i mean based on the instance you use you can get 10 gig 25 5 gig and 50 gig pure uh device connections uh for for the multiple instances you spin up so those are massive bandwidth but these are the types of things we need to start thinking about so if anybody were looking at putting in a new studio i would at this point be saying do not think less than 10 gig for what you want to do uh so when we put this in uh the studio in which was probably about uh six years ago when we did this as an internal production studio and testing we did it with one gig but we have a lot more stuff now that's moved over to 10 gig in this and so we have sort of a 10 gig uh segmentation and a one gig segmentation in the in the network so these types of things you know that bandwidth becomes really important so you know pulling off riffing off of uh gee's point you end up with uh you know there are lots of ways to soak up bandwidth and so part of that is have a lot of bandwidth and the other is do good segmentation so so let's see so so uh let me go back we oh sorry we've had a lot uh so let's see so mate he was saying long live streaming how come he would break his heart we got got to you know well thank you for that that there's a a lot of people here that definitely appreciate everybody that comes and joins us so so we have uh vita de broadcast so he didn't watch the show yet but since the topic was about ndi going to share a great piece uh going to share a great uh piece of software that i used the past two days ndi router from ndi stuff uh i actually have heard of that that that would be something uh that i i definitely should take a look at so thanks uh vita for for calling that out because that's uh that that could be something that would be very interesting so uh i'll i'll take a look at that because they i that name has has hit me in the past so definitely something to look at so they're saying it's amazing to limit the amount of ndi inputs into vmix and control the bandwidth so yes so in the context of sort of looking at an ndi router it's basically like a a switcher outside your switcher for ndi uh almost what you would do with an sdi router where you can turn around and say i have six feeds that are coming in to my switcher and i just pick once on each one of those feeds uh coming in so uh definitely could be something that would let you maximize a one gigabit network infrastructure if uh you needed to you know switch sources in and out to keep in the six or seven ndi feeds you can bring in on a one gig connection so let's see so jp uh is asking the possible solution for more text instead of google sheet data source is shared powerpoint uh yeah i mean if you if you want to uh you know bring different types of things so i again the use case i'm not sure exactly what you want to do other than display the sheet uh so if you want this for text there are different ways to do that uh and you know there are different sort of streams that you can can can use to send in so based on limited text things like rss which are native in vmix would let you take in blocks of text that can be you know formatted and then pulled in in sequence so there are different ways to bring uh text text from a remote location into a production so uh maybe if uh you you can send send me an email or or a message uh on on facebook or something uh we can dig a little deeper into what you're you're looking to do with that and there may be other alternatives that would work now so let's see uh so uh gee is talking about use x copy and throttle the file transfer bandwidth uh so yeah i mean there you know things like like x copy we'll let you you do that so you can do link things like that as as a background but uh you know that's uh there are there are different ways to move text around uh whether it's it's full files like he's talking about or or or text you know that jp is talking about so that would be something that we could uh we could talk about if you you want to contact me directly so and so uniquely the same says i notice you're using restream can you comment uh on using that instead of broadcasting to multiple sites from vmix so the there's two reasons uh we're using uh restream first is uh we want to preserve our upstream bandwidth because our internet here is is we have like we're paying for good internet uh so we're supposed to have uh you know 500 down and 50 up but there's lots of times where the variability in that is poor and so we don't have a uh a reliable uplink and so we stream gives us you know we send one feed and that can be uh distributed if we did vmix we'd have to send that same feed multiple times and that would just multiply the bandwidth that way uh the other thing about restream is it does give us some usage statistics uh which can be useful for for knowing you know how uh how many people viewed on different platforms and it gives us a better sense of where to to target so you get something you know positive out of that but you know that's that's really it there's there's no you know if bandwidth weren't an issue uh we probably would do multiple streams out but uh you know it's there's no real downside for us with with restream in this case so we're you know we're very happy using that so let's see so uh john was just mentioning he said for any production environment you want reliability and stability security is an important part of reaching those goals so absolutely and that was really when i when i sort of put this as a a stack thing you know securing your studio environment is top priority even if you know people can be disruptive to your stream to the production going out that's you know that's very different from having people interrupt your studio operations uh so i do see i do see you know anything that you do with your studio uh from a production point of view you know there's there's a whole lot of rules so it's not just around security is a very big part of that but it's also like change management you know when you do updates uh you know when you do them how how how often you do them how you test them uh you know so all these things come into sort of the framework for that the architecture of your network you know do you have a workflow does your network support the workflow you want to do does your net does your network support the infrastructure you want to run on it and you know so all of these things that that sort of come in but john you know it's a really good point here is that getting that reliability and stability is is paramount and you know we we all make mistakes and things that we set up and try and do and some last minute stuff we throw in but as as a as a goal our aspiration should always be to be like i i want to keep this network that we're running our production on as clean and as reliable and stable as possible and that means managing security and changes and all the other things so very good point john thank you for raising that so let's see uh so vita the broadcast says this also helps uh with stuff like teams that uh outputted link to the names of participants this way you don't need to touch your vmixburd.org or other hardware or software so things like teams uh so so yeah so if you're doing something with the ndi router what you're going to have here is you know the ability to you know because teams could put out lots of ndi feeds uh with individual people even though the resolution gets so smaller as you jump down there so this would give you because the name of the person's in the the name of the ndi feed that gives you an easy way to uh to pick people out of a large feed so absolutely that makes a lot of sense so thank you peter uh let's see so okay so yeah so uh media is mentioning to to to jp that using excel spreadsheets or a sql would do the trick for you know moving moving text around and that's you know that's absolutely another another way to do this so yes thanks matey so we have aziz videographer so he says oh my god you're alive hello from germany so aziz thank you for joining us then welcome and again i i'm amazed that people choose to spend their friday nights here with us so but thank you we definitely appreciate it so so let's see so does it does you know i think everybody could sort of read the comments because there's a good discussion going on between uh media and njp about different different ways to approach uh jp's problem and and what jsp is trying to do so that's that's definitely cool so that be something to to follow up on so aziz is asking have you tested vmix on windows 11 uh pity they don't offer a mac version so uh so i'm gonna i'm gonna speak from the heart on this one if you haven't upgraded to windows 11 hold off uh we we've updated vmix runs on it uh i i haven't run productions on it uh so i there's no at this point compelling reason to go to windows 11 unless you are using the new generation of intel chips sort of their 12 xxx series of chips uh which have which need the different scheduling algorithm inside windows 11 to use their efficiency and power cores which is sort of what the windows 11 is all about i am still trying we we put it on a few systems and i am still trying to get used to it it it took away stuff that seemed like dead obvious that you'd want to have available all the time like the ability to switch between different like speakers versus headset you can do all this stuff but now it's like two clicks or three clicks where you just be able to right click and do stuff so it there is nothing compelling in windows 11 uh outside of the the scheduling algorithm for the new intel chips that i've run across other people may have different experiences but this would just be my advice windows 10 is battle hardened and it does everything you're going to need to do for production so i wouldn't be in a hurry to jump to windows 11 yet and like all things you know these things will take a while to mature and windows 11 will mature just like windows 10 did so uh i wouldn't necessarily want to take all the initial arrows from being part of that process so my own opinion on that one so uh so all right so uh so i i guess you know i want to make sure that uh you know i i covered everything that we have up here so uh so you know vita is uh saying that uh is there any other tool on the market allow scripting like fema scripting that you're aware of i so what what we're going to be doing this is something we're going to be focused on vita in next season which will probably start uh at the end of january uh is we're going to be looking at node.js and you have the ability because vmix as a platform publishes the xml for the state of everything inside of vmix and you can continue to refresh that those are just commands that you can use from any language to find those states and then it has an http interface to it to let you run shortcuts so you can use any scripting language that can read the xml and execute web commands uh effectively that you know doesn't limit you too much that most languages can do both of those things so that's why we're jumping into node.js uh next season and you know i think that will probably get you where you want to be if you really want a a very robust development platform to do these types of automation uh projects on so so uh matey just made the point that he has been on windows 11 with no issue and i i will say the same thing i had no issues with windows 11 with the software mine is just a an experiential issue how how it presents things to users and where it sticks things and things that i'm used to so some of it may be just me adapting some of it may be you know just poor choices by people who don't use things the same way that i do so uh so these are that a lot of these things are going to be personal preference but yeah i agree i mean with windows 11 should work fine we haven't seen anything but again i don't know if windows 11 is giving you anything that you aren't getting with windows 10 right now and one thing i can tell you uh is that if you're running on an amd system uh any of the ryzen uh you know gen 2 gen 3 or gen 5 you know sort of the the newer platforms too uh there is supposedly a performance penalty and it not an insignificant one you know uh well over five percent so uh you know so this is something that uh you know is is definitely a you know something to keep in mind with this so let's see uh so let's see so gee was saying uh is able to uh vmix is able to provide high performance hd video mixing uh by utilizing direct3d uh it's exclusively available for windows oh so that gives talking about you know why it isn't available on on os x and yeah that is that is true there's it it can be very difficult to move to os x uh if you have used some windows uh components that are like you know direct 3d if you're using uh you know cuda and and and in the nvidia space you know apple you know doesn't you know provide you know an equivalent they give metal and you know metal is great but it it doesn't you know it doesn't translate one to one and there isn't metal on the windows so you know it would force you to do certain things you know differently between the two and that creates support nightmares i mean speaking as a software development company uh when you have different code bases that you have to support and try to keep in sync it it can be really challenging and i think a lot of you probably have seen this with nutex ndi tools the ndi tools for mac are are no way near as full featured as the ones available for windows like with ndi bridge as just one example so you have this where maintaining multiple code bases can be very very difficult so uh let's see so uh aziz is saying vmix didn't uh uh offer any black friday deals i and i think i i understand where you know the folks at vmix are coming from i think they price their products pretty aggressively uh and what they don't want to do is is is sort of create an artificial peak in how they would sell uh and especially if uh you know the products are not like outrageously priced uh if if somebody's able to come back and give you you know 30 off on a black friday deal there's a there's a lot of margin in that because they're still making money so you know you you you sort of look at this and say you know i don't want to create something where people hold off buying my product because they think i have some big discount that i'm going to give at some other point in the year yeah that's very difficult as a business so a lot of understanding for why vmix would do that and i do think their products are you know are well priced for the market so so let's see so okay so uh matey just jumped in i i probably have missed some things because there's this there's a lot of comments coming in here but that maybe just said that on a ryzen 39 60 x uh the last patch fix fix uh the schedule issue and it runs like a champ so that's great i i have not uh i have not tested that so uh so the 3960x is that the uh the threadripper family now uh so i'm not sure that but uh so so that uh you know definitely uh that's definitely good if they if they're if they're sort of getting the amd family in line with that so let's see so uh so it's used to saying he hates subscription based bmx uh i i want to buy once and never pay again uh yes i i aziz i understand with a you know the frustration comes with uh when you're dealing with uh subscriptions uh you know and i swore i'd never do anything with uh adobe and the creative cloud and i've been subscribing to it for years now so you know sometimes it's uh you know it's just the sort of thing where you you deal with it and so to say you know sometimes the the model can actually work uh and uh you know i don't know it's it's going to be one of those things where based on how often you'd update and everything else it can be uh it can make economic sense and also as a business sometimes it makes sense because it lets you space out payments in something that's easier uh to handle and and more predictable than doing big purchases and upgrade purchases so it can be uh definitely for you know something for for some but i agree it's not something everybody likes so all right i think we've covered a lot we've run really long today and uh this was this was a great post show so thank you everybody for uh really engaging in this discussion it's been a lot of fun so we will wrap up this show now and uh i think uh as i said we should be here for a show next two weeks and then we'll probably take a hiatus for the holidays and get ready for season three so uh we will see everybody next week and i want to thank you all for joining us this week take care bye
Info
Channel: The Streaming Alchemy Show
Views: 416
Rating: undefined out of 5
Keywords:
Id: FOyWNRX2deo
Channel Id: undefined
Length: 94min 54sec (5694 seconds)
Published: Sat Dec 04 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.