Drama Finishing Upscaler (Finalização e Upscale 1080p)
Posicionamento da etapa: Etapa final de entrega e aprimoramento de qualidade de curtas-metragens. Sem enrolação: Não explica o que é upscale; apenas consolida a sintaxe de concatenação sem perdas, aceleração de upscale em lote com RealESRGAN e validação física final.
1. Contrato de execução e entrada/saída
- Entrada:
- 8 cortes limpos da etapa 4:
cleaned_segments/seg01.mp4~seg08.mp4; - Ou o arquivo final com ducking de áudio:
[nome_do_episódio]_final_ducked.mp4.
- 8 cortes limpos da etapa 4:
- Saída:
[nome_do_episódio]_versão_comercial_original.mp4(entrega final em HD nativa 832×480);[nome_do_episódio]_1080p.mp4(versão final em 1920×1080 de nível cinematográfico);delivery_report.json: relatório de validação de parâmetros físicos.
2. SOP prática: Concatenação sem perdas de cortes (Zero-Loss Concat)
Regra de ferro: É estritamente proibido reencodificar os cortes durante a concatenação! A reencodificação degrada a nitidez original e introduz perda de qualidade de áudio.
2.1 Concatenação sem perdas com FFmpeg concat
Gere uma lista de índices ordenados e execute cópia de fluxo:
# 1. Gerar lista de índices ordenados automaticamente
file 'cleaned_segments/seg01.mp4'
file 'cleaned_segments/seg02.mp4'
...
file 'cleaned_segments/seg08.mp4'
# 2. Executar concatenação com cópia de fluxo sem sobrecarga
ffmpeg -y -f concat -safe 0 -i concat_list.txt -c copy concat_raw.mp4
- Tempo: A concatenação de 8 cortes leva apenas 0,2 segundos, preservando cada quadro original e sincronia áudio-vídeo.
3. SOP prática: Aceleração de upscale 1080p exclusivo com RealESRGAN
Regra de isolamento de VRAM: Antes de executar o upscale 1080p, é necessário liberar a VRAM ocupada pelo ComfyUI para que o RealESRGAN tenha acesso exclusivo a 16 GB de VRAM, maximizando a taxa de transferência.
3.1 Inferência de upscale industrial e mixagem de áudio
Execute scripts/upscale_video.py:
- Modelo:
RealESRGAN_x2plus.pth; - Precisão e dispositivo:
CUDA+FP16(meia precisão); - Tamanho do lote (batch_size):
batch_size = 4(no modo exclusivo RTX 4080, taxa de quadros estável em ~4,8 frame/s, um episódio de 1400 quadros leva cerca de 4,5 minutos); - Proteção de áudio:
Antes do upscale, extraia a trilha de áudio original com ffmpeg (
audio.m4asem perdas). Após a inferência, uselibx264 -crf 18 -c:a copypara mixagem, preservando 100% da trilha de áudio com ducking inteligente de 90s e diálogos limpos.
Comando:
python scripts/upscale_video.py --input raw_video.mp4 --output final_1080p.mp4 --model RealESRGAN_x2plus.pth --width 1920 --height 1080
4. SOP prática: Validação dupla de parâmetros físicos do arquivo final
Após o arquivo final ser salvo, execute a validação automatizada com ffprobe:
- Resolução estritamente correta: Largura 1920, Altura 1080 (não 1080p é considerado falha);
- Taxa de quadros estritamente alinhada: 24,0 fps (padrão cinematográfico);
- Duração estritamente alinhada: 8 cortes × 175 quadros = 58,33s ~ 58,35s;
- Trilha de áudio completa: Fluxo de áudio estéreo independente (AAC, taxa de amostragem 44,1kHz/48kHz).
5. Scripts de ferramentas dedicadas
- Upscale 1080p de um único arquivo:
python scripts/upscale_video.py --input in.mp4 --output out.mp4 - Agendamento de upscale em lote para todos os episódios:
python scripts/run_episodes_1_to_8_upscale.py