Audio FFMPEG:生成输入文件时间最长的7.1声道音频文件

Audio FFMPEG:生成输入文件时间最长的7.1声道音频文件,audio,ffmpeg,Audio,Ffmpeg,我想使用ffmpeg从8个不同的音频文件生成7.1通道音频文件。 但我发现输出文件的持续时间由持续时间最短的输入文件决定。 我没有找到任何参数来自动填充较短的音频文件或选择最长的持续时间作为最终持续时间 我已经看到了下面的非正式文件。 但是没有什么是有用的 这是我现在使用的命令: ffmpeg-i fl.wav-i fr.wav-i fc.wav-i lfe.wav-i bl.wav-i bl.wav-i sl.wav-i sr.wav-filter_complex“[0:a][1:a][2:a

我想使用ffmpeg从8个不同的音频文件生成7.1通道音频文件。 但我发现输出文件的持续时间由持续时间最短的输入文件决定。 我没有找到任何参数来自动填充较短的音频文件或选择最长的持续时间作为最终持续时间

我已经看到了下面的非正式文件。 但是没有什么是有用的

这是我现在使用的命令:

ffmpeg-i fl.wav-i fr.wav-i fc.wav-i lfe.wav-i bl.wav-i bl.wav-i sl.wav-i sr.wav-filter_complex“[0:a][1:a][2:a][3:a][4:a][5:a][6:a][7:a]join=input=8:channel u_布局=7.1[a]“-map”[a][output.wav

  • 查找持续时间最长的输入:

    ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.wav
    
  • 将过滤器添加到所有其他输入:

    ffmpeg -i fl.wav -i fr.wav -i fc.wav -i lfe.wav -i bl.wav -i bl.wav -i sl.wav -i sr.wav -filter_complex "[0:a]apad[a0];[1:a]apad[a1];[2:a]apad[a2];[3:a]apad[a3];[4:a]apad[a4];[5:a]apad[a5];[7:a]apad[a7];[a0][a1][a2][a3][a4][a5][6][a7]join=inputs=8:channel_layout=7.1[a]" -map "[a]" output.wav
    

  • 使用
    ffprobe
    获取持续时间,使用过滤器填充音频,然后使用concat。感谢您的回复。我知道这一点,但我仍然喜欢在生成7.1频道文件时自动填充。在FFMPEG的AudioChannelManipulation页面中,他们说“使用最大值时,所有输入必须具有相同的采样率和格式。如果输入不具有相同的持续时间,则输出将以最短的持续时间停止。”因此,我想可能存在一个参数来将持续时间与最长的持续时间对齐。不幸的是,没有这样的选项。您知道如何将文件填充到我想要的持续时间吗?原始文件是3分钟,我想把它填充到5分钟。