2016-12-26 124 views
0

我正在通過nginx流幾個RTMP流,我想每隔幾秒鐘檢查一下哪個流具有最高音量。 特別是這些流是說話的頭,我認爲通常只有其中一個人在說話,我試圖找到哪一個。 由於nginx可以輸出hls(Apple http實時流),我決定每隔幾秒使用ffmpeg檢查每個流的最後一部分。 實施例:檢測視頻量

的ffmpeg -f MP3 -i /my/path/camera67/123.ts -af 「volumedetect」 -f空的/ dev/null的

出於某種原因,max_volume總是零(max_volume:0.0 dB)和mean_volume對於音量似乎沒有意義。

  1. 你知道爲什麼它總是零嗎?
  2. 有沒有一種有用的方法來理解mean_volume?
  3. 你能想出一個不同的工具可以給我音量(例如mediainfo或ffprobe)嗎?

我也試過:

的ffmpeg -f lavfi -i amovie = /我的/路徑/ camera67/123.ts,volumedetect

這一次我:

[mpegts @ 0x130bf40]流1的開始時間未在estimate_timings_from_pts中設置 [mpegts @ 0x130bf40]找不到流1的編解碼參數(音頻: aac([15] [0] [0] [0]/0x000F),0通道,fltp):未指定的採樣率 考慮增加'分析'和'探測器大小'選項的值 [Parsed_amovie_0 @ 0x130bcc0]發現索引爲'-1'的流 [lavfi @ 0x130abc0]用args'/my/path/camera67/123.ts'初始化過濾器'amovie'出錯'amovie =/my/path/camera67/123.ts,volumedetect:無效參數

任何想法?

感謝, T.

+0

0 dB是最大音量。負值更安靜,下降到負無窮。您正在測量信號電平,而不是聲壓。 – Brad

回答

0

所以這是發生了什麼事。 我將MP3流式傳輸到nginx,將輸入代碼轉換爲不支持MP3的HLS段。 聽着RTMP輸出讓我覺得音頻工作正常,但是當我聽到HLS輸出時,我什麼都沒聽到。 我改變了我的原始流到AAC,然後HLS流給出了正確的輸出,並立即我看到音樂和平均和最大音量之間的關聯。

謝謝大家。