Эквивалентная команда FFMPEG с клипом без потерь

Эквивалентная команда FFMPEG с клипом без потерь

Итак, мне нужно сэкономить много места на моем жестком диске, поэтому я кодирую PNG-файлы в видео без потерь, чтобы я мог удалить PNG-файлы. Я кодирую один на 72 кадра в секунду, а другой немного замедляю до 60 кадров в секунду.

Допустим, я использую эту команду для кодирования до 72 кадров в секунду:

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

Это команда 60 кадров в секунду:

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

Что будет эквивалентом команды 60fps, если я хочу закодировать его из видеофайла 72fps, а не из файлов PNG, поскольку они были удалены, но замедлить видео до 60fps без потери кадров? Если возможно, я хочу указать ему кодировать точно на 60fps без использования видеофильтра setptsи/или копировать видеопоток с другой частотой кадров (не уверен, возможно ли это вообще).

решение1

Основная команда:

ffmpeg -itsscale 1.2 -i video/72.mkv -i audio/60.m4a^
 -map 0:v -map 1 -c copy video/60.mp4

Это использует опцию ввода itsscaleдля изменения масштаба временных меток, где 1.2— десятичное представление 72/60. Обратите внимание, что это не предоставляет новое значение частоты кадров для выходного писателя, поэтому для форматов, таких как MKV, он покажет старую частоту с ffprobe, но будет воспроизводиться с новой частотой. С MP4 вы должны увидеть новую частоту.

Связанный контент