Skip to content

Instantly share code, notes, and snippets.

View mondain's full-sized avatar
🏠
Working from home

Paul Gregoire mondain

🏠
Working from home
View GitHub Profile
@mondain
mondain / whip.js
Created September 29, 2021 20:07
Whip JS demo for Red5 Pro
/* Based on code created by Sergio Garcia Murillo, modified by Paul Gregoire to be used with Red5 Pro. */
class WHIPClient {
constructor() {
//Offer SDP
this.offer = null;
//Ice properties
this.iceUsername = null;
this.icePassword = null;
//Pending candidates
@mondain
mondain / whip.html
Created September 29, 2021 20:06
Whip demo page for Red5 Pro
<html>
<head>
<title>Whip</title>
<script type="text/javascript" src="whip.js"></script>
</head>
<body>
<b>Whip it! real good</b>
<br /><br />
<div id="container"></div>
<br />
@mondain
mondain / red5-changes122-128.md
Created May 10, 2021 15:45
Red5 Open source changes 1.2.2 - 1.2.8

Red5 Open source changes 1.2.2 - 1.2.8

@mondain
mondain / sdp-offer.txt
Created November 30, 2020 21:46
SDP Offer from a browser to Red5 Pro Server for a participant
Changes here would be setting mid 1 through 3 to `recvonly` in addition to the new video entry as mid 5.
type: offer, sdp: v=0
o=- 8815930240178044352 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2 3 4 5 6
a=msid-semantic: WMS ifOcH0OobeWoMmedB3ooL1Aj1OqEqe08YJE3
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
@mondain
mondain / sdp-answer.txt
Created November 30, 2020 21:33
SDP Answer back from Red5 Pro Server for a participant
Note that mid=5 is the extra video which would be fed by the server, similar to mid=1..3 for audio
type: answer, sdp: v=0
o=red5pro_6f1838 5138461613339 3 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic: WMS *
a=group:BUNDLE 0 1 2 3 4 5 6
a=ice-options:trickle
m=audio 9 UDP/TLS/RTP/SAVPF 111
@mondain
mondain / R5P SRT Parameters.md
Last active October 27, 2020 15:49
Red5 Pro Server SRT parameters

Configuration Options

When one configures SRT end-points using the provision style submission, the following parameters are available:

{
    "guid": "live/stream1",
    "context": "live",
 "name": "stream1",
@mondain
mondain / video2yuv420p.sh
Created August 8, 2020 03:10
Save a series of raw yuv420p files from a video source
#!/bin/sh
ffmpeg -y -r 1 -i $1 -an -s 640x480 -pixel_format yuv420p -f image2 image-%3d.raw
@mondain
mondain / jee-container-hl.md
Last active March 20, 2020 18:44
Red5 configuration for higher HTTP/WS loads

The following modifications to the conf/jee-container.xml should provide a higher availability level than the default configuration set.

For http and ws connections:

<bean name="httpConnector" class="org.red5.server.tomcat.TomcatConnector">
    <property name="protocol" value="org.apache.coyote.http11.Http11Nio2Protocol" />
    <property name="address" value="${http.host}:${http.port}" />
    <property name="redirectPort" value="${https.port}" />
    <property name="connectionProperties">
@mondain
mondain / j2c_string.c
Created January 14, 2020 15:11
JNI example of a java string into a c string
/* Java String to C String */
static int jstr_to_cstr(JNIEnv *env, jstring jstr, char *cstr) {
jsize jlen, clen;
clen = env->GetStringUTFLength(jstr);
jlen = env->GetStringLength(jstr);
env->GetStringUTFRegion(jstr, 0, jlen, cstr);
if (env->ExceptionCheck()) {
return -EIO;
}
@mondain
mondain / GC.md
Created August 27, 2019 13:53
Java GC with Red5

I did some reading and it looks like this particular OOM message simply means to add more memory for the heap; it essentially means one is running too lean. CPU runs hot trying to clear the garbage.

OutOfMemoryError: GC overhead limit exceeded

Excessive GC Time and OutOfMemoryError
The parallel collector will throw an OutOfMemoryError if too much time is being spent in garbage collection: if more than 98% of the total time is spent in garbage collection and less than 2% of the heap is recovered, an OutOfMemoryError will be thrown. This feature is designed to prevent applications from running for an extended period of time while making little or no progress because the heap is too small. If necessary, this feature can be disabled by adding the option -XX:-UseGCOverheadLimit to the command line.