使用 FFMpeg 将较短的音频添加到视频中,并循环控制音频和视频的音量,并且仅在特定持续时间内进行

使用 FFMpeg 将较短的音频添加到视频中,并循环控制音频和视频的音量,并且仅在特定持续时间内进行

向视频中添加较短的音频,并循环控制音频和视频的音量,并且仅在特定的持续时间内进行((我想添加音频并在两种情况下保留音频和视频声音))

我有两个部分的问题

1) 音频长 27 秒 2) 视频长 2 分 24 秒

a)我想循环播放音频并将其添加到视频中,例如(仅添加音频)从 50 秒到 1 分 30 秒(不是整个视频,但仍将整个视频作为输出)在视频中,并带有循环音频

b)在视频中创建一个 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=...

修剪保留循环音频的前 40 秒,延迟将其开始时间移至 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"

b)对于具有原始视频时长和视频特定部分的音频的文件

"-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" 但不要添加“-t”,“40”`

相关内容