diff --git a/app/static/public/js/video.js b/app/static/public/js/video.js
index bc10b37..462b1d7 100644
--- a/app/static/public/js/video.js
+++ b/app/static/public/js/video.js
@@ -2156,6 +2156,7 @@
taskIds: [],
placeholders: new Map(),
failedPlaceholders: new Set(),
+ failedReasons: [],
sources: new Set(),
pendingRejects: new Set(),
};
@@ -2217,6 +2218,7 @@
if (item) {
spliceRun.failedPlaceholders.add(item);
}
+ spliceRun.failedReasons.push(String(singleErr && singleErr.message ? singleErr.message : singleErr));
if (String(singleErr && singleErr.message || '') === 'edit_cancelled') {
return;
}
@@ -2227,6 +2229,7 @@
if (String(err && err.message || '') === 'edit_cancelled') {
return;
}
+ spliceRun.failedReasons.push(String(err && err.message ? err.message : err));
const missItem = spliceRun.placeholders.get(taskId) || null;
if (missItem) spliceRun.failedPlaceholders.add(missItem);
})
@@ -2248,7 +2251,8 @@
throw new Error('edit_cancelled');
}
if (!successCount || !lastMergedUrl) {
- throw new Error('edit_all_failed');
+ const firstReason = String((spliceRun.failedReasons && spliceRun.failedReasons[0]) || '').trim();
+ throw new Error(firstReason || 'edit_all_failed');
}
bindEditVideoSource(lastMergedUrl);
scrollToWorkspaceTop();
@@ -2256,11 +2260,18 @@
setStatus('connected', `拼接完成(成功 ${successCount}/${taskIds.length})`);
toast(`拼接完成,成功 ${successCount}/${taskIds.length}`, 'success');
} catch (e) {
- if (String(e && e.message ? e.message : e) === 'edit_cancelled') {
+ const msg = String(e && e.message ? e.message : e);
+ if (msg === 'edit_cancelled') {
setStatus('', '未连接');
} else {
setStatus('error', '拼接失败');
- toast(`拼接失败: ${String(e && e.message ? e.message : e)}`, 'error');
+ if (msg === 'extract_frame_failed_near_tail') {
+ toast('拼接失败: 当前帧过于接近结尾,请前移 2-3 帧再试', 'error');
+ } else if (msg === 'edit_video_url_missing') {
+ toast('拼接失败: 生成结果未返回视频地址', 'error');
+ } else {
+ toast(`拼接失败: ${msg}`, 'error');
+ }
}
} finally {
spliceRun.done = true;
diff --git a/app/static/public/pages/video.html b/app/static/public/pages/video.html
index 1053012..65e3baa 100644
--- a/app/static/public/pages/video.html
+++ b/app/static/public/pages/video.html
@@ -318,7 +318,7 @@
-
+