mb-rrvideo-server 1.0.16 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/routes/merge.js +6 -1
- package/src/utils/video.js +5 -0
package/package.json
CHANGED
package/src/routes/merge.js
CHANGED
|
@@ -83,13 +83,18 @@ async function handleMerge(inputData, res, logFileName) {
|
|
|
83
83
|
logger.debug(`[${actionName}] 视频列表(${videos.length}个): ${JSON.stringify(videos)}`, taskId, 'merge');
|
|
84
84
|
logger.info(`[${actionName}] 输出路径: ${output}`, taskId, 'merge');
|
|
85
85
|
logger.debug(`[${actionName}] 回调数据: ${JSON.stringify(callbackData)}`, taskId, 'merge');
|
|
86
|
+
|
|
87
|
+
const mergeDownloadDir = path.join(process.cwd(), '__rrvideos__temp__', 'merge_downloads', String(taskId));
|
|
88
|
+
ensureDir(mergeDownloadDir);
|
|
89
|
+
logger.info(`[${actionName}] 合并临时下载目录: ${mergeDownloadDir}`, taskId, 'merge');
|
|
86
90
|
|
|
87
91
|
// 生成合并命令
|
|
88
92
|
const command = buildMergeCommand(videos, output, {
|
|
89
93
|
format,
|
|
90
94
|
method,
|
|
91
95
|
auto_mode: autoMode,
|
|
92
|
-
headers
|
|
96
|
+
headers,
|
|
97
|
+
download_dir: mergeDownloadDir
|
|
93
98
|
});
|
|
94
99
|
|
|
95
100
|
logger.info(`[${actionName}] 合并指令:\n${command}`, taskId, 'merge');
|
package/src/utils/video.js
CHANGED
|
@@ -183,12 +183,17 @@ function buildMergeCommand(videos, output, options = {}) {
|
|
|
183
183
|
const method = options.method || 'concat';
|
|
184
184
|
const autoMode = options.auto_mode || 'smart';
|
|
185
185
|
const headers = options.headers || {};
|
|
186
|
+
const downloadDir = options.download_dir;
|
|
186
187
|
|
|
187
188
|
let command = `${nodePath} --expose-gc ${rrvideosPath} merge --output ${escapeArg(output)} --format ${escapeArg(format)} --method ${escapeArg(method)} --auto-mode ${escapeArg(autoMode)}`;
|
|
188
189
|
|
|
189
190
|
videos.forEach((v) => {
|
|
190
191
|
command += ` --videos ${escapeArg(v)}`;
|
|
191
192
|
});
|
|
193
|
+
|
|
194
|
+
if (downloadDir) {
|
|
195
|
+
command += ` --download-dir ${escapeArg(downloadDir)}`;
|
|
196
|
+
}
|
|
192
197
|
|
|
193
198
|
Object.keys(headers).forEach((k) => {
|
|
194
199
|
const pair = `${k}:${headers[k]}`;
|