From f6683581e7cd637bd0365350fe2e42b90d27d671 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 17 Feb 2026 22:46:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(video-splice):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9C=AB=E5=B8=A7=E6=8A=BD=E5=B8=A7=E7=A8=B3=E5=AE=9A=E6=80=A7?= =?UTF-8?q?=E5=B9=B6=E5=BC=BA=E5=88=B6=E5=88=B7=E6=96=B0=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/static/public/js/video.js | 5 +++-- app/static/public/pages/video.html | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/static/public/js/video.js b/app/static/public/js/video.js index 6e5c561..2f434e7 100644 --- a/app/static/public/js/video.js +++ b/app/static/public/js/video.js @@ -1899,7 +1899,7 @@ for (const ms of candidates) { const seconds = (ms / 1000).toFixed(3); try { - await ffmpegExec(ff, ['-y', '-ss', seconds, '-i', inputName, '-frames:v', '1', frameName]); + await ffmpegExec(ff, ['-y', '-ss', seconds, '-i', inputName, '-frames:v', '1', '-update', '1', frameName]); frameBytes = await ffmpegReadFile(ff, frameName); lockedTimestampMs = ms; break; @@ -1971,12 +1971,13 @@ '-i', segASource, '-i', segBSource, '-filter_complex', - `[0:v]trim=end=${trimSeconds},setpts=PTS-STARTPTS[v0];[1:v]setpts=PTS-STARTPTS[v1];[v0][v1]concat=n=2:v=1:a=0[v];[0:a]atrim=end=${trimSeconds},asetpts=PTS-STARTPTS[a0]`, + `[0:v]trim=end=${trimSeconds},setpts=PTS-STARTPTS[v0];[1:v]setpts=PTS-STARTPTS[v1];[v0][v1]concat=n=2:v=1:a=0[v]`, '-map', '[v]', '-c:v', 'libx264', '-preset', 'ultrafast', '-pix_fmt', 'yuv420p', '-r', '30', + '-an', mergedVideoFile ] ); diff --git a/app/static/public/pages/video.html b/app/static/public/pages/video.html index 261f3df..51f108a 100644 --- a/app/static/public/pages/video.html +++ b/app/static/public/pages/video.html @@ -318,7 +318,7 @@ - +