Pipeline de Vídeos de Cursos
Processe gravações de cursos do início ao fim, preservando a forma de saída solicitada pelo usuário. Prefira clipes independentes, a menos que o usuário solicite explicitamente um vídeo de aula mesclado. Não infira permissão para excluir fontes locais ou saídas remotas existentes.
Antes do Processamento
- Leia exatamente os caminhos de origem e destino do usuário. Trate rótulos principais como "全部文件" como texto de interface, a menos que existam no caminho remoto.
- Inspecione nomes de arquivos remotos, tamanhos, formatos e saídas existentes antes de baixar.
- Verifique o espaço livre local, GPU disponível, codec FFmpeg, ambiente WhisperX e login no BaiduPCS-Go.
- Escolha o adaptador de curso após amostrar nomes de arquivos, texto da transcrição e estrutura do vídeo. Leia
references/course-adapters.mdpara estilos conhecidos e para detectar estilos desconhecidos. - Confirme o modo de saída: clipes individuais, clipes mesclados ou ambos. Por padrão, use clipes individuais quando não especificado.
Pipeline
- Baixe e valide cada vídeo de origem sem alterar sua ordenação natural.
- Transcreva arquivos de origem de forma independente. Reutilize transcrições válidas e planos de clipe em vez de repetir trabalho com GPU.
- Construa um manifesto determinístico de clipes ou unidades. Revise limites candidatos quando os marcadores forem ambíguos.
- Renderize clipes e gere um SRT por clipe. Gere um vídeo mesclado e SRT combinado apenas quando solicitado.
- Gere um manifesto em Markdown contendo rótulo, nome do arquivo de saída, nome do arquivo de origem, timestamps de origem, duração e quaisquer notas de adaptação.
- Execute o validador de saída antes do upload.
- Faça upload para o diretório remoto exato do usuário e verifique contagens e nomes de arquivos remotos.
- Limpe apenas após a verificação e apenas dentro da autorização de exclusão do usuário.
Contrato de Saída Obrigatório
Para cada clipe selecionado ou unidade de conhecimento retida, forneça:
- Um MP4, a menos que a unidade solicitada seja apenas metadados.
- Um SRT com timestamps zerados e nome base correspondente.
- Uma linha na lista Markdown da aula ou capítulo.
- Prefixos sequenciais estáveis mais o ID original do exemplo ou unidade.
Para modo mesclado, mantenha clipes individuais normalizados localmente e adicione um MP4 mesclado mais um SRT combinado ajustado à linha do tempo. Não substitua uma versão mesclada ou não mesclada existente, a menos que o usuário solicite sobrescrita ou remoção.
Notas de Execução
- Use transcrições específicas da fonte para que os timestamps zerem para cada clipe de saída.
- Prefira corte preciso com FFmpeg usando h264_nvenc quando suportado. Recorra a libx264 em vez de pular silenciosamente limites precisos.
- Preserve a redação do curso no Markdown; normalize apenas nomes de arquivos e rótulos administrativos.
- Pare em fontes ausentes, timestamps inválidos, mídia de zero bytes ou incompatibilidades inexplicadas de contagem. Repita apenas arquivos com falha.
- Para grandes lotes, reporte progresso concreto após as etapas de download, transcrição, renderização e upload.
Leia references/workflow.md antes de executar o pipeline completo. Leia references/course-adapters.md ao escolher a política de divisão. Leia references/manifest-upload.md ao construir manifestos, listas Markdown, uploads, verificação ou limpeza.