java - 需要从 RTMP 流录制视频

标签 java streaming red5 rtmp video-recording

我是 RTMP 的绝对初学者。我的任务是创建一个 Java 应用程序,它可以从某个 RTMP URL 录制视频。

我安装了 RTMP 服务器(Red5 服务器)。我已经验证它可以正常工作并且流式传输良好。我有 red5.jar 为我提供了所有应该用于与 Red5 通信的 Java 类(据我所知)。

我相当精通 Java,但不知道如何处理该录音应用程序。因为除了 Red5 Javadoc 之外没有示例,也没有文档。

所以,请通过提供任何示例或任何链接或指导来帮助我。我不能使用 Flash 或除 Java 之外的任何东西。

最佳答案

将下面的代码添加到您的 red5 应用程序中的 Application 类中。它有开始录音、将录音保存到磁盘和停止的代码。

/*
*Start the recording
*/
public void recordVideo() {
     IConnection conn = Red5.getConnectionLocal();
     //get the stream published by the id "publishId"
     ClientBroadcastStream stream = (ClientBroadcastStream) getBroadcastStream(conn.getScope(), "publishId");
     try {
        // Save the stream to disk.
        stream.saveAs("streamName", false);
    } catch (Exception e) {
        throw new RuntimeException(e.getMessage());
    }
}
/*
*Stop the recording
*/
public void stopRecording(){
     IConnection conn = Red5.getConnectionLocal();
     ClientBroadcastStream stream = (ClientBroadcastStream) getBroadcastStream(conn.getScope(), "publishId");
    // Stop recording.
    stream.stopRecording();
    stream.stop();
}

JUV RTMP是一个RTMP协议(protocol)的java客户端。但它不提供任何用于音频/视频流的编解码器:

Play and publish audio/video streams (supported by the server) (!audio/video codec implementations are not included!)

关于java - 需要从 RTMP 流录制视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586545/

相关文章:

java - 如何在Java中让递归和for循环一起工作?

c++ - 如何在 C/C++ 中获取用于流式传输的 mp3 音频数据包

audio - RED5网络摄像头捕获无法录制声音

ffmpeg - 在ffmpeg中的视频前面添加多个图像

java - 在 HTC Desire with Android 2.2 上使用 Android MediaPlayer 进行流式传输时出现奇怪的行为

mysql - 长时间闲置后 : com. mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

java - 我应该用 Erlang 编写自己的 flash-server 还是使用 Red5?

java - Spring Boot 2.0 Web 应用程序不会启动嵌入式 servlet 容器

java - 如何在 Couchbase 中捕获保存或更新事件

java - 何时以及如何使用 hibernate 二级缓存?