Can I stream 3 AXIS IP Cameras to 3 Live Streams on YouTube at the same time.

John Zapf

Member
What are they actually called, and what are you actually putting there?

Put the double-quote character around anything with spaces in it, as a first guess. Spaces on every system, are used to separate arguments, so it's probably looking for just the first part of the name and not finding *that* as a complete name. For example, if you had a profile called:
My profile
and you did:
--profile My profile
then it would look for something called:
My
and give an error for:
profile
because that's not a valid argument by itself. But if you did:
--profile "My profile"
then that should work.

I've gotten into the habit of avoiding spaces altogether if at all possible. Use dashes or underscores instead, which means I actually have *two* types of spaces that I can use as different levels of delimiters, all without running into this problem!
Thanks that makes sense I guess the only thing that's actually giving me a problem now is the profiles aren't saving. When I make a change to the profile I don't see how you save that change when I change the scene on a profile and then I open that profile back U this scene isn't saved. I can make 4 profiles under the profile tab and make them all different but yet all will remain the same when I click on them one after another they don't change I don't know how to separate them they should all be separate they should all be different profiles but they're all the same and there's no way to save them I don't understand
 

John Zapf

Member
For example I will make a profile called camera 1 and under scene collection one called camera one with text. Then I'll make another profile called camera 2 and under scene collection a scene called camera two without text. And if I change something in camera one profile it applies that to camera 2 profile if I change something in the camera 2 profile it applies that to the camera one profile they're not separate profiles I don't understand. No matter what I do the profiles under profile are not separated I can make five profiles and make them all different and they will all be the same if I make a change to one that change is made to every single one of those profiles so I don't get how profiles works.

Maybe I'm missing something here maybe I just need to open up individual scene collections and not profiles that seems to be working out better I don't know?
 

John Zapf

Member
Yeah so the profile thing is weird that I don't get that at all they're all tied together you can make 10 profiles in there and name them all different and when you change one it changes all ten of them I do not understand that.

Other than that I still just need to be able to get three different streams to open up in a Linux box when it boots. I need to be able to control them individually have them open up on boot and not give warnings that they can't open. So far in windows the easiest way is to have the three separate folder method I don't know I'm still working through this.
 

John Zapf

Member
I tried all that every syntax I can think of.

I'm just doing some testing right now do you know why about every 2 minutes it goes black for a second, it's very consistent with that I don't know why it keeps doing that it's not the camera the regular stream is fine that's just the new stream on the OBS. This is just a test stream I can't leave it up because I don't have the bandwidth I have three other cameras going. https://youtu.be/idknV676S74
 

John Zapf

Member
Yeah very frustrating no idea why this stream keeps going black every two minutes for about a second https://youtu.be/idknV676S74
like I said it's not the cameras the cameras are streaming right now live also and all those streams are fine they've been streaming for six months. I've never had it go black so now that I'm testing obs it's going black every two minutes I can't figure out why. The computer I haven't running on now is very powerful that's not an issue at all it's got 40 cores in it and a $2000 video card that's not the issue at all. Like I say I just need to figure all these little things out before I switch over from what I'm using now to OBS and this black screen every two minutes is not going to cut it.
 

John Zapf

Member
Like I said I'm gonna end up getting a dedicated computer for OBS and run it all on Linux. But right now i just gotta keep testing stuff and working through things to make sure this is going to work for me in that black screen every two minutes is definitely a red flag at this point.
 

John Zapf

Member
And now I see also it looks like it will only read so much text from a file. So maybe this isn't gonna work out either. That file is going to end up being pages long and it looks like it only reads a few lines hmm there goes black screen again hmm this is having lots of issues. But that's my job I'm an IT guy for 32 years and I can take any computer or any piece of software and find all the flaws in it within minutes.
 

John Zapf

Member
Yeah I need it to be able to read from a file with unlimited text is there a plug in for this the one that's built in there only does a few lines of text.
 

John Zapf

Member
Looks like it stopped going black. that could have been an up-bandwidth issue. no that I know thats what OSB does when it runs out of bandwidth, that's good to know.
 

John Zapf

Member
So basically after hours and hours and hours of trying to just scroll some text it boils down to a problem with use custom text extents. That limits the amount of text but that's the only way to get word wrap on. That's terrible. I need word wrap but I can't use the custom text extents because it limits the amount of text, any ideas it's so funny I always try to do just the most basic things and there's nothing out there that allows me to do it, story of my life I guess that's why I'm an engineer and I have to make stuff all the time to do what I need to do.
 

qhobbes

Active Member
Create a file of the text. In the Text source properties, check the box for "Read from file" and select that file.
 

John Zapf

Member
Create a file of the text. In the Text source properties, check the box for "Read from file" and select that file.
Yeah I did that. And to get word wrap on you have to use "use Custom Text Extents" and once you turn that on it seems to limit the amount of text that you can use. Like I said I'm very good at figuring things out and I will not even ask for help on a forum until I've really done my best to try to figure something out first. So again if there's any other text add on or another way to do word wrap. That would be awesome because the whole purpose of doing this is I need to scroll say 50 facts and right now it will only do 3 and then it repeats it won't read anymore text no matter how much I have on that text file.
 

John Zapf

Member
And there's lots of bugs with that text GDI plus. When I pick read from a file it's OK but it's huge so is it so I resize it using edit transform. But then the fonts still too big so I changed the font size and then it goes haywire it resets the edit transform I have to do the edit transform again and then the fonts are not even readable. And then if I edit the file that it's reading from it resets the edit transform so that's really not working well a lot of bugs in that.
 

John Zapf

Member
And there seems to be around a 362 character limit even reading from a file. So again is there any other plugin that will do text on oh OBS this is not that many characters I I'm gonna have thousands.
 

John Zapf

Member
So it looks like I'm gonna end up having to do a slide show and just make 50 slides with the information on it the text would have been a lot easier but I think the slides are going to be the only way that works.
 

John Zapf

Member
And having the OBS in three separate folders is going to work the best for me that way each camera and stream is completely separated. Unfortunately I don't know if that method is possible in Linux it's very easy to do in windows but I don't know if there is a " --portable " way to do that in Linux? I may have to run it in windows :(
 

AaronD

Active Member
Like qhobbes said, you need to switch BOTH the profile AND and scene collection for each instance. obs --help to see how to do that.

That section of my bash script is:
Bash:
#
# Start OBS Master with options
#

echo
if [[ "$LOCAL_AUDIENCE" = "0" ]]    # 0 for "success" or "yes"
then
    echo "Start OBS Master (feed to meeting)"
else
    echo "Start OBS"
fi
obs --verbose --unfiltered_log --disable-updater --multi --studio-mode --profile "$OBS_PROFILE" --collection "$OBS_PROFILE" --startvirtualcam > /dev/null &
PID_MASTER=$!
sleep 10

#
# Local Audience?
#

PID_SLAVE=""
if [[ "$LOCAL_AUDIENCE" = "0" ]]    # 0 for "success" or "yes"
then
    #
    # Start OBS Slave
    #

    echo
    echo "Start OBS Slave (local display and recording)"
    obs --verbose --unfiltered_log --disable-updater --multi --studio-mode --profile "Meeting_Slave" --collection "Meeting_Slave" > /dev/null &
    PID_SLAVE=$!
    sleep 10
fi
And you can see how some of the logic and status-reporting works as well.

The PID_x variables are used later to clean up automatically:
Bash:
else
    #
    # Wait for User OK
    #

    echo
    echo
    echo "Wait for Done..."
    echo
    zenity                              \
    --info                              \
    --width=350                         \
    --title="DO NOT CLOSE THIS ! ! !"   \
    --text="When done:\n1. Click OK here\n\nEverything will clean up automatically."
    echo
    echo "Done, cleaning up:"
fi

#
# OBS Slave?
#

if [[ "$PID_SLAVE" != "" ]]
then
    #
    # Close OBS Slave
    #

    echo
    echo "Close OBS Slave"
    kill -TERM "$PID_SLAVE"
    sleep 5
fi

#
# Close OBS Master
#

echo
echo "Close OBS Master"
kill -TERM "$PID_MASTER"
sleep 5
  • zenity is a dialog box, that waits there until the user clicks OK. Lots of other options too, that are used in other parts of the script, but that's what it does here.
  • A backslash \ allows a newline in the middle of a single command, without breaking that command.
  • kill is kind of a misnomer. It simply sends a signal out of a universally predefined list, to the Process ID (PID). The process then decides how to handle that signal. There are standard ones to save and exit, just exit without saving, print something to the terminal, and one that the operating system intercepts to force-kill it. What I'm using here is not the force-kill signal, but the close-gracefully one.
The 3-line comments:
#
# Comment
#
correspond to a flowchart that makes it easier to see the entire startup and shutdown sequence, and understand all of what it's doing. That's attached here too. The sections of script above are the top and bottom of the center section of the flowchart.
 

Attachments

  • Setup-Script.pdf
    27.5 KB · Views: 4

John Zapf

Member
Like qhobbes said, you need to switch BOTH the profile AND and scene collection for each instance. obs --help to see how to do that.

That section of my bash script is:
Bash:
#
# Start OBS Master with options
#

echo
if [[ "$LOCAL_AUDIENCE" = "0" ]]    # 0 for "success" or "yes"
then
    echo "Start OBS Master (feed to meeting)"
else
    echo "Start OBS"
fi
obs --verbose --unfiltered_log --disable-updater --multi --studio-mode --profile "$OBS_PROFILE" --collection "$OBS_PROFILE" --startvirtualcam > /dev/null &
PID_MASTER=$!
sleep 10

#
# Local Audience?
#

PID_SLAVE=""
if [[ "$LOCAL_AUDIENCE" = "0" ]]    # 0 for "success" or "yes"
then
    #
    # Start OBS Slave
    #

    echo
    echo "Start OBS Slave (local display and recording)"
    obs --verbose --unfiltered_log --disable-updater --multi --studio-mode --profile "Meeting_Slave" --collection "Meeting_Slave" > /dev/null &
    PID_SLAVE=$!
    sleep 10
fi
And you can see how some of the logic and status-reporting works as well.

The PID_x variables are used later to clean up automatically:
Bash:
else
    #
    # Wait for User OK
    #

    echo
    echo
    echo "Wait for Done..."
    echo
    zenity                              \
    --info                              \
    --width=350                         \
    --title="DO NOT CLOSE THIS ! ! !"   \
    --text="When done:\n1. Click OK here\n\nEverything will clean up automatically."
    echo
    echo "Done, cleaning up:"
fi

#
# OBS Slave?
#

if [[ "$PID_SLAVE" != "" ]]
then
    #
    # Close OBS Slave
    #

    echo
    echo "Close OBS Slave"
    kill -TERM "$PID_SLAVE"
    sleep 5
fi

#
# Close OBS Master
#

echo
echo "Close OBS Master"
kill -TERM "$PID_MASTER"
sleep 5
  • zenity is a dialog box, that waits there until the user clicks OK. Lots of other options too, that are used in other parts of the script, but that's what it does here.
  • A backslash \ allows a newline in the middle of a single command, without breaking that command.
  • kill is kind of a misnomer. It simply sends a signal out of a universally predefined list, to the Process ID (PID). The process then decides how to handle that signal. There are standard ones to save and exit, just exit without saving, print something to the terminal, and one that the operating system intercepts to force-kill it. What I'm using here is not the force-kill signal, but the close-gracefully one.
The 3-line comments:
#
# Comment
#
correspond to a flowchart that makes it easier to see the entire startup and shutdown sequence, and understand all of what it's doing. That's attached here too. The sections of script above are the top and bottom of the center section of the flowchart.
Ok, I have looked at obs --help and I have watched lots of vids, and read.

I still don't get the bash script, where it is where you put it where you edit it or anything about that. I'm not a Linux God. My SMTP server is Linux my web server is Linux my Plex media server is Linux and that's about it. I love Linux for its stability and how easy it is to keep everything up to date but as far as diving into the code of Linux and doing any of that I'm not so fluent with that. I've been doing windows servers in exchange sequel domains, all that stuff for 32 years... So I'm very fluent at how to edit and do everything there but when it comes to getting into the code of Linux it's all kind of new to me.

Like I say I'll probably just load windows on the computer I'm getting to dedicate to OBS studio, and then keep each of the three cameras in its own obs studio folder in that way everything separate and easy for me to keep track of and more reliable and easy to move or whatever. Some of these streams that I have going now have been up since January and haven't been down once and have over 2.5 million views so I just have to make sure whatever I'm doing is going to be very stable. And yes I like Linux for its stability but if I don't know what I'm doing that might cause more problems than good. But I thank you for all the info and I will keep looking at that and see if I can figure out what you're talking about.
 
Top