How do I deal with this? Can I transform all frames into keyframes in some sort of uncompressed format, make my edits, and then re-encode it to put the keyframes back automatically?
Sim. Idealmente, você converteria seu vídeo original em um codec intermediário sem perda ou visualmente sem perdas. Algumas das opções que você tem são:
- HuffYUV (sem perdas)
- Apple ProRes (sem perda visual)
- Avid DNxHD (visualmente sem perdas)
Para o primeiro, você pode usar ffmpeg e apenas chamar o seguinte comando. A maioria dos softwares de edição no Windows deve poder ler o arquivo.
ffmpeg -i input.mp4 -c:v huffyuv output.avi
Se isso não funcionar para você, você também pode criar um vídeo MJPEG - é realmente apenas uma sequência de imagens codificadas em JPEG. Então, claro, você quer manter a qualidade o mais alta possível:
ffmpeg -i input.mp4 -c:v mjpeg -qscale:v 0 output.avi
Note que nos exemplos acima o áudio será recodificado automaticamente em MP3. Dependendo do seu fluxo de trabalho, você pode querer desativar o áudio completamente ( -vn
) e depois copiá-lo do original usando um programa de edição de vídeo.