dan*_*ndi 4 audio video ffmpeg
请看图:
每个音频剪辑具有相同的编解码器/采样率,但具有不同的持续时间,每个空间也不同。剪辑之间总是有空间,没有重叠。所以没有理由重新编码,因为这基本上是一个流复制作业。这很重要,因为我应该为每个剪辑保留原始质量。
现在,让我们想想我找到了我要找的东西。我给这个命令一个伪名称"-start_at",它在给定的时间将剪辑插入到音频流中。使用这个伪命令,我将设置每个剪辑应该开始的时间。其余的工作应该由 ffmpeg 命令/过滤器/脚本等完成。
ffmpeg -start_at 00.00 -i audio1.opus -start_at 06.30 -i audio2.opus -start_at 21.15 -i audio3.opus -start_at 26.35 -i audio4.opus
Run Code Online (Sandbox Code Playgroud)
想想 ffmpeg 会自动用无声的声音填补空白。
那么,是否有 ffmpeg 命令/过滤器?还是 ffmpeg gui/脚本等?
FFmpeg 能够处理这个问题。您需要使用的是filter_complex
过滤器链接。您可以使用aevalsrc
. 要创建 5 秒静音音频,
aevalsrc=0:d=5
Run Code Online (Sandbox Code Playgroud)
所以下面的命令对你有用。
ffmpeg -i input_audio_1 -i input_audio_2 -i input_audio_3 -filter_complex "
aevalsrc=0:d=10[s1];
aevalsrc=0:d=15[s2];
aevalsrc=0:d=20[s3];
[s2][1:a]concat=n=2:v=0:a=1[ac1];
[s3][2:a]concat=n=2:v=0:a=1[ac2];
[0:a][s1][ac1][ac2]amix=inputs=4[aout]" -map [aout] output_audio
Run Code Online (Sandbox Code Playgroud)
在这里,我假设每个音频的长度为 5 秒,并且重新编码是可选的,例如,
-c:a libmp3lame -ac 2 -b:a 128k
由于amix
音频重叠,我在每个输入音频中附加了一个静音音频。您也可以尝试amerge
和adelay
其中的文档本身具有明确的解释。
希望这对你有帮助!