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 / 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 / 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 / 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 / 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 / red5pro-ipv6.md
Created November 8, 2021 19:02
Enable IPv6 in Red5 Pro Server

Add to red5.sh and red5pro.service: -Dorg.ice4j.ipv6.DISABLED=false red5.sh example:

if [ -z "$JVM_OPTS" ]; then
    JVM_OPTS="-Dorg.ice4j.ipv6.DISABLED=false -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms2g -Xmx2g -Xverify:none -XX:+UseBiasedLocking -XX:InitialCodeCacheSize=8m -XX:MaxGCPauseMillis=500 -XX:ReservedCodeCacheSize=32m"
fi

red5pro.service example:

@mondain
mondain / LiveStreamListService.java
Created March 29, 2022 15:42
Example LiveStreamListService for Red5 Pro
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@mondain
mondain / linux-amd64-ffmpeg-with-rtmpe.bash
Created April 5, 2022 20:20
Bash script for building openssl, librtmp, openh264, and ffmpeg for testing purposes
#!/bin/bash
# explanation https://gist.github.com/mohanpedala/1e2ff5661761d3abd0385e8223e16425
set -exuo pipefail
WORKDIR="$(pwd)"
mkdir -p ${WORKDIR}
SRC="$WORKDIR/ffmpeg_build"
CMPLD="$WORKDIR/compile"
NUM_PARALLEL_BUILDS=4
@mondain
mondain / whep-ideas.md
Last active April 19, 2023 15:25
WHEP brainstorming

WHEP Mode 1 with trickle:

sequenceDiagram
    participant wc as WHEP Client
    participant ws as WHEP Server
    wc->>+ws: OPTIONS /whep/endpoint/stream1?requestId=subscriber1
    ws-->>wc: HTTP Response with headers and optional Link header containing ICE servers
    wc->>ws: POST /whep/endpoint/stream1?requestId=subscriber1
    ws-->>wc: HTTP Response with SDP Offer with candidates and Location header "/whep/resource/stream1"
@mondain
mondain / whip-ideas.md
Last active April 19, 2023 15:39
WHIP

WHIP with trickle:

sequenceDiagram
    participant wc as WHIP Client
    participant ws as WHIP Server
    wc->>+ws: OPTIONS /whip/endpoint/stream1
    ws-->>wc: HTTP Response with headers and optional Link header containing ICE servers
    wc->>ws: POST /whip/endpoint/stream1 with SDP Offer
 ws--&gt;&gt;wc: HTTP Response with SDP Answer with candidates and Location header "/whip/resource/stream1"
@mondain
mondain / obs-2-red5pro.md
Created July 3, 2023 17:50
OBS with libdatachannel to Red5 Pro version 11.0

Offer from OBS with libdatachannel:

v=0
o=rtc 1749923962 0 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic:WMS *
a=group:BUNDLE 0 1
a=setup:actpass