我通过nginx传输少量RTMP流,我想每隔几秒检查哪个流的音量最高。 特别是这些流是说话的头,我假设通常只有一个人一次说话,我正试图找到哪一个。 由于nginx可以输出hls(Apple http直播),我决定每隔几秒使用ffmpeg检查每个流的最后一段。 示例:
ffmpeg -f mp3 -i /my/path/camera67/123.ts -af“volumedetect”-f null / dev / null
由于某种原因,max_volume始终为零(max_volume:0.0 dB),而mean_volume对于音量似乎毫无意义。
我也尝试过:
ffmpeg -f lavfi -i amovie = / my / path / camera67 / 123.ts,volumedetect
这次我得到了:
[mpegts @ 0x130bf40]未在estimate_timings_from_pts中设置流1的开始时间 [mpegts @ 0x130bf40]无法找到流1的编解码器参数(音频:aac([15] [0] [0] [0] / 0x000F),0通道,fltp):未指定的采样率 考虑增加'analyzeuration'和'probesize'选项的值 [Parsed_amovie_0 @ 0x130bcc0]找不到索引为“-1”的音频流 [lavfi @ 0x130abc0]使用args'/ my/path/camera67/123.ts'初始化过滤器'amovie'时出错 amovie = / my / path / camera67 / 123.ts,volumedetect:参数无效
有什么想法吗?
谢谢, 吨。
答案 0 :(得分:0)
这就是发生的事情。 我将MP3流式传输到nginx,将输入转码为不支持MP3的HLS段。 听RTMP输出让我觉得音频工作正常,但是当我听到HLS输出时我什么都没听到。 我将原始流改为AAC,然后HLS流提供了正确的输出,我立即看到了音乐与平均和最大音量之间的相关性。
谢谢大家。