ffmpeg замедленное видео со звуком

ffmpeg замедленное видео со звуком

Я могу сделать замедленное видео, используя следующую команду (нашел ее на сайте Как использовать эффект замедленной съемки в определенном интервале времени с помощью 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

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

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

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

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