Java调用ffmpeg把rtsp视频流保存为MP4文件,并播放
在Java中调用FFmpeg来处理RTSP视频流并将其保存为MP4文件,然后播放该文件,可以通过执行以下步骤来实现:
- 确保已经安装了FFmpeg。
- 在Java代码中使用
ProcessBuilder
来执行FFmpeg命令。 - 使用另一个
ProcessBuilder
实例来播放MP4文件。
以下是实现这些步骤的示例代码:
import java.io.IOException;
public class FFmpegRTSPToMP4 {
public static void main(String[] args) {
String rtspUrl = "rtsp://your_rtsp_url";
String outputFile = "output.mp4";
// 转换RTSP到MP4
convertRTSPToMP4(rtspUrl, outputFile);
// 播放MP4文件
playMP4File(outputFile);
}
private static void convertRTSPToMP4(String rtspUrl, String outputFile) {
try {
ProcessBuilder builder = new ProcessBuilder(
"ffmpeg",
"-i", rtspUrl,
"-c", "copy",
"-an",
outputFile
);
Process process = builder.start();
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
private static void playMP4File(String filePath) {
try {
ProcessBuilder builder = new ProcessBuilder(
"ffplay",
"-nodisp",
"-autoexit",
filePath
);
Process process = builder.start();
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
确保替换your_rtsp_url
为实际的RTSP流地址。此代码假设FFmpeg已经添加到了系统的PATH变量中,这样就可以在任何地方通过命令行调用它。如果FFmpeg不在PATH中,需要指定完整路径来调用ffmpeg和ffplay。
注意:这个代码示例是一个简化的示例,并且没有包含错误处理和资源管理的代码。在实际应用中,你应该添加必要的异常处理和确保所有资源(如进程)在使用后正确关闭。
评论已关闭