2013-12-12 3 views
1

Добрый день. Прежде всего, я хотел бы сказать, что я новичок в отношении видеофильмов на 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]); 

, но видео вообще не появилось.

Я надеюсь, что вы сможете просветить меня этим. Благодарю.

ответ

0

Не совсем уверен, что вы там делали, но это работало для меня:

FFmpeg -i VID_20150216_185018.mp4 -filter_complex setpts = 4 * PTS; Atempo = 0,5, Atempo = 0,5 output.mp4

Смежные вопросы