向视频中添加较短的音频,并循环控制音频和视频的音量,并且仅在特定的持续时间内进行((我想添加音频并在两种情况下保留音频和视频声音))
我有两个部分的问题
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”`