1

Я могу сделать замедленное видео, используя следующую команду (это можно найти в разделе Как использовать эффект замедленного движения в определенный промежуток времени с помощью ffmpeg):

ffmpeg -i input.mkv -filter_complex \
"[0:v]trim=0:10,setpts=PTS-STARTPTS[v1]; \
 [0:v]trim=10:30,setpts=PTS-STARTPTS[v2]; \
 [0:v]trim=start=30,setpts=PTS-STARTPTS[v3]; \
 [v2]setpts=PTS/0.5[slowv]; \
 [v1][slowv][v3]concat=n=3:v=1:a=0[out]" \
-map [out] output.mp4

но я также хочу иметь такой же эффект на аудио, как то, что длительность от 10 до 30 секунд имеет замедленное аудио, иначе все остальные аудио части имеют нормальную скорость.

Кроме того, приведенная выше команда увеличивает длину видео, может ли она быть уменьшена до фактической длины видео?

Пожалуйста, кто-нибудь, помогите мне, как это сделать?

1 ответ1

1

Вы не можете замедлить видео и сохранить его первоначальную длину. Вам придется обрезать некоторую часть, чтобы сделать это.

Чтобы замедлить звук, сделайте это

ffmpeg -i input.mkv -filter_complex \
"[0:v]trim=0:10,setpts=PTS-STARTPTS[v1]; \
 [0:v]trim=10:30,setpts=(PTS-STARTPTS)*2[v2]; \
 [0:v]trim=start=30,setpts=PTS-STARTPTS[v3]; \
 [0:a]atrim=0:10,asetpts=PTS-STARTPTS[a1]; \
 [0:a]atrim=10:30,asetpts=PTS-STARTPTS,atempo=0.5[a2]; \
 [0:a]atrim=start=30,asetpts=PTS-STARTPTS[a3]; \   
 [v1][a1][v2][a2][v3][a3]concat=n=3:v=1:a=1[v][a]" \
-map [v] -map [a] output.mp4

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