Добрый день. Прежде всего, я хотел бы сказать, что я новичок в отношении видеофильмов на FFMPEG. Поэтому, пожалуйста, медведь со мной, :) Спасибо заранее.Замедление звука видео с использованием FFMPEG
В любом случае, я пытаюсь замедлить видеоклип, который будет встроен и воспроизведен в моем проекте delphi. Пока что замедление видео работает отлично, используя фильтр setpts. вот мой частичный код:
FFPlayer.VideoFilters := Format('setpts=(1/' + FloatToStr(FSpeed) + ')*PTS, nativeeq=%d:%d:%d:%d, nativehue=%d:%d:%d:%d',
[0, 0, 0, 0, 0, 0, 0, 0]);
где FSpeed является изменяющейся величиной, которая находится в пределах 0,5 - 2,5. С помощью этого кода захват видео ускоряется или замедляется, но звук не работает. Так как я искал код, чтобы замедлить звук, я наткнулся на этот link, который предоставляет коды фильтров для ускорения или замедления видеозахвата и звука. Линия там упоминалась, что код фильтра, чтобы замедлить захват аудио и видео, в то же время:
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
Я попытался добавить «Atempo = 2,0» к моей частичной коде, что делает его:
FFPlayer.VideoFilters := Format('setpts=(1/' + FloatToStr(FSpeed) + ')*PTS, atempo=2.0, nativeeq=%d:%d:%d:%d, nativehue=%d:%d:%d:%d',
[0, 0, 0, 0, 0, 0, 0, 0]);
, но видео вообще не появилось.
Я надеюсь, что вы сможете просветить меня этим. Благодарю.