1

Поэтому я пытаюсь ускорить все мои телевизионные эпизоды (потому что некоторые из них действительно медленные). Источник 30 кадров в секунду. И если уже пытался сделать это с помощью следующей команды:(Я делаю x1.6, потому что проще установить значение setpts (в противном случае это было бы 0.66666666666 ...)

ffmpeg -i VideoOriginal.mkv -r 48 -filter:v "setpts=0.625*PTS" VideoSpeedup.mkv

Но размер файла здесь намного ниже (может быть, я должен также использовать предустановку для качества?) В любом случае. Файл длится 40 минут, и через 10 минут он почти сломан (VLC начинает неверно истолковывать метки времени, а плеер в значительной степени облажан).

Также аудио не ускоряется с этим методом.

Любые советы о том, как сделать это лучше?

(Причина, почему я хочу «сохранить все кадры». Это потому, что, поскольку я иду x1.6, я могу просто сделать 48 кадров в секунду, что означает, что я на самом деле не теряю или должен генерировать новые кадры.

РЕДАКТИРОВАТЬ: только что понял, что FPS моего исходного файла составляет 23,97612 .... Я предполагаю, что это делает вещи более сложными ...?

2 ответа2

5

При изменении скорости видео вам обычно не нужно устанавливать -r , а просто позволить ffmpeg изменять временные метки кадров. Это может привести к пропаданию кадров, чего, конечно, можно избежать, установив правильную частоту кадров, как вы пытались, но вы должны установить ее после спецификации ввода.

Чтобы ускорить видео и аудио:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.625*PTS[v];[0:a]atempo=1.6[a]" -map "[v]" -map "[a]" output.mkv

Темп звука - это обратный фактор, модифицирующий временные метки кадра. И с изменением частоты кадров:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.625*PTS[v];[0:a]atempo=1.6[a]" -r 48 -map "[v]" -map "[a]" output.mkv

Но размер файла здесь намного ниже

Это потому, что все перекодировано. Обычно libx264 используется для кодирования видео. Качество по умолчанию должно быть хорошим, но вы можете изменить его, например, с помощью параметра -crf . См. Руководство по кодированию H.264 для получения дополнительной информации.

Вы также можете просто указать VLC ускорить воспроизведение из меню Playback . Это позволяет избежать ненужного преобразования и жесткого кодирования изменения скорости.

2

(Потому что вы упомянули VLC в своем вопросе ...)

В VLC перейдите в меню « Playback , выберите « Speed/Faster или « Speed/Faster (fine) .

Редактировать: и @slhck согласен, так что я должен быть прав :-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .