diff --git a/src/dialogs/SettingsDialog/components/DownloadSettings.vue b/src/dialogs/SettingsDialog/components/DownloadSettings.vue index b7173be..361a03c 100644 --- a/src/dialogs/SettingsDialog/components/DownloadSettings.vue +++ b/src/dialogs/SettingsDialog/components/DownloadSettings.vue @@ -37,18 +37,30 @@ const audioQualitySelectOptions: SelectBaseOption[] = [ 主要内容 下载视频 下载音频 + + +
+ 视频处理
自动合并音频和视频
-
- -
- 附加内容 - 下载字幕 - 下载封面 + +
如果视频有章节分段,则将章节信息嵌入mp4文件的元数据中
+
使视频在各类播放器中支持章节导航(例如进度条分段)
+ +
+ +
将视频的广告部分以章节的形式嵌入mp4文件的元数据中
+
可以实现自动跳过广告(如果播放器支持的话)
+ +
@@ -58,22 +70,21 @@ const audioQualitySelectOptions: SelectBaseOption[] = [ json弹幕
+
+ 其他内容 + 下载字幕 + 下载封面 +
+
元数据
还会顺便下载poster和fanart(如果有的话)
-
- json文件 - -
将章节信息嵌入mp4文件的元数据中
-
使视频在各类播放器中支持章节导航(例如进度条分段)
-
+ json刮削
diff --git a/src/panes/DownloadPane/DownloadPane.vue b/src/panes/DownloadPane/DownloadPane.vue index 8e10cf4..02bea04 100644 --- a/src/panes/DownloadPane/DownloadPane.vue +++ b/src/panes/DownloadPane/DownloadPane.vue @@ -98,6 +98,7 @@ onMounted(async () => { const audioTask = progressData.audio_task const mergeTask = progressData.merge_task const embedChapterTask = progressData.embed_chapter_task + const embedSkipTask = progressData.embed_skip_task const danmakuTask = progressData.danmaku_task const subtitleTask = progressData.subtitle_task const coverTask = progressData.cover_task @@ -105,6 +106,9 @@ onMounted(async () => { const jsonTask = progressData.json_task const danmakuSelected = danmakuTask.xml_selected || danmakuTask.ass_selected || danmakuTask.json_selected + const embedding = + (embedChapterTask.selected && !embedChapterTask.completed) || + (embedSkipTask.selected && !embedSkipTask.completed) if (videoTask.selected && !videoTask.completed && videoTask.content_length > 0) { const chunkCount = progressData.video_task.chunks.length @@ -116,18 +120,13 @@ onMounted(async () => { const completedChunks = progressData.audio_task.chunks.filter((chunk) => chunk.completed).length progressData.percentage = (completedChunks / chunkCount) * 100 progressData.taskIndicator = `音频分片 ${completedChunks}/${chunkCount}` - } else if ( - mergeTask.selected && - !mergeTask.completed && - embedChapterTask.selected && - !embedChapterTask.completed - ) { + } else if (mergeTask.selected && !mergeTask.completed && embedding) { progressData.percentage = 100 - progressData.taskIndicator = '合并视频音频+嵌入章节元数据' + progressData.taskIndicator = '自动合并+嵌入章节元数据' } else if (mergeTask.selected && !mergeTask.completed) { progressData.percentage = 100 - progressData.taskIndicator = '合并视频和音频' - } else if (embedChapterTask.selected && !embedChapterTask.completed) { + progressData.taskIndicator = '自动合并' + } else if (embedding) { progressData.percentage = 100 progressData.taskIndicator = '嵌入章节元数据' } else if (danmakuSelected && !danmakuTask.completed) { @@ -141,10 +140,10 @@ onMounted(async () => { progressData.taskIndicator = '封面' } else if (nfoTask.selected && !nfoTask.completed) { progressData.percentage = 100 - progressData.taskIndicator = 'nfo元数据' + progressData.taskIndicator = 'nfo刮削' } else if (jsonTask.selected && !jsonTask.completed) { progressData.percentage = 100 - progressData.taskIndicator = 'json元数据' + progressData.taskIndicator = 'json刮削' } }) } diff --git a/src/panes/DownloadPane/components/DownloadProgress.vue b/src/panes/DownloadPane/components/DownloadProgress.vue index f814b40..cfc4299 100644 --- a/src/panes/DownloadPane/components/DownloadProgress.vue +++ b/src/panes/DownloadPane/components/DownloadProgress.vue @@ -160,7 +160,10 @@ function handleSearchClick() { 音频(音质:{{ p.audio_task.audio_quality }}) - 自动合并 + + 自动合并 + 标记章节 + 标记广告 xml弹幕 ass弹幕 @@ -169,9 +172,8 @@ function handleSearchClick() { 字幕 封面 - nfo元数据 - json元数据 - 章节信息 + nfo刮削 + json刮削