0

我正在尝试按如下方式运行 FFmpeg 命令

-i "v1.mov" -i "0.mp3" -filter_complex "[0:v]trim=0:204,setpts=PTS-STARTPTS[TrimmedVideo];[0:a]atrim=0:204,asetpts=PTS-STARTPTS[TrimmedAudio];[TrimmedVideo]scale=848:360[BackgroundOutput];[1:a]atrim=0:20,asetpts=PTS-STARTPTS,volume=0.37,aloop=1:size=1*48000,adelay=0|0[AudioTrim0];[TrimmedAudio][AudioTrim0]amix=inputs=2:duration=first:dropout_transition=2,volume=2[AudioMixOut];[BackgroundOutput][AudioMixOut]concat=n=1:v=1:a=1[OutputVideo][OutputAudio]" -map [OutputVideo] -map [OutputAudio] -c:v libx264 -c:a aac -b:a 256k -preset ultrafast "ouput.mp4"

在此,我使用 aloop 循环音频以填充视频,但该音频没有重复,它播放一次然后停止

4

1 回答 1

0

所以我发现这个问题出在大小参数中,它必须乘以修剪音频的持续时间,但我使用 1x4800 而不是 20x48000,它解决了问题,最终命令变为

-i "v1.mov" -i "0.mp3" -filter_complex "[0:v]trim=0:204,setpts=PTS-STARTPTS[TrimmedVideo];[0:a]atrim=0:204,asetpts=PTS-STARTPTS[TrimmedAudio];[TrimmedVideo]scale=848:360[BackgroundOutput];[1:a]atrim=0:20,asetpts=PTS-STARTPTS,volume=0.37,aloop=1:size=20*48000,adelay=0|0[AudioTrim0];[TrimmedAudio][AudioTrim0]amix=inputs=2:duration=first:dropout_transition=2,volume=2[AudioMixOut];[BackgroundOutput][AudioMixOut]concat=n=1:v=1:a=1[OutputVideo][OutputAudio]" -map [OutputVideo] -map [OutputAudio] -c:v libx264 -c:a aac -b:a 256k -preset ultrafast "ouput.mp4"
于 2020-12-03T05:30:00.597 回答