fix(video-splice): 对齐优先并保留视频1音频

This commit is contained in:
root committed 2026-02-17 21:50:41 +08:00
1 parent 22f66cb195
commit 54d5e01706
2 files changed
+20 -43

No files matched your search

+19 -42
View File
@@ -1826,9 +1826,9 @@
'-i', segASource,
'-i', segBSource,
'-filter_complex',
`[0:v]trim=end=${trimSeconds},setpts=PTS-STARTPTS[v0];[0:a]atrim=end=${trimSeconds},asetpts=PTS-STARTPTS[a0];[1:v]setpts=PTS-STARTPTS[v1];[1:a]asetpts=PTS-STARTPTS[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]`,
`[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]`,
'-map', '[v]',
'-map', '[a]',
'-map', '[a0]',
'-c:v', 'libx264',
'-preset', 'ultrafast',
'-pix_fmt', 'yuv420p',
@@ -1839,46 +1839,23 @@
mergedFile
]
);
} catch (avConcatErr) {
try {
await ffmpegExec(
ff,
[
'-y',
'-i', segASource,
'-i', segBSource,
'-filter_complex',
`[0:v]trim=end=${trimSeconds},setpts=PTS-STARTPTS[v0];[0:a]atrim=end=${trimSeconds},asetpts=PTS-STARTPTS[a0];[1:v]setpts=PTS-STARTPTS[v1];[v0][v1]concat=n=2:v=1:a=0[v]`,
'-map', '[v]',
'-map', '[a0]',
'-c:v', 'libx264',
'-preset', 'ultrafast',
'-pix_fmt', 'yuv420p',
'-r', '30',
'-c:a', 'aac',
'-ar', '48000',
'-ac', '2',
mergedFile
]
);
} catch (audioFallbackErr) {
await ffmpegExec(
ff,
[
'-y',
'-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]`,
'-map', '[v]',
'-c:v', 'libx264',
'-preset', 'ultrafast',
'-pix_fmt', 'yuv420p',
'-r', '30',
mergedFile
]
);
}
} catch (audioFallbackErr) {
await ffmpegExec(
ff,
[
'-y',
'-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]`,
'-map', '[v]',
'-c:v', 'libx264',
'-preset', 'ultrafast',
'-pix_fmt', 'yuv420p',
'-r', '30',
mergedFile
]
);
}
const merged = await ffmpegReadFile(ff, mergedFile);
return new Blob([toStableUint8(merged)], { type: 'video/mp4' });
+1 -1
View File
@@ -318,7 +318,7 @@
<script src="/static/common/js/pwa.js?v=0.1.1"></script>
<script src="/static/vendor/ffmpeg/ffmpeg.js?v=0.1.0"></script>
<script src="/static/vendor/ffmpeg/ffmpeg-util.js?v=0.1.0"></script>
<script src="/static/public/js/video.js?v=0.5.22"></script>
<script src="/static/public/js/video.js?v=0.5.23"></script>
</body>
</html>