|
@@ -4390,13 +4390,44 @@ class AnimeService
|
|
|
Utils::throwError('20003:该剧集已有正在处理的视频合成任务');
|
|
Utils::throwError('20003:该剧集已有正在处理的视频合成任务');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 获取所有分镜的配音视频,按 segment_number 排序
|
|
|
|
|
- $segments = DB::table('mp_episode_segments')
|
|
|
|
|
- ->where('anime_id', $animeId)
|
|
|
|
|
- ->where('episode_id', $episodeId)
|
|
|
|
|
- ->orderBy('segment_number')
|
|
|
|
|
- ->select('segment_id', 'segment_number', 'video_url', 'audio_url', 'video_time_point_start', 'video_time_point_end')
|
|
|
|
|
- ->get();
|
|
|
|
|
|
|
+ // 获取全能模式状态
|
|
|
|
|
+ $ace_mode = DB::table('mp_animes')->where('id', $animeId)->value('ace_mode');
|
|
|
|
|
+
|
|
|
|
|
+ if ((int)$ace_mode === 1) {
|
|
|
|
|
+ // 获取所有片段的配音视频,按 act_number 排序
|
|
|
|
|
+ $segments = DB::table('mp_episode_segments')
|
|
|
|
|
+ ->where('anime_id', $animeId)
|
|
|
|
|
+ ->where('episode_id', $episodeId)
|
|
|
|
|
+ ->orderBy('segment_number')
|
|
|
|
|
+ ->select('id as act_id', 'act_number', 'video_url', 'audio_url', 'video_time_point_start', 'video_time_point_end')
|
|
|
|
|
+ ->get();
|
|
|
|
|
+
|
|
|
|
|
+ // 检查是否所有片段都有视频
|
|
|
|
|
+ $missingVideos = $segments->filter(function($segment) {
|
|
|
|
|
+ return empty($segment->video_url);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if ($missingVideos->isNotEmpty()) {
|
|
|
|
|
+ Utils::throwError('20003:存在未完成视频的片段,请确保所有片段都已完成配音');
|
|
|
|
|
+ }
|
|
|
|
|
+ }else {
|
|
|
|
|
+ // 获取所有分镜的配音视频,按 segment_number 排序
|
|
|
|
|
+ $segments = DB::table('mp_episode_segments')
|
|
|
|
|
+ ->where('anime_id', $animeId)
|
|
|
|
|
+ ->where('episode_id', $episodeId)
|
|
|
|
|
+ ->orderBy('segment_number')
|
|
|
|
|
+ ->select('segment_id', 'segment_number', 'video_url', 'audio_url', 'video_time_point_start', 'video_time_point_end')
|
|
|
|
|
+ ->get();
|
|
|
|
|
+
|
|
|
|
|
+ // 检查是否所有分镜都有配音和视频
|
|
|
|
|
+ $missingVideos = $segments->filter(function($segment) {
|
|
|
|
|
+ return empty($segment->audio_url) || empty($segment->video_url);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if ($missingVideos->isNotEmpty()) {
|
|
|
|
|
+ Utils::throwError('20003:存在未完成配音或视频的分镜,请确保所有分镜都已完成配音或视频');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
if ($segments->isEmpty()) {
|
|
if ($segments->isEmpty()) {
|
|
|
Utils::throwError('20003:未找到该剧集的分镜数据');
|
|
Utils::throwError('20003:未找到该剧集的分镜数据');
|
|
@@ -4408,26 +4439,27 @@ class AnimeService
|
|
|
->where('id', $episodeId)
|
|
->where('id', $episodeId)
|
|
|
->value('complete_video_url');
|
|
->value('complete_video_url');
|
|
|
|
|
|
|
|
- // 检查是否所有分镜都有配音
|
|
|
|
|
- $missingVideos = $segments->filter(function($segment) {
|
|
|
|
|
- return empty($segment->audio_url);
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- if ($missingVideos->isNotEmpty()) {
|
|
|
|
|
- Utils::throwError('20003:存在未完成配音的分镜,请确保所有分镜都已完成配音');
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
// 构建 generate_json
|
|
// 构建 generate_json
|
|
|
$generateJson = [];
|
|
$generateJson = [];
|
|
|
$sequence = 1;
|
|
$sequence = 1;
|
|
|
foreach ($segments as $segment) {
|
|
foreach ($segments as $segment) {
|
|
|
- $generateJson[] = [
|
|
|
|
|
- 'sequence' => $sequence++,
|
|
|
|
|
- 'video_url' => $segment->video_url,
|
|
|
|
|
- 'audio_url' => $segment->audio_url,
|
|
|
|
|
- 'video_time_point_start' => $segment->video_time_point_start,
|
|
|
|
|
- 'video_time_point_end' => $segment->video_time_point_end
|
|
|
|
|
- ];
|
|
|
|
|
|
|
+ if ((int)$ace_mode === 1) {
|
|
|
|
|
+ $generateJson[] = [
|
|
|
|
|
+ 'sequence' => $sequence++,
|
|
|
|
|
+ 'video_url' => $segment->video_url,
|
|
|
|
|
+ 'video_time_point_start' => $segment->video_time_point_start,
|
|
|
|
|
+ 'video_time_point_end' => $segment->video_time_point_end
|
|
|
|
|
+ ];
|
|
|
|
|
+ }else {
|
|
|
|
|
+ $generateJson[] = [
|
|
|
|
|
+ 'sequence' => $sequence++,
|
|
|
|
|
+ 'video_url' => $segment->video_url,
|
|
|
|
|
+ 'audio_url' => $segment->audio_url,
|
|
|
|
|
+ 'video_time_point_start' => $segment->video_time_point_start,
|
|
|
|
|
+ 'video_time_point_end' => $segment->video_time_point_end
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 创建任务
|
|
// 创建任务
|