From b3286059240d45a05ca4dade396f8fac9e6e8562 Mon Sep 17 00:00:00 2001 From: BrandWang Date: Wed, 29 Mar 2023 15:40:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8F=AF=E5=9B=9E=E6=BA=AF):=20=E5=8F=AF?= =?UTF-8?q?=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整临时文件生成 --- pom.xml | 9 +++ .../recall/AfisRecallApplication.java | 2 + .../wabestway/recall/web/OrderController.java | 6 +- .../java/com/wabestway/recall/FFmpeg.java | 59 ++++++++++++++++++- 4 files changed, 72 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 236c479..c2a565c 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,15 @@ 2.2.3.RELEASE + + org.springframework.cloud + spring-cloud-starter-openfeign + + + com.wabestway.engine + afis-engine-api + 2.5 + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config diff --git a/src/main/java/com/wabestway/recall/AfisRecallApplication.java b/src/main/java/com/wabestway/recall/AfisRecallApplication.java index 7233137..0106001 100644 --- a/src/main/java/com/wabestway/recall/AfisRecallApplication.java +++ b/src/main/java/com/wabestway/recall/AfisRecallApplication.java @@ -3,9 +3,11 @@ package com.wabestway.recall; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableDiscoveryClient +@EnableFeignClients(basePackages = {"com.wabestway.engine"}) public class AfisRecallApplication { public static void main(String[] args) { diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 1b5b16d..46663db 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -101,19 +101,19 @@ public class OrderController { return Mono.just(ResObj.ok()); } - void createVideo(String dir, String jsonData) throws IOException { + void createVideo(String orderId, String jsonData) throws IOException { // 创建临时目录 Path tempDir = null; try { - tempDir = Files.createTempDirectory(dir); + tempDir = Files.createTempDirectory("ts"); } catch (IOException e) { e.printStackTrace(); } System.out.println("Created temporary directory: " + tempDir); try { - File tempFile = File.createTempFile("traces", ".json", tempDir.toFile()); + File tempFile = new File(tempDir.toFile(), "traces.json"); FileWriter fw = new FileWriter(tempFile); BufferedWriter bw = new BufferedWriter(fw); bw.write(jsonData); diff --git a/src/test/java/com/wabestway/recall/FFmpeg.java b/src/test/java/com/wabestway/recall/FFmpeg.java index adb9639..3945f20 100644 --- a/src/test/java/com/wabestway/recall/FFmpeg.java +++ b/src/test/java/com/wabestway/recall/FFmpeg.java @@ -1,12 +1,69 @@ package com.wabestway.recall; +import com.alibaba.fastjson.JSONArray; import org.junit.jupiter.api.Test; +import javax.script.*; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Base64; +import java.util.Comparator; +import java.util.List; +import java.util.zip.GZIPInputStream; + + public class FFmpeg { @Test - public void TestMp4() { + public void TestMp4() throws IOException { + String jsonData = new String(Files.readAllBytes(Paths.get("C:","Users/Administrator/Desktop","traces.json")), StandardCharsets.UTF_8); + // 创建临时目录 + Path tempDir = null; + try { + tempDir = Files.createTempDirectory("example"); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println("Created temporary directory: " + tempDir); + try { + File tempFile = File.createTempFile("traces", ".json", tempDir.toFile()); + FileWriter fw = new FileWriter(tempFile); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(jsonData); + bw.flush(); + bw.close(); + fw.close(); + String[] command = {"C:\\Users\\Administrator\\AppData\\Roaming\\npm\\ts-node", "E:\\Develop\\trace-transform\\src\\index.ts"}; + ProcessBuilder processBuilder = new ProcessBuilder(command); + processBuilder.directory(tempDir.toFile()); + // 在临时目录下执行命令 + Process process = processBuilder.start(); + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + reader.close(); + + // 等待命令执行完成 + int exitCode = process.waitFor(); + System.out.println("Command exited with code " + exitCode); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } finally { + // 删除临时目录 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } } + + }