我正在尝试将2个视频缩放到h = 240分辨率,并保持相同的宽高比。然后,我将这两个视频的音频和视频合并为一个mp4文件。我总共有3条命令,最终结果很好。
但是,我想将这三个命令组合在一起,并在一个命令中得到相同的结果。有人可以帮我组合这些命令吗?预先感谢。
第一个命令:
ffmpeg -i 01_v.mp4 -vf "[0]scale=-1:240[scaled_240]; [scaled_240]pad=width=320:height=240:x=(320-in_w)/2:y=(240-in_h)/2:color=black" -preset ultrafast -y -r pal "1_v.mp4"
第二个命令:
ffmpeg -i 02_v.mp4 -vf "[0]scale=-1:240[scaled_240]; [scaled_240]pad=width=320:height=240:x=(320-in_w)/2:y=(240-in_h)/2:color=black" -preset ultrafast -y -r pal "2_v.mp4"
第三条命令:
ffmpeg -i 1_a.opus -i 2_a.opus -itsoffset 0.024181 -i 1_v.mp4 -itsoffset 0.113192 -i 2_v.mp4 -filter_complex "[1:a]adelay=15726.168|15726.168[a1]; [0:a][a1]amix; [3:v]trim=0:15.726168,geq=0:128:128[silence]; [3:v]fifo[3v]; [silence][3v]concat[3_v_silence]; [2:v]fifo[2v]; [2v][3_v_silence]hstack[out_v]; [out_v]pad=width=640:height=480:x=(640-in_w)/2:y=(480-in_h)/2:color=black" -crf 40 -preset ultrafast -y -r pal "out.mp4"
我试图结合以上3条命令并形成一个命令。但是,播放中间几秒钟的音频静音后效果不佳,第二个视频也要提前几秒钟。因此最终导致混乱的音频/视频同步。
这是我的单个命令,不会产生预期的结果:
ffmpeg -i 1_a.opus -i 2_a.opus -itsoffset 0.024181 -i 01_v.webm -itsoffset 0.113192 -i 02_v.webm -filter_complex "[1:a]adelay=15726.168|15726.168[a1]; [0:a][a1]amix; [3:v]trim=0:15.726168,geq=0:128:128[silence]; [3:v]fifo[3v]; [silence][3v]concat[3_v_silence]; [2:v]scale=-1:240[2v_scaled_240]; [2v_scaled_240]pad=width=320:height=240:x=(320-in_w)/2:y=(240-in_h)/2:color=black[2v_padded]; [3_v_silence]scale=-1:240[3v_scaled_240]; [3v_scaled_240]pad=width=320:height=240:x=(320-in_w)/2:y=(240-in_h)/2:color=black[3v_padded]; [2v_padded]fifo[2v]; [2v][3v_padded]hstack[out_v]; [out_v]pad=width=640:height=480:x=(640-in_w)/2:y=(480-in_h)/2:color=black" -crf 40 -preset ultrafast -y -r pal out.mp4