Audio FFmpeg检查7.1音频通道是否静音

Audio FFmpeg检查7.1音频通道是否静音,audio,ffmpeg,codec,aac,ffprobe,Audio,Ffmpeg,Codec,Aac,Ffprobe,这是我上一个问题的后续问题,我需要在特定的音轨中寻找沉默。以下是ffmpeg life saver解决方案,可帮助您获取一些元数据: ffmpeg -i file -map 0:a:1 -af astats -f null - 但我有其他类型的输入.mp4文件,它们有一个8声道的单轨,即7.1声道。显然,这些文件是从原始文件转码而来,不知何故,4声道立体声被压缩到这些文件中。现在和我之前的一样,我需要知道原始文件是2声道立体声还是5.16声道 如何知道音轨的特定频道(如中央频道)是否静音/静音

这是我上一个问题的后续问题,我需要在特定的音轨中寻找沉默。以下是ffmpeg life saver解决方案,可帮助您获取一些元数据:

ffmpeg -i file -map 0:a:1 -af astats -f null -
但我有其他类型的输入.mp4文件,它们有一个8声道的单轨,即7.1声道。显然,这些文件是从原始文件转码而来,不知何故,4声道立体声被压缩到这些文件中。现在和我之前的一样,我需要知道原始文件是2声道立体声还是5.16声道

如何知道音轨的特定频道(如中央频道)是否静音/静音,可能使用ffmpeg?是一个示例.mp4文件。

您可以使用过滤器分割音频通道并在每个通道上运行

例如:

ffmpeg-i test2.mp4-filter_complex[0:a]channelsplit=channel_layout=7.1:channels=FC[FC];[fc]沉默检测-f null/dev/null

您可以在此处找到有关音频通道操纵的更多信息:

还有一个过滤器,可用于检测无声音轨/频道

这就是它为建议测试文件的通道4输出的内容,它看起来确实是完全无声的

ffmpeg -i "$in" -vn -sn -dn -map 0:a -af "astats=measure_overall=none" -f null -
类似的内容将显示所有频道的概览:

ffmpeg -i "$in" -vn -sn -dn -map 0:a -af "astats=measure_overall=none" -f null - 2>&1 \
| egrep 'Channel|(Max|Peak) level'

将0:a:1替换为0:a:0以分析第一个流。谢谢。有没有办法只看到特定通道的输出?说中间?我也不知道布局,也就是说,ffmpeg的布局可能不适合MOV/MP4。在任何情况下,像channelsplit这样的东西可以隔离通道,或者grep astats读数。@Gyan想知道为什么您的命令的结果与答案不同。您的命令没有为通道3指定-inf。但是答案中的命令说FC是沉默。-inf代表完美的数字沉默。通道3有一些杂散样本:最小电平:-0.000007最大电平:0.000006。silencedetect有一个阈值,低于该阈值的任何卷都将注册为静默-90db或更低实际上是数字静默。我得到的是:[silencedetect@0000024c44b02700]静默\u开始:0帧=1891 fps=0.0 q=-0.0 Lsize=N/A时间=00:01:03.10比特率=N/A速度=73.8x视频:990kB音频:5916kB字幕:0kB其他流:0kB全局头:0kB muxing开销:未知[silencedetect@0000024c44b02700]沉默结束:63.104沉默持续时间:63.104。这意味着什么?你有63.104秒的沉默我需要知道这是否是完全沉默。有什么办法吗?就像我的命令一样,元数据显示的是-inf,这是我要查找的。比较静默持续时间与音频流的持续时间?比较静默持续时间与音频流的持续时间->ASTAT通过允许在整个流上累积统计信息来避免这种情况。当然,还有volumedetect。看起来很棒。谢谢
ffmpeg -i "$in" -vn -sn -dn -map 0:a -af "astats=measure_overall=none" -f null - 2>&1 \
| egrep 'Channel|(Max|Peak) level'
[Parsed_astats_0 @ 0x7567d00] Channel: 1
[Parsed_astats_0 @ 0x7567d00] Max level: 0.978271
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -0.190818
[Parsed_astats_0 @ 0x7567d00] Channel: 2
[Parsed_astats_0 @ 0x7567d00] Max level: 0.978271
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -0.190818
[Parsed_astats_0 @ 0x7567d00] Channel: 3
[Parsed_astats_0 @ 0x7567d00] Max level: 0.000006
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -103.162709
[Parsed_astats_0 @ 0x7567d00] Channel: 4
[Parsed_astats_0 @ 0x7567d00] Max level: 0.000000
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -inf
[Parsed_astats_0 @ 0x7567d00] Channel: 5
[Parsed_astats_0 @ 0x7567d00] Max level: 0.000006
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -103.162709
[Parsed_astats_0 @ 0x7567d00] Channel: 6
[Parsed_astats_0 @ 0x7567d00] Max level: 0.000006
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -103.162709
[Parsed_astats_0 @ 0x7567d00] Channel: 7
[Parsed_astats_0 @ 0x7567d00] Max level: 0.978271
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -0.190818
[Parsed_astats_0 @ 0x7567d00] Channel: 8
[Parsed_astats_0 @ 0x7567d00] Max level: 0.978271
[Parsed_astats_0 @ 0x7567d00] Peak level dB: -0.190818