
Portanto, preciso economizar muito espaço no disco rígido, por isso estou codificando arquivos PNG em vídeo sem perdas para poder excluir os arquivos PNG. Estou codificando um a 72fps e outro ligeiramente desacelerado para 60fps.
Digamos que este seja o comando que uso para codificar para 72fps:
ffmpeg -framerate 72 -i png/%%06d.PNG -i audio/72.m4a^
-c:v libx265 -c:a copy -pix_fmt yuv444p -crf:v 0^
video/72.mkv
Este é o comando 60fps:
ffmpeg -framerate 60 -i png/%%06d.PNG -i audio/60.m4a^
-c:v libx265 -c:a copy -pix_fmt yuv444p -crf:v 0^
video/60.mkv
Qual seria o equivalente ao comando 60fps se eu quisesse codificá-lo a partir do arquivo de vídeo de 72fps em vez dos arquivos PNG desde que foram excluídos, mas reduzir a velocidade do vídeo para 60fps sem perder quadros? Se possível, quero dizer para ele codificar exatamente a 60fps sem usar o setpts
filtro de vídeo e/ou copiar o fluxo de vídeo em uma taxa de quadros diferente (o que não tenho certeza se isso é possível).
Responder1
O comando básico é
ffmpeg -itsscale 1.2 -i video/72.mkv -i audio/60.m4a^
-map 0:v -map 1 -c copy video/60.mp4
Isso usa a opção de entrada itsscale
para redimensionar os carimbos de data/hora, onde 1.2
é a representação decimal de 72/60
. Observe que isso não fornece um novo valor de taxa de quadros ao gravador de saída; portanto, para formatos como MKV, ele mostrará a taxa antiga com ffprobe, mas reproduzirá na nova taxa. Com o MP4, você deverá ver a nova taxa.