Giter Site home page Giter Site logo

ddvtech / mistserver Goto Github PK

View Code? Open in Web Editor NEW
354.0 62.0 124.0 34.91 MB

The official mistserver source repository - www.mistserver.com

License: The Unlicense

CMake 0.25% Shell 0.36% C++ 28.43% C 40.79% HTML 1.30% JavaScript 27.95% CSS 0.59% Meson 0.34%

mistserver's Introduction

MistServer

MistServer is an open source, public domain, full-featured, next-generation streaming media toolkit for OTT (internet streaming), designed to be ideal for developers and system integrators.

For full documentation, see: https://docs.mistserver.org

For support and assistance, please look on our website at: https://mistserver.org

Getting MistServer onto your system

We provide pre-compiled binaries for most common operating systems here: https://mistserver.org/download

Using the "Copy install cmd" button will give you a command you can paste into a terminal to set up MistServer running as root under your system's init daemon (systemd recommended, but not required).

You can also manually install, full instructions can be found in our manual: https://docs.mistserver.org/category/installation

Compile instructions

The recommended build system for compiling MistServer is Meson.

The project makes full use of Meson's support for "wraps" and all dependencies can be automatically fulfilled through this system. If a system-wide library is available (and compatible), that one will be preferred.

The following command will create a subdirectory named build and set it up for compiling MistServer (assuming meson is installed on your system):

meson setup build

The default options should suffice in most cases, but a full list of possible compile options can be found by running meson configure.

Then, to actually build:

cd build
ninja

That should compile MistServer to your build directory, and it can then be ran by running:

./MistController

See the "Usage" chapter below for more details on actually running MistServer. MistServer can be in any directory, as long as all its binaries (that you want/need) are in one directory together. You can (optionally) install system-wide (usually requires you to be root user or using sudo) by running:

ninja install

Usage

MistServer is booted by starting the MistController binary, which then scans the directory it is stored in for further Mist* binaries and runs them to discover what inputs/outputs/processes are available. (Yes, this means you can delete any binary you don't want/need and it will just do what you expect/want.)

Running the controller in a terminal will walk you through a brief first-time setup, and then listen on port 4242 for API connections. Accessing port 4242 from a web browser will bring up a web interface capable of easily running most API commands for human-friendly configuration. If there is no interactive terminal when MistServer is first started, the first-time setup can be completed using the web interface instead.

Full usage instructions and API specifications can be found in the online manual: https://docs.mistserver.org/

Contributing

If you're interested in contributing to MistServer development, please reach out to us through [email protected]. Full contribution guidelines will be made available soon.

mistserver's People

Contributors

alexkordic avatar bdheeman avatar darkdarkdragon avatar gizahnl avatar iameli avatar kokatri avatar ozzay avatar phencys avatar ramkoemar avatar rokamun avatar roxlu avatar stronk-dev avatar tegginamaniss avatar thulinma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mistserver's Issues

RTMP pull input

I know that RTMP pull input is not supported (although RTSP is, but it is not in the Feature support matrix of the manual). Would it be difficult to add? There are some RTMP related commits in #54, are they related?

drone: build version not getting set correctly

When I build Mist locally (via livepeer/catalyst), the CMake stuff takes care of populating the binary version:

MistController --version
Version: mist-v3.0-91-gd10947e, release Generic_64

The Drone builds don't seem to have this property:

MistController --version
Version: Unknown, release Generic_64
- Flag: Shared memory disabled. Will use shared files in stead of shared memory as IPC method.
Built on Jul 21 2022, 20:09:51

Gotta be something broken in the version tags in CMakeLists.txt?

MistProcLivepeer: when transcoding is slow to start, transcoded tracks never get added

For unrelated reasons (https://github.com/livepeer/livepeer-infra/issues/937) sometimes MistProcLivepeer starts trying to attempt to transcode before go-livepeer is ready. Transcoding eventually starts working, but the stream never adds the video tracks, only the returned audio tracks. Symptoms look like this in the HLS playlist:

#EXTM3U
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-1",NAME="AAC-1",URI="1/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-2",NAME="AAC-2",URI="2/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-3",NAME="AAC-3",URI="3/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-4",NAME="AAC-4",URI="4/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-5",NAME="AAC-5",URI="5/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-6",NAME="AAC-6",URI="6/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-7",NAME="AAC-7",URI="7/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-8",NAME="AAC-8",URI="8/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aud",LANGUAGE="und-9",NAME="AAC-9",URI="9/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958"
#EXT-X-STREAM-INF:AUDIO="aud",CODECS="avc1.64002a,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=60,BANDWIDTH=14223550,AVERAGE-BANDWIDTH=12035311
0/index.m3u8?mTrack=0&iMsn=1&sessId=1712968958

Few small bug fixes in the connectors.

Hello to all,
I am very new to the mistserver (I heard of it for a first time couple of weeks ago). But I want to suggest few bug fixes.
I am dealing with issues related with the Mist server under "heavy" load (few hundred connections. This is not a heavy load to my experience, but seems to be very heavy to the Mist). Probably it will not surprise you to hear that this software in particular is not really well designed to scale. However, this is a different topic of discussions.

During my investigations of the code i found a bunch of kiddish bugs that also affect the stability and the scalability of the software. They are present in all of the releases I've check - 1.0, 1.2 and 1.3.

As I am not a contributor and I really didn't found how to report a bug or patch, so I am writing you here.

I have found bugs and issues in the buffer process, connector process and the RTMP process. However this message will be related to the connector only, as I have no much time to write you more.

The connector design is quite ineffective. It forks a process for each new customer connection. It has two kiddish bugs associated with this -
There is no signal interception at the master. So sometimes when a child dies, it became a Zombie and slowly kills the machine process table resources (although memory and everything else is freed).
To fix this is quite simple.
You just need to add in the beginning

 #include <signal.h>

and somewhere in the beginning of the main function:

 signal(SIGCHLD,SIG_IGN);

I did it and it works very fine for me.

However, the major problem within every connector code is that within the While loop for accept -> fork of new Unix socket sessions, when it forks a child, the master does not close the accepted connection.
As an effect the master keeps a file descriptor open. Which will be copied in the next forked child (it copy all of the file descriptors) but the fd count will be increased in the master again and then copied to the next forked child, and so on, and so on.
The effect of this is that every new child fork will became slower and slower (all the fd has to be copied) but mostly the allocated fd per process (and the system in general) grows exponentially as they are never closed. In a mist server under heavy load (where we have stream of opening new short lived customer connections) the total limit of file descriptors of the system/process will be exhausted on a logarithmic basis (the max span of the process live before the issue happens will be constant * log2(total-process-limit)). At some point there will be not enough resources for a new child to open, and the new fork will crash. The old connections will still work perfectly though.
I cannot imagine the pain of all the customers of the software that have only one way to resolve this issue when it happens - to restart the mistserver periodically.
However, the resolution is quite, quite, simple.
You just need to add close(S.getSocket()) in the master process. In every connector code you have while loop with a code like that (taken from HTTPProgressive):

Socket::Connection S = server_socket.accept();
if (S.connected()){ //check if the new connection is valid
  pid_t myid = fork();
  if (myid == 0){ //if new child, start MAINHANDLER
    return Connector_HTTP::progressiveConnector(S);
  }else{ //otherwise, do nothing or output debugging text
#if DEBUG >= 5
    fprintf(stderr, "Spawned new process %i for socket %i\n", (int)myid, S.getSocket());
#endif
    close(S.getSocket()); // THIS LINE HERE IS THE BUG FIX!!!
  }

You just need to add there (where I have shown) "close(S.getSocket());" and everything will be fine.
You can easily verify the bug fix with lsof.
If everything is correct the lsof -p PID-of-the-master-connector should show you that the master has only two unix sockets open, and every child too.
If you see more sockets (and exponential growth of the allocated file descriptors) then you haven't applied the patch.
It works perfectly for me and fixes a lot of issues.
I have been very annoyed to apply this patch in the last 3 days to 1.0, 1.2 and 1.3 versions of the mist server, so please integrate it in the main code!
If I have a time I will write you about few other small patches you can do.

RTSP Push not available

Mistserver 3.1.

added a stream from local raspicam using

h264-exec:raspivid -t 0 -pf high -lev 4.2 -g 10 -ih -qp 35 -o -

Want to push the above stream as rtsp to another target server.

According to 3.0 Manual it is possible to push streams as rtsp.

grafik

When creating a push to target:
rtsp://x.x.x.x:8554/live/picam

i receive:

grafik

error: ‘lastErr’ was not declared in this scope

Ubuntu 18.04 LTS

git clone https://github.com/DDVTECH/mistserver
cd mistserver/
cmake . -DNOSSL=1
make
[ 10%] Building CXX object CMakeFiles/mist.dir/lib/socket.cpp.o
/home/user/mistserver/lib/socket.cpp: In member function ‘std::__cxx11::string Socket::Connection::getError()’:
/home/user/mistserver/lib/socket.cpp:712:10: error: ‘lastErr’ was not declared in this scope
   return lastErr;
          ^~~~~~~
/home/user/mistserver/lib/socket.cpp: In member function ‘void Socket::Connection::open(std::__cxx11::string, bool)’:
/home/user/mistserver/lib/socket.cpp:731:5: error: ‘lastErr’ was not declared in this scope
     lastErr = strerror(errno);
     ^~~~~~~
/home/user/mistserver/lib/socket.cpp:746:5: error: ‘lastErr’ was not declared in this scope
     lastErr = strerror(errno);
     ^~~~~~~
/home/user/mistserver/lib/socket.cpp: In member function ‘void Socket::Connection::open(std::__cxx11::string, int, bool, bool)’:
/home/user/mistserver/lib/socket.cpp:860:5: error: ‘lastErr’ was not declared in this scope
     lastErr = gai_strmagic(s);
     ^~~~~~~
/home/user/mistserver/lib/socket.cpp:866:3: error: ‘lastErr’ was not declared in this scope
   lastErr = "";
   ^~~~~~~
/home/user/mistserver/lib/socket.cpp: In member function ‘unsigned int Socket::Connection::iwrite(const void*, int)’:
/home/user/mistserver/lib/socket.cpp:1043:7: error: ‘lastErr’ was not declared in this scope
       lastErr = strerror(errno);
       ^~~~~~~
/home/user/mistserver/lib/socket.cpp: In member function ‘int Socket::Connection::iread(void*, int, int)’:
/home/user/mistserver/lib/socket.cpp:1114:7: error: ‘lastErr’ was not declared in this scope
       lastErr = strerror(errno);
       ^~~~~~~
/home/user/mistserver/lib/socket.cpp: In copy constructor ‘Socket::Connection::Connection(const Socket::Connection&)’:
/home/user/mistserver/lib/socket.cpp:1227:3: error: ‘lastErr’ was not declared in this scope
   lastErr = rhs.lastErr;
   ^~~~~~~
/home/user/mistserver/lib/socket.cpp:1227:17: error: ‘const class Socket::Connection’ has no member named ‘lastErr’
   lastErr = rhs.lastErr;
                 ^~~~~~~
/home/user/mistserver/lib/socket.cpp: In member function ‘Socket::Connection& Socket::Connection::operator=(const Socket::Connection&)’:
/home/user/mistserver/lib/socket.cpp:1261:3: error: ‘lastErr’ was not declared in this scope
   lastErr = rhs.lastErr;
   ^~~~~~~
/home/user/mistserver/lib/socket.cpp:1261:17: error: ‘const class Socket::Connection’ has no member named ‘lastErr’
   lastErr = rhs.lastErr;
                 ^~~~~~~
CMakeFiles/mist.dir/build.make:614: recipe for target 'CMakeFiles/mist.dir/lib/socket.cpp.o' failed
make[2]: *** [CMakeFiles/mist.dir/lib/socket.cpp.o] Error 1
CMakeFiles/Makefile2:2070: recipe for target 'CMakeFiles/mist.dir/all' failed
make[1]: *** [CMakeFiles/mist.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

catalyst: `"trustedproxy":["0.0.0.0/0"]` seems to not work

We have this set: "trustedproxy":["0.0.0.0/0"]

But it seems not to work:

lax | [2022-08-02 17:55:13] MistOutHLS:video+b0dcxvwml48mxt2s (1655) WARN: Host 89.187.185.251 is attempting to act as a proxy, but not trusted (/tmp/drone-7pq2c6BO3H9JHJZs/drone/src/src/output/output_http.cpp:540)

catalyst: segfault in `Mist::OutHLS::sendHlsMediaManifest `

# gdb $(which MistOutHLS) e7c9ba8f-d915-4e77-ae09-eaf920034dbd-dump-1660586615-dp8223-MistOutHLS-2623-11.core
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/MistOutHLS...
[New LWP 2623]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/MistOutHLS --ip 167.224.188.61 --stream video+196a6qz7pg06nl5h --prequ'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00005575c67c98c1 in Util::RelAccX::getInt (this=0x7ffe34e8f090, fd=..., recordNo=recordNo@entry=0)
    at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/lib/util.cpp:634
634	/tmp/drone-uPK0nR4hjOgC8gNa/drone/src/lib/util.cpp: No such file or directory.
(gdb) bt
#0  0x00005575c67c98c1 in Util::RelAccX::getInt (this=0x7ffe34e8f090, fd=..., recordNo=recordNo@entry=0)
    at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/lib/util.cpp:634
#1  0x00005575c672a51d in DTSC::Meta::getLastms (this=this@entry=0x7ffe34e8ec98, trackIdx=trackIdx@entry=4)
    at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/lib/dtsc.cpp:1995
#2  0x00005575c6753080 in HLS::getLastms (M=..., userSelect=std::map with 2 elements = {...}, trackIdx=4, streamStartTime=1660586058488)
    at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/lib/hls_support.cpp:53
#3  0x00005575c6753579 in HLS::populateFragmentData (M=..., userSelect=std::map with 2 elements = {...}, fragData=..., trackData=..., fragments=...,
    keys=...) at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/lib/hls_support.cpp:143
#4  0x00005575c6704a74 in Mist::OutHLS::sendHlsMediaManifest (this=this@entry=0x7ffe34e8ec30, requestTid=<optimized out>)
    at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/src/output/output_hls.cpp:205
#5  0x00005575c6705866 in Mist::OutHLS::sendHlsManifest (this=this@entry=0x7ffe34e8ec30, url="4_1/index.m3u8")
    at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/src/output/output_hls.cpp:229
#6  0x00005575c6707cf3 in Mist::OutHLS::onHTTP (this=0x7ffe34e8ec30) at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/src/output/output_hls.cpp:446
#7  0x00005575c671671f in Mist::HTTPOutput::requestHandler (this=0x7ffe34e8ec30) at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/src/output/output_http.cpp:328
#8  0x00005575c66fa063 in Mist::Output::run (this=0x7ffe34e8ec30) at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/src/output/output.cpp:1264
#9  0x00005575c66e83b2 in main (argc=<optimized out>, argv=<optimized out>) at /tmp/drone-uPK0nR4hjOgC8gNa/drone/src/src/output/mist_out.cpp:70
(gdb)

Get list of streams

Hi,

How do I get a list of streams, without all the configured streams being deleted?

sourcery usage in the (old) Makefile

In commit 9b6312c on April 2nd (switch to CMake), sourcery was changed from using stdout to taking an explicit output argument. The (old) Makefile, however, was not updated accordingly, so now a clean project build with good-old-Make fails due to an empty src/controller/server.html.h file (which should have been generated by sourcery).

In the same commit, the file embed.js.h was moved from src/ to src/output.

The fix is to remove the output redirect ">" from both sourcery invocations and substitute src/embed.js.h -> src/output/embed.js.h a few places in the Makefile ;-)

Also in the Makefile line 159 add src/io.cpp to the input list (this problem was introduced by commit d370ef4)

how to compile mistserver?and how to use it?

when i compile mistserver on ubuntu 12.04 x86_64 server
it remind me to install libmist
so i compile libmist
after that i comile successed, but how to start it??
can you help me ???

MistProcLivepeer to start `source` stream

When stream A is added by HTTP addstream command and specified as source stream for MistProcLivepeer then A stream should be started by MistProcLivepeer process.

Backup / Restore

Hello

I start using Mistserver on my vod platform, and I have some question about usage ( at this moment I use open source version ), My first question is: how I can get backup from my data ( stream data ) and restore it

Whitelisting for prefixes rather than hostnames.

As we discussed here at FOSDEM, would be nice to whitelist by prefix rather than only an address.

Here's a quick sketch that would allow to match against the list of prefixes. I did not add the "exact-match" function - I presume you could reuse the existing isAddr() functionality.

#include <string.h>
#include <stdio.h>
#include <netinet/in.h>

uint8_t mask(uint8_t val, int nbits) {
 return (val & (0xff << (8 - nbits)));
}

int compbytes(uint8_t *buf1, uint8_t *buf2, int bitlen) {
  int nbytes = bitlen / 8;
  int nbits = bitlen % 8;
  printf("compbytes %d\n", bitlen);
  if (memcmp(buf1, buf2, nbytes)) {
    printf("bytes are different\n");
    return 0;
  }
  if (nbits && (mask(buf1[nbytes], nbits) != mask(buf2[nbytes], nbits))) {
    printf("bits are different\n");
    return 0;
  }
  return 1;
}

int prefentrymatch(char *pref, char *addr) {
  int plen = 0;
  uint8_t addrbuf[16];
  uint8_t prefbuf[16];

  char *pplen = strchr(pref, '/');
  if(pplen) {
    *pplen++ = 0;
    plen = atoi(pplen);

    printf("Prefix Matching of %s (len %d)\n", pref, plen);
    if(1 == inet_pton(AF_INET6, pref, prefbuf)) {
      printf("IPv6 pref\n");
      if(1 == inet_pton(AF_INET6, addr, addrbuf)) {
        if(compbytes(addrbuf, prefbuf, plen)) {
          return 1;
        }
      } else {
        return 0;
      }
    } else if(1 == inet_pton(AF_INET, pref, prefbuf)) {
      printf("IPv4 pref\n");
      if(1 == inet_pton(AF_INET, addr, addrbuf)) {
        if(compbytes(addrbuf, prefbuf, plen)) {
          return 1;
        }
      }
    } else {
      return 0;
    }
  } else {
    printf("Exact Matching of %s\n", pref);
    /* place your exact matching here */
  }
  return 0;
}

int prefmatch(char *preflist, char *addr) {
  char *plist = strdup(preflist);
  char *p = plist;
  char *psep;
  char *pend = plist + strlen(preflist);

  while ((psep = strchr(p, ' ')) ) {
    *psep = 0;
    while(*p && (*p == ' ') && p <= psep) {
      p++;
    }
    if ((p < psep) && prefentrymatch(p, addr)) {
      goto match;
    }
    p = psep+1;
  }
  if ((p < pend) && prefentrymatch(p, addr)) {
    goto match;
  }
  nomatch:
    free(plist);
    return 0;
  match:
    free(plist);
    return 1;

}


mistserver on archlinux arm

Hi thanks for your software in the first place.
I have build the server on archlinux arm (armv7h RaspberryPi2) , with a home brew PKGBUILD

It gives me a warning about a unsigned intger in timings.cpp

src/mistserver-git/lib/timing.cpp:68:3: warning: this decimal constant is unsigned only in ISO C90 return ((((long long int)t.tv_sec) + 2208988800) << 32) + (t.tv_nsec * 4.2949);

I patched with --- See next post
diff -aur mistserver-git.a/lib/timing.cpp mistserver-git.b/lib/timing.cpp
--- mistserver-git.a/lib/timing.cpp 2016-01-29 16:33:35.306150858 +0100
+++ mistserver-git.b/lib/timing.cpp 2016-01-29 16:35:49.725261635 +0100
@@ -65,7 +65,7 @@
long long Util::getNTP() {
struct timespec t;
clock_gettime(CLOCK_REALTIME, &t);
- return ((((long long int)t.tv_sec) + 2208988800) << 32) + (t.tv_nsec * 4.2949);
+ return ((((long long int)t.tv_sec) + 2208988800U) << 32) + (t.tv_nsec * 4.2949);
}

/// Gets the current time in millisecon

Now it builds without issues. Thought you would like to know , thanks qinohe

HandShake: client signature does not match!

Hello,

First: Great Project!

I have a issue, when pushing to rtmp:

HandShake: client signature does not match!

command is like this:

avconv -i http://192.168.1.50:9981/stream/channelid/251 -acodec libfaac -strict experimental -b:a 64k -ar 44100 -vcodec libx264 -filter:v yadif -threads 0 -preset:v fast -profile:v baseline -crf 20 -f mpegts -s 854x480 -r 25 rtmp://localhost/play/tvheadend

MIME types on JS CSS

Mime types showing as text/html causing cross origin issues in Chrome. Can JS and CSS Files please be updated to use correct mime types please

playing ogg file tries to seek past the end

I'm trying out mist server, and upon adding an ogg file and attempting to play it with the embed code, it plays about 1 or 2 seconds, then cuts off. Upon looking at logs, it says it could not fread at offset x, where x seems to be the last byte of the file. Weirdly enough, upon using the preview feature it will play fine in a loop. Any thoughts? Using mist server 2.18 on arch linux.
-Michael.

pushing to tiktok

hi there! i'm trying to push an rtmp stream to tiktok but i run into a problem with authentication. the url is something like this:

rtmps://push-rtmp-f5-va01.tiktokcdn.com:443/game/stream-XXX?expire=XXX&sign=XXX

looking at the log i see these lines:

Stripping target options: expire=XXX&sign=XXX
Received error response: NetStream.Publish.InvalidSign; func:OnStatus:func:RtmpStatusCode2NssError:invalid_sign

why is mistserver stripping part of the url? what can i do? many thanks!

Build for ARMv7

Hi - I've bought several mistserver licences on the past, and wanted to try mistserver for ARM. I wanted to know, cause haven't seen any in the README, how to build for ARM

Install as service on Windows

Hi there,

I am trying mistserver on win at the moment.
Runns good but I have to login to windows and then manually start mistserver...

Is there a way to install this as service or even to configure it to autostart?

Many thanks

Bad .ts emtted

Often server emit bad TS segments (Example attached).

In this .ts file packet 3

* Packet 3
  ---- TS Header ----
  PID: 255 (0x00FF), header size: 12, sync: 0x47
  Error: 0, unit start: 1, priority: 0
  Scrambling: 0, continuity counter: 1
  Adaptation field: yes (8 bytes), payload: yes (176 bytes)
  Discontinuity: 0, random access: 1, ES priority: 1
  PCR: 0x00D1F8BAF98
  ---- PES Header ----
  Stream id: 0xE0 (Video 0)
  PES packet length: 65493
  ---- Full TS Packet Content ----
  47 40 FF 31 07 70 05 99 67 F9 7E 00 00 00 01 E0 FF D5 84 D0 0D 31 2C CB
  B7 19 11 2C CB 9F E5 80 0B B3 00 00 00 01 09 F0 00 00 00 01 67 64 00 20
  AC D9 40 50 05 BA 10 00 00 03 00 10 00 00 07 88 F1 83 19 60 00 00 00 01
  68 EF BC B0 00 00 00 01 65 88 84 03 FF DE 2A 1C D3 FF E0 B1 7E AE 0D B2
  29 B5 D0 78 5F 1D A6 16 B2 32 6D F2 98 19 40 39 BF 00 04 72 EE 8A 03 54
  AE 58 EE 36 2F 64 9D B2 4E 81 30 2D 85 D2 2E E3 10 E1 1B 81 81 9C 9D B3
  3A 88 7A E3 7D 0C 77 55 9B A9 9E 5C 72 99 BA 96 54 52 57 FD 03 E0 69 7D
  E9 23 F5 6B E2 91 25 A9 09 B4 BC 21 72 FE E8 33 29 00 FA 9F

Specifies PES packet length to be 65493. But actual data size for this PES packet 65490.
And in the header of the next PES packet:

* Packet 360
  ---- TS Header ----
  PID: 255 (0x00FF), header size: 166, sync: 0x47
  Error: 0, unit start: 1, priority: 0
  Scrambling: 0, continuity counter: 6
  Adaptation field: yes (162 bytes), payload: yes (22 bytes)
  Discontinuity: 0, random access: 1, ES priority: 1
  PCR: 0x00D1F8BAF98
  ---- PES Header ----
  Stream id: 0xE0 (Video 0)
  PES packet length: 19
  ---- Full TS Packet Content ----
  47 40 FF 36 A1 70 05 99 67 F9 7E 00 66 64 36 64 62 31 32 34 38 36 36 37
  65 34 61 33 39 38 64 39 34 38 36 61 66 66 32 33 62 62 31 31 00 66 64 36
  64 62 31 32 34 38 36 36 37 65 34 61 33 39 38 64 39 34 38 36 61 66 66 32
  33 62 62 31 31 00 66 64 36 64 62 31 32 34 38 36 36 37 65 34 61 33 39 38
  64 39 34 38 36 61 66 66 32 33 62 62 31 31 00 66 64 36 64 62 31 32 34 38
  36 36 37 65 34 61 33 39 38 64 39 34 38 36 61 66 66 32 33 62 62 31 31 00
  66 64 36 64 62 31 32 34 38 36 36 37 65 34 61 33 39 38 64 39 34 38 00 00
  01 E0 00 13 80 D0 0D 31 2C CB B7 19 11 2C CB 9F E5 80 0B B3

PES packet length specified 19, though with given payload length (22 bytes) it should be 16.

bad_video_RavinAmulet_0_1_index.m3u8_sessId_71371_1959_17f8cf19be7e24f7ad7c.ts.gz

macos: fatal error: 'mbedtls/ctr_drbg.h' file not found

The mbedtls/ctr_drbg.h installed by brew is not being picked up by cmake.

% brew search mbedtls
==> Formulae
mbedtls ✔                                                                                              mbedtls@2 ✔
% ls -al /usr/local//include/mbedtls
lrwxr-xr-x  1 jayvdb  staff  39 27 Apr 22:58 /usr/local//include/mbedtls -> ../Cellar/mbedtls/3.1.0/include/mbedtls

mistserver % cd build
build % cmake ..
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is AppleClang 13.1.6.13160021
-- The CXX compiler identification is AppleClang 13.1.6.13160021
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Builing release "Generic_64" for version "3.0" @ debug level 4
Building with SRT
-- Found Doxygen: /usr/local/bin/doxygen (found version "1.9.2") found components: doxygen dot
Not cross compiling - building sourcery
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/jayvdb/inv/mistserver/build
build % make
[  0%] Building CXX object CMakeFiles/mist.dir/lib/mp4_dash.cpp.o
In file included from /Users/jayvdb/inv/mistserver/lib/mp4_dash.cpp:2:
In file included from /Users/jayvdb/inv/mistserver/lib/mp4_dash.h:2:
In file included from /Users/jayvdb/inv/mistserver/lib/mp4.h:2:
In file included from /Users/jayvdb/inv/mistserver/lib/dtsc.h:6:
In file included from /Users/jayvdb/inv/mistserver/lib/json.h:3:
/Users/jayvdb/inv/mistserver/lib/socket.h:21:10: fatal error: 'mbedtls/ctr_drbg.h' file not found
#include "mbedtls/ctr_drbg.h"
         ^~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/mist.dir/lib/mp4_dash.cpp.o] Error 1
make[1]: *** [CMakeFiles/mist.dir/all] Error 2
make: *** [all] Error 2

MPEG2-TS pull input

Pull input http:// is only used for HLS, yes? Is it possible to use http:// for mp4 (mpegts) streams?

Player.js doesn't work on Android

Hi,

First of all, thanks for such an amazing piece of open source software.

I'm using OBS to stream to the created stream in the MistServer web interface. I embedded the code it gave me with player.js.

It works great on desktop (tried chrome and edge) but on Android (chrome) it doesn't work well at all. Most of the time it will show a black screen, but sometimes it will play but just show a frame or two before freezing or buffering. What's interesting is I tried playing the .webm directly in the chrome Android browser and that doesn't play well either (it keeps buffering).

Any ideas why this isn't working well on mobile? I'm only streaming at around 1000 kbps, with keyframe interval 5 seconds, so I feel that it shouldn't be that hard to play on a mobile device.

mac version: all input yields "Shutting down since this session is not allowed to view this stream"

Getting this upon sending in a valid RTMP stream:

[2022-06-14 16:17:46] MistOutRTMP:stream (33288) INFO: Waiting for stream buffer to be ready... (0) (/Users/iameli/code/mistserver/src/output/output.cpp:1988)
[2022-06-14 16:17:47] MistOutRTMP:stream (33288) INFO: Reconnecting to stream buffer... (0) (/Users/iameli/code/mistserver/src/output/output.cpp:1993)
[2022-06-14 16:17:48] MistOutRTMP:stream (33290) INFO: Starting /Users/iameli/code/livepeer-in-a-box/bin/MistInBuffer -s stream push://  (/Users/iameli/code/mistserver/lib/stream.cpp:594)
[2022-06-14 16:17:48] MistInBuffer:stream (33290) INFO: Input booting (/Users/iameli/code/mistserver/src/input/input.cpp:310)
[2022-06-14 16:17:48] MistInBuffer:stream (33291) INFO: Starting serve (/Users/iameli/code/mistserver/src/input/input.cpp:536)
[2022-06-14 16:17:48] MistInBuffer:stream (33291) INFO: Input started (/Users/iameli/code/mistserver/src/input/input.cpp:652)
[2022-06-14 16:17:48] MistInBuffer:stream (33291) INFO: Setting maxKeepAway from 0 to new value of 45000 (/Users/iameli/code/mistserver/src/input/input_buffer.cpp:580)
[2022-06-14 16:17:48] MistOutRTMP:stream (33288) INFO: Client handler shutting down, exit reason: Shutting down since this session is not allowed to view this stream (/Users/iameli/code/mistserver/src/output/output.cpp:1398)
[2022-06-14 16:17:48] MistOutRTMP:stream (33288) INFO: Exit reason: Shutting down since this session is not allowed to view this stream (/Users/iameli/code/mistserver/src/output/mist_out.cpp:73)
[2022-06-14 16:17:48] MistSession (33294) FAIL: Session 'I5e9d94846c91fb28f48e40ceb19f320559cd51db34048dc7e658a0ce40827bb3' already locked (/Users/iameli/code/mistserver/src/session.cpp:199)
[2022-06-14 16:17:48] MistSession (33292) FAIL: Session 'I5e9d94846c91fb28f48e40ceb19f320559cd51db34048dc7e658a0ce40827bb3' already locked (/Users/iameli/code/mistserver/src/session.cpp:199)
[2022-06-14 16:17:48] MistSession (33293) FAIL: Session 'I5e9d94846c91fb28f48e40ceb19f320559cd51db34048dc7e658a0ce40827bb3' already locked (/Users/iameli/code/mistserver/src/session.cpp:199)
[2022-06-14 16:18:18] MistInBuffer:stream (33291) INFO: Input closing clean, reason: no activity for 30 seconds (/Users/iameli/code/mistserver/src/input/input.cpp:678)
[2022-06-14 16:18:18] MistInBuffer:stream (33290) WARN: Input for stream stream uncleanly shut down! Aborting restart; this is a development build. (/Users/iameli/code/mistserver/src/input/input.cpp:459)

Seems to happen on all branches downstream of the session rework.

Issues of pull RTSP streams and meaning of "Stream processes" when creating a stream

Gist Server 3.0 to pull RTST streams and send them to web browsers.

Latest 3.0 Mist Server on Ubuntu (under Windows 11 WSL)

Step 1. I can create a stream using push:// and follow configuration instructions to display an RTSP stream in the preview window (using ffmpeg to create an rtsp output from a local video file).

Step 2. I run a EasyDarwin rtsp server locally and then using ffmpeg to create a rtsp stream to publish it to EasyDarwin Server. I can play the RTSP stream using VLC or ffplay. However, I can not preview the stream from the rtsp stream following the user's manual as a pull input. The preview windows show "stream is offline" or "Stream is waiting for data". The detailed log file is attached for reference.

Need more instructions on troubleshooting the rtsp as a pull input.
There is "Stream processes" set in on the page of creating a stream. I can not find the relevant info in the user's manual. Do I need to create a stream process for a pull input? When a new "Stream Process" need to be created?

mistserver_rtsp_input_log.txt

continuity_counter is reset on HLS segment split

I noticed that in HLS output there are CC errors for video and audio PIDs between TS-segment boundaries.
So it looks like CC counters are reset on segment split by mistake.

[https://trac.ffmpeg.org/ticket/2828]

System: MistServer Pro 2.7

Mist player typo

Line 175 (dev brunch)

      if ("first" in options.forcePriority) {
        sortopions.first = options.forcePriority.first; //overwrite
      }

'sortopions' has typo, Expected 'sortoptions'

count ot MistConnHTTPProgressive

MistConnHTTPProgressive processes are building up. Right now I have 3 connections and 8 MistConnHTTPProgressive processes. None of them are zombies.

Windows builds

Neither of your Windows builds download links (64 & 32-bit) work.

Input process (PID 3879352) shut down before stream coming online, aborting

Mistserver 3.1 on CentOS Stream 9. We restarted the service:

Jul 23 06:07:12 server systemd[1]: Stopping MistServer...
Jul 23 06:07:12 server MistController[3804293]: [2022-07-23 06:07:12] MistController (3804293) CONF: Controller shutting down because of user request (received shutdown signal)
Jul 23 06:07:13 server MistController[3804293]: Killed all processes, wrote config to disk. Exiting.
Jul 23 06:07:22 server systemd[1]: mistserver.service: State 'final-sigterm' timed out. Killing.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804411 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804412 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804414 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804415 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804419 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804420 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804422 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804423 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804431 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804432 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804434 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3804435 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3850985 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3850986 (MistInTS) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3850988 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Killing process 3850989 (MistInBuffer) with signal SIGKILL.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Failed with result 'timeout'.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804412 (MistInTS) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804414 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804415 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804420 (MistInTS) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804422 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804423 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804431 (MistInTS) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804432 (MistInTS) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804434 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3804435 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3850985 (MistInTS) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3850986 (MistInTS) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3850988 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: mistserver.service: Unit process 3850989 (MistInBuffer) remains running after unit stopped.
Jul 23 06:07:22 server systemd[1]: Stopped MistServer.

After restart a lof of such messages started to appear:

Jul 23 06:07:56 server MistController[3879038]: [2022-07-23 06:07:56] MistInTS:bf5002 (3879375) WARN: A pull process for this stream is already running
Jul 23 06:07:56 server MistController[3879038]: [2022-07-23 06:07:56] MistInTS:bf5002 (3879377) WARN: A pull process for this stream is already running
Jul 23 06:07:56 server MistController[3879038]: [2022-07-23 06:07:56] MistOutHTTPTS:bf5012 (3879251) FAIL: Input process (PID 3879346) shut down before stream coming online, aborting.
Jul 23 06:07:56 server MistController[3879038]: [2022-07-23 06:07:56] MistOutHTTPTS:bf5012 (3879251) FAIL: onFail 'bf5012': Stream open failed
Jul 23 06:07:56 server MistController[3879038]: [2022-07-23 06:07:56] MistOutHTTPTS:bf5012 (3879251) FAIL: onFail 'bf5012': Could not connect to stream
Jul 23 06:07:56 server MistController[3879038]: [2022-07-23 06:07:56] MistInTS:bf5012 (3879378) WARN: A pull process for this stream is already running
Jul 23 06:07:56 server MistController[3879038]: [2022-07-23 06:07:56] MistInTS:bf5002 (3879380) WARN: A pull process for this stream is already running
Jul 23 06:07:57 server MistController[3879038]: [2022-07-23 06:07:57] MistOutHTTPTS:bf5012 (3879306) FAIL: Input process (PID 3879352) shut down before stream coming online, aborting.
Jul 23 06:07:57 server MistController[3879038]: [2022-07-23 06:07:57] MistOutHTTPTS:bf5012 (3879306) FAIL: onFail 'bf5012': Stream open failed
Jul 23 06:07:57 server MistController[3879038]: [2022-07-23 06:07:57] MistOutHTTPTS:bf5012 (3879306) FAIL: onFail 'bf5012': Could not connect to stream
Jul 23 06:07:57 server MistController[3879038]: [2022-07-23 06:07:57] MistInTS:bf5012 (3879381) WARN: A pull process for this stream is already running

Only after 2nd restart they disappeared.

Streaming SRT using OBS does not work / causes heavy artifacts

Mistserver version: 3.0 Free_64
Server OS: Debian 11.2

Server stream settings

Screenshot_20220305_184915

Server netstat

# netstat -tulpn | grep 8002
udp        0      0 0.0.0.0:8002            0.0.0.0:*                           500806/MistInTSSRT

Server status

Screenshot_20220305_185043

OBS Server url: srt://<ip>:8002

Mistserver log

Screenshot_20220305_185136

Stream preview fails

Screenshot_20220305_185215

If you need any additional information or command I should run on the server for debugging this, please just let me know.

EDIT:
The video encoder used on OBS is x265 with CBR set to 2500 Kbps and streaming using rtmp works without issues.

catalyst: Replication across regions not working

PR #72 introduced a problem with the replication across the regions.

Comment from @emranemran

Just tested a build with the suspicious mist commit (5d1b02f) reverted and we're seeing a much better experience. So we're reverting this to get back to stable state. @Thulinma would you be able to reintroduce this commit required for Evan's work or help debug? I wish we could share logs of the failures but they're nonexistent atm due to the Loki logging issue. FWIW, I saw unable to playback running catalyst locally as well with the problematic commit in place i.e. ingest into node1 and playback from node2.

Issue with overview

Looks like on 2.10 the overview page is now gone. I have tried upgrading, and then i tried a fresh install, overview page is just empty.
OS : centos 7, installed the linux 64bit

overview

Creating semaphore failed when trying to push RTMP stream from Axis camera

I am on a Debian machine and I am getting the following errors when trying to pull the video stream from an Axis camera

Mon 15 Nov 2021, 17:20:12 | WARN | Input for stream multicast uncleanly shut down! Restarting...
Mon 15 Nov 2021, 17:20:12 | FAIL | Creating semaphore /MstSTAT failed: No such file or directory
Mon 15 Nov 2021, 17:20:07 | FAIL | Creating copy of semaphore /MstUSERmulticast failed: No such file or directory
Mon 15 Nov 2021, 17:20:02 | FAIL | Creating semaphore /MstUSERmulticast failed: No such file or directory
Mon 15 Nov 2021, 17:19:57 | WARN | Could not get stream 'multicast' config!
Mon 15 Nov 2021, 17:11:02 | ACCS | Session <d0cbc190c1de060b40ec2ede70ae0485> kirche (MP4) from 62.178.79.107 ended after 993s, avg 482KB/s up 0KB/s down. Tags: [UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53]
Mon 15 Nov 2021, 17:10:46 | FAIL | onFail 'kirche': Could not connect to stream
Mon 15 Nov 2021, 17:10:26 | WARN | Timestamps went from 0 to 1871710 (increased): rewriting timestamps for continuity
Mon 15 Nov 2021, 17:10:19 | ACCS | Session <b685ea8c3ff9be5dd914bdeb9801243d> kirche (INPUT:RTMP) from 62.157.176.34 ended after 2s, avg 0KB/s up 0KB/s down.
Mon 15 Nov 2021, 17:10:11 | ACCS | Session <16431b88d22512c3a71de65fa4592c27> kirche (INPUT:RTMP) from 62.157.176.34 ended after 1s, avg 3KB/s up 3KB/s down.
Mon 15 Nov 2021, 17:10:05 | ACCS | Session <a7bb8de404de83591b870c7485857229> kirche (INPUT:RTMP) from 62.157.176.34 ended after 1772s, avg 0KB/s up 513KB/s down.
Mon 15 Nov 2021, 17:10:01 | WARN | Dropping input track 1: disconnect request from buffer
Mon 15 Nov 2021, 17:10:01 | WARN | Dropping input track 0: disconnect request from buffer
Mon 15 Nov 2021, 17:10:00 | WARN | Dropping kirche (AAC) track 1@k840 (nextP=4294967295, lastP=810): disappeared from metadata
Mon 15 Nov 2021, 17:10:00 | WARN | Dropping kirche (H264) track 0@k860 (nextP=4294967295, lastP=858): disappeared from metadata
Mon 15 Nov 2021, 17:10:00 | WARN | Erasing kirche track 1 (audio/AAC) because not updated for 51s (> 50s)
Mon 15 Nov 2021, 17:10:00 | WARN | Erasing kirche track 0 (video/H264) because not updated for 51s (> 50s)
Mon 15 Nov 2021, 17:09:57 | WARN | Input for stream multicast uncleanly shut down! Restarting...
Mon 15 Nov 2021, 17:09:57 | FAIL | Creating semaphore /MstSTAT failed: No such file or directory
Mon 15 Nov 2021, 17:09:52 | FAIL | Creating copy of semaphore /MstUSERmulticast failed: No such file or directory
Mon 15 Nov 2021, 17:09:47 | FAIL | Creating semaphore /MstUSERmulticast failed: No such file or directory
Mon 15 Nov 2021, 17:09:42 | WARN | Could not get stream 'multicast' config!
Mon 15 Nov 2021, 17:09:41 | ACCS | Session <d4632f503a2fca015614e416bb1315f2> kirche (INPUT:RTMP) from 62.157.176.34 ended after 1s, avg 3KB/s up 3KB/s down.
Mon 15 Nov 2021, 17:09:30 | WARN | Waiting for lookahead (5000ms in 2 tracks) timed out - resetting lookahead!
Mon 15 Nov 2021, 17:09:30 | WARN | Track 0: 1795360 <= 1795360

any ideas what could be the cause of this issue?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.