FFMPEG - конвертировать видео в замедленную съемку

15

Я использую ffmpeg во Flash Builder (Action script 3), чтобы преобразовать видео в промежуток времени. Я разработал, как использовать setpts, чтобы сделать это, но конечный выходной файл имеет ту же длину, что и вход (только последний кадр отображается после промежутка времени), я хочу, чтобы продолжительность была изменена на основе переданных настроек к ffmpeg.

Я пробую ниже через командную строку в первую очередь:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4

Любая помощь будет принята с благодарностью!

сандвич
источник

Ответы:

19

Проблема решена. Я не удалял аудио, так что, вероятно, он воспроизводил почти пустой аудиофайл в течение всего времени видео.

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

-an удаляет аудио из видео.

сандвич
источник
1

Еще несколько подробностей по ускорению звука. Вы можете сделать до 2 раз, но вы можете обмануть его, чтобы ускорить еще больше ( источник ):

Ускорение / замедление звука

Вы можете ускорить или замедлить звук с помощью аудио фильтра atempo. Чтобы удвоить скорость звука:

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

Фильтр atempo ограничен использованием значений от 0,5 до 2,0 (поэтому он может замедлять его не менее чем до половины первоначальной скорости и увеличивать скорость до не более чем вдвое). Если вам нужно, вы можете обойти это ограничение, соединив несколько фильтров atempo вместе. Следующее с четырехкратной скоростью звука:

ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

Используя сложный фильтр графа, вы можете ускорить видео и аудио одновременно:

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

солнце
источник