两个示例文件都有4个音频流或轨道。每个音轨有2个通道,立体声布局。
显然,音频编码器是恒定的比特率,因此元数据不能用于区分无声轨道和带声音轨道。
您需要解析每个可疑音频流。
ffmpeg -i file -map 0:a:1 -af astats -f null -
在控制台日志的末尾,将打印音频流的统计信息,
例如
[Parsed_astats_0 @ 0000000003c3aec0] Channel: 1 [Parsed_astats_0 @ 0000000003c3aec0] DC offset: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Min level: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Max level: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Min difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Max difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Mean difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] RMS difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Peak level dB: -6153.053111 [Parsed_astats_0 @ 0000000003c3aec0] RMS level dB: -inf [Parsed_astats_0 @ 0000000003c3aec0] RMS peak dB: -3076.526556 [Parsed_astats_0 @ 0000000003c3aec0] RMS trough dB: -inf [Parsed_astats_0 @ 0000000003c3aec0] Crest factor: 1.000000 [Parsed_astats_0 @ 0000000003c3aec0] Flat factor: -inf [Parsed_astats_0 @ 0000000003c3aec0] Peak count: 662528 [Parsed_astats_0 @ 0000000003c3aec0] Bit depth: 0/0 [Parsed_astats_0 @ 0000000003c3aec0] Dynamic range: -inf [Parsed_astats_0 @ 0000000003c3aec0] Zero crossings: 0 [Parsed_astats_0 @ 0000000003c3aec0] Zero crossings rate: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Channel: 2 [Parsed_astats_0 @ 0000000003c3aec0] DC offset: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Min level: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Max level: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Min difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Max difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Mean difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] RMS difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Peak level dB: -6153.053111 [Parsed_astats_0 @ 0000000003c3aec0] RMS level dB: -inf [Parsed_astats_0 @ 0000000003c3aec0] RMS peak dB: -3076.526556 [Parsed_astats_0 @ 0000000003c3aec0] RMS trough dB: -inf [Parsed_astats_0 @ 0000000003c3aec0] Crest factor: 1.000000 [Parsed_astats_0 @ 0000000003c3aec0] Flat factor: -inf [Parsed_astats_0 @ 0000000003c3aec0] Peak count: 662528 [Parsed_astats_0 @ 0000000003c3aec0] Bit depth: 0/0 [Parsed_astats_0 @ 0000000003c3aec0] Dynamic range: -inf [Parsed_astats_0 @ 0000000003c3aec0] Zero crossings: 0 [Parsed_astats_0 @ 0000000003c3aec0] Zero crossings rate: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Overall [Parsed_astats_0 @ 0000000003c3aec0] DC offset: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Min level: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Max level: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Min difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Max difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Mean difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] RMS difference: 0.000000 [Parsed_astats_0 @ 0000000003c3aec0] Peak level dB: -6153.053111 [Parsed_astats_0 @ 0000000003c3aec0] RMS level dB: -inf [Parsed_astats_0 @ 0000000003c3aec0] RMS peak dB: -3076.526556 [Parsed_astats_0 @ 0000000003c3aec0] RMS trough dB: -inf [Parsed_astats_0 @ 0000000003c3aec0] Flat factor: -inf [Parsed_astats_0 @ 0000000003c3aec0] Peak count: 662528.000000 [Parsed_astats_0 @ 0000000003c3aec0] Bit depth: 0/0 [Parsed_astats_0 @ 0000000003c3aec0] Number of samples: 662528
如果 RMS level dB 是 -inf 那个频道是沉默的。
RMS level dB
-inf