OBS Streaming HEVC to MistServer--Setup Confusion, Need Help

353 views
Skip to first unread message

M. Weiss (Basspig)

unread,
Nov 27, 2023, 7:31:39 PM11/27/23
to Mistserver.org
Background:
I've been streaming h.264 to nginx on my server for about a year. However, to reach lower bandwidth areas like Asia, I want to lower my bitrate and that requires me switching to HEVC CODEC.
I've been told on the OBS forum that only MistServer supports HEVC.

I'm attempting to replace nginx with MistServer to gain HEVC HLS output from HEVC RTMP stream.

There seems to be no option to specify the HLS folder location (in my case it's on the D: drive, in the \wwwroot\[servername]\srv\HLS folder.

Also, I am uncertain about this "push" source. In nginx, there was no specifying it. Only the HLS folder. My server is on a different subnet than the OBS streamer, as well. This was not a problem with nginx.

When I start OBS streaming, I receive an error that OBS failed to connect to server, even though the IP and application is there. Also, what about the stream key? I used one with nginx. I don't see where to specify that in MistServer.

My goal is simple: to reduce my stream bitrate by using HEVC encoding (nginx doesn't support HEVC). I was told that MistServer does. However, the documentation is confusing on several basic points.

I may be missing some hidden menu somewhere, but I can't find where to specify HLS folder location and OBS can't find the server.

The server is at 192.168.0.102 and the OBS streamer is coming from 192.168.1.110. I've set Push://192.168.1.110, but status is "unavailable" when OBS is starting the stream and remains so until OBS gives up.

I suspect I need a couple of configuration changes to get this working, but I've no idea what those may be.

If someone could walk me through the differences in setup from my nginx perspective, that may get me over this hurdle. 

Balder Vietor

unread,
Nov 28, 2023, 5:46:51 AM11/28/23
to mists...@googlegroups.com
Hey Mark,

Just answered your mail privately as well, but I figured I'll put it down here for maximum findability as well.

For RTMP we don't support the HEVC protocol yet. We will eventually add the enhanced RTMP spec, but currently there shouldn't be a method to send HEVC over RTMP. I would actually recommend using SRT, as it's another output available in OBS and that one does support HEVC as an input. Bandwidth wise that should be the same amount as well.

I'll try and clarify some points, obviously let me know if something is still unclear, happy to explain further or assist otherwise. This all does expect you're using MistServer 3.2 on Linux by the way.

How push works
Recommended for the first time setting up is actually going with just:

push://

That way MistServer will accept a push from any IP address. 
You need to point OBS to the RTMP port of the server and the stream name.  Using the addresses you provided it would be something like:

Then if that doesn't work we recommend setting the debug level to 4 in the general settings of MistServer and then reboot. That will have MistServer tell you in the logs whether it is rejecting the push. If you see a message about a push being rejected OBS is connecting to the server, but the configuration is wrong. If you see no message at all there is most likely a firewall in the way, or OBS is pushing to the wrong address.

SRT
SRT pushing is slightly easier, you can either set up an SRT port in the protocol panel (default settings enable one on 8889) or specify you want an SRT input while creating a stream.

SRT through protocol
If SRT is enabled in the protocol settings, you can use the same "push://" source, OBS needs to stream towards:
srt://ADDRESS:PORT?streamid=STREAMNAME
so:

SRT through source input
You can also specify SRT directly as the stream source, for receiving OBS SRT the easiest is to have a listener in MistServer, you can do that using the following syntax:

srt://:PORT

PORT needs to be a unique UDP port available on the machine. Other than that you want to go to the optional options and enable the always on box. This tells MistServer to keep the connection open & listen for incoming pushes all the time.

HLS output
HLS output can be done on the fly from MistServer, you do not need a folder to serve. You can just point towards the HLS links:

http://mistserveraddress:httpport/hls/streamname/index.m3u8  for TS-HLS
http://mistserveraddress:httpport/cmaf/streamname/index.m3u8 for MP4 based HLS

The default MistServer port is 8080 for HTTP (to avoid conflicts with web servers, if you're no longer running nginx you could set up MistServer to use 80, or you could put MistServer behind nginx using a reverse proxy ) .

HLS recording
This is if you do want to have an HLS folder, you need to set up a push from the push panel.

What you need to do is a TS push and tell MistServer to both segment & index it. Which is kind of confusing the first time you're using it. The syntax goes as following:

/path/to/segmentslocation/$segmentCounter.ts?index=index.m3u8&split=6

This would record to a folder, put segments there counting up and an index in 1 folder higher. That index can then be used to serve an HLS stream or as an input. Though if simply HLS output is the goal and you are not interested in having a recording I would just recommend going with the HLS output.

Example:
/wwwroot/[servername]/srv/HLS/$basename/$segmentCounter.ts?index=index.m3u8&split=6

This would create a STREAMNAME folder, within that folder an index.m3u8 and all segments will be recorded. The index.m3u8 will update with each segment. 
You could add other variables to the name to make sure it is unique every push, but you could also simply overwrite the previous one whenever you restart the recording.
With kind regards,
Balder


--
You received this message because you are subscribed to the Google Groups "Mistserver.org" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mistserver+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mistserver/4aaf2e19-8d45-4ea0-aab7-f2539f2b32ecn%40googlegroups.com.

M. Weiss (Basspig)

unread,
Nov 28, 2023, 2:37:59 PM11/28/23
to Mistserver.org
Hi Balder,
 
I am on Windows & using v2.18.1, FYI, if that helps.
 
I was going to try your suggestion and try SRT streaming, but since rebooting the server, I can't get into the MistServer log in page. "localhost refused to connect". I checked Task Manager to see that MistTray is running. I don't know why it no longer connects.
 
Mark

M. Weiss (Basspig)

unread,
Nov 28, 2023, 7:22:35 PM11/28/23
to Mistserver.org

Just for sanity check:

localhost:4242 is what I have in my browser. It worked the first time I installed MistServer. However, after rebooting the server, the browser no longer connects.

In frustration, uninstalled Mistserver, intending to start over from scratch in case it had become corrupted. I did a reinstallation, however, I cannot access the server's web interface. I can do nothing at this point, since I can't interact with the configuration menus. MistServer is refusing the connection from my browser on port 4242.

No idea what to do from this point.

Balder Vietor

unread,
Nov 29, 2023, 8:12:13 AM11/29/23
to mists...@googlegroups.com
Hey Mark,

Good chance that the problem here is the 2.18 version of MistServer. It's quite outdated by now. I believe it won't work with SRT either as native SRT support has been added in 3.0. 

We still need to update the Windows builds to 3.0, however we're having some difficulties as Windows implements shared memory quite differently from Linux and MistServer relies on it quite heavily. At this point I would say it's better to either run a docker version of MistServer or have it on a Linux VM. 

With kind regards,

Balder Viëtor
Head of Testing

MistServer


M. Weiss (Basspig)

unread,
Nov 29, 2023, 12:47:26 PM11/29/23
to Mistserver.org
So I guess HEVC is a dead issue for now on Windows. I wish I had know that before I wasted three days trying to get this configured and working. Oh well.

Michel Hageman

unread,
Nov 29, 2023, 1:05:30 PM11/29/23
to mists...@googlegroups.com
I think a lot of time and effort could have been saved when you read the manual, the GitHub readme etc. 

Also a lot of time and effort could have been spent when you would have read the above-mentioned, and would have run Mistserver in a container, which is possible under Windows, or had run on Linux. This way you would have had the current version and things would have been much easier. 

I think there's no ready made package to suit your needs and instantaneously will give you what you want. Time and effort and especially understanding is necessary to get things working, minding that it is a niche circumstance in which case you needed this to work in the first place. 

I wish you good luck setting your system up. I also would like to thank the guys from Mistserver to make all the things possible I can make it do, being freeware and all, and for all the free support that give us, as you have seen. 

Kind regards,

Michel 

Op wo 29 nov. 2023 18:47 schreef M. Weiss (Basspig) <mwe...@mwcomms.com>:

M. Weiss (Basspig)

unread,
Nov 29, 2023, 1:16:05 PM11/29/23
to Mistserver.org
The manual that I downloaded was for v3.0 and 80 pages long. I'm nearly blind at age 78, so it is hard to read for me. I also found it vague and difficult to understand because it assumes the reader has intimate knowledge of the product. It took me over an hour just to figure out that I had to type localhost:4242 just to get the UI (which stopped working after I rebooted).
What I read and what others on OBS forum told me was the MistServer supports HEVC. The manual showed that yes it does. but now I find that's not quite the way I understood it.

It took me four years to get nginx up and  running with h.264 streaming and it works well, except that i must maintain 1900kbs for a good picture quality and that's more bandwidth than some Asian users have and most cellular US users (for example my T-mobile 4G maxes out at 1500kbs on speedtest in most downtown locations) so I wanted to try HEVC and drop my stream to 384kbs to reach more users.

Michel Hageman

unread,
Nov 29, 2023, 1:51:16 PM11/29/23
to mists...@googlegroups.com
Dear Mr. Basspig,

I'm sorry to hear that it took you a lot of effort to get things up and running; it's difficult, I agree. But, things are not as difficult as they might seem. Your Windows is capable of running Docker containers, and Mistserver is available as a Docker image. If I can extend my help to you getting this up and running, as far as getting the environment and container running at least, then feel free to email me. I haven't a clue about the specific codec yet, but it would be a lot easier for the Mistserver team to answer your questions when you have at least Mistserver running. I presume that nginx is also running under Windows? 

I'm sorry for my response if it seemed rather harsh, but I very much like this company that develops Mistserver, and it made me a bit touchy when I read your almost disappointed reaction to the free help and support, and no thank you it seemed. I think you didn't mean it that way... My apologies. 

Michel

Op wo 29 nov. 2023 19:16 schreef M. Weiss (Basspig) <mwe...@mwcomms.com>:

M. Weiss (Basspig)

unread,
Nov 29, 2023, 2:47:37 PM11/29/23
to Mistserver.org
The server machine I'm using is a small fanless mini computer. It only uses about 15 watts of electricity (I'm on off-grid solar power, so every watt counts). It's adequate to run IIS 10, but I don't think it can do virtual machines. And probably not with 4GB memory.

Out of curiosity, I looked up Docker and was presented with a barrage of code that looks Greek to me. What are the system requirements? Does it require virtualization?

I've played with Hypervisor on my Windows 10 workstation and managed to run Linux in a VM, but that machine has 64GB or RAM and a i7-9700K CPU. It's also an electricity hog, so I can't leave it running all the time.

I'm sure MistServer is a fine application based upon the high praise it gets, but the technical documentation is for experts, not senior citizens with a declining mental ability. I can't remember a simple string of characters when switching from one window to another!

Adrian Hendy

unread,
Nov 29, 2023, 2:49:15 PM11/29/23
to Mistserver.org
I would just like to add that you can run v3 and later on Windows using docker at a push. But - the thing here is that if you need to stream at such low bandwidths the quality really will suffer. I'm trying to work out how people are watching these streams because here in the uk even poor cellular connections will easily stream 2000 kbps and above.
HEVC or h.265 will help you in this case but if people are connecting directly to your server to watch I think it is quite clear your server is the issue here, either with connectivity or server power. But as you are streaming to asians, many who will have older phones, then hevc streams might actually not be watcheable at all due to lack of support

Ade

Adrian Hendy

unread,
Nov 29, 2023, 2:58:07 PM11/29/23
to Mistserver.org
Just looking at your problem - that pc is going to struggle with running mist server just due to the low specs. I would take a slightly different route and look at getting a raspberry pi. A pi 4 with 8 gig ram runs mist server very well, all you would need to do is install linux on an sd card and then install mistserver. You are looking at a power consumption of around 10 watts tops then. Mist server runs pretty well on a pi too and you could literally just use the pi as the server with very little problems to solve.
I've done exactly that and been pretty pleased with the results.

Ade

Michel Hageman

unread,
Nov 29, 2023, 3:14:45 PM11/29/23
to mists...@googlegroups.com
Hmmmm... Yeah. That's a difficult setup to do proper Docker stuff. 

I agree with the option to run it on a raspberry pi. That should do it. You can use that as a server, and power consumption should be low enough to be powered 24/7 if needed. 

Then, probably with running Debian for Pi, you can simply install the Mistserver binaries. It's a copy and paste command, just one, in the terminal, and you're up and running as far as Mistserver concerns. You could also install Nginx as a reverse proxy to keep things a bit safe. You already know that program, so it hopefully is more easy to set up for you. Otherwise there is the Nginx Proxy Manager, which may also be an option. Things work with a graphical user interface through your browser. It's quite easy to set up in Docker too!

Also, it might seem like a bunch of Greek, but Docker is not so difficult to install in Debian/Ubuntu. 

Benefit from this all is that it's reasonably safe and easy to replicate if things go wrong. 

And yes, vtx or the AMD equivalent should be on in Bios or UEFI boot. This is so you can run virtualised machines and their code to be executed on the CPU.

Please feel free to ask for help through my email if you feel up to it. I can understand if it seems like too far of a stretch to get this up and running. 

Op wo 29 nov. 2023 20:47 schreef M. Weiss (Basspig) <mwe...@mwcomms.com>:

Balder Vietor

unread,
Nov 30, 2023, 10:01:42 AM11/30/23
to mists...@googlegroups.com
Hey there,

Our apologies on the outdated manual. We did recently start with an online environment that is at least up to date. But it only applies to 3.0 builds (https://docs.mistserver.org ).
I would say it's still quite a beast, so we still have quite some way to go for easy to follow documentation. It's definitely something we're working on, but it'll take us quite a while to get there. 

While MistServer can run in Docker I do remember running into a problem using Docker in Windows with opening ports correctly. Though that is most likely blamed to my inexperience with Docker at the time (been years back that I tried running Docker on Windows). I'll probably investigate & update the install documentation for it if I find it to be suitable enough while we still need to update the Windows builds.

Raspberry Pi works fine too, but one thing to keep in mind is that depending on the Raspberry Pi version you're using, the network interface is actually limited by the bus. Meaning even if there's a 1GB connection on there it'll only be able to do ~120MB per second. I believe the Raspberry Pi 4 fixed this issue. Then there's the standard Raspberry Pi tricks of locking the SD card to make sure it doesn't go corrupt and minimize logging, so there' some learning curve there as well. 

With kind regards,

Balder Viëtor
Head of Testing

MistServer

M. Weiss (Basspig)

unread,
Nov 30, 2023, 12:21:34 PM11/30/23
to Mistserver.org
Does MistServer use THAT much more resources than nginx? Because presently, nginx uses about 1-2% of my server's CPU. It's got plenty of oomph for running RTMP. Mind you, I'm doing all the CODEC work on the originating PC, which has a GPU and then sending that stream over to the mini PC server.

I really know next to nothing about nginx. It was a pre configured package I got from Doug Johnson on his video about how to make your own RTMP server. Even so, due to my lack of IT skills, it took me years to get it working and a lot of asking questions and hitting dead ends.

I have heard of smart fellows doing hacky stuff with Raspberry Pi, but I've never owned one and have no idea how to integrate it with Windows IIS. I have been using IIS since 2005 to host my web sites, and in it's latest version, it handles multiple websites nicely as well as HTTPS server certs. So I have some familiarity with IIS.

If I went the Pi route, I would have to solve how to get it to write files to a folder in the IIS server domain so IIS can serve the video to the player client.

It may be best for me to wait until the Windows version and go from there.

Balder Vietor

unread,
Nov 30, 2023, 1:26:31 PM11/30/23
to mists...@googlegroups.com
Hey there,

MistServer isn't a CPU hog, but we'd never beat a webserver like nginx either, that much I can tell you. We do get close though, I'd say we're at least in the ballpark of a web server. Some CPU will always be used by transmuxing tasks (changing RTMP to HLS for example). 
RAM usage is a bit more, you'll need at least 50 seconds worth of stream data in RAM by default and ~2MB per viewer extra. 

Seeing your situation there's a good chance that waiting on the Windows build could indeed be your best/easiest option. I would have to admit that the Windows build isn't quite high in our priority list. We do want it ready sooner than later (we actually wanted 3.3 to be Windows compatible, but we didn't quite make that. We'll be releasing 3.3 soon without this). I would say I definitely expect it halfway 2024, but I can't make a hard promise on it either. 

With kind regards,

Balder Viëtor
Head of Testing

MistServer

M. Weiss (Basspig)

unread,
Nov 30, 2023, 2:29:32 PM11/30/23
to Mistserver.org
Thank you for your devotion to support on this software. I must admit, it is rare for someone to go this far to support open source software with no financial gain. I DO appreciate that.

I was at least hoping to try the existing 2.18 version with RTMP and HLS to see if I could make that run, but then the problem of not being able to connect to the server's UI web interface happened after I rebooted the server, so I never got to even compare the load vs. nginx.

After multiple reinstallations, I was unable to ever again access the setup portal on port 4242, so that is unfortunate. I don't know what broke, but reinstallation did not fix it.

I'll wait for 3.x on Windows. Hopefully it releases while I'm still alive! (2 years til octogenarian)

Balder Vietor

unread,
Dec 4, 2023, 6:28:31 AM12/4/23
to mists...@googlegroups.com
Hey there,

Yeah, we hear that more. We do try and at least give a decent enough answer to everyone, provided we find the time (often the problem!). Though it's much easier as MistServer very much is a passion project of everyone involved here and that makes it somewhat easier to go the extra mile supportwise.
Just sorry the 2.18 version can't really handle what you want to do.

I'm expecting we should make that deadline. We are consistently trying to get it closer to release, but part of the problem is that all the fun new features we build tend to also delay the Windows delay at the same time.

With kind regards,

Balder Viëtor
Head of Testing

MistServer

Mark Weiss, P.E.

unread,
Dec 4, 2023, 11:47:24 AM12/4/23
to mists...@googlegroups.com
Understood. Well please keep me posted when you DO release a new version for Windows. Thank you!
 
Mark



From: mists...@googlegroups.com [mailto:mists...@googlegroups.com] On Behalf Of Balder Vietor
Sent: Monday, December 4, 2023 6:28 AM
To: mists...@googlegroups.com
Subject: Re: [mistserver] OBS Streaming HEVC to MistServer--Setup Confusion, Need Help

With kind regards,
Balder


--
You received this message because you are subscribed to a topic in the Google Groups "Mistserver.org" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mistserver/pK8cpkjcPOc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mistserver+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mistserver/CAKPFDa1ePfbG2uEy37nhRCZi2j4bUFPaN58zKtpDLdmHHEMn1Q%40mail.gmail.com.

jammin radio

unread,
Jan 3, 2024, 1:15:03 PM1/3/24
to mists...@googlegroups.com
we use mist and have since 2021, very stable for pushing our radio to 4 destinations all at the same time. great software once ypu get the  ssl setup.

as of yet no issuse on debian 4 cpu 16gb ram 2gbps unlimited 

Marco van Dijk

unread,
Sep 6, 2024, 6:05:50 AM9/6/24
to Mistserver.org
Hi,

The latest 3.4 release has windows support, just note the tray icon is removed, so it's a plain terminal application for the moment.

Best,
Marco

Mark Weiss, P.E.

unread,
Sep 7, 2024, 2:05:30 PM9/7/24
to mists...@googlegroups.com
Thanks for the update. I may try it in the future.
 
Mark



From: mists...@googlegroups.com [mailto:mists...@googlegroups.com] On Behalf Of Marco van Dijk
Sent: Friday, September 6, 2024 6:06 AM
To: Mistserver.org
For RTMP we don't support the HEVC protocol yet We will eventually add the enhanced RTMP spec, but currently there shouldn't be a method to send HEVC over RTMP. I would actually recommend using SRT, as it's another output available in OBS and that one does support HEVC as an input. Bandwidth wise that should be the same amount as well.
The server is at 192.168.0.102 and the OBS streamer is coming from 192.168.1.110 I've set Push://192.168.1.110, but status is "unavailable" when OBS is starting the stream and remains so until OBS gives up.
Reply all
Reply to author
Forward
0 new messages