Defines communication between a browser client using Javascript and a server listening on a WebSocket. Requests and responses are communicated using JSON.
Paul Gregoire
- Chrome or Firefox
Red5 updated its slf4j and logback libraries recently to address security vulnerabilities; in doing so, this broke the old code in Red5 open source logging that allowed the separation of logging into additional contexts such as those used by custom webapps and Red5 Pro cloudstorage. The symptom of which was difficult to catch since it just prevented logging without any indication. Currently, the only work-arounds are to replace the logger libraries with the older versions or replace every use of Red5LoggerFactory with the SLF4J default interface LoggerFactory; the SLF4J factory does not accept a context. Here is an example:
/*
* The recent updates for SLF4J prevents Red5 logger factory use of a context,
* it does not work in the latest Red5 open source libraries. We suggest a
* replacement in the interim.
*/
This document assumes that you've upgraded to 12.x of Red5 Pro prior to any patches addressing custom Red5 application scope handling. To get your application working, follow the steps below:
<dependency>
<groupId>com.red5pro</groupId>
<artifactId>red5pro-common</artifactId>
<version>12.0.1.0</version>
<scope>compile</version>
In conf/red5-common.xml
the MP3 and M4A entries must be removed to prevent startup exceptions, unless an MP3/M4A support jar is included in the classpath (Not yet available). Remove or comment out the following entries from the streamableFileFactory
bean:
<bean id="mp3FileService" class="org.red5.server.service.mp3.impl.MP3Service"/>
<bean id="m4aFileService" class="org.red5.server.service.m4a.impl.M4AService"/>
Remove this entire bean entry:
The following three updates will cover the majority of issues detected; this report is for Red5 open source specifically and should apply to implementations utilizing the server.
The update to Spring 6.0.x is delayed due to its requirement on JDK 17.
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
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-->>wc: HTTP Response with SDP Answer with candidates and Location header "/whip/resource/stream1"
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"
#!/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 |
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; |