OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

"Sub-Second Latency Streaming Server" OvenMediaEngine

What is OvenMediaEngine?

In short, OvenMediaEngine (OME) is Open-Source Streaming Server with Sub-Second Latency.

OME receives a video/audio source from encoders and cameras such as OvenStreamEncoder, OBS, XSplit, and more to WebRTC, RTMP, SRT, MPEG-2 TS Beta, or RTSP Beta. Then, OME transmits it using WebRTC, Low Latency MPEG-DASH (LLDASH), MPEG-DASH, and HLS.

Like the picture below:

We also provide OvenPlayer, Open-Source HTML5 Player that is very synergistic with OME.

What is the goal of this project?

AirenSoft aims to make it easier for you to build a stable broadcasting/streaming service with Sub-Second Latency. Therefore, we will continue developing and providing the most optimized tools for smooth Sub-Second Latency Streaming.

Would you please click on each link below for details:

Features

  • Ingest
    • Push: WebRTC, RTMP, SRT, MPEG-2 TS
    • Pull: RTSP
  • Sub-Second Streaming with WebRTC
    • WebRTC over TCP (with Embedded TURN Server)
    • ICE (Interactive Connectivity Establishment)
    • DTLS (Datagram Transport Layer Security)
    • SRTP (Secure Real-time Transport Protocol)
    • ULPFEC (Uneven Level Protection Forward Error Correction)
      • VP8, H.264
    • In-band FEC (Forward Error Correction)
      • Opus
    • Embedded WebRTC Signalling Server (WebSocket based)
  • Low Latency Streaming with MPEG-DASH (Chunked CAMF)
  • Legacy Streaming with MPEG-DASH/HLS
  • Embedded Live Transcoder
    • VP8, H.264, Opus, AAC, Bypass
  • Origin-Edge structure
  • Monitoring
  • Beta
    • File Recording
    • RTMP Push Publishing (Re-streaming)
    • Thumbnail
    • REST API
  • Experiment
    • P2P Traffic Distribution (Only WebRTC)

Supported Platforms

We have tested OME on the platforms listed below. However, we think it can work with other Linux packages as well:

  • Docker
  • Ubuntu 18+
  • CentOS 7+
  • Fedora 28+

Getting Started

Docker

docker run -d \
-p 1935:1935 \
-p 3333:3333 \
-p 3478:3478 \
-p 8080:8080 \
-p 9000:9000 \
-p 9999:9999/udp \
-p 4000-4005:4000-4005/udp \
-p 10006-10010:10006-10010/udp \
--name ovenmediaengine \
airensoft/ovenmediaengine:latest

You can also store the configuration files on your host:

docker run -d \
-p 1935:1935 \
-p 3333:3333 \
-p 3478:3478 \
-p 8080:8080 \
-p 9000:9000 \
-p 9999:9999/udp \
-p 4000-4005:4000-4005/udp \
-p 10006-10010:10006-10010/udp \
-v ome-origin-conf:/opt/ovenmediaengine/bin/origin_conf \
-v ome-edge-conf:/opt/ovenmediaengine/bin/edge_conf \
--name ovenmediaengine \
airensoft/ovenmediaengine:latest

The configuration files are now accessible under /var/lib/docker/volumes/ /_data .

Following the above example, you will find them under /var/lib/docker/volumes/ome-origin-conf/_data and /var/lib/docker/volumes/ome-edge-conf/_data.

If you want to put them in a different location, the easiest way is to create a link:

ln -s /var/lib/docker/volumes/ome-origin-conf/_data/ /my/new/path/to/ome-origin-conf \
&& ln -s /var/lib/docker/volumes/ome-edge-conf/_data/ /my/new/path/to/ome-edge-conf

Other Methods

Please read the Getting Started.

How to contribute

Thank you so much for being so interested in OvenMediaEngine.

We need your help to keep and develop our open-source project, and we want to tell you that you can contribute in many ways. Please see our Guidelines, Rules, and Contribute.

We always hope that OvenMediaEngine will give you good inspiration.

For more information

License

OvenMediaEngine is licensed under the GPLv3 or later.

Owner
AirenSoft
AirenSoft is a group of media technology experts.
AirenSoft
Comments
  • High memory usage after upgrading to 0.14.11

    High memory usage after upgrading to 0.14.11

    Describe the bug OME is using way more memory than before, after upgrading from 0.14.5 to 0.14.11

    In this screenshot you can see memory usage is stable in 0.14.5 then it jumps after upgrading to 0.14.11

    https://i.imgur.com/XIzdRgh.png

    Is this normal behavior with the newer version? Is there any config we can change to reduce memory usage?

    To Reproduce Steps to reproduce the behavior:

    1. Set Server.xml as follows https://gist.github.com/hernanrz/d1d983eb0edd94f4ad3a5cffe66d946e

    Expected behavior Stable memory usage, like we see in 0.14.5

    Server (please complete the following information):

    • OS: Ubuntu 20.04 with Docker Engine 20.10
    • OvenMediaEngine Version: 0.14.11
  • High CPU usage

    High CPU usage

    Hello, I'm worried, this CPU usage is normal? OME has only 5 incoming streams and 1 outgoing. I'm afraid to use OME on production... Other solutions is using ~20% CPU max.

    There is only one output profile with Hardware Acceleration enabled.

    MobaXterm_KZwTsE7esF OME_config.md

  • I cannot start with a test environment with docker.

    I cannot start with a test environment with docker.

    Describe the bug I think is not a bug, but I am gonna ask you here.

    I am trying to make a little test with OvenMediaEngine, I have 3 components:

    OvenMediaEngine, OvenPlayer and OBS.

    For OvenMediaEngine I am running with the following command:

    docker run -d -p 1935:1935 -p 3333:3333 -p 8080:8080 -p 9000:9000 -p 4000-4005:4000-4005/udp -p 10006-10010:10006-10010/udp nairensoft/ovenmediaengine:latest

    I am emitting with OBS to the container directly by RTMP, that's is working ok.

    But the problem is when I try to watch the video with OvenPlayer, the video never starts.

    And I am configuring in OBS:

    Server: rtmp://127.0.0.1:1935/app/ Stream key: stream

    To Reproduce Steps to reproduce the behavior:

    1. As Server.xml I am using the same as it's configured on the nairensoft/ovenmediaengine:latest image
    2. With Encoder OBS 26.0.2 (All the config by default)
    3. The error is below.

    Expected behavior I want to watch the video, it's a simple test but I do not know what is happening :(

    Logs [2020-11-24 17:54:31.596] I 12 Monitor | stream_metrics.cpp:119 | A new session has started playing #default#app/stream on the WebRTC publihser. WebRTC(1)/Stream total(1)/App total(1) [2020-11-24 17:55:02.059] I 26 Monitor | stream_metrics.cpp:144 | A session has been stopped playing #default#app/stream on the WebRTC publihser. Concurrent Viewers[WebRTC(0)/Stream total(0)/App total(0)]

    Server (please complete the following information):

    • OS: docker
    • OvenMediaEngine Version: latest

    Player (please complete the following information):

    • Browser chrome and firefox
  • Streams dropping intermittently

    Streams dropping intermittently

    Describe the bug I'm still investigating but it appears that OME freezes and stops receiving input streams from all rtmp inputs. It recovers fairly quickly (less than a few seconds) but it still can cause some buffering for viewers. Here is a graph showing CPU usage (orange) and connected streams (green) - CPU usage is dropping to near 0 periodically when streams are disconnected.

    I've checked and it does not appear to be our host's network connection

    Screen Shot 2022-04-11 at 5 10 35 PM

    Attached here is an excerpt of our log file including a few minutes before everyone is disconnected and probably 10-15 minutes after

    cleanlog.txt

    Server.xml

    Aside from the actual bug, if there are any performance recommendations we're happy to hear them :)

  • Invalid data received from [Mobile only]

    Invalid data received from [Mobile only]

    Any idea why I keep seeing this on the log only on mobile browsers?

    on PC works fine

    on mobile, the WEBRTC does not work but on PC + webcam works perfect

    [SPRtcSignalling:13] HttpServer | web_socket_interceptor.cpp:231 | Invalid data received from <HttpRequest: 0x7f0898001b00, Method: 1, uri: wss://....>

    I tested with and without transport=tcp

  • Load Balancer OME with nginx, maybe a OME BUG

    Load Balancer OME with nginx, maybe a OME BUG

    I am trying to use nginx as a load balancer for OME (webrtc) but ovenplayer tells me it tells me it has failed

    WebRTCLoader.js: 622 WebSocket connection to 'ws: //sub.domain.com: 8081 / conectar / endirecto / stream_1280' failed

    The question is that I already have it configured and I do not know what the problem is, or nginx does not work with OME

    nginx.conf

    http {
    .
    .
    .
    .
    
    upstream servers_webrtc {
            server origen01.domain.com:3333 max_conns=200;
           server edge01.domain.com:3333 max_conns=200;
        #i've trayed with ip too
    }
    .
    .
    .
    server {
        listen      <public ip>:8081;
        server_name sub.domain.com ;
    
        #modsecurity on;
        #modsecurity_rules_file /etc/nginx/modsec/main.conf;
    
    location /conectar/ {
                # prevents 502 bad gateway error
                proxy_buffers 8 32k;
                proxy_buffer_size 64k;
                proxy_pass http://servers_webrtc;
    
                # enables WS support
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 999999999;
            }
    
    }
    

    my origin webrtc is ws://origen01.domain.com:3333/endirecto/stream_1280/ ws://origen01.domain.com:3333/endirecto/stream_640/ and my edge is ws://edge01.domain.com:3333/endirecto/stream_1280/ ws://edge01.domain.com:3333/endirecto/stream_640/

    i will apreciate some of help, and if nginx does not work with OME, which peasy to use Load Balancer would you recommend me with a small example .. thank you very much.

    as well with hls,

    really thanks

  • Streaming SRT

    Streaming SRT

    Describe the bug

    I'm experimenting with streaming via SRT instead of RTMP. Unfortunately, the image is pixelated and distorted:

    I get the following message in the logs:

    [2021-12-04 16:25:00.271] W [SPSRT-T9999:874] MPEGTS_DEPACKETIZER | mpegts_depacketizer.cpp:84 | An out-of-order packet was received.(PID : 256 Expected : 14, Received : 5

    To Reproduce

    I have audio and video encoding bypassed in the server.xml My OBS settings are as follows:

    Encoder: x264 Resolution: 1080p Rate control: CBR Bitrate: 10000 kpbs Keyframe Interval: 1 CPU: Ultrafast Profile: Baseline Tune: Zerolatency options: bframes=0 threads=8

    Logs [2021-12-04 16:25:00.271] W [SPSRT-T9999:874] MPEGTS_DEPACKETIZER | mpegts_depacketizer.cpp:84 | An out-of-order packet was received.(PID : 256 Expected : 14, Received : 5

    Server (please complete the following information):

    • OS: ubuntu 18.04
    • OvenMediaEngine Version: 0.12.8

    Player (please complete the following information):

    • Device: MacBook Pro M1
    • OS: 12.0.1
    • Browser Google Chrome
    • Version 96.0.4664.55

    Additional context The image quality degrades, specially after cuts. I'm testing with a very fast cut video, and the pixelation is specially noticeable after a cut.

  • OvenMediaEngine failed to pull RTSP stream

    OvenMediaEngine failed to pull RTSP stream

    Describe the bug Hello, I use OvenMediaEngine to pull RTSP stream and WebRTC to play, but it fails to pull the stream.

    Expected behavior I hope to be able to pull the RTSP stream normally

    Server (please complete the following information):

    • OS: Centos 7.x
    • OvenMediaEngine Version: v0.12.6

    Player (please complete the following information):

    • Device: Lenovo yoga 14s
    • OS: Windows 10
    • Browser: Microsoft Edge
    • Version : 94.0.992.50

    OvenMediaengine Logs

    [2021-10-18 12:28:45.601] I [SPRtcSignalling:30754] Signalling | rtc_signalling_server.cpp:201  | New client is connected: <ClientSocket: 0x7f5d64001080, #4, Connected, TCP, Nonblocking, 192.168.8.66:62099>
    [2021-10-18 12:28:45.608] I [SPRtcSignalling:30754] Orchestrator | orchestrator.cpp:546  | Trying to pull stream [#default#app/n1rtsp] from provider using origin map: PullProvider
    [2021-10-18 12:28:45.710] E [SPRtcSignalling:30754] RtspMessage | rtsp_message.cpp:124  | Could not parse status-line : RTSP/1.0 500 Internal Server Error
    [2021-10-18 12:28:45.711] E [SPRtcSignalling:30754] RtspcStream | rtspc_stream.cpp:840  | [#default#app/n1rtsp] An error occurred while parsing packet: Invalid packet
    [2021-10-18 12:28:45.711] E [SPRtcSignalling:30754] RtspcStream | rtspc_stream.cpp:263  | No response(CSeq : 0) was received from the rtsp server(rtsp://192.168.8.125/live/1st/living_play)
    [2021-10-18 12:28:45.711] E [SPRtcSignalling:30754] Provider | provider.cpp:152  | RTSPCProvider Application could not create [n1rtsp] stream.
    [2021-10-18 12:28:45.711] E [SPRtcSignalling:30754] Orchestrator | orchestrator.cpp:591  | Could not pull stream [#default#app/n1rtsp] from provider: PullProvider
    [2021-10-18 12:28:45.711] E [SPRtcSignalling:30754] WebRTC Publisher | webrtc_publisher.cpp:440  | Cannot find stream (#default#app/n1rtsp)
    [2021-10-18 12:28:45.711] E [SPRtcSignalling:30754] Signalling | rtc_signalling_server.cpp:292  | Cannot find stream [#default#app/n1rtsp]
    [2021-10-18 12:28:45.711] I [SPRtcSignalling:30754] Signalling | rtc_signalling_server.cpp:339  | Client is disconnected: <WebSocketClient: 0x7f5d6401c740, <ClientSocket: 0x7f5d64001080, #4, Closed, TCP, Nonblocking, 192.168.8.66:62099>> (#default#app / n1rtsp, ufrag: local: (N/A), remote: (N/A))
    

    OvenMediaengine Config

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Server version="8">
    	<Name>OvenMediaEngine</Name>
    	<!-- Host type (origin/edge) -->
    	<Type>origin</Type>
    	<!-- Specify IP address to bind (* means all IPs) -->
    	<IP>*</IP>
    
    	<!-- 
    	To get the public IP address(mapped address of stun) of the local server. 
    	This is useful when OME cannot obtain a public IP from an interface, such as AWS or docker environment. 
    	If this is successful, you can use ${PublicIP} in your settings.
    	-->
    	<StunServer>stun.l.google.com:19302</StunServer>
    
    	<!-- Settings for the ports to bind -->
    	<Bind>
    		<!-- Enable this configuration if you want to use API Server -->
    		<!--
    		<Managers>
    			<API>
    				<Port>8081</Port>
    				<WorkerCount>1</WorkerCount>
    			</API>
    		</Managers>
    		-->
    
    		<Providers>
    			<!-- Pull providers -->
    			<RTSPC>
    				<WorkerCount>1</WorkerCount>
    			</RTSPC>
    			<OVT>
    				<WorkerCount>1</WorkerCount>
    			</OVT>
    			<!-- Push providers -->
    			<RTMP>
    				<Port>1935</Port>
    				<WorkerCount>1</WorkerCount>
    			</RTMP>
    			<SRT>
    				<Port>9999</Port>
    				<WorkerCount>1</WorkerCount>
    			</SRT>
    			<MPEGTS>
    				<!--
    					Listen on port 4000~4005 (<Port>4000-4004,4005/udp</Port>)
    					This is just a demonstration to show that you can configure the port in several ways
    				-->
    				<Port>4000/udp</Port>
    			</MPEGTS>
    			<WebRTC>
    				<Signalling>
    					<Port>3333</Port>
    					<!-- If you want to use TLS, specify the TLS port -->
    					<!-- <TLSPort>3334</TLSPort> -->
    					<WorkerCount>1</WorkerCount>
    				</Signalling>
    
    				<IceCandidates>
    					<!-- 
    						If you want to stream WebRTC over TCP, specify IP:Port for TURN server.
    						This uses the TURN protocol, which delivers the stream from the built-in TURN server to the player's TURN client over TCP. 
    						For detailed information, refer https://airensoft.gitbook.io/ovenmediaengine/streaming/webrtc-publishing#webrtc-over-tcp
    					-->
    					<TcpRelay>*:3478</TcpRelay>
    					<!-- TcpForce is an option to force the use of TCP rather than UDP in WebRTC streaming. (You can omit ?transport=tcp accordingly.) If <TcpRelay> is not set, playback may fail. -->
    					<TcpForce>false</TcpForce>
    
    					<IceCandidate>*:10000/udp</IceCandidate>
    					<TcpRelayWorkerCount>1</TcpRelayWorkerCount>
    				</IceCandidates>
    			</WebRTC>
    		</Providers>
    
    		<Publishers>
    			<OVT>
    				<Port>9000</Port>
    				<WorkerCount>1</WorkerCount>
    			</OVT>
    			<HLS>
    				<Port>80</Port>
    				<!-- If you want to use TLS, specify the TLS port -->
    				<!-- <TLSPort>443</TLSPort> -->
    				<WorkerCount>1</WorkerCount>
    			</HLS>
    			<DASH>
    				<Port>80</Port>
    				<!-- If you want to use TLS, specify the TLS port -->
    				<!-- <TLSPort>443</TLSPort> -->
    				<WorkerCount>1</WorkerCount>
    			</DASH>
    			<WebRTC>
    				<Signalling>
    					<Port>3333</Port>
    					<!-- If you want to use TLS, specify the TLS port -->
    					<!-- <TLSPort>3334</TLSPort> -->
    					<WorkerCount>1</WorkerCount>
    				</Signalling>
    				<IceCandidates>
    					<!-- 
    						If you want to stream WebRTC over TCP, specify IP:Port for TURN server.
    						This uses the TURN protocol, which delivers the stream from the built-in TURN server to the player's TURN client over TCP. 
    						For detailed information, refer https://airensoft.gitbook.io/ovenmediaengine/streaming/webrtc-publishing#webrtc-over-tcp
    					-->
    					<TcpRelay>*:3478</TcpRelay>
    					<!-- TcpForce is an option to force the use of TCP rather than UDP in WebRTC streaming. (You can omit ?transport=tcp accordingly.) If <TcpRelay> is not set, playback may fail. -->
    					<TcpForce>false</TcpForce>
    
    					<IceCandidate>*:10000/udp</IceCandidate>
    					<TcpRelayWorkerCount>1</TcpRelayWorkerCount>
    				</IceCandidates>
    			</WebRTC>
    		</Publishers>
    	</Bind>
    
    	<!-- P2P works only in WebRTC -->
    	<!--
    	<P2P>
    		<MaxClientPeersPerHostPeer>2</MaxClientPeersPerHostPeer>
    	</P2P>
    	-->
    
    	<!--
    		Enable this configuration if you want to use API Server
    		
    		<AccessToken> is a token for authentication, and when you invoke the API, you must put "Basic base64encode(<AccessToken>)" in the "Authorization" header of HTTP request.
    		For example, if you set <AccessToken> to "ome-access-token", you must set "Basic b21lLWFjY2Vzcy10b2tlbg==" in the "Authorization" header.
    	-->
    	<!--
    	<Managers>
    		<Host>
    			<Names>
    				<Name>*</Name>
    			</Names>
    			<TLS>
    				<CertPath>path/to/file.crt</CertPath>
    				<KeyPath>path/to/file.key</KeyPath>
    				<ChainCertPath>path/to/file.crt</ChainCertPath>
    			</TLS>
    		</Host>
    		<API>
    			<AccessToken>ome-access-token</AccessToken>
    		</API>
    	</Managers>
    	-->
    
    	<VirtualHosts>
    		<!-- You can use wildcard like this to include multiple XMLs -->
    		<VirtualHost include="VHost*.xml" />
    		<VirtualHost>
    			<Name>default</Name>
    			<!--Distribution is a value that can be used when grouping the same vhost distributed across multiple servers. This value is output to the events log, so you can use it to aggregate statistics. -->
    			<Distribution>ovenmediaengine.com</Distribution>
    
    			<!-- Settings for multi ip/domain and TLS -->
    			<Host>
    				<Names>
    					<!-- Host names
    						<Name>stream1.airensoft.com</Name>
    						<Name>stream2.airensoft.com</Name>
    						<Name>*.sub.airensoft.com</Name>
    						<Name>192.168.0.1</Name>
    					-->
    					<Name>*</Name>
    				</Names>
    				<!--
    				<TLS>
    					<CertPath>path/to/file.crt</CertPath>
    					<KeyPath>path/to/file.key</KeyPath>
    					<ChainCertPath>path/to/file.crt</ChainCertPath>
    				</TLS>
    				-->
    			</Host>
    
    			<!-- 	
    			Refer https://airensoft.gitbook.io/ovenmediaengine/signedpolicy
    			<SignedPolicy>
    				<PolicyQueryKeyName>policy</PolicyQueryKeyName>
    				<SignatureQueryKeyName>signature</SignatureQueryKeyName>
    				<SecretKey>aKq#1kj</SecretKey>
    
    				<Enables>
    					<Providers>rtmp,webrtc,srt</Providers>
    					<Publishers>webrtc,hls,dash,lldash</Publishers>
    				</Enables>
    			</SignedPolicy>
    			-->
    
    			<!--
    			<AdmissionWebhooks>
    				<TargetUrl></TargetUrl>
    				<SecretKey></SecretKey>
    				<Timeout>3000</Timeout>
    				<Enables>
    					<Providers>rtmp,webrtc,srt</Providers>
    					<Publishers>webrtc,hls,dash,lldash</Publishers>
    				</Enables>
    			</AdmissionWebhooks>
    			-->
    
    			
    			<Origins>
    				<Origin>
    					<Location>/app/n1rtsp</Location>
    					<Pass>
    						<Scheme>rtsp</Scheme>
    						<Urls>
    							<!--<Url>192.168.8.201:554/ch01</Url>-->
    							<Url>192.168.8.125/live/1st/living_play</Url>
    						</Urls>
    					</Pass>
    				</Origin>
    			</Origins>
    		
    			<!-- Settings for applications -->
    			<Applications>
    				<Application>
    					<Name>app</Name>
    					<!-- Application type (live/vod) -->
    					<Type>live</Type>
    					<OutputProfiles>
    						<!-- Enable this configuration if you want to hardware acceleration using GPU -->
    						<!-- 
    						<HardwareAcceleration>false</HardwareAcceleration>
    						-->
    
    						<OutputProfile>
    							<Name>bypass_stream</Name>
    							<OutputStreamName>${OriginStreamName}</OutputStreamName>
    							<Encodes>
    								<Audio>
    									<Bypass>true</Bypass>
    								</Audio>
    								<Video>
    									<Bypass>true</Bypass>
    								</Video>
    								<Audio>
    									<Codec>opus</Codec>
    									<Bitrate>128000</Bitrate>
    									<Samplerate>48000</Samplerate>
    									<Channel>2</Channel>
    								</Audio>
    								<!-- 							
    								<Video>
    									<Codec>vp8</Codec>
    									<Bitrate>1024000</Bitrate>
    									<Framerate>30</Framerate>
    									<Width>1280</Width>
    									<Height>720</Height>
    								</Video>								
    								-->
    							</Encodes>
    						</OutputProfile>
    					</OutputProfiles>
    					<Providers>
    						<OVT />
    						<WebRTC />
    						<RTMP />
    						<SRT />
    						<MPEGTS>
    							<StreamMap>
    								<!--
    									Set the stream name of the client connected to the port to "stream_${Port}"
    									For example, if a client connets to port 4000, OME creates a "stream_4000" stream
    									<Stream>
    										<Name>stream_${Port}</Name>
    										<Port>4000,4001-4004</Port>
    									</Stream>
    									<Stream>
    										<Name>stream_4005</Name>
    										<Port>4005</Port>
    									</Stream>
    								-->
    								<Stream>
    									<Name>stream_${Port}</Name>
    									<Port>4000</Port>
    								</Stream>
    							</StreamMap>
    						</MPEGTS>
    						<RTSPPull />
    						<WebRTC>
    							<Timeout>30000</Timeout>
    						</WebRTC>
    					</Providers>
    					<Publishers>
    						<AppWorkerCount>1</AppWorkerCount>
    						<StreamWorkerCount>8</StreamWorkerCount>
    						<OVT />
    						<WebRTC>
    							<Timeout>30000</Timeout>
    							<Rtx>false</Rtx>
    							<Ulpfec>false</Ulpfec>
    							<JitterBuffer>false</JitterBuffer>
    						</WebRTC>
    						<HLS>
    							<SegmentDuration>5</SegmentDuration>
    							<SegmentCount>3</SegmentCount>
    							<CrossDomains>
    								<Url>*</Url>
    							</CrossDomains>
    						</HLS>
    						<DASH>
    							<SegmentDuration>5</SegmentDuration>
    							<SegmentCount>3</SegmentCount>
    							<CrossDomains>
    								<Url>*</Url>
    							</CrossDomains>
    							<!--
    								Enable DASH player to obtain UTCTiming from OME using /time?iso&ms API
    							-->
    							<UTCTiming>
    								<Scheme>urn:mpeg:dash:utc:http-xsdate:2014</Scheme>
    								<Value>/time?iso&amp;ms</Value>
    							</UTCTiming>
    						</DASH>
    						<LLDASH>
    							<SegmentDuration>5</SegmentDuration>
    							<CrossDomains>
    								<Url>*</Url>
    							</CrossDomains>
    							<!--
    								Use default options for UTCTiming
    									- scheme: urn:mpeg:dash:utc:http-xsdate:2014
    									- value: /time?iso&ms
    							-->
    							<UTCTiming />
    						</LLDASH>
    					</Publishers>
    				</Application>
    			</Applications>
    		</VirtualHost>
    	</VirtualHosts>
    </Server>
    
    
  • Origin out of sync --> trying to open second feed from edge.

    Origin out of sync --> trying to open second feed from edge.

    Describe the bug A clear and concise description of what the bug is.

    Orchestrator | orchestrator.cpp:1312 | Out of sync: origin: 0, domain: 1 (This is a bug)

    To Reproduce Steps to reproduce the behavior:

    1. Set Server.xml as follows '...' Edge.xml:

    `

    OvenMediaEngine edge *
    <!-- Settings for the ports to bind -->
    <Bind>
    	<Providers>
    		<!-- Currently, OME doesn't support using the specified port for OVT Provider -->
    		<OVT>
    			<Port>9001</Port>
    		</OVT>
    	</Providers>
    
    	<Publishers>
            <HLS>
    			<Port>${env:OME_HLS_STREAM_PORT:8090}</Port>
    			<!-- If you want to use TLS, specify the TLS port -->
    			<!-- <TLSPort>8443</TLSPort> -->
    		</HLS>
            <DASH>
    			<Port>${env:OME_DASH_STREAM_PORT:8090}</Port>
    			<!-- If you want to use TLS, specify the TLS port -->
    			<!-- <TLSPort>8443</TLSPort> -->
    		</DASH>
    		<WebRTC>
    			<Signalling>
    				<Port>${env:OME_SIGNALLING_PORT:3334}</Port>
    				<!-- If you want to use TLS, specify the TLS port -->
    				<!-- <TLSPort>5556</TLSPort> -->
    			</Signalling>
    			<IceCandidates>
    				<IceCandidate>${env:OME_ICE_CANDIDATES:*:10000-10005/udp}</IceCandidate>
    			</IceCandidates>
    		</WebRTC>
    	</Publishers>
    </Bind>
    
    <!-- P2P works only in WebRTC -->
    <!--
    <P2P>
    	<MaxClientPeersPerHostPeer>2</MaxClientPeersPerHostPeer>
    </P2P>
    -->
    
    <VirtualHosts>
    	<!-- You can use wildcard like this to include multiple XMLs -->
    	<VirtualHost include="VHost*.xml" />
    	<VirtualHost>
    		<Name>default</Name>
    
    		<!-- Settings for multi domain and TLS -->
    		<Domain>
    			<Names>
    				<!--
    					Domain names
    
    					<Name>stream1.airensoft.com</Name>
    					<Name>stream2.airensoft.com</Name>
    					<Name>*.sub.airensoft.com</Name>
    				-->
    			</Names>
    			<!--
    			<TLS>
    				<CertPath>path/to/file.crt</CertPath>
    				<KeyPath>path/to/file.key</KeyPath>
    				<ChainCertPath>path/to/file.crt</ChainCertPath>
    			</TLS>
    			-->
    		</Domain>
    
    		<SignedURL>
                <CryptoKey>${env:SIGNED_URL_CRYPTO_KEY:}</CryptoKey>
                <QueryStringKey>${env:SIGNED_URL_QUERY_KEY:authtoken}</QueryStringKey>
      </SignedURL>
    
    		<!-- Settings for ProxyPass (It can specify origin for each path) -->
    		<Origins>
    			<Origin>
    				<Location>/deep/</Location>
    				<Pass>
    					<Scheme>ovt</Scheme>
    					<Urls>
    						<Url>172.26.103.48:9000/deep/</Url>
    					</Urls>
    				</Pass>
    			</Origin>
    			<Origin>
    				<Location>/volans</Location>
    				<Pass>
    					<Scheme>ovt</Scheme>
    					<Urls>
    						<Url>172.26.5.170:9000/volans/</Url>
    					</Urls>
    				</Pass>
    			</Origin>
    			<Origin>
    				<Location>/loeve/</Location>
    				<Pass>
    					<Scheme>ovt</Scheme>
    					<Urls>
    						<Url>172.26.125.128:9000/loeve/</Url>
    					</Urls>
    				</Pass>
    			</Origin>
    		</Origins>
    	</VirtualHost>
    </VirtualHosts>
    
    ` I can open the feed of each origin. ws://172.26.103.48:3333/deep/simon -> opens and plays without issue ws://172.26.125.128:3333/loeve/ps -> opens and plays without issue

    Objective: Open the deep/simon feed and the loeve/ps from the Edge OME.

    1 ) I run the Edge OME and use demo.ovenplayer to open the deep/simon feed ws://172.16.10.100:3334/deep/simon (the 16 instead or 26 in the IP is correct) -> this feed will open without issues. 2) I than try to open in a sensor demo player ws://172.16.10.100:3334/loeve/ps and this does not work.

    3)-> if I alter the order, so first open the loeve/ps feed and after that the deep/simon feed it is that feed that does not work.

    So I am unable to to open feeds of two different origin servers.

    Expected behavior A clear and concise description of what you expected to happen.

    I expect both feeds to open.

    Logs Please upload the entire OvenMediaEngine.log. You may delete important personal information. Starting ovenmediaengine_edge_1 ... done Attaching to ovenmediaengine_edge_1 edge_1 | [2020-09-21 13:42:14.061] I 1 Config | config_manager.cpp:144 | Trying to set logfile in directory... (/var/log/ovenmediaengine) edge_1 | [2020-09-21 13:42:14.061] I 1 Config | config_manager.cpp:47 | Trying to load configurations... (edge_conf/Server.xml) edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:244 | OvenMediaEngine v0.10.4 is started on [9ce5a5c471cc] (Linux x86_64 - 5.4.0-40-generic, #44-Ubuntu SMP Tue Jun 23 00:01:04 UTC 2020) edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:246 | With modules: edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:247 | FFmpeg 3.4.7 OME edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:248 | Configuration: --prefix=/opt/ovenmediaengine --enable-gpl --enable-nonfree --extra-cflags=-I/opt/ovenmediaengine/include --extra-ldflags='-L/opt/ovenmediaengine/lib -Wl,-rpath,/opt/ovenmediaengine/lib' --extra-libs=-ldl --enable-shared --disable-static --disable-debug --disable-doc --disable-programs --disable-avdevice --disable-dct --disable-dwt --disable-error-resilience --disable-lsp --disable-lzo --disable-rdft --disable-faan --disable-pixelutils --disable-everything --enable-zlib --enable-libopus --enable-libvpx --enable-libfdk_aac --enable-libx264 --enable-encoder='libvpx_vp8,libvpx_vp9,libopus,libfdk_aac,libx264' --enable-decoder='aac,aac_latm,aac_fixed,h264' --enable-parser='aac,aac_latm,aac_fixed,h264' --enable-network --enable-protocol=tcp --enable-protocol=udp --enable-protocol=rtp --enable-demuxer=rtsp --enable-filter='asetnsamples,aresample,aformat,channelmap,channelsplit,scale,transpose,fps,settb,asettb' edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:249 | libavformat: 57.83.100 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:250 | libavcodec: 57.107.100 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:251 | libavutil: 55.78.100 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:252 | libavfilter: 6.107.100 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:253 | libswresample: 2.9.100 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:254 | libswscale: 4.8.100 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:255 | SRT: 1.3.3 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:256 | SRTP: libsrtp2 2.2.0 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:257 | OpenSSL: OpenSSL 1.1.0g 2 Nov 2017 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:258 | Configuration: compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/opt/ovenmediaengine"" -DENGINESDIR=""/opt/ovenmediaengine/lib/engines-1.1"" -Wa,--noexecstack edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:259 | JsonCpp: 1.9.3 edge_1 | [2020-09-21 13:42:14.063] I 1 OvenMediaEngine | main.cpp:260 | jemalloc: 5.2.1-0-gea6b3e973b477b8061e0076bb257dbd7f3faa756 edge_1 | [2020-09-21 13:42:14.066] I 1 OvenMediaEngine | main.cpp:158 | Trying to create a MediaRouter module edge_1 | [2020-09-21 13:42:14.066] I 1 MediaRouter | media_router.cpp:40 | MediaRouter has been started. edge_1 | [2020-09-21 13:42:14.066] I 1 OvenMediaEngine | main.cpp:161 | Trying to create a WebRTC Publisher module edge_1 | [2020-09-21 13:42:14.066] I 1 Signalling.P2P | rtc_p2p_manager.cpp:27 | P2P is disabled in the configuration edge_1 | [2020-09-21 13:42:14.067] I 1 Ice | ice_port.cpp:89 | ICE port is bound to 0.0.0.0:10000/UDP (0x7f11eb45df90) edge_1 | [2020-09-21 13:42:14.067] I 1 Ice | ice_port.cpp:89 | ICE port is bound to 0.0.0.0:10001/UDP (0x7f11eb45e150) edge_1 | [2020-09-21 13:42:14.067] I 1 Ice | ice_port.cpp:89 | ICE port is bound to 0.0.0.0:10002/UDP (0x7f11eb45e310) edge_1 | [2020-09-21 13:42:14.067] I 1 Ice | ice_port.cpp:89 | ICE port is bound to 0.0.0.0:10003/UDP (0x7f11eb45e4d0) edge_1 | [2020-09-21 13:42:14.067] I 1 Ice | ice_port.cpp:89 | ICE port is bound to 0.0.0.0:10004/UDP (0x7f11eb45e690) edge_1 | [2020-09-21 13:42:14.067] I 1 Ice | ice_port.cpp:89 | ICE port is bound to 0.0.0.0:10005/UDP (0x7f11eb45e850) edge_1 | [2020-09-21 13:42:14.067] I 1 WebRTC | webrtc_publisher.cpp:91 | WebRTC Publisher is listening on 0.0.0.0:3334... edge_1 | [2020-09-21 13:42:14.067] I 1 Publisher | publisher.cpp:18 | WebRTC Publisher has been started. edge_1 | [2020-09-21 13:42:14.067] I 1 OvenMediaEngine | main.cpp:162 | Trying to create a HLS Publisher module edge_1 | [2020-09-21 13:42:14.068] I 1 HTTPPublisher | segment_publisher.cpp:62 | HLS Publisher is listening on 0.0.0.0:8090... edge_1 | [2020-09-21 13:42:14.068] I 1 Publisher | publisher.cpp:18 | HLS Publisher has been started. edge_1 | [2020-09-21 13:42:14.068] I 1 OvenMediaEngine | main.cpp:163 | Trying to create a MPEG-DASH Publisher module edge_1 | [2020-09-21 13:42:14.068] I 1 HTTPPublisher | segment_publisher.cpp:62 | DASH Publisher is listening on 0.0.0.0:8090... edge_1 | [2020-09-21 13:42:14.068] I 1 Publisher | publisher.cpp:18 | DASH Publisher has been started. edge_1 | [2020-09-21 13:42:14.068] I 1 OvenMediaEngine | main.cpp:164 | Trying to create a Low-Latency MPEG-DASH Publisher module edge_1 | [2020-09-21 13:42:14.068] I 1 HTTPPublisher | segment_publisher.cpp:62 | LLDASH Publisher is listening on 0.0.0.0:8090... edge_1 | [2020-09-21 13:42:14.068] I 1 Publisher | publisher.cpp:18 | LLDASH Publisher has been started. edge_1 | [2020-09-21 13:42:14.068] I 1 OvenMediaEngine | main.cpp:165 | Trying to create a OVT Publisher module edge_1 | [2020-09-21 13:42:14.068] I 1 Publisher | publisher.cpp:18 | OVTPublisher has been started. edge_1 | [2020-09-21 13:42:14.068] I 1 OvenMediaEngine | main.cpp:168 | Trying to create a Transcoder module edge_1 | [2020-09-21 13:42:14.068] I 1 Transcoder | transcoder.cpp:38 | Transcoder has been started. edge_1 | [2020-09-21 13:42:14.068] I 1 OvenMediaEngine | main.cpp:171 | Trying to create a MPEG-TS Provider module edge_1 | [2020-09-21 13:42:14.068] I 1 Provider | provider.cpp:35 | MpegtsProvider has been started. edge_1 | [2020-09-21 13:42:14.068] I 1 OvenMediaEngine | main.cpp:172 | Trying to create a RTMP Provider module edge_1 | [2020-09-21 13:42:14.069] I 1 Provider | provider.cpp:35 | RtmpProvider has been started. edge_1 | [2020-09-21 13:42:14.069] I 1 OvenMediaEngine | main.cpp:173 | Trying to create a OVT Provider module edge_1 | [2020-09-21 13:42:14.069] I 1 Provider | provider.cpp:35 | OvtProvider has been started. edge_1 | [2020-09-21 13:42:14.069] I 1 OvenMediaEngine | main.cpp:174 | Trying to create a RTSPC Provider module edge_1 | [2020-09-21 13:42:14.069] I 1 Provider | provider.cpp:35 | RtspcProvider has been started. edge_1 | [2020-09-21 13:42:14.069] I 1 OvenMediaEngine | main.cpp:177 | All modules are initialized successfully edge_1 | [2020-09-21 13:42:14.069] I 1 Monitor | monitoring.cpp:43 | Create HostMetrics(default) for monitoring edge_1 | [2020-09-21 13:42:21.708] I 15 Signalling | rtc_signalling_server.cpp:99 | New client is connected: <ClientSocket: 0x7f11c4401010, #22, state: 4, TCP, 172.16.15.50:51639> edge_1 | [2020-09-21 13:42:21.717] I 15 Orchestrator | orchestrator.cpp:862 | Trying to create an application: [#default#deep] edge_1 | [2020-09-21 13:42:21.717] I 15 Monitor | host_metrics.cpp:52 | Create ApplicationMetrics(#default#deep) for monitoring edge_1 | [2020-09-21 13:42:21.717] I 15 MediaRouter.App | media_router_application.cpp:32 | Created media route application. application id(0), (#default#deep) edge_1 | [2020-09-21 13:42:21.717] I 15 MediaRouter | media_router.cpp:70 | MediaRouter has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.719] I 15 Publisher | application.cpp:55 | WebRTC Publisher Application has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.719] I 15 Publisher | application.cpp:55 | HLS Publisher Application has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.719] I 15 Publisher | application.cpp:55 | DASH Publisher Application has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.720] I 15 Publisher | application.cpp:55 | LLDASH Publisher Application has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.720] I 15 Publisher | application.cpp:55 | OVTPublisher Application has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.720] I 15 Transcoder | transcoder.cpp:73 | Transcoder has created [dynamic][#default#deep] application edge_1 | [2020-09-21 13:42:21.720] I 15 Provider | application.cpp:46 | MpegtsProvider has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.721] I 15 Provider | application.cpp:46 | RtmpProvider has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.721] I 15 Provider | application.cpp:46 | OvtProvider has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.721] I 15 Provider | application.cpp:46 | RtspcProvider has created [#default#deep] application edge_1 | [2020-09-21 13:42:21.721] I 15 Orchestrator | orchestrator.cpp:1280 | Trying to pull stream [#default#deep/simon] from provider using origin map: PullProvider edge_1 | [2020-09-21 13:42:21.741] I 15 Provider | stream.cpp:49 | #default#deep/simon(100) has been started stream edge_1 | [2020-09-21 13:42:21.741] I 15 Provider | application.cpp:116 | #default#deep application has created 0 stream motor edge_1 | [2020-09-21 13:42:21.741] I 15 MediaRouter.App | media_router_application.cpp:205 | Trying to create a stream: [#default#deep/simon(100)] edge_1 | [2020-09-21 13:42:21.741] I 15 Monitor | stream.cpp:254 | edge_1 | [Stream Info] edge_1 | id(100), name(simon), SourceType(Ovt), Created Time (Mon Sep 21 13:42:21 2020) edge_1 | edge_1 | Video Track #0: Bypass(false) Bitrate(0b) codec(1, avc) resolution(1920x1080) framerate(25.00fps) timebase(1/90000) edge_1 | [2020-09-21 13:42:21.741] I 15 Monitor | application_metrics.cpp:56 | Create StreamMetrics(simon) for monitoring edge_1 | [2020-09-21 13:42:21.742] I 15 Publisher | stream.cpp:211 | WebRTC Publisher Application application has started [simon(100)] stream edge_1 | [2020-09-21 13:42:21.742] I 15 Publisher | stream.cpp:211 | HLS Publisher Application application has started [simon(100)] stream edge_1 | [2020-09-21 13:42:21.742] I 15 Publisher | stream.cpp:211 | DASH Publisher Application application has started [simon(100)] stream edge_1 | [2020-09-21 13:42:21.742] I 15 Publisher | stream.cpp:211 | LLDASH Publisher Application application has started [simon(100)] stream edge_1 | [2020-09-21 13:42:21.742] I 15 Publisher | stream.cpp:211 | OVTPublisher Application application has started [simon(100)] stream edge_1 | [2020-09-21 13:42:21.745] I 15 Provider | stream.cpp:36 | OvtProvider Application has started to play [simon(100)] stream edge_1 | [2020-09-21 13:42:21.745] I 15 Provider | stream_motor.cpp:130 | #default#deep/simon(100) stream has added to 0 StreamMotor edge_1 | [2020-09-21 13:42:21.745] I 15 Orchestrator | orchestrator.cpp:1302 | The stream was pulled successfully: [#default#deep/simon] (100) edge_1 | [2020-09-21 13:42:21.837] I 15 Monitor | stream_metrics.cpp:119 | A new session has started playing #default#deep/simon on the WebRTC publihser. WebRTC(1)/Stream total(1)/App total(1) edge_1 | [2020-09-21 13:42:21.845] W 15 Socket | socket_address.cpp:277 | An error occurred while resolve DNS for host [2bcf3f29-3140-4fcb-9267-2e3267f7a629.local] edge_1 | [2020-09-21 13:42:21.845] W 15 Socket | socket_address.cpp:84 | An error occurred: 2bcf3f29-3140-4fcb-9267-2e3267f7a629.local:52897 edge_1 | [2020-09-21 13:42:26.940] I 88 DASH | dash_packetizer.cpp:956 | [0x7f11c368a310] LLDASH segment is ready to stream [#default#deep/simon], segment duration: 5.000000s, count: 1 edge_1 | [2020-09-21 13:42:26.942] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:27.941] W 85 ov.Queue | queue.h:179 | [0x7f11c3685ad8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:27.941] W 85 ov.Queue | queue.h:179 | [0x7f11c3685d58] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:28.717] I 19 Signalling | rtc_signalling_server.cpp:99 | New client is connected: <ClientSocket: 0x7f11c4401290, #26, state: 4, TCP, 172.16.15.50:51649> edge_1 | [2020-09-21 13:42:28.726] I 19 Orchestrator | orchestrator.cpp:862 | Trying to create an application: [#default#loeve] edge_1 | [2020-09-21 13:42:28.726] I 19 Monitor | host_metrics.cpp:52 | Create ApplicationMetrics(#default#loeve) for monitoring edge_1 | [2020-09-21 13:42:28.727] I 19 MediaRouter.App | media_router_application.cpp:32 | Created media route application. application id(1), (#default#loeve) edge_1 | [2020-09-21 13:42:28.727] I 19 MediaRouter | media_router.cpp:70 | MediaRouter has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.728] I 19 Publisher | application.cpp:55 | WebRTC Publisher Application has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.728] I 19 Publisher | application.cpp:55 | HLS Publisher Application has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.728] I 19 Publisher | application.cpp:55 | DASH Publisher Application has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.729] I 19 Publisher | application.cpp:55 | LLDASH Publisher Application has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.729] I 19 Publisher | application.cpp:55 | OVTPublisher Application has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.729] I 19 Transcoder | transcoder.cpp:73 | Transcoder has created [dynamic][#default#loeve] application edge_1 | [2020-09-21 13:42:28.729] I 19 Provider | application.cpp:46 | MpegtsProvider has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.729] I 19 Provider | application.cpp:46 | RtmpProvider has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.730] I 19 Provider | application.cpp:46 | OvtProvider has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.730] I 19 Provider | application.cpp:46 | RtspcProvider has created [#default#loeve] application edge_1 | [2020-09-21 13:42:28.730] I 19 Orchestrator | orchestrator.cpp:1280 | Trying to pull stream [#default#loeve/ps] from provider using origin map: PullProvider edge_1 | [2020-09-21 13:42:30.947] I 19 Provider | stream.cpp:49 | #default#loeve/ps(100) has been started stream edge_1 | [2020-09-21 13:42:30.948] I 19 Provider | application.cpp:116 | #default#loeve application has created 0 stream motor edge_1 | [2020-09-21 13:42:30.948] I 19 MediaRouter.App | media_router_application.cpp:205 | Trying to create a stream: [#default#loeve/ps(100)] edge_1 | [2020-09-21 13:42:30.948] I 19 Monitor | stream.cpp:254 | edge_1 | [Stream Info] edge_1 | id(100), name(ps), SourceType(Ovt), Created Time (Mon Sep 21 13:42:28 2020) edge_1 | edge_1 | Video Track #0: Bypass(false) Bitrate(0b) codec(1, avc) resolution(1024x768) framerate(25.00fps) timebase(1/90000) edge_1 | [2020-09-21 13:42:30.948] I 19 Monitor | application_metrics.cpp:56 | Create StreamMetrics(ps) for monitoring edge_1 | [2020-09-21 13:42:30.948] I 19 Publisher | stream.cpp:211 | WebRTC Publisher Application application has started [ps(100)] stream edge_1 | [2020-09-21 13:42:30.948] I 19 Publisher | stream.cpp:211 | HLS Publisher Application application has started [ps(100)] stream edge_1 | [2020-09-21 13:42:30.948] I 19 Publisher | stream.cpp:211 | DASH Publisher Application application has started [ps(100)] stream edge_1 | [2020-09-21 13:42:30.948] I 19 Publisher | stream.cpp:211 | LLDASH Publisher Application application has started [ps(100)] stream edge_1 | [2020-09-21 13:42:30.948] I 19 Publisher | stream.cpp:211 | OVTPublisher Application application has started [ps(100)] stream edge_1 | [2020-09-21 13:42:30.992] I 19 Provider | stream.cpp:36 | OvtProvider Application has started to play [ps(100)] stream edge_1 | [2020-09-21 13:42:30.992] I 19 Provider | stream_motor.cpp:130 | #default#loeve/ps(100) stream has added to 0 StreamMotor edge_1 | [2020-09-21 13:42:30.992] C 19 Orchestrator | orchestrator.cpp:1312 | Out of sync: origin: 0, domain: 1 (This is a bug) edge_1 | [2020-09-21 13:42:30.993] E 19 Orchestrator | orchestrator.cpp:1319 | Could not pull stream [#default#loeve/ps] from provider: PullProvider edge_1 | [2020-09-21 13:42:30.993] I 19 Orchestrator | orchestrator.cpp:972 | Trying to delete an application: [#default#loeve] (1) edge_1 | [2020-09-21 13:42:30.993] I 19 Monitor | host_metrics.cpp:64 | Delete ApplicationMetrics(#default#loeve) for monitoring edge_1 | [2020-09-21 13:42:30.993] I 19 MediaRouter.App | media_router_application.cpp:164 | Unregistered observer. 0x7f1163047010 app(#default#loeve) type(3) edge_1 | [2020-09-21 13:42:30.993] I 19 MediaRouter.App | media_router_application.cpp:122 | Unregistered connector. 0x7f116304a108 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.730] I 19 Provider | application.cpp:61 | RtspcProvider has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.730] I 19 MediaRouter.App | media_router_application.cpp:122 | Unregistered connector. 0x7f1163049708 app(#default#loeve) type(2) edge_1 | [2020-09-21 13:42:31.742] I 19 Provider | stream.cpp:55 | #default#loeve/ps(100) has been stopped playing stream edge_1 | [2020-09-21 13:42:31.742] I 19 MediaRouter.App | media_router_application.cpp:290 | Trying to delete a stream: [#default#loeve/ps(100)] edge_1 | [2020-09-21 13:42:31.743] I 19 Publisher | stream.cpp:241 | [ps(100)] WebRTC Publisher Application stream has been stopped edge_1 | [2020-09-21 13:42:31.743] I 19 Publisher | stream.cpp:241 | [ps(100)] HLS Publisher Application stream has been stopped edge_1 | [2020-09-21 13:42:31.743] I 19 Publisher | stream.cpp:241 | [ps(100)] DASH Publisher Application stream has been stopped edge_1 | [2020-09-21 13:42:31.743] I 19 Publisher | stream.cpp:241 | [ps(100)] LLDASH Publisher Application stream has been stopped edge_1 | [2020-09-21 13:42:31.744] I 19 Publisher | stream.cpp:241 | [ps(100)] OVTPublisher Application stream has been stopped edge_1 | [2020-09-21 13:42:31.744] I 19 Provider | application.cpp:61 | OvtProvider has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.744] I 19 MediaRouter.App | media_router_application.cpp:122 | Unregistered connector. 0x7f1163048d08 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.744] I 19 Provider | application.cpp:61 | RtmpProvider has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.744] I 19 MediaRouter.App | media_router_application.cpp:122 | Unregistered connector. 0x7f1163048308 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.744] I 19 Provider | application.cpp:61 | MpegtsProvider has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.746] I 19 MediaRouter.App | media_router_application.cpp:164 | Unregistered observer. 0x7f1163027828 app(#default#loeve) type(1) edge_1 | [2020-09-21 13:42:31.746] I 19 MediaRouter.App | media_router_application.cpp:122 | Unregistered connector. 0x7f1163027810 app(#default#loeve) type(1) edge_1 | [2020-09-21 13:42:31.746] I 19 Transcoder | transcoder.cpp:106 | Transcoder has deleted [dynamic][#default#loeve] application edge_1 | [2020-09-21 13:42:31.746] I 19 Publisher | application.cpp:77 | OVTPublisher Application has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.746] I 19 MediaRouter.App | media_router_application.cpp:164 | Unregistered observer. 0x7f116305c508 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.747] I 19 Publisher | application.cpp:77 | LLDASH Publisher Application has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.747] I 19 MediaRouter.App | media_router_application.cpp:164 | Unregistered observer. 0x7f116306d908 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.748] I 19 Publisher | application.cpp:77 | DASH Publisher Application has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.748] I 19 MediaRouter.App | media_router_application.cpp:164 | Unregistered observer. 0x7f116305b708 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.748] I 19 Publisher | application.cpp:77 | HLS Publisher Application has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.748] I 19 MediaRouter.App | media_router_application.cpp:164 | Unregistered observer. 0x7f116305a908 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.748] I 19 Publisher | application.cpp:77 | WebRTC Publisher Application has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.748] I 19 MediaRouter.App | media_router_application.cpp:164 | Unregistered observer. 0x7f11c442e908 app(#default#loeve) type(0) edge_1 | [2020-09-21 13:42:31.749] I 19 MediaRouter | media_router.cpp:88 | MediaRouter has deleted [#default#loeve] application edge_1 | [2020-09-21 13:42:31.749] I 19 MediaRouter.App | media_router_application.cpp:40 | Destroyed media router application. application id(1), (#default#loeve) edge_1 | [2020-09-21 13:42:31.749] E 19 Signalling | rtc_signalling_server.cpp:190 | Cannot find stream [#default#loeve/ps] edge_1 | [2020-09-21 13:42:31.749] I 19 Signalling | rtc_signalling_server.cpp:237 | Client is disconnected: <WebSocketClient: 0x7f1163006250, <ClientSocket: 0x7f11c4401290, #26, state: 4, TCP, 172.16.15.50:51649>> (#default#loeve / ps, ufrag: local: (N/A), remote: (N/A)) edge_1 | [2020-09-21 13:42:31.938] I 87 DASH | dash_packetizer.cpp:956 | [0x7f11c368a010] DASH segment is ready to stream [#default#deep/simon], segment duration: 5.000000s, count: 3 edge_1 | [2020-09-21 13:42:32.946] I 86 HLS | hls_packetizer.cpp:292 | HLS segment is ready for stream [#default#deep/simon], segment duration: 4.000000s, count: 3 edge_1 | [2020-09-21 13:42:34.254] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:35.229] I 15 Monitor | stream_metrics.cpp:144 | A session has been stopped playing #default#deep/simon on the WebRTC publihser. Concurrent Viewers[WebRTC(0)/Stream total(0)/App total(0)] edge_1 | [2020-09-21 13:42:35.229] I 15 Signalling | rtc_signalling_server.cpp:237 | Client is disconnected: <WebSocketClient: 0x7f11c3606250, <ClientSocket: 0x7f11c4401010, #22, state: 4, TCP, 172.16.15.50:51639>> (#default#deep / simon, ufrag: local: JZow5v, remote: VNxd) edge_1 | [2020-09-21 13:42:37.943] W 85 ov.Queue | queue.h:179 | [0x7f11c36855d8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:46.263] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:47.944] W 85 ov.Queue | queue.h:179 | [0x7f11c3685ad8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:48.262] W 85 ov.Queue | queue.h:179 | [0x7f11c3685d58] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:52.259] W 85 ov.Queue | queue.h:179 | [0x7f11c36855d8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:53.618] W 85 ov.Queue | queue.h:179 | [0x7f11c3685ad8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:42:54.943] W 85 ov.Queue | queue.h:179 | [0x7f11c3685d58] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:01.944] W 85 ov.Queue | queue.h:179 | [0x7f11c3685ad8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:02.955] W 85 ov.Queue | queue.h:179 | [0x7f11c3685d58] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:10.259] W 85 ov.Queue | queue.h:179 | [0x7f11c36855d8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:11.259] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:11.259] W 85 ov.Queue | queue.h:179 | [0x7f11c3685d58] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:12.939] W 85 ov.Queue | queue.h:179 | [0x7f11c3685ad8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:15.626] W 85 ov.Queue | queue.h:179 | [0x7f11c36855d8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:16.624] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:18.943] W 85 ov.Queue | queue.h:179 | [0x7f11c3685ad8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:18.943] W 85 ov.Queue | queue.h:179 | [0x7f11c3685d58] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:21.939] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:24.939] W 85 ov.Queue | queue.h:179 | [0x7f11c3685ad8] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:26.259] W 85 ov.Queue | queue.h:179 | [0x7f11c3685d58] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:26.953] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:36.623] W 85 ov.Queue | queue.h:179 | [0x7f11c3685858] WebRTC Publisher Application/#default#deep/simon StreamWorker Queue size has exceeded the threshold: queue: 100, threshold: 100 edge_1 | [2020-09-21 13:43:36.726] I 91 Provider | stream_motor.cpp:146 | #default#deep/simon(100) stream has deleted from 0 StreamMotor edge_1 | [2020-09-21 13:43:36.726] W 91 Provider | application.cpp:90 | #default#deep/simon(100) stream will be deleted becasue it hasn't been used for 60 seconds edge_1 | [2020-09-21 13:43:36.726] I 91 Provider | stream.cpp:55 | #default#deep/simon(100) has been stopped playing stream edge_1 | [2020-09-21 13:43:36.752] I 91 Provider | application.cpp:155 | #default#deep application has deleted 0 stream motor edge_1 | [2020-09-21 13:43:36.752] I 91 MediaRouter.App | media_router_application.cpp:290 | Trying to delete a stream: [#default#deep/simon(100)] edge_1 | [2020-09-21 13:43:36.752] I 91 Monitor | application_metrics.cpp:68 | Delete StreamMetrics(simon) for monitoring edge_1 | [2020-09-21 13:43:36.752] I 91 Monitor | stream_metrics.cpp:31 | edge_1 | [Stream Info] edge_1 | id(100), name(simon), SourceType(Ovt), Created Time (Mon Sep 21 13:42:21 2020) edge_1 | edge_1 | Video Track #0: Bypass(false) Bitrate(0b) codec(1, avc) resolution(1920x1080) framerate(25.00fps) timebase(1/90000) edge_1 | Elapsed time to connect to origin server : 16.490535 ms edge_1 | Elapsed time in response from origin server : 2.507940 ms edge_1 | edge_1 | edge_1 | >> Statistics edge_1 | Last update time : Mon Sep 21 13:43:36 2020, Last sent time : Mon Sep 21 13:42:35 2020 edge_1 | Bytes in : 34.37MB, Bytes out : 13.07MB, Concurrent connections : 0, Max connections : 1 (Mon Sep 21 13:42:21 2020) edge_1 | edge_1 | >>>> By publisher edge_1 | - Unknown : Bytes out(0B) Concurrent Connections (0) edge_1 | - WebRTC : Bytes out(13.07MB) Concurrent Connections (0) edge_1 | - RTMP : Bytes out(0B) Concurrent Connections (0) edge_1 | - HLS : Bytes out(0B) Concurrent Connections (0) edge_1 | - DASH : Bytes out(0B) Concurrent Connections (0) edge_1 | - LLDASH : Bytes out(0B) Concurrent Connections (0) edge_1 | - Ovt : Bytes out(0B) Concurrent Connections (0) edge_1 | edge_1 | [2020-09-21 13:43:36.753] I 91 Publisher | stream.cpp:241 | [simon(100)] WebRTC Publisher Application stream has been stopped edge_1 | [2020-09-21 13:43:36.753] I 91 Publisher | stream.cpp:241 | [simon(100)] HLS Publisher Application stream has been stopped edge_1 | [2020-09-21 13:43:36.754] I 91 Publisher | stream.cpp:241 | [simon(100)] DASH Publisher Application stream has been stopped edge_1 | [2020-09-21 13:43:36.754] I 91 Publisher | stream.cpp:241 | [simon(100)] LLDASH Publisher Application stream has been stopped edge_1 | [2020-09-21 13:43:36.756] I 91 Publisher | stream.cpp:241 | [simon(100)] OVTPublisher Application stream has been stopped ^CGracefully stopping... (press Ctrl+C again to force) Stopping ovenmediaengine_edge_1 ... done

    Server (please complete the following information):

    • OS: [e.g. iOS]
    • OvenMediaEngine Version: [e.g. v0.10.1]
    • Branch: [e.g. dev]

    Player (please complete the following information): Chrome -> demo.ovenplayer.

    Additional context Add any other context about the problem here.

  • SRT input support

    SRT input support

    SRT is already being used between the origin and edge servers, but it would be interesting to have input support as well. Are SRT input support planned for v1.0? OBS Studio are planning to support SRT output as of version 25.0, and the code is already supported in the release candidates.

    So far I can see rtmp and rtsp support in the src/projects/providers/ folder of the development branch.

    Thank you so much for providing the ovenmediaengine server! I spent days looking for optimal solutions for webrtc livestreaming with sub second latencies, and ovenmediaengine is far ahead of even very expensive market leaders. You guys are a blessing, and it is a joy to see it being actively developed.

  • Adaptive bitrate streaming for HLS, (LL-)MPEG-DASH

    Adaptive bitrate streaming for HLS, (LL-)MPEG-DASH

    In the documentation it is mentioned that OME does currently not support adaptive streaming for HLS, MPEG-DASH but that it may be updated soon. Can you give an indication where this is on your list of priorities? Is this a something that will happen this year?

    This is probably not a small feature to add, but is it something you would accept pull requests for or other collaboration on?

  • llhsl abr playlist without transcoding

    llhsl abr playlist without transcoding

    Good day, My name is Alexander, nice to meet you.

    I'm trying to use OvenMediaEngine in role llhsl abr playlist maker, without transcoding. I already have 3 quality (1080, 720, 480) made by ffmpeg in 3 different rtmp streams. And i cant find the way to explain it to server. Could you please help me to configure OvenMEdiaEngine to deal with it.

  • Unable to set up streaming for a Tailscale VPN

    Unable to set up streaming for a Tailscale VPN

    PROBLEM

    I am attempting to set up OvenMediaEngine to host a local streaming server on my machine, which is being fed over a Tailscale VPN, and connected to by the client on the same machine as the server. This doesn't seem to work, as it causes the video stream to slow down to about 1-2 frames per second.

    EXPECTATION

    I would like the server to be able to support routing over a VPN or a LAN without using a STUN server.

    ENVIRONMENTAL INFORMATION

    • OvenMediaEngine Information

    ovenmediaengine 0.14.16-1 from Arch Linux community repository

    • Encoder information

    Nvidia H.264 encoder on Windows

    • Player information

    firefox 107.0.1-1 microsoft-edge-stable-bin 108.0.1462.42-1

    • URL

    http://demo.ovenplayer.com/ Referring to my ws:// address by either 127.0.0.1 or my machine's local Tailscale IP address ws://<ip>/app/stream

    • Operating system and version

    Arch Linux

    linux-tkg-cfs 6.1.rc8-272

    SETUP INFORMATION AND LOGS

    Server.xml.gz

    ovenmediaengine.log.gz

    OTHER HELPFUL INFORMATION

    I've censored the IP addresses in the log with identifiers in angle brackets.

  • Frame loss even with TCP

    Frame loss even with TCP

    PROBLEM

    There are occasional frame loss errors. As below image

    This results in freezes when broadcasting video to viewers. Transmission to OME is conducted via WebRTC with TCP enabled.

    EXPECTATION

    I would like a better video streaming quality when using TCP. Maybe you know how to improve it.

    ENVIRONMENTAL INFORMATION

    • OvenMediaEngine Information

    I'm using Release branch (v0.14.16) without Docker

    • Encoder information

    I'm using OvenLiveKit-Web. It reproduces here https://demo.ovenplayer.com/demo_input.html.

    • Player information

    It reproduces on https://demo.ovenplayer.com.

    • URL

    SEND: wss://domen:3334/app/key?direction=send&transport=tcp PLAY: wss://domen:3334/app/6/key

    • Operating system and version

    Ubuntu 22.04, ffmpeg 4.4.2

    SETUP INFORMATION AND LOGS Server.zip ome_log.zip

  • Unable to get screenshare subscribe working. Receive a

    Unable to get screenshare subscribe working. Receive a "Cannot create offer" error

    Using the demo publisher I am unable to get subscriber getting an offer. On the server it says the stream isn't found. I got it subscribing once, when setting a max bitrate it failed. Then when I removed the bitrate and restarted the server it's the same problem. I think it's been an issue the whole time.

    ovenLivekit.attachMedia(document.getElementById('localVideo'));
    
            ovenLivekit.getDisplayMedia({
                audio: true,
                video: true
            }).then(function (stream) {
    
                // Or set your OvenMediaEngine's WebRTC Provider URL
                ovenLivekit.startStreaming('wss://rtc.electroteque.org:3334/app/stream?direction=send')
            });
    
    2022-12-05 21:32:46     Video Track #0: Name(bypass_video) Bitrate(0b) Codec(1,H264,Passthrough) BSF(H264_RTP_RFC_6184) Resolution(0x0) Framerate(0.00fps) KeyInterval(0) BFrames(0) timebase(1/90000)
    2022-12-05 21:33:07 [2022-12-05 10:33:07.527] W [SPRtcSig-T3334:12] WebRTC Publisher | webrtc_publisher.cpp:467  | (#default#app/stream) stream has not started.
    2022-12-05 21:33:07 [2022-12-05 10:33:07.527] E [SPRtcSig-T3334:12] Signalling | rtc_signalling_server.cpp:322  | Cannot find stream [#default#app/stream]
    2022-12-05 21:32:46 
    2022-12-05 21:32:46     >> Statistics
    2022-12-05 21:32:46     Last update time : Mon Dec  5 10:30:44 2022, Last sent time : Mon Dec  5 10:30:44 2022
    2022-12-05 21:32:46     Bytes in : 0B, Bytes out : 0B, Concurrent connections : 0, Max connections : 0 (Mon Dec  5 10:30:44 2022)
    2022-12-05 21:32:46 
    2022-12-05 21:32:46             >>>> By publisher
    2022-12-05 21:32:46             - Unknown : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - WebRTC : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - MPEGTSPush : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - RTMPPush : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - HLS : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - DASH : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - LLDASH : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - LLHLS : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - OVT : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - File : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46             - Thumbnail : Bytes out(0B) Concurrent Connections (0)
    2022-12-05 21:32:46 
    2022-12-05 21:32:46 [2022-12-05 10:32:46.360] I [SPRtcSig-T3334:12] MediaRouter | mediarouter_stream.cpp:72   | [#default#app/stream(1616543125)] Delete mediarouter stream 
    2022-12-05 21:32:46 [2022-12-05 10:32:46.360] I [SPRtcSig-T3334:12] Transcoder | transcoder_stream.cpp:106  | [#default#app/stream(100)] Transcoder stream has been stopped.
    2022-12-05 21:32:46 [2022-12-05 10:32:46.360] I [SPRtcSig-T3334:12] Transcoder | transcoder_stream.cpp:106  | [#default#app/stream(100)] Transcoder stream has been stopped.
    2022-12-05 21:32:46 [2022-12-05 10:32:46.360] I [SPRtcSig-T3334:12] MediaRouter | mediarouter_stream.cpp:72   | [#default#app/stream(100)] Delete mediarouter stream 
    2022-12-05 21:32:46 [2022-12-05 10:32:46.360] I [SPRtcSig-T3334:12] Signalling | rtc_signalling_server.cpp:365  | Client is disconnected: HttpConnection(0x7fb0c185c210) : WebSocket <ClientSocket: 0x7fb0bc601010, #35, Connected, TCP, Nonblocking, 172.17.0.1:34724> TLS(Enabled) (#default#app / stream, ufrag: local: O4ehfw, remote: 0KiA)
    2022-12-05 21:32:46 [2022-12-05 10:32:46.363] I [SPICE-T3478:21] ICE | ice_port.cpp:493  | Turn client has disconnected : <ClientSocket: 0x7fb0c1995410, #36, Closed, TCP, Nonblocking, 172.17.0.1:53180>
    2022-12-05 21:32:50 [2022-12-05 10:32:50.239] I [SPRtcSig-T3334:12] Signalling | rtc_signalling_server.cpp:231  | New client is connected: <ClientSocket: 0x7fb0bc601a10, #35, Connected, TCP, Nonblocking, 172.17.0.1:41900>
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] Provider | stream.cpp:49   | Unknown/stream(101) has been started stream
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] MediaRouter | mediarouter_application.cpp:255  | [#default#app/stream(101)] Trying to create a stream
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] MediaRouter | mediarouter_stream.cpp:54   | [#default#app/stream(101)] Trying to create a mediarouter stream
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] Monitor | application_metrics.cpp:57   | Create StreamMetrics(stream/90497f20-fdfe-4dc9-acac-e1c8898bd137/default/#default#app/stream/i) for monitoring
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] Transcoder | transcoder_stream.cpp:626  | [#default#app/stream(101)] Output stream has been created. [#default#app/stream(575588831)]
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] Transcoder | transcoder_stream.cpp:86   | No decoder generated
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] MediaRouter | mediarouter_application.cpp:255  | [#default#app/stream(575588831)] Trying to create a stream
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] MediaRouter | mediarouter_stream.cpp:54   | [#default#app/stream(575588831)] Trying to create a mediarouter stream
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] Monitor | application_metrics.cpp:57   | Create StreamMetrics(stream/90497f20-fdfe-4dc9-acac-e1c8898bd137/default/#default#app/stream/o) for monitoring
    2022-12-05 21:32:50 [2022-12-05 10:32:50.316] I [SPRtcSig-T3334:12] Transcoder | transcoder_stream.cpp:92   | [#default#app/stream(101)] Transcoder stream has been started.
    2022-12-05 21:32:50 [2022-12-05 10:32:50.455] I [SPICE-T3478:21] ICE | ice_port.cpp:479  | Turn client has connected : <ClientSocket: 0x7fb0b4400010, #36, Connected, TCP, Nonblocking, 172.17.0.1:55616>
    2022-12-05 21:32:50 [2022-12-05 10:32:50.503] I [SPICE-T3478:21] ICE | ice_port.cpp:779  | Add the client to the port list: 172.17.0.1:55616 / Packet type : 0 GateType : 1
    2022-12-05 21:32:55 [2022-12-05 10:32:55.787] I [SPRtcSig-T3334:12] Signalling | rtc_signalling_server.cpp:365  | Client is disconnected: HttpConnection(0x7fb0bc6da410) : WebSocket <ClientSocket: 0x7fb0c185c410, #37, Connected, TCP, Nonblocking, 172.17.0.1:34726> TLS(Enabled) (#default#app / stream, ufrag: local: (N/A), remote: (N/A))
    2022-12-05 21:32:57 [2022-12-05 10:32:57.513] I [SPRtcSig-T3334:12] Signalling | rtc_signalling_server.cpp:231  | New client is connected: <ClientSocket: 0x7fb0c185c410, #37, Connected, TCP, Nonblocking, 172.17.0.1:34558>
    2022-12-05 21:33:34 [2022-12-05 10:33:34.792] I [InboundWorker:31] MediaRouter | mediarouter_application.cpp:779  | [#default#app/stream(101)] Stream has been created 
    2022-12-05 21:33:34 [Stream Info]
    2022-12-05 21:33:34 id(101), msid(0), output(stream), SourceType(WebRTC), RepresentationType(Source), Created Time (Mon Dec  5 10:32:50 2022) UUID(90497f20-fdfe-4dc9-acac-e1c8898bd137/default/#default#app/stream/i)
    2022-12-05 21:33:34 
    2022-12-05 21:33:34     Video Track #-1304402437: Name(2uHa3yjc) Bitrate(0b) Codec(1,H264,Auto) BSF(H264_RTP_RFC_6184) Resolution(2194x1144) Framerate(0.00fps) KeyInterval(0) BFrames(0) timebase(1/90000)
    2022-12-05 21:33:34 [2022-12-05 10:33:34.794] I [OutboundWorker:32] MediaRouter | mediarouter_application.cpp:831  | [#default#app/stream(575588831)] Stream has been created 
    2022-12-05 21:33:34 [Stream Info]
    2022-12-05 21:33:34 id(575588831), msid(0), output(stream), SourceType(Transcoder), RepresentationType(Source), Created Time (Mon Dec  5 10:32:50 2022) UUID(90497f20-fdfe-4dc9-acac-e1c8898bd137/default/#default#app/stream/o)
    2022-12-05 21:33:34     >> Origin Stream Info
    2022-12-05 21:33:34     id(101), output(stream), SourceType(WebRTC), Created Time (Mon Dec  5 10:32:50 2022)
    2022-12-05 21:33:34 
    2022-12-05 21:33:34     Video Track #0: Name(bypass_video) Bitrate(0b) Codec(1,H264,Passthrough) BSF(H264_RTP_RFC_6184) Resolution(2194x1144) Framerate(0.00fps) KeyInterval(0) BFrames(0) timebase(1/90000)
    2022-12-05 21:33:34 [2022-12-05 10:33:34.796] I [OutboundWorker:32] WebRTC Publisher | rtc_stream.cpp:192  | WebRTC Stream has been created : stream/575588831
    2022-12-05 21:33:34 Rtx(false) Ulpfec(false) JitterBuffer(false) PlayoutDelay(false min:0 max: 0)
    2022-12-05 21:33:34 [2022-12-05 10:33:34.796] I [OutboundWorker:32] Publisher | stream.cpp:204  | WebRTC Publisher Application application has started [stream(575588831)] stream (MSID : 0)
    2022-12-05 21:33:34 [2022-12-05 10:33:34.797] I [OutboundWorker:32] LLHLS Publisher | llhls_stream.cpp:180  | LLHlsStream has been created : stream/575588831
    2022-12-05 21:33:34 OriginMode(true) Chunk Duration(0.50) Segment Duration(6) Segment Count(10)
    2022-12-05 21:33:34 [2022-12-05 10:33:34.797] I [OutboundWorker:32] Publisher | stream.cpp:204  | LLHLS Publisher Application application has started [stream(575588831)] stream (MSID : 0)
    2022-12-05 21:33:34 [2022-12-05 10:33:34.797] I [OutboundWorker:32] Publisher | stream.cpp:204  | OVTPublisher Application application has started [stream(575588831)] stream (MSID : 0)
    
  • Performance Tuning 500view error ice find binding

    Performance Tuning 500view error ice find binding

    use transport=tcp run OvenRtcTester.go -url ws://X.X.X.X:13333/app/stream -n 500 to test ERROR: ice find binding HELP: is there any way to solve this problem.. need help image

yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.

YangWebrtc Overview yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 支持视频会议、高清录播直播、直播互动等多种视音频应用。 可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用

Nov 30, 2022
media server based on c++11, support webrtc/rtmp/httpflv/websocket flv

cpp_media_server A media server is writen by C++11, and the network io is writen by Boost.Asio. It support rtmp/httpflv/websocket(flv)/webrtc. preinst

Jun 30, 2022
Even newer Custom Firmware for Xiaomi Cameras based on Hi3518ev200 Chipset. It includes free RTSP, ONVIF and other improvements based on the work by roleoroleo
Even newer Custom Firmware for Xiaomi Cameras based on Hi3518ev200 Chipset. It includes free RTSP, ONVIF and other improvements based on the work by roleoroleo

Why this Yi-Hack-V5 firmware? The answer is simple: missing updates, RTSP and not based on the latest stock firmware (which features improvements and

Dec 2, 2022
Use rtsp protocol to push local H265 video encoding files

rtspServerH265 Use rtsp protocol to push local H265 video encoding files 项目介绍 C++11实现的RTSP服务器和推流器。主要完成对H265视频编码文件的RTSP推流 使用说明 1.编译并运行程序; 2.打开VLC软件,在媒体

Oct 12, 2022
RTSP Wasm Player
RTSP Wasm Player

RTSP Wasm Player Overview # RTSP WebSocket Proxy RTSP/Webcam/File > FFmpeg open > Packets > WebSocket # WS Wasm Player WebSocket > Packets > Wasm FFm

Nov 27, 2022
Smartstreaming is a high-performance and scalable streaming media server.

1. introduction Smartstreaming is a high-performance and scalable streaming media server. 2. design | io | Coroutine | | transport | tcp/udp/srt/quic

Jan 7, 2022
Pear - WebRTC Toolkit for IoT/Embedded Device

Pear is a WebRTC SDK written in C. The SDK aims to integrate IoT/Embedded device with WebRTC applications.

Dec 1, 2022
webrtc c++ library for mediasoup with full sfu c++ demo
webrtc c++ library for mediasoup with full sfu c++ demo

项目说明: 本项目是基于mediasoup v3 版本 webrtc m84版本 的sfu的js版本修改成的c++版本,支持和js版本一样的完整demo功能,但是本项目是直接把worker进程代码集成 到了demo可以直接代码级别的调用,支持VC2019,xcode,CLion的开发环境,可以直接断

Nov 25, 2022
Yangwebrtc - Webrtc Libary for PC, non-google lib
Yangwebrtc - Webrtc Libary for PC, non-google lib

MetaRTC(yangwebrtc) Overview MetaRTC(yangwebrtc)是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 yangwebrtc为PC版本 metaRTC为嵌入式版本 https://github.com/metar

Dec 5, 2022
Program for IP TV streaming on the network via HTTP

msd Rozhuk Ivan [email protected] 2011 - 2021 msd - Multi stream daemon. Program for organizing IP TV streaming on the network via HTTP. Licence BSD

Nov 23, 2022
Hack to allow live streaming from wyze cameras to vlc or mpv on your desktop.
Hack to allow live streaming from wyze cameras to vlc or mpv on your desktop.

Wyze Cam Live Streaming This is a hack to allow live streaming from a wyze cam on your local network. Installation - New! The simplest fix for wyze ev

Dec 7, 2022
a simple example of video streaming with a ESP32 AI Thinker
a simple example of video streaming with a ESP32 AI Thinker

esp32-video-streaming its a simple camera system that im trying to make for fun I want to make an async server but idk it doesnt works correctly and w

Mar 9, 2022
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.

Video Stabilization Contents General Info Installation To Do General Info Video stabilization is a software-based approach in real-time to eliminating

Nov 23, 2022
Console based Streaming Music Player [W.I.P]

?? quanta It's a command line music player that can streams same music to multiple devices, hence creating a surround sound system. Or just use it as

Jan 27, 2022
A UE4 plugin used ffmpeg library to record/publish game viewport output and in-game audio.

Streaming A UE4 plugin used ffmpeg library to record/publish game viewport output and in-game audio. GPL license beacuse used ffmpeg. Structures GameV

Aug 3, 2022
FFmpeg Kit for applications. Supports Android, Flutter, iOS, macOS, React Native and tvOS. Supersedes MobileFFmpeg, flutter_ffmpeg and react-native-ffmpeg.
FFmpeg Kit for applications. Supports Android, Flutter, iOS, macOS, React Native and tvOS. Supersedes MobileFFmpeg, flutter_ffmpeg and react-native-ffmpeg.

FFmpeg Kit for applications. Supports Android, Flutter, iOS, macOS, React Native and tvOS. Supersedes MobileFFmpeg, flutter_ffmpeg and react-native-ffmpeg.

Nov 30, 2022
PowerVS is a standalone broadcast video server based on ffmpeg
PowerVS is a standalone broadcast video server based on ffmpeg

PowerVS PowerVS is a standalone broadcast video server based on ffmpeg ?? Table of Contents About Getting Started Running the tests Usage Development

Mar 17, 2022
A pure C linux MJPEG over HTTP server

mjpeg2http A pure C linux MJPEG over HTTP server Summary mjpeg2http is a minimalistic server primarily targeted to run on embedded computers, like rou

Sep 24, 2022
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

Dec 5, 2022
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.

YangWebrtc Overview yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 支持视频会议、高清录播直播、直播互动等多种视音频应用。 可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用

Nov 30, 2022