Skip to content

Commit fc2626a

Browse files
committed
Add mediabunny build and example player
1 parent 901c641 commit fc2626a

31 files changed

Lines changed: 53303 additions & 19 deletions

server/src/main/java/org/red5/server/net/mediabunny/MediaBunnyServlet.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class MediaBunnyServlet extends HttpServlet implements AsyncListener {
4343

4444
private final ExecutorService executor = Executors.newCachedThreadPool();
4545

46+
@SuppressWarnings("null")
4647
@Override
4748
public void init() throws ServletException {
4849
super.init();

server/src/main/java/org/red5/server/net/mediabunny/MediaBunnyStreamListener.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.red5.server.net.mediabunny;
22

33
import java.io.ByteArrayOutputStream;
4+
import java.io.IOException;
45
import java.nio.ByteBuffer;
56
import java.nio.charset.StandardCharsets;
67
import java.util.ArrayList;
@@ -275,9 +276,13 @@ private void flushBuffer(TrackBuffer buffer, long sequence, long trackId, long g
275276
return;
276277
}
277278
Fmp4FragmentBuilder.FragmentConfig config = new Fmp4FragmentBuilder.FragmentConfig().setSequenceNumber(sequence).setTrackId(trackId).setBaseDecodeTime(buffer.fragmentStartDecodeTime).setGroupId(groupId).setMediaType(mediaType).setMediaData(buffer.media.toByteArray()).setSamples(new ArrayList<>(buffer.samples));
278-
279-
byte[] fragment = fragmentBuilder.buildFragment(config).serialize();
280-
registry.onFragment(streamKey, fragment);
279+
byte[] fragment;
280+
try {
281+
fragment = fragmentBuilder.buildFragment(config).serialize();
282+
registry.onFragment(streamKey, fragment);
283+
} catch (IOException e) {
284+
log.warn("Failed to build fragment for stream: {}", streamKey, e);
285+
}
281286
buffer.reset();
282287
}
283288

server/src/main/java/org/red5/server/tomcat/TomcatLoader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,7 @@ public void start() throws ServletException {
505505
Thread.currentThread().setContextClassLoader(webClassLoader);
506506
// create a thread to speed-up application loading
507507
Future<?> appStartTask = executor.submit(new Runnable() {
508+
@SuppressWarnings("null")
508509
public void run() {
509510
//set thread context classloader to web classloader
510511
Thread.currentThread().setContextClassLoader(webClassLoader);

server/src/main/server/webapps/live/WEB-INF/web.xml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,22 @@
1919
<param-value>true</param-value>
2020
</init-param>
2121
</servlet>
22-
<servlet-mapping>
23-
<servlet-name>sse</servlet-name>
24-
<url-pattern>/events</url-pattern>
25-
<url-pattern>/events/*</url-pattern>
26-
</servlet-mapping>
27-
<!-- MediaBunny fMP4 stream servlet -->
28-
<servlet>
29-
<servlet-name>mediabunny</servlet-name>
30-
<servlet-class>org.red5.server.net.mediabunny.MediaBunnyServlet</servlet-class>
31-
<load-on-startup>4</load-on-startup>
32-
<async-supported>true</async-supported>
33-
</servlet>
34-
<servlet-mapping>
35-
<servlet-name>mediabunny</servlet-name>
36-
<url-pattern>/mediabunny</url-pattern>
37-
</servlet-mapping>
22+
<servlet-mapping>
23+
<servlet-name>sse</servlet-name>
24+
<url-pattern>/events</url-pattern>
25+
<url-pattern>/events/*</url-pattern>
26+
</servlet-mapping>
27+
<!-- MediaBunny fMP4 stream servlet -->
28+
<servlet>
29+
<servlet-name>mediabunny</servlet-name>
30+
<servlet-class>org.red5.server.net.mediabunny.MediaBunnyServlet</servlet-class>
31+
<load-on-startup>4</load-on-startup>
32+
<async-supported>true</async-supported>
33+
</servlet>
34+
<servlet-mapping>
35+
<servlet-name>mediabunny</servlet-name>
36+
<url-pattern>/mediabunny</url-pattern>
37+
</servlet-mapping>
3838
<!-- XXX(paul) unused feature
3939
<servlet>
4040
<servlet-name>rtmpt</servlet-name>

0 commit comments

Comments
 (0)