feat(可回溯): 视频生成
调整视频生成逻辑
This commit is contained in:
+31
-8
@@ -80,11 +80,8 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService {
|
||||
orderQuery.orderByDesc(RecallOrderEntity::getCompleteDate);
|
||||
List<RecallOrderEntity> orderList = recallOrderService.getBaseMapper().selectList(orderQuery);
|
||||
orderList.forEach(order -> {
|
||||
LambdaQueryWrapper<RecallRecordEntity> recordQuery = Wrappers.lambdaQuery();
|
||||
recordQuery.eq(RecallRecordEntity::getTraceId, order.getTraceId());
|
||||
recordQuery.orderByAsc(RecallRecordEntity::getCreateTime);
|
||||
List<RecallRecordEntity> recordList = recallRecordService.getBaseMapper().selectList(recordQuery);
|
||||
|
||||
List<RecallRecordVO> recordList = recallRecordService.queryTraceRecords(order.getTraceId());
|
||||
List<String> events = recordList.stream()
|
||||
.flatMap(entity -> entity.getEvents().stream())
|
||||
.collect(Collectors.toList());
|
||||
@@ -117,23 +114,23 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService {
|
||||
bw.flush();
|
||||
bw.close();
|
||||
fw.close();
|
||||
String[] command = {"ts-node", "/opt/trace-transform/src/index.ts"};
|
||||
String[] command = {"ts-node", "/opt/review/index.ts"};
|
||||
ProcessBuilder processBuilder = new ProcessBuilder(command);
|
||||
processBuilder.directory(tempDir.toFile());
|
||||
// 在临时目录下执行命令
|
||||
Process process = processBuilder.start();
|
||||
Process p1 = processBuilder.start();
|
||||
|
||||
Thread processThread = new Thread(() -> {
|
||||
try {
|
||||
// 读取命令输出
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream()));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
System.out.println(line);
|
||||
}
|
||||
reader.close();
|
||||
// 等待命令执行完成
|
||||
int exitCode = process.waitFor();
|
||||
int exitCode = p1.waitFor();
|
||||
|
||||
System.out.println("Command exited with code " + exitCode);
|
||||
} catch (InterruptedException | IOException e) {
|
||||
@@ -144,12 +141,38 @@ public class RecallOrderApiServiceImpl implements RecallOrderApiService {
|
||||
|
||||
// Continue with other tasks here...
|
||||
|
||||
|
||||
try {
|
||||
processThread.join();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String[] video = {"rrvideo", "--input", "unpack.json", "--config", "/opt/review/config.json", "--output", "video.mp4"};
|
||||
ProcessBuilder videoBuilder = new ProcessBuilder(video);
|
||||
videoBuilder.directory(tempDir.toFile());
|
||||
Process p2 = videoBuilder.start();
|
||||
|
||||
|
||||
Thread processThread2 = new Thread(() -> {
|
||||
try {
|
||||
// 读取命令输出
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(p2.getInputStream()));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
System.out.println(line);
|
||||
}
|
||||
reader.close();
|
||||
// 等待命令执行完成
|
||||
int exitCode = p2.waitFor();
|
||||
|
||||
System.out.println("Command exited with code " + exitCode);
|
||||
} catch (InterruptedException | IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
processThread2.start();
|
||||
|
||||
File file = new File(tempDir.toFile(), "video.mp4");
|
||||
if (file.exists()) {
|
||||
log.info(String.valueOf(file.length()));
|
||||
|
||||
@@ -17,9 +17,9 @@ spring:
|
||||
|
||||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
url: jdbc:mysql://123.56.82.16:3306/afis-agency?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
|
||||
username: rocar
|
||||
password: rocar
|
||||
url: jdbc:mysql://203.189.0.250:13049/afis-agency?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
|
||||
username: yxb-dev
|
||||
password: yxbDev!902
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
platform: mysql
|
||||
druid:
|
||||
|
||||
Reference in New Issue
Block a user