Добавьте более короткий звук к видео с циклом и регулировкой громкости как звука, так и видео, а также только на определенную продолжительность с помощью FFMpeg

Добавьте более короткий звук к видео с циклом и регулировкой громкости как звука, так и видео, а также только на определенную продолжительность с помощью FFMpeg

Добавить более короткий звук к видео с циклом и регулировкой громкости как звука, так и видео, и только на определенную продолжительность ((я хочу добавить звук и сохранить и звук, и звук видео в обоих случаях))

У меня есть две части проблемы

1) длительность аудио составляет 27 секунд 2) длительность видео составляет 2 минуты 24 секунды

а) Я хочу зациклить звук и добавить его к видео, например, (добавить только звук) от 50 секунд до 1 минуты 30 секунд (не все видео, но все равно получить все видео на выходе) внутри видео, с зацикленным звуком.

б) создать видеоклип длительностью от 50 секунд до 1 минуты 30 секунд (не все видео на выходе) внутри видео, с зацикленным звуком

Я использовал следующую команду из ffmpeg для добавления звука к видео, которая добавляет его ко всему видео. Как мы можем: i) указать только часть видео для зацикленного звука ii) создать новый клип для выбранной длительности с зацикленным звуком?

до сих пор мне удалось зациклить и изменить громкость как звука, так и видео, а также смешать их с помощью следующей команды для всего видео

"-y","-i",videofile, "-filter_complex",
                        "amovie=audiofile:loop=1000,asetpts=N/SR/TB,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                        "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a2];" +
                        " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                        "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", outputfile

Я застрял в управлении временем в обоих случаях.

решение1

Использовать

amovie=audiofile:loop=1000,asetpts=N/SR/TB,atrim=0:40,adelay=50000|50000,apad,aformat=...

Функция Trim сохраняет первые 40 секунд зацикленного звука, а функция adelay сдвигает время начала на 50000 миллисекунд, т.е. на 50 секунд.

решение2

это код для добавления звука в видео с помощью 1) зацикливания звука 2) изменения громкости как звука, так и видео 3) создания нового файла только с заданной длительностью 4) создания файла с исходной длительностью видео и звуком в определенной части видео

A) только для нового файла установленной длительности

"-y","-i",j,
                        "-filter_complex",
                        "amovie="+audio+":loop=999,asetpts=N/SR/TB," +
                                "atrim=0:40,adelay=50000|50000,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                                "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=2.0[a2];" +
                                " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                        "-ss","50", "-t","40","-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-preset", "ultrafast", out

то, что мы делаем, это добавляем"-ss","50", "-t","40"

б) для файла с оригинальной длительностью видео и звуком в определенной части видео

"-y","-i",j,
                            "-filter_complex",
                            "amovie="+audio+":loop=999,asetpts=N/SR/TB," +
                                    "atrim=0:40,adelay=50000|50000,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.5[a1];" +
                                    "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=2.0[a2];" +
                                    " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]",
                            "-ss","50", "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-preset", "ultrafast", out

то, что мы делаем, это добавляем"-ss","50" но не добавляй"-т","40"`

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