|
@@ -707,39 +707,40 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
* HTTP流转RTSP流
|
|
|
*/
|
|
|
public void streamConversion(String code) {
|
|
|
+ log.info("ffmpeg -re -i /opt/streams/file/"+code+".mp4 -c:v copy -c:a copy -f rtsp rtsp://124.70.58.209:8554/live/"+code+"s");
|
|
|
+// cmdCameraUtil.cmd("find /opt/streams/record/flv/*/*/ -mmin +5 -name *.flv -exec rm -rf {} \\;");
|
|
|
+
|
|
|
try {
|
|
|
- // 创建ProcessBuilder对象,设置ffmpeg命令及参数
|
|
|
- ProcessBuilder pb = new ProcessBuilder("/usr/local/bin/ffmpeg", "-re", "-i", "/opt/streams/file/42010001541320000112.mp4", "-c:v", "copy", "-c:a", "copy", "-f", "rtsp", "rtsp://124.70.58.209:8554/live/44");
|
|
|
- log.info("pb--------------"+pb);
|
|
|
- // 设置工作目录,如果需要的话
|
|
|
- // pb.directory(new File("path/to/working/directory"));
|
|
|
-
|
|
|
- // 启动进程
|
|
|
- Process process = pb.start();
|
|
|
-
|
|
|
- // 等待进程执行完成
|
|
|
- int exitCode = process.waitFor();
|
|
|
-
|
|
|
- // 打印ffmpeg命令的输出信息
|
|
|
- BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
|
|
- String line;
|
|
|
- while ((line = reader.readLine()) != null) {
|
|
|
- log.info("line------------"+line);
|
|
|
+ Process proc = Runtime.getRuntime().exec("/bin/bash", null, null);
|
|
|
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
|
|
|
+ PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);
|
|
|
+ String commit = "ffmpeg -re -i /opt/streams/file/"+code+".mp4 -c:v copy -c:a copy -f rtsp rtsp://124.70.58.209:8554/live/"+code;
|
|
|
+ List<String> commands = new ArrayList<>();
|
|
|
+
|
|
|
+ // 删除
|
|
|
+ commands.add(commit);
|
|
|
+ log.info("HTTP流转RTSP流:{}", commands);
|
|
|
+ for (String line : commands) {
|
|
|
+ out.println(line);
|
|
|
}
|
|
|
+ out.println("exit");// 这个命令必须执行,否则in流不结束。
|
|
|
+ String rspLine = "";
|
|
|
+ while ((rspLine = in.readLine()) != null) {
|
|
|
+ System.out.println(rspLine);
|
|
|
|
|
|
- // 打印ffmpeg命令的错误信息
|
|
|
- BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
|
|
|
- String errorLine;
|
|
|
- while ((errorLine = errorReader.readLine()) != null) {
|
|
|
- log.info("errorLine------------"+errorLine);
|
|
|
}
|
|
|
+ int i = proc.waitFor();
|
|
|
+ log.info("执行结果:{}", i);
|
|
|
|
|
|
- // 打印ffmpeg命令的退出码
|
|
|
- log.info("Exit Code: " + exitCode);
|
|
|
- } catch (IOException | InterruptedException e) {
|
|
|
- log.error("eeee------------"+e.getMessage());
|
|
|
+ in.close();
|
|
|
+ out.close();
|
|
|
+ proc.destroy();
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ } catch (InterruptedException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|