Commit 162025ce3fd7fdb37a3aa1cacc22074a53ef31ae

Authored by 648540858
1 parent 94d831a8

修复录像合并和下载

src/main/java/top/panll/assist/dto/UserSettings.java
@@ -12,10 +12,10 @@ public class UserSettings { @@ -12,10 +12,10 @@ public class UserSettings {
12 @Value("${userSettings.id}") 12 @Value("${userSettings.id}")
13 private String id; 13 private String id;
14 14
15 - @Value("${userSettings.record}")  
16 - private String recordTempPath = "./recordTemp"; 15 + @Value("${userSettings.record-temp:./recordTemp}")
  16 + private String recordTempPath;
17 17
18 - @Value("${userSettings.recordTempDay:7}") 18 + @Value("${userSettings.record-temp-day:7}")
19 private int recordTempDay; 19 private int recordTempDay;
20 20
21 @Value("${userSettings.ffmpeg}") 21 @Value("${userSettings.ffmpeg}")
src/main/java/top/panll/assist/service/VideoFileService.java
@@ -224,6 +224,12 @@ public class VideoFileService { @@ -224,6 +224,12 @@ public class VideoFileService {
224 } 224 }
225 225
226 File recordFile = new File(userSettings.getRecordTempPath() ); 226 File recordFile = new File(userSettings.getRecordTempPath() );
  227 + if (!recordFile.exists()) {
  228 + if (!recordFile.mkdirs()) {
  229 + logger.info("[录像合并] 失败, 任务ID:{}, 创建临时目录失败", taskId);
  230 + throw new ControllerException(ErrorCode.ERROR100.getCode(), "创建临时目录失败");
  231 + }
  232 + }
227 MergeOrCutTaskInfo mergeOrCutTaskInfo = new MergeOrCutTaskInfo(); 233 MergeOrCutTaskInfo mergeOrCutTaskInfo = new MergeOrCutTaskInfo();
228 mergeOrCutTaskInfo.setId(taskId); 234 mergeOrCutTaskInfo.setId(taskId);
229 mergeOrCutTaskInfo.setApp(videoTaskInfo.getApp()); 235 mergeOrCutTaskInfo.setApp(videoTaskInfo.getApp());
@@ -260,7 +266,7 @@ public class VideoFileService { @@ -260,7 +266,7 @@ public class VideoFileService {
260 mergeOrCutTaskInfo.setPercentage("1"); 266 mergeOrCutTaskInfo.setPercentage("1");
261 267
262 // 处理文件路径 268 // 处理文件路径
263 - Path relativize = Paths.get(userSettings.getRecordTempPath()).relativize(Paths.get(result)); 269 + String relativize = new File(result).getName();
264 mergeOrCutTaskInfo.setRecordFile(relativize.toString()); 270 mergeOrCutTaskInfo.setRecordFile(relativize.toString());
265 if (videoTaskInfo.getRemoteHost() != null) { 271 if (videoTaskInfo.getRemoteHost() != null) {
266 mergeOrCutTaskInfo.setDownloadFile(videoTaskInfo.getRemoteHost() + "/download.html?url=download/" + relativize); 272 mergeOrCutTaskInfo.setDownloadFile(videoTaskInfo.getRemoteHost() + "/download.html?url=download/" + relativize);
src/main/resources/all-application.yml
@@ -28,7 +28,7 @@ server: @@ -28,7 +28,7 @@ server:
28 28
29 # [根据业务需求配置] 29 # [根据业务需求配置]
30 user-settings: 30 user-settings:
31 - # [可选 ] zlm配置的录像路径,不配置则使用当前目录下的record目录 即: ./record 31 + # [可选 ] 临时录像路径
32 record-temp-path: ./recordTemp 32 record-temp-path: ./recordTemp
33 # [可选 ] 录像保存时长(单位: 天)每天晚12点自动对过期文件执行清理, 不配置则不删除 33 # [可选 ] 录像保存时长(单位: 天)每天晚12点自动对过期文件执行清理, 不配置则不删除
34 record-temp-day: 7 34 record-temp-day: 7
src/main/resources/application-local.yml
@@ -33,18 +33,13 @@ server: @@ -33,18 +33,13 @@ server:
33 33
34 # [根据业务需求配置] 34 # [根据业务需求配置]
35 userSettings: 35 userSettings:
36 - # [必选 ] 服务ID  
37 - id: 334533  
38 - # [必选 ] 录像路径  
39 - record: /home/lin/server/zlm/ZLMediaKit/release/linux/Debug/www/record/  
40 - # [可选 ] 录像保存时长(单位: 天)每天晚12点自动对过期文件执行清理  
41 - recordDay: 10  
42 - # [可选 ] 录像下载合成临时文件保存时长, 不配置默认取值recordDay(单位: 天)每天晚12点自动对过期文件执行清理  
43 - # recordTempDay: 7 36 + id: 111
  37 + # [可选 ] 录像保存时长(单位: 天)每天晚12点自动对过期文件执行清理, 不配置则不删除
  38 + record-temp-day: 7
44 # [必选 ] ffmpeg路径 39 # [必选 ] ffmpeg路径
45 - ffmpeg: /home/lin/IdeaProjects/wvp-pro-assist/lib/ffmpeg 40 + ffmpeg: ./lib/ffmpeg
46 # [必选 ] ffprobe路径, 一般安装ffmpeg就会自带, 一般跟ffmpeg在同一目录,用于查询文件的信息, 41 # [必选 ] ffprobe路径, 一般安装ffmpeg就会自带, 一般跟ffmpeg在同一目录,用于查询文件的信息,
47 - ffprobe: /home/lin/IdeaProjects/wvp-pro-assist/lib/ffprobe 42 + ffprobe: ./lib/ffprobe
48 # [可选 ] 限制 ffmpeg 合并文件使用的线程数,间接限制cpu使用率, 默认2 限制到50% 43 # [可选 ] 限制 ffmpeg 合并文件使用的线程数,间接限制cpu使用率, 默认2 限制到50%
49 threads: 2 44 threads: 2
50 45