Coder Social home page Coder Social logo

monasolutions / monaserver2 Goto Github PK

View Code? Open in Web Editor NEW
265.0 265.0 37.0 112.98 MB

Temporary project planned to replace MonaServer

License: GNU General Public License v3.0

C 0.01% C++ 93.93% Makefile 0.56% CSS 0.03% JavaScript 4.63% HTML 0.73% ActionScript 0.11% Shell 0.01%

monaserver2's People

Contributors

fancy2209 avatar mathieupoux avatar potsky avatar tchakabam avatar thomasjammet 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

monaserver2's Issues

SRT Publication with Passphrase/Encryption

Hello,

Thank you for this immensely useful software.

I've successfully been using MonaServer and SRT for a while, but without encryption. In my setup, OBS publishes a stream to MonaServer, and VLC or mpv/ffmpeg receives an SRT publication of that stream to play it back.

However, now I want to set up encryption and I'm having trouble.

My configuration looks like this:

[SRT=true]
; socket bind
port=9710
host=127.0.0.1
publicPort=9710
publicHost=127.0.0.1
; socket parameters, if not set use [net] parameters (see above in CATEGORIZED)
bufferSize=65536
recvBufferSize=65536
sendBufferSize=65536
; SRTO_TLPKTDROP, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
pktdrop=true
; SRTO_PBKEYLEN, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
encryption=0
; SRTO_PASSPHRASE, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
passphrase="publish_passphrase"
; SRTO_RCVLATENCY, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
latency=120
; SRTO_PEERLATENCY, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
peerlatency=0
; SRTO_MSS, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
mss=1500
; SRTO_OHEADBW, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
overheadbw=25
; SRTO_MAXBW, see https://github.com/Haivision/srt/blob/master/docs/API.md#options
maxbw=-1

[RTMFP=false]
[RTMP=false]
[HTTPS=false]
[WS=false]
[WSS=false]

[live=publication]
passphrase="publication_passphrase"
OUT srt://0.0.0.0:5678

Encryption works for receiving the stream from OBS on port 9710 by configuring OBS to stream to srt://127.0.0.1:9710/?streamid=#!::r=live,m=publish&passphrase=publish_passphrase. Without including the passphrase option in the URL, the connection is rejected as intended.

The publication is created, but it doesn't seem to use encryption. I can successfully connect and play the stream with mpv like mpv srt://localhost:5678. No passphrase option is required.

How can I enable and enforce encryption on SRT publications?

edit:

I also tried the following:

[live=publication]
OUT srt://0.0.0.0:5678?passphrase=publication_passphrase

This doesn't work either; mpv can still play it back without providing a passphrase.

Why doesn't the front page of website advertise RTSP support?

I've used MonaTiny before as a very well designed and the simplest RTSP server I've found yet.

Yet on www.monaserver.ovh, RTSP isn't listed as a supported protocol? Is that because only MonaServer2 supports RTSP and it's still in Beta?

We are strongly considering buying a license but want to make sure that RTSP support is actually production ready.. what do we need to worry about?

Insufficient bandwidth playing from localhost?

Subscription.cpp[460] Video timeout, insufficient bandwidth to play testfeed2

I am attempting to play an approx 7000-10000 kbps RTMP video stream using MonaTiny 1.195 smoothly via a VLC Video Source in OBS. The RTMP server is running on the same server as OBS (which is accessing the stream via VLC Video Source) so it is being accessed via localhost. I already have bufferSize=4096000 in the INI file. We are receiving our video via a third-party stream that is publishing from their servers to MonaTiny via RTMP. This issue does not occur when they send their third-party stream directly to our livestreaming provider.

Lowering the video bitrate to <4000-5000 kbps as well as using a 30fps source instead of a 60fps will fix the issue. However this is unacceptable as this degrades our video quality. What would cause this error to occur? Could the built-in Port Scanning Prevention Filter be resetting the TCP connection? (This is running on Windows Server 2016.) I've noticed a slight improvement turning off Stealth Mode for the Windows Firewall, but I still have choppy video issues with my source in my OBS stream.

We do not have any CPU/RAM/resource issues on our target server running MonaTiny and OBS. Both source and target servers have >100Mbps bandwidth, with <60ms ping, and minimal hops between the two servers. Speedtest.net routinely shows >500Mbps connection for both hosts for both upload and download. MonaTiny is also only being used for this video stream, so there isn't much contention for resources.

Multiple issues during use - please open for details

System :
Ryzen 1700x
16gb RAM
1080ti
Windows 10
Hardwire LAN / 250mbps down / 20 up
Used standard issue x64 build ( I did not build my own from git )

Use :

8 OBS rtmp feeds incoming from 8 different pcs around the nation pointed towards my MonaServer2 - which I then pull those in as VLC inputs to my own instance of OBS and do POV mixing/production

History : This has worked flawlessly in the past ( 9 months ago ) - with zero errors in the console

Problem : Used it this weekend for an event - had multiple instances of the following errors

congested session
insufficient video bandwidth

which obviously caused signal drop into OBS - but also caused my stream to another MonaServer to go to 0kbps. for 10-15 seconds while it settled back in and then it was back to business - this would happen once every 15-20 minutes which was really a downer.

I tested this again on a windows server 2008 box and another win10 as well. Same issues.

Any help is appreciated. I never took the time to build my own, due to the standard issue not having any issues 9 months ago. ( good enough for my needs at the time )

  • I can provide a log later if needed.

can't compile on windows

I have problems when compiling MonaServer2 on Windows .The compiler can't find Mona/Group.h,Mona/NetStats.h,Mona/MedaiContainer.h and other files

Last step to make Mona2 a real C++ project

Please use CMake so that the future dependencies will be handled by either vcpkg on Windows for Visual Studio solutions, or equivalent on MacOS and Linux.

If we start to add agnostic language VMs then this will become a hell for dependency management.

Hopefully at this moment there are only 2 dependencies:

  1. OpenSSL
  2. LuaJIT

Let's not make this a bad habit to include depencies in source code.

CMake UI is what I use on Windows and it generates all VS solutions in a second.

I hope this helps.

Question

Sorry, I have a question, not an issue.
If I broadcast using MS2 from OBS and I set the stream to, for example, 2mbps, and 10 people stream it, will they all use the 2mbps or do they all get 2mbps each using up my full upload bandwidth of 20mbps?
Thanks

Problem make on macos .15

In file included from sources/Subscription.cpp:19:
In file included from ./include/Mona/Subscription.h:22:
In file included from ./../MonaBase/include/Mona/Congestion.h:21:
In file included from ./../MonaBase/include/Mona/Net.h:20:
In file included from ./../MonaBase/include/Mona/Exceptions.h:20:
./../MonaBase/include/Mona/String.h:255:10: error: call to 'Append' is ambiguous
return Append((OutType&)out.append(value, size ...
^~~~~~~~~~~~~~~
./../MonaBase/include/Mona/String.h:368:10: note: in instantiation of function
template specialization 'Mona::String::Append<Mona::String, const char, 3,
Mona::Media::Video::Frame &, char const (&)[2]>' requested here
return Append((OutType&)out.append(buffer,strle...
^
./../MonaBase/include/Mona/String.h:255:10: note: in instantiation of function
template specialization 'Mona::String::Append<Mona::String, char const
(&)[3], Mona::Media::Video::Frame &, char const (&)[2]>' requested here
return Append((OutType&)out.append(value, size ...
^
./../MonaBase/include/Mona/String.h:368:10: note: in instantiation of function
template specialization 'Mona::String::Append<Mona::String, const char, 3,
unsigned int &, char const (&)[3], Mona::Media::Video::Frame &, char const
(&)[2]>' requested here
return Append((OutType&)out.append(buffer,strle...
^
./../MonaBase/include/Mona/String.h:255:10: note: in instantiation of function
template specialization 'Mona::String::Append<Mona::String, char const
(&)[3], unsigned int &, char const (&)[3], Mona::Media::Video::Frame &,
char const (&)[2]>' requested here
return Append((OutType&)out.append(value, size ...
^
./../MonaBase/include/Mona/String.h:240:10: note: in instantiation of function
template specialization 'Mona::String::Append<Mona::String, const char,
14, const unsigned int &, char const (&)[3], unsigned int &, char const
(&)[3], Mona::Media::Video::Frame &, char const (&)[2]>' requested here
return Append((OutType&)out.append(value.data()...
^
./../MonaBase/include/Mona/String.h:234:10: note: in instantiation of function
template specialization 'Mona::String::Append<Mona::String, char const
(&)[14], const unsigned int &, char const (&)[3], unsigned int &, char
const (&)[3], Mona::Media::Video::Frame &, char const (&)[2]>' requested
here
return Append(out, std::forward(args)...);
^
./../MonaBase/include/Mona/Logs.h:82:11: note: in instantiation of function
template specialization 'Mona::String::Assign<Mona::String, const
std::__1::basic_string &, char const (&)[14], const unsigned int &,
char const (&)[3], unsigned int &, char const (&)[3],
Mona::Media::Video::Frame &, char const (&)[2]>' requested here
String::Assign(Message, std::forward(args)...);
^
sources/Subscription.cpp:542:3: note: in instantiation of function template
specialization 'Mona::Logs::Log<const std::__1::basic_string &, char
const (&)[14], const unsigned int &, char const (&)[3], unsigned int &,
char const (&)[3], Mona::Media::Video::Frame &, char const (&)[2]>'
requested here
TRACE(pPublication->name(), " video time, ", tag.time, "...
^
./../MonaBase/include/Mona/Logs.h:193:20: note: expanded from macro 'TRACE'
#define TRACE(...) LOG(Mona::LOG_TRACE, VA_ARGS)
^
./../MonaBase/include/Mona/Logs.h:184:78: note: expanded from macro 'LOG'
......) { if(Mona::Logs::GetLevel()>=(LEVEL)) { Mona::Logs::Log((LEVEL), _...
^
./../MonaBase/include/Mona/String.h:333:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, int value, Args&&... args) {
^
./../MonaBase/include/Mona/String.h:349:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, unsigned char value, Args&&...
^
./../MonaBase/include/Mona/String.h:311:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, char value, Args&&... args) {
^
./../MonaBase/include/Mona/String.h:317:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, signed char value, Args&&.....
^
./../MonaBase/include/Mona/String.h:325:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, short value, Args&&... args) {
^
./../MonaBase/include/Mona/String.h:341:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, long value, Args&&... args) {
^
./../MonaBase/include/Mona/String.h:357:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, unsigned short value, Args&...
^
./../MonaBase/include/Mona/String.h:365:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, unsigned int value, Args&&....
^
./../MonaBase/include/Mona/String.h:373:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, unsigned long value, Args&&...
^
./../MonaBase/include/Mona/String.h:381:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, long long value, Args&&... args) {
^
./../MonaBase/include/Mona/String.h:389:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, unsigned long long value, A...
^
./../MonaBase/include/Mona/String.h:397:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, float value, Args&&... args) {
^
./../MonaBase/include/Mona/String.h:405:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, double value, Args&&... args) {
^
./../MonaBase/include/Mona/String.h:413:18: note: candidate function [with
OutType = Mona::String, Args = <char const (&)[2]>]
static OutType& Append(OutType& out, bool value, Args&&... args) {
^
1 error generated.
make[2]: *** [tmp/release/Subscription.o] Error 1
make[2]: tmp/release/TCPSession.o' is up to date. make[2]: tmp/release/TCProtocol.o' is up to date.

MonaServer project doesn't compile (just MonaTiny build)

Some error in the project.
File MapParameters.h seems to be missing.
MonaBase compile OK in Windows, but makefile not working.
MonaCore compile OK in Windows, but makefile not working.
MonaTiny compile OK in Windows, but makefile not working.
UnitTest compile OK in Windows, but makefile not working.
MonaServer do not compile, due to missing MapParameters.h

Cannot access RTMFP or SRT over public IP/from internet

Let me preface this- I doubt this is the fault of MonaServer, but it's more of a just-in-case or perhaps if someone has the answer, someone can find out why. Either that, or my router is being a dumbdumb. I really don't think it's ISP stuff. Feel free to remove or close- this isn't a support forum, I know.

I recently switched to MonaServer2. I had been using nginx-rtmp to pass RTMP livestreams to my girlfriend (and receive from her) for over a couple years. It worked and MonaServer works for this as well- I switched since Mona supports SRT now.

I know how to do port forwarding. RTMP and HTTP (1935 and 80 TCP) have been forwarding correctly and work great. 8000 for Icecast as well. This is all TCP, however.

RTMFP, which uses 1935 also, will not work from outside my LAN- and yes, I set my forward rule to "both" as RTMFP is a UDP protocol. 9710 UDP was also opened for SRT. I've rebooted my router.

The ports are listening correctly, I can access the SRT and RTMFP streams just fine on the same LAN, but when accessing from the internet, it hits a wall as if the ports were closed.

MonaServer2 is running on a Debian 10 x64 computer, cleanly compiled from latest master as of yesterday, same with SRT, it compiled without errors and has been working great.

I do run through a AirStation wirelessly bridging me- on same subnet, no firewalling going on there, it's a true wireless bridge. The TP-Link downstairs is a 2019 Archer C5 (AC1200) that is connected to a DSL modem in bridge mode so I don't double NAT. It's worked great so far. I'd hate to have to try a different router. I know I've successfully forwarded UDP ports in the past!

Thanks for the trouble if anyone can think of anything to troubleshoot this, and if there's a better place for me to post crap like this, that's fine too.

Running MonaServer multiple times

Hi,

Is it possible to run the MonaServer multiple times within an application code?

#include <MonaServer.h>
#include "Mona/ServerApplication.h"
#include <Version.h>


using namespace std;
using namespace Mona;

class ServerApp : public ServerApplication  {

public:
    const char* defineVersion() { return VERSION; }

    MonaServer *server = nullptr;;
    TerminateSignal *m_termSignal = nullptr;

private:
///// MAIN
    int main(TerminateSignal& terminateSignal) {
        m_termSignal = &terminateSignal;

        // starts the server
        server = new MonaServer(self, terminateSignal);
        Parameters& params = server->start(self);
        // sync params!
        onChange = [&params](const string& key, const string* pValue) {
            if (pValue)
                params.setString(key, *pValue);
            else
                params.erase(key);
        };
        onClear = [&params]() { params.clear(); };

        terminateSignal.wait();

        // Stop the server
        server->stop();
        delete server;

        onChange = nullptr;
        onClear = nullptr;
        Logs::RemoveLogger(name());
        return Application::EXIT_OK;
    }
};

class MonaServerThread
{
public:
	void run()
	{
		m_server = new ServerApp();
		const char *dummy[] = {"test"};
		m_server->run(1, dummy);
		delete m_server;
	}
	
    void stopServer()
	{
		if (m_server)
		{
			m_server->m_termSignal->set();
		}
	}
private:
    ServerApp *m_server = nullptr;

};

The above code works only once. Calling MonaServerThread::run() a second time does not start the server again.

Thanks,

Thank you for help with SRT

I know this is possible the worst place for this, but the google groups thread won't let me respond, no matter what I try:

image

I just wanted to let you know that I am very thankful for your quick response and help, and that your samples worked flawlessly. I was able to reduce latency from 1000ms with a (rtmp -> monaserver2 -> rtmp) setup to about 400ms with a (rtmp -> monaserver2 -> srt) setup. For reference the configuration I used is:

[stream=Publication]
OUT srt://@0.0.0.0:1234

with OBS streaming to rtmp://127.0.0.1:1935/live and vlc opening the network stream at srt://127.0.0.1:1234.

SRT with MonServer2

I followed instructions to add SRT to MonaServer2, but no dice.

I am able to build both debug and release versions of 32 bit and 64 bit MonaServer2.

No matter how I add the header files and lib files I am still unable to see any type of SRT server in the console.

  • I have even disabled all other servers and made [SRT=true], still.. nothing.

Please advise.

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.19042 Build 19042
VS Version:                16.9.4

\\End of line

MonaServer sound

There are problems with the sound .when I use OBS push video(the source is screen) to MonaTiny and VLC to play ,the sound is always the the first ใ€‚the sound repeat again and again

MonaServer2 compilation on ARM64 AARCH64 problems

This is what I get in the compile logs

GCC & G++ 4.9

make[2]: Leaving directory '/mnt/virtual/MonaServer2/MonaBase'
creating dynamic lib lib/libMonaBase.so
creating static lib lib/libMonaBase.ar
make[1]: Leaving directory '/mnt/virtual/MonaServer2/MonaBase'
make[1]: Entering directory '/mnt/virtual/MonaServer2/MonaCore'
mkdir -p tmp/release
mkdir -p lib
make[2]: Entering directory '/mnt/virtual/MonaServer2/MonaCore'
compiling sources/Server.cpp
In file included from ./include/Mona/Publish.h:22:0,
                 from ./include/Mona/Server.h:23,
                 from sources/Server.cpp:19:
./include/Mona/ServerAPI.h: In lambda function:
./include/Mona/ServerAPI.h:107:11: error: โ€˜void Mona::ServerAPI::manage()โ€™ is protected
  void     manage();
           ^
sources/Server.cpp:116:22: error: within this context
    ServerAPI::manage(); // in first to mark obsolete publication/subscription
                      ^
At global scope:
cc1plus: warning: unrecognized command line option "-Wno-terminate"
Makefile:39: recipe for target 'tmp/release/Server.o' failed
make[2]: *** [tmp/release/Server.o] Error 1
compiling sources/MP3Reader.cpp
compiling sources/MediaWriter.cpp
compiling sources/RTP_MPEG.cpp
compiling sources/MediaSocket.cpp
In file included from ./include/Mona/MediaReader.h:22:0,
                 from ./include/Mona/MediaSocket.h:22,
                 from sources/MediaSocket.cpp:19:
./include/Mona/Media.h: In lambda function:
./include/Mona/Media.h:335:8: error: โ€˜void Mona::Media::Stream::stop(Mona::LOG_LEVEL, Args&& ...) [with ExType = Mona::Ex::Net::Socket; Args = {const char (&)[14]}; Mona::LOG_LEVEL = unsigned char]โ€™ is protected
   void stop(LOG_LEVEL level, Args&&... args) {
        ^
sources/MediaSocket.cpp:56:94: error: within this context
  _onSocketDisconnection = [this]() { Stream::stop<Ex::Net::Socket>(LOG_DEBUG, "disconnection"); };
                                                                                              ^
In file included from ./include/Mona/MediaReader.h:22:0,
                 from ./include/Mona/MediaSocket.h:22,
                 from sources/MediaSocket.cpp:19:
./include/Mona/Media.h: In lambda function:
./include/Mona/Media.h:330:8: error: โ€˜void Mona::Media::Stream::stop(Mona::LOG_LEVEL, const Mona::Exception&)โ€™ is protected
   void stop(LOG_LEVEL level, const Exception& ex) {
        ^
sources/MediaSocket.cpp:57:99: error: within this context
  _onSocketError = [this](const Exception& ex) { Stream::stop(_streaming ? LOG_WARN : LOG_DEBUG, ex); };
                                                                                                   ^
In file included from ./include/Mona/MediaReader.h:22:0,
                 from ./include/Mona/MediaSocket.h:22,
                 from sources/MediaSocket.cpp:19:
./include/Mona/Media.h: In lambda function:
./include/Mona/Media.h:335:8: error: โ€˜void Mona::Media::Stream::stop(Mona::LOG_LEVEL, Args&& ...) [with ExType = Mona::Ex::Protocol; Args = {const char*&}; Mona::LOG_LEVEL = unsigned char]โ€™ is protected
   void stop(LOG_LEVEL level, Args&&... args) {
        ^
sources/MediaSocket.cpp:79:106: error: within this context
   pDecoder->onError = _onError = [this](const char* error) {  Stream::stop<Ex::Protocol>(LOG_ERROR, error); };
                                                                                                          ^
In file included from ./include/Mona/MediaReader.h:22:0,
                 from ./include/Mona/MediaSocket.h:22,
                 from sources/MediaSocket.cpp:19:
./include/Mona/Media.h: In lambda function:
./include/Mona/Media.h:335:8: error: โ€˜void Mona::Media::Stream::stop(Mona::LOG_LEVEL, Args&& ...) [with ExType = Mona::Ex::Net::Socket; Args = {const Mona::SocketAddress&, const char (&)[14]}; Mona::LOG_LEVEL = unsigned char]โ€™ is protected
   void stop(LOG_LEVEL level, Args&&... args) {
        ^
sources/MediaSocket.cpp:196:102: error: within this context
  _onDisconnection = [this]() { Stream::stop<Ex::Net::Socket>(LOG_WARN, this->address, "disconnection"); };
                                                                                                      ^
In file included from ./include/Mona/MediaReader.h:22:0,
                 from ./include/Mona/MediaSocket.h:22,
                 from sources/MediaSocket.cpp:19:
./include/Mona/Media.h: In lambda function:
./include/Mona/Media.h:330:8: error: โ€˜void Mona::Media::Stream::stop(Mona::LOG_LEVEL, const Mona::Exception&)โ€™ is protected
   void stop(LOG_LEVEL level, const Exception& ex) {
        ^
sources/MediaSocket.cpp:197:95: error: within this context
  _onError = [this](const Exception& ex) { Stream::stop(*_pStreaming ? LOG_WARN : LOG_DEBUG, ex); };
                                                                                               ^
At global scope:
cc1plus: warning: unrecognized command line option "-Wno-terminate"
Makefile:39: recipe for target 'tmp/release/MediaSocket.o' failed
make[2]: *** [tmp/release/MediaSocket.o] Error 1
compiling sources/ADTSWriter.cpp
compiling sources/ServerAPI.cpp
make[2]: 'tmp/release/ADTSReader.o' is up to date.
make[2]: 'tmp/release/QueryReader.o' is up to date.
make[2]: 'tmp/release/MediaReader.o' is up to date.
make[2]: 'tmp/release/FlashWriter.o' is up to date.
compiling sources/MediaFile.cpp
In file included from ./include/Mona/MediaReader.h:22:0,
                 from ./include/Mona/MediaFile.h:22,
                 from sources/MediaFile.cpp:19:
./include/Mona/Media.h: In lambda function:
./include/Mona/Media.h:330:8: error: โ€˜void Mona::Media::Stream::stop(Mona::LOG_LEVEL, const Mona::Exception&)โ€™ is protected
   void stop(LOG_LEVEL level, const Exception& ex) {
        ^
sources/MediaFile.cpp:45:73: error: within this context
  _onFileError = [this](const Exception& ex) { Stream::stop(LOG_ERROR, ex); };
                                                                         ^
In file included from ./include/Mona/MediaReader.h:22:0,
                 from ./include/Mona/MediaFile.h:22,
                 from sources/MediaFile.cpp:19:
./include/Mona/Media.h: In lambda function:
./include/Mona/Media.h:330:8: error: โ€˜void Mona::Media::Stream::stop(Mona::LOG_LEVEL, const Mona::Exception&)โ€™ is protected
   void stop(LOG_LEVEL level, const Exception& ex) {
        ^
sources/MediaFile.cpp:120:69: error: within this context
  _onError = [this](const Exception& ex) { Stream::stop(LOG_ERROR, ex); };
                                                                     ^
At global scope:
cc1plus: warning: unrecognized command line option "-Wno-terminate"
Makefile:39: recipe for target 'tmp/release/MediaFile.o' failed
make[2]: *** [tmp/release/MediaFile.o] Error 1
make[2]: 'tmp/release/UDProtocol.o' is up to date.
make[2]: 'tmp/release/TSWriter.o' is up to date.
compiling sources/HTTP/HTTP.cpp
compiling sources/RTMP/RTMPSender.cpp
compiling sources/RTMP/RTMPDecoder.cpp
compiling sources/RTMP/RTMP.cpp
compiling sources/RTMP/RTMPSession.cpp
compiling sources/RTMP/RTMPWriter.cpp
compiling sources/WS/WS.cpp
compiling sources/WS/WSSender.cpp
compiling sources/WS/WSDecoder.cpp
compiling sources/WS/WSWriter.cpp
compiling sources/WS/WSSession.cpp
make[2]: Leaving directory '/mnt/virtual/MonaServer2/MonaCore'
Makefile:25: recipe for target 'release' failed
make[1]: *** [release] Error 2
make[1]: Leaving directory '/mnt/virtual/MonaServer2/MonaCore'
Makefile:2: recipe for target 'release' failed
make: *** [release] Error 2

POCO C++ Libraries Attribution

Hi folks, I saw that you took some "inspiration" (and also some code I wrote) from the POCO C++ Libraries. I'm referring to classes like HelpFormatter, WinRegistry, WinService, Application and ServerApplication in MonaBase. As one of the main authors and copyright holders, I'm generally fine with that, but please play fair and add a proper attribution to that, e.g., "This code is in part based on code from the POCO C++ Libraries, licensed under the Boost software license." Simply taking and modifying code and then putting it under a different license without proper attribution is not the way to go.
Thanks for playing fair.

Possible compilation problems with XCode due to "typeof" template

In the "Mona.h" header "typeof()" methods are defined (starting with line 300). When the project is compiled in XCode (version 12.4) then this leads to error messages. Renaming the "typeof()" methods in the whole project fixes the problem:

const` std::string& typeof(const std::type_info& info); // compilation errors
const` std::string& typeofcustom(const std::type_info& info); // no compilation errors

Try to build a dll with MonaTiny in VC++ 2017 compilation erros

Greetings again!

I download the repo from github.
I created a new SharedLibrary project in the MonaServer solution called MonaTinyShared.
I copied all the files from MonaTiny into it so that I can compile and output a MonaTinyShared.lib which worked as planed.
I created a dll project named rtmfp to include the MonaTinyShared project into it with simple structure and trying to compiled it to generate a final DLL.

This is the compilation errors I get:

1>------ Build started: Project: rtmfp, Configuration: Debug Win32 ------
1>dllMain.cpp
1>rtmfp.cpp
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(220): warning C4003: not enough actual parameters for macro 'min'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(220): error C2146: syntax error: missing ')' before identifier 'value'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(220): error C2433: 'Type': 'inline' not permitted on data declarations
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(220): error C2365: 'Type': redefinition; previous definition was 'template parameter'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(219): note: see declaration of 'Type'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(220): error C2061: syntax error: identifier 'value'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(220): error C2059: syntax error: ')'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(220): error C2988: unrecognizable template declaration/definition
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(222): error C2065: 'Type1': undeclared identifier
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(222): error C2065: 'Type2': undeclared identifier
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(222): error C2923: 'std::conditional': 'Type1' is not a valid template type argument for parameter '_Ty1'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(222): error C2923: 'std::conditional': 'Type2' is not a valid template type argument for parameter '_Ty2'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(223): warning C4002: too many actual parameters for macro 'min'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(223): error C2146: syntax error: missing ')' before identifier 'value2'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(223): error C2146: syntax error: missing ';' before identifier 'value2'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(223): error C2059: syntax error: ')'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(223): error C2143: syntax error: missing ';' before '{'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(223): error C2447: '{': missing function header (old-style formal list?)
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(226): warning C4003: not enough actual parameters for macro 'max'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(226): error C2146: syntax error: missing ')' before identifier 'value'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(226): error C2433: 'Type': 'inline' not permitted on data declarations
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(226): error C2365: 'Type': redefinition; previous definition was 'template parameter'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(225): note: see declaration of 'Type'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(226): error C2061: syntax error: identifier 'value'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(226): error C2059: syntax error: ')'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(226): error C2988: unrecognizable template declaration/definition
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(228): error C2065: 'Type1': undeclared identifier
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(228): error C2065: 'Type2': undeclared identifier
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(228): error C2923: 'std::conditional': 'Type1' is not a valid template type argument for parameter '_Ty1'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(228): error C2923: 'std::conditional': 'Type2' is not a valid template type argument for parameter '_Ty2'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(229): warning C4002: too many actual parameters for macro 'max'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(229): error C2146: syntax error: missing ')' before identifier 'value2'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(229): error C2146: syntax error: missing ';' before identifier 'value2'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(229): error C2059: syntax error: ')'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(229): error C2143: syntax error: missing ';' before '{'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(229): error C2447: '{': missing function header (old-style formal list?)
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(232): warning C4003: not enough actual parameters for macro 'max'
1>g:\programming\c++\monaserver2\monabase\include\mona\mona.h(232): warning C4003: not enough actual parameters for macro 'min'
1>Done building project "rtmfp.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I would like to know why is this happening. Thank you.

MonaTiny crashing with large frames

I was testing MonaTiny a few months ago and noticed that MonaTiny was having problems with large frame sizes. Specifically if I fed in a RTSP stream for 4k video, it would crash or give a weird error or something. Can't completely remember what was happening.

I believe the RTSP stream was already decoded(and therefore large~ 4MB) frames.

Running MonaServer on RPI

I've installed all dependencies and installed monoserver when running ./MonaServer/MonaServer
I get file not found. I think I'm missing something here?

collect2: error: ld returned 1 exit status make[1]: *** [Makefile:52: release] Error 1 make[1]: Leaving directory '/home/pi/MonaServer2/MonaTiny' make: *** [Makefile:2: release] Error 2 pi@raspberrypi:~/MonaServer2 $ ./MonaServer/MonaServer -bash: ./MonaServer/MonaServer: No such file or directory

Question: Getting status events

Is it possible to get status events (new client connected, disconnected) in the server code? If yes, can you point me to the appropriate classes?

Using only HTTP/HTTPS part of Mona in another project as Web server code.

Hi I would like to know if I can just use the Web server part of Mona in another project.
What code should I use just to run the Web server with certificates?

I see that the instanciation is done here but for all of them

void Protocols::load(ServerAPI& api, Sessions& sessions) {

How can I adapt this code when I add as dependency MonaCore in my project only for HTTP/HTTPS?

Also I would like to intercept all the incoming connection and be able to extract all the GET/POST params + the url path of each request after deciphering and manipulate them in my code.

Any suggestions?

Thank you for your support.

compile monaserver2 display error

Hi, when i compile MonaCore, it display below err:

Error C2664 โ€œstd::pair<const _Kty,_Ty>::pair(std::pair<const _Kty,_Ty> &&)โ€: ๆ— ๆณ•ๅฐ†ๅ‚ๆ•ฐ 2 ไปŽโ€œMona::HTTP::RendezVous::Remote *โ€่ฝฌๆขไธบโ€œconst std::unique_ptr<const Mona::HTTP::RendezVous::Remote,std::default_delete<_Ty>> &โ€ MonaCore E:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xmemory0 655

Could you help me ?ths.

Tried porting MonaBase as CMakelist project and compiling with errors

Hi I tried to create a CMake version of the MonaBase part of this project and I am getting the same error as follow:

Windows 10
Visual Studio 2017

2>Application.cpp
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(337): fatal error C1001: An internal error has occurred in the compiler.
2>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\p1\c\types.c', line 4563)
2> To work around this problem, try simplifying or changing the program near the locations listed above.
2>Please choose the Technical Support command on the Visual C++
2> Help menu, or open the Technical Support help file for more information
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(349): note: see reference to class template instantiation 'Mona::is_container<Type>' being compiled
2>BinaryReader.cpp
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(337): fatal error C1001: An internal error has occurred in the compiler.
2>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\p1\c\types.c', line 4563)
2> To work around this problem, try simplifying or changing the program near the locations listed above.
2>Please choose the Technical Support command on the Visual C++
2> Help menu, or open the Technical Support help file for more information
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(349): note: see reference to class template instantiation 'Mona::is_container<Type>' being compiled
2>BinaryWriter.cpp
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(337): fatal error C1001: An internal error has occurred in the compiler.
2>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\p1\c\types.c', line 4563)
2> To work around this problem, try simplifying or changing the program near the locations listed above.
2>Please choose the Technical Support command on the Visual C++
2> Help menu, or open the Technical Support help file for more information
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(349): note: see reference to class template instantiation 'Mona::is_container<Type>' being compiled
2>BitReader.cpp
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(337): fatal error C1001: An internal error has occurred in the compiler.
2>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\p1\c\types.c', line 4563)
2> To work around this problem, try simplifying or changing the program near the locations listed above.
2>Please choose the Technical Support command on the Visual C++
2> Help menu, or open the Technical Support help file for more information
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(349): note: see reference to class template instantiation 'Mona::is_container<Type>' being compiled
2>Buffer.cpp
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(337): fatal error C1001: An internal error has occurred in the compiler.
2>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\p1\c\types.c', line 4563)
2> To work around this problem, try simplifying or changing the program near the locations listed above.
2>Please choose the Technical Support command on the Visual C++
2> Help menu, or open the Technical Support help file for more information
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(349): note: see reference to class template instantiation 'Mona::is_container<Type>' being compiled
2>BufferPool.cpp
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(337): fatal error C1001: An internal error has occurred in the compiler.
2>(compiler file 'd:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\p1\c\types.c', line 4563)
2> To work around this problem, try simplifying or changing the program near the locations listed above.
2>Please choose the Technical Support command on the Visual C++
2> Help menu, or open the Technical Support help file for more information
2>C:\prog\c++\Mona\MonaBase\include\Mona/Mona.h(349): note: see reference to class template instantiation 'Mona::is_container<Type>' being compiled
2>Congestion.cpp

Why is this error?

crash

it just says

Application.cpp[134] MonaServer v2.666
Application.cpp[136] Load configuration file MonaServer.ini
Protocols.h[82] RTMFP server started on 0.0.0.0:1935
Protocols.h[82] RTMP server started on 0.0.0.0:1935
Protocols.h[82] RTMPS server started on 0.0.0.0:8443
Protocols.h[82] HTTP server started on 0.0.0.0:80
Protocols.h[82] WS server started on 0.0.0.0:80
Protocols.h[82] HTTPS server started on 0.0.0.0:443
Protocols.h[82] WSS server started on 0.0.0.0:443
Protocols.h[82] SRT server started on 0.0.0.0:9710
FlashMainStream.cpp[150] Method client releaseStream not found in application /
FlashMainStream.cpp[150] Method client FCPublish not found in application /
Publication.cpp[116] Publication started
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
RTMPDecoder.cpp[39] RTMP message exceeds buffer maximum 65536 size
TCPSession.cpp[32] RTMP session 1, Connection aborted (from=0.0.0.0:0, size=2048, flags=0)
TCPSession.cpp[32] RTMP session 1, Connection aborted (from=0.0.0.0:0, size=2048, flags=0)
TCPSession.cpp[32] RTMP session 1, Connection aborted
Publication.cpp[160] Publication stopped
FlashMainStream.cpp[150] Method client releaseStream not found in application /
FlashMainStream.cpp[150] Method client FCPublish not found in application /
Server.cpp[119] 1 clients
Publication.cpp[116] Publication started
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
RTMPDecoder.cpp[39] RTMP message exceeds buffer maximum 65536 size
TCPSession.cpp[32] RTMP session 1, Connection aborted
Publication.cpp[160] Publication stopped
FlashMainStream.cpp[150] Method client releaseStream not found in application /
FlashMainStream.cpp[150] Method client FCPublish not found in application /
Publication.cpp[116] Publication started
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
RTMPDecoder.cpp[39] RTMP message exceeds buffer maximum 65536 size
TCPSession.cpp[32] RTMP session 2, Connection aborted (from=0.0.0.0:0, size=2048, flags=0)
TCPSession.cpp[32] RTMP session 2, Connection aborted (from=0.0.0.0:0, size=2048, flags=0)
TCPSession.cpp[32] RTMP session 2, Connection aborted
Publication.cpp[160] Publication stopped
FlashMainStream.cpp[150] Method client releaseStream not found in application /
FlashMainStream.cpp[150] Method client FCPublish not found in application /
Publication.cpp[116] Publication started
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
Publication.cpp[248] Video frame dropped, waits a key frame
RTMPDecoder.cpp[39] RTMP message exceeds buffer maximum 65536 size
TCPSession.cpp[32] RTMP session 1, Connection aborted
Publication.cpp[160] Publication stopped
Server.cpp[119] 0 clients

and then it crashes

CMake project with Visual Studio 2019 Community compilation error.

Generated project are for MSVC++ 2019 and not 2015

Compiling MonaBase goes well.
Compiling MonaCore errors :

onaCore\include\Mona/RTPWriter.h(116,1): message : Constructor for struct 'Mona::Media::Video::Tag' is declared 'explicit'
MonaCore\include\Mona/RTP_MPEG.h(38,7): message : see declaration of 'Mona::RTP_MPEG::writeVideo'
MonaCore\include\Mona/RTPWriter.h(114,1): error C2664: 'bool Mona::RTP_MPEG::writeAudio(Mona::Media::Audio::Tag,Mona::BinaryReader &,Mona::BinaryWriter &,Mona::UInt16)': cannot convert argument 1 from 'const TagType' to 'Mona::Media::Audio::Tag'
1>        with
1>        [
1>            TagType=Mona::Media::Audio::Tag
1>        ]

RTPWriter.h(116,1): error C2664: 'bool Mona::RTP_MPEG::writeVideo(Mona::Media::Video::Tag,Mona::BinaryReader &,Mona::BinaryWriter &,Mona::UInt16)': cannot convert argument 1 from 'const TagType' to 'Mona::Media::Video::Tag'
1>        with
1>        [
1>            TagType=Mona::Media::Video::Tag
1>        ]

MonaServer (1/2) Does not compile on CentOS 7

Hi, I want to test MonaServer in CentOS 7, but during make, I get these messages:

[ctoman@centos ~]$ cd MonaServer2/
[ctoman@centos MonaServer2]$ whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
[ctoman@centos MonaServer2]$ make
cd MonaBase && make && cd ../MonaCore && make && cd ../MonaTiny && make && cd ../MonaServer && make && cd ../UnitTests && make
make[1]: Entering directory /home/ctoman/MonaServer2/MonaBase' mkdir -p tmp/release mkdir -p lib make[2]: Entering directory /home/ctoman/MonaServer2/MonaBase'
compiling sources/IPAddress.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/IPAddress.o] Error 1
compiling sources/BufferPool.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/BufferPool.o] Error 1
compiling sources/UDPSocket.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/UDPSocket.o] Error 1
compiling sources/TCPClient.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/TCPClient.o] Error 1
compiling sources/IOFile.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/IOFile.o] Error 1
compiling sources/Options.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Options.o] Error 1
compiling sources/Timezone.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Timezone.o] Error 1
compiling sources/PersistentData.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/PersistentData.o] Error 1
compiling sources/DiffieHellman.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/DiffieHellman.o] Error 1
compiling sources/Congestion.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Congestion.o] Error 1
compiling sources/Timer.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Timer.o] Error 1
compiling sources/ThreadPool.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/ThreadPool.o] Error 1
compiling sources/Path.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Path.o] Error 1
compiling sources/String.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/String.o] Error 1
compiling sources/IOSRTSocket.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/IOSRTSocket.o] Error 1
compiling sources/TCPServer.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/TCPServer.o] Error 1
compiling sources/Socket.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Socket.o] Error 1
compiling sources/Process.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Process.o] Error 1
compiling sources/URL.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/URL.o] Error 1
compiling sources/FileSystem.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/FileSystem.o] Error 1
compiling sources/UnitTest.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/UnitTest.o] Error 1
compiling sources/Packet.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Packet.o] Error 1
compiling sources/Parameters.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Parameters.o] Error 1
compiling sources/Date.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Date.o] Error 1
compiling sources/FileWatcher.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/FileWatcher.o] Error 1
compiling sources/TerminateSignal.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/TerminateSignal.o] Error 1
compiling sources/Net.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Net.o] Error 1
compiling sources/BitReader.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/BitReader.o] Error 1
compiling sources/IOSocket.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/IOSocket.o] Error 1
compiling sources/Crypto.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Crypto.o] Error 1
compiling sources/Handler.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Handler.o] Error 1
compiling sources/ThreadQueue.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/ThreadQueue.o] Error 1
compiling sources/File.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/File.o] Error 1
compiling sources/Thread.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Thread.o] Error 1
compiling sources/Option.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Option.o] Error 1
compiling sources/FileLogger.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/FileLogger.o] Error 1
compiling sources/TLS.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/TLS.o] Error 1
compiling sources/BinaryReader.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/BinaryReader.o] Error 1
compiling sources/DNS.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/DNS.o] Error 1
compiling sources/SRT.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/SRT.o] Error 1
compiling sources/SocketAddress.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/SocketAddress.o] Error 1
compiling sources/HelpFormatter.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/HelpFormatter.o] Error 1
compiling sources/ConsoleLogger.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/ConsoleLogger.o] Error 1
compiling sources/Logs.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Logs.o] Error 1
compiling sources/XMLParser.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/XMLParser.o] Error 1
compiling sources/Signal.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Signal.o] Error 1
compiling sources/BinaryWriter.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/BinaryWriter.o] Error 1
compiling sources/Mona.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Mona.o] Error 1
compiling sources/ServerApplication.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/ServerApplication.o] Error 1
compiling sources/HostEntry.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/HostEntry.o] Error 1
compiling sources/Buffer.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Buffer.o] Error 1
compiling sources/Proxy.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Proxy.o] Error 1
compiling sources/Util.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Util.o] Error 1
compiling sources/Application.cpp
g++: error: unrecognized command line option '-std=c++14'
make[2]: *** [tmp/release/Application.o] Error 1
make[2]: Leaving directory /home/ctoman/MonaServer2/MonaBase' make[1]: *** [release] Error 2 make[1]: Leaving directory /home/ctoman/MonaServer2/MonaBase'
make: *** [release] Error 2

Method client not found

Hi,

I'm trying to combine MonaServer2 with this cordova plugin - https://github.com/disono/cordova-rtmp-rtsp-stream

When I try to publish a stream rtmp://192.168.1.91:1935/live/test, the app logs the following:

Application.cpp[130] MonaTiny v1.265
Protocols.h[132] RTMFP server started on 0.0.0.0:1935 (UDP)
Protocols.h[132] RTMP server started on 0.0.0.0:1935 (TCP)
Protocols.h[132] HTTP server started on 0.0.0.0:80 (TCP)
Protocols.h[132] WS server started on 0.0.0.0:80 (TCP)
Protocols.h[118] HTTPS server, Permission denied (address=0.0.0.0:443)
FlashMainStream.cpp[68] Client RTMP not compatible with AMF3, few complex object can be not supported
FlashMainStream.cpp[149] Method client releaseStream not found in application /live
FlashMainStream.cpp[149] Method client FCPublish not found in application /live

Am I doing something wrong?

MonaTiny does not compile under linux.

MonaTiny does not compile with srt.
sudo make CFLAGS="-DENABLE_SRT=1 " LIBS="-lsrt "

Error saying ' cannot find -lsrt'
Where to find and install this library ?

HTTP live streaming

Hi, current MonaServer user, looking into moving to MonaServer2 and I'm especially interested in http streaming. I've seen this post: MonaSolutions/MonaServer#71

Can anyone expand on that?
I'm using OBS for the video stream.
Where would the html page sit? in the www folder?
I have port 80, 8080 and some others in use on my PC, so looking to use 8084

Any help appreciated with this, thank you v much

Language Agnostic VM integration for server side application development in C++ project

Greetings again!

I was wondering how complicated can it be to just give MonaServer2 connection handle to this AS3 virtual machine for validating a connection and decide if the connection will happen or not?

It seems that it is well implemented I am just wondering how complicated is it?
Is there any tutorial available to where to go to maybe able to try a small implementation in code...

https://github.com/drywolf/caspin

There is a sample folder how to use it and it doesn't seem to be a mystical process...

https://github.com/drywolf/caspin/tree/master/samples
Let me know

thanx

SLLLabs monatiny.exe scores overall rating of C

Greetings!

I created Let's Encrypt TLS certificate for my dynamic IP server and installed the fullchain.pem and key.pem in monatiny.exe root path.

I ran after the SSLLabs test to come up with a poor result of C

Here are the results for the logs:

TCPSession.cpp[33] HTTPS session 1, unknown protocol (from=64.41.200.105:42528, size=16384)
TCPSession.cpp[33] HTTPS session 1, unknown protocol
TCPSession.cpp[33] HTTPS session 1, unknown protocol (from=64.41.200.105:42528, size=16384)
TCPSession.cpp[33] HTTPS session 7, no shared cipher (from=64.41.200.105:48224, size=16384)
TCPSession.cpp[33] HTTPS session 1, Connection aborted
TCPSession.cpp[33] HTTPS session 2, Connection aborted
TCPSession.cpp[33] HTTPS session 2, inappropriate fallback (from=64.41.200.105:60494, size=16384)
TCPSession.cpp[33] HTTPS session 7, no shared cipher (from=64.41.200.105:33110, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:33690, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:34084, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:34628, size=16384)
TCPSession.cpp[33] HTTPS session 6, no shared cipher
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:35390, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:35598, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:35786, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:35994, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:36188, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher
TCPSession.cpp[33] HTTPS session 2, no shared cipher
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:36810, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:36998, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:37414, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:37618, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:37840, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:38022, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:39276, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:40120, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:40326, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:40972, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:41604, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:42030, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:42222, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:42444, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher
TCPSession.cpp[33] HTTPS session 4, no shared cipher
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:43072, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:43284, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher
TCPSession.cpp[33] HTTPS session 3, no shared cipher
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:43960, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:44180, size=16384)
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:44390, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:44618, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:46576, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:46776, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:47774, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:47968, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:48312, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:48666, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:48874, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:49048, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:49236, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:49436, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher
TCPSession.cpp[33] HTTPS session 3, no shared cipher
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:50890, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:51080, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:51280, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:51478, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:51678, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:51880, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:52078, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher
TCPSession.cpp[33] HTTPS session 3, no shared cipher
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:52656, size=16384)
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:52832, size=16384)
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:53050, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:53242, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher
TCPSession.cpp[33] HTTPS session 3, no shared cipher
TCPSession.cpp[33] HTTPS session 4, no shared cipher
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:54062, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:54296, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:55674, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher
TCPSession.cpp[33] HTTPS session 5, no shared cipher (from=64.41.200.105:56540, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:57404, size=16384)
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:58098, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:58342, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:58588, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher
TCPSession.cpp[33] HTTPS session 7, no shared cipher (from=64.41.200.105:59046, size=16384)
Server.cpp[128] 1 clients
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:59260, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:59476, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:59712, size=16384)
TCPSession.cpp[33] HTTPS session 6, no shared cipher (from=64.41.200.105:59904, size=16384)
TCPSession.cpp[33] HTTPS session 9, no shared cipher (from=64.41.200.105:60098, size=16384)
TCPSession.cpp[33] HTTPS session 10, no shared cipher
Server.cpp[128] 0 clients
TCPSession.cpp[33] HTTPS session 1, no shared cipher (from=64.41.200.105:60512, size=16384)
TCPSession.cpp[33] HTTPS session 2, no shared cipher (from=64.41.200.105:60716, size=16384)
TCPSession.cpp[33] HTTPS session 3, no shared cipher (from=64.41.200.105:60910, size=16384)
TCPSession.cpp[33] HTTPS session 4, no shared cipher (from=64.41.200.105:32898, size=16384)
TCPSession.cpp[33] HTTPS session 4, ccs received early (from=64.41.200.105:39202, size=16384)
TCPSession.cpp[33] HTTPS session 4, ccs received early (from=64.41.200.105:39202, size=16384)
TCPSession.cpp[33] HTTPS session 5, ccs received early (from=64.41.200.105:39472, size=16384)
TCPSession.cpp[33] HTTPS session 5, ccs received early (from=64.41.200.105:39472, size=16384)
TCPSession.cpp[33] HTTPS session 1, decryption failed or bad record mac (from=64.41.200.105:39842, size=16384)
TCPSession.cpp[33] HTTPS session 3, decryption failed or bad record mac (from=64.41.200.105:40412, size=16384)
TCPSession.cpp[33] HTTPS session 3, unexpected message (from=64.41.200.105:40412, size=2048)
TCPSession.cpp[33] HTTPS session 3, Connection aborted
TCPSession.cpp[33] HTTPS session 4, decryption failed or bad record mac (from=64.41.200.105:40674, size=16384)
TCPSession.cpp[33] HTTPS session 4, unexpected message (from=64.41.200.105:40674, size=2048)
TCPSession.cpp[33] HTTPS session 4, Connection aborted
TCPSession.cpp[33] HTTPS session 1, decryption failed or bad record mac (from=64.41.200.105:40973, size=16384)
TCPSession.cpp[33] HTTPS session 1, unexpected message (from=64.41.200.105:40973, size=2048)
TCPSession.cpp[33] HTTPS session 1, Connection aborted
TCPSession.cpp[33] HTTPS session 3, decryption failed or bad record mac (from=64.41.200.105:41216, size=16384)
TCPSession.cpp[33] HTTPS session 3, unexpected message (from=64.41.200.105:41216, size=2048)
TCPSession.cpp[33] HTTPS session 3, Connection aborted
TCPSession.cpp[33] HTTPS session 4, decryption failed or bad record mac (from=64.41.200.105:41502, size=16384)
TCPSession.cpp[33] HTTPS session 4, unexpected message (from=64.41.200.105:41502, size=2048)
TCPSession.cpp[33] HTTPS session 4, Connection aborted
TCPSession.cpp[33] HTTPS session 5, decryption failed or bad record mac (from=64.41.200.105:41752, size=16384)
TCPSession.cpp[33] HTTPS session 5, unexpected message (from=64.41.200.105:41752, size=2048)
TCPSession.cpp[33] HTTPS session 5, Connection aborted
TCPSession.cpp[33] HTTPS session 1, decryption failed or bad record mac (from=64.41.200.105:42060, size=16384)
TCPSession.cpp[33] HTTPS session 1, unexpected message (from=64.41.200.105:42060, size=2048)
TCPSession.cpp[33] HTTPS session 1, Connection aborted
TCPSession.cpp[33] HTTPS session 3, decryption failed or bad record mac (from=64.41.200.105:42334, size=16384)
TCPSession.cpp[33] HTTPS session 3, unexpected message (from=64.41.200.105:42334, size=2048)
TCPSession.cpp[33] HTTPS session 1, tlsv1 alert unknown ca (from=54.187.174.169:36727, size=16384)

Screenshot of the result with warnings:

image

MonaServer seems to be vulnerable to :

This server is vulnerable to the POODLE attack. If possible, disable SSL 3 to mitigate. Grade capped to C

How can I make monatiny.exe to take the fullchain.pem certificate instead of the single cert-pem certificate file ?

Found a great clustering solution for MonaServer

Hi Mathieu and Thomas I have found a great project that we can implement inside of Mona for the clustering part.

ArangoDB and RethinkDB are using some kind of a HTTP Api bridge to make the nodes connect to each others. I thought that right now Mona's scaling setting are pretty static and not dynamic in a docker swarm context.

I would like you to check out this Go project and tell me if we can make Mona interact with it via HTTP so that we can let Mona apply dynamic/host clustering on the fly.

https://github.com/arangodb-helper/ArangoDBStarter

Thanx

VC 2019 compilation fixes

RTPReader.h, lines 56-59 fix:

	if (playloadType != _profile.playloadType) {
		ERROR(typeof<RTP_ProfileType>()," configured to receive ",_profile.playloadType," playload type and not ",playloadType)
		return 0;
	}

RTPWriter.h, lines 113-116:

		if (isAudio)
			flush = _profile.writeAudio(tag, reader, writer, canWrite);
		else
			flush = _profile.writeVideo(tag, reader, writer, canWrite);

Here, I am not sure how to fix this. The problem is that "tag" is of the wrong type.

RTPWriter.h, line98:

			_pBuffer.set(0);

main.lua Fail

Hi, I'm trying to get MonaServer2 working but it gives me main.lua error.

/main.lua :: attempt to call method 'createUDPSocket' (a nil value) monaserver

Regards.

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.