如何扫描实时mp3流的采样率?

时间:2011-11-22 15:54:58

标签: php ffmpeg icecast sample-rate

我是FFMPEG的新手,我想要扫描所有文件的采样率。我不确定这是什么,因为我是新手,不知道如何开始使用FFMPEG的扫描。这些直播流是mp3流,音乐曲目。如果这有任何区别,我对PHP很熟悉。

2 个答案:

答案 0 :(得分:1)

当您使用输入文件调用FFMPEG时,它将显示与每个流相关的所有数据:

ffmpeg -i yourfile.mp3

有一个单独的可执行文件通常与FFMPEG捆绑在一起,虽然它可以满足你的需要,那就是ffprobe。因此,在Windows系统上,您可以执行类似这样的操作,将其标准输出重定向到文件:

ffprobe -i yourfile.mp3 -show_streams > file_stream_info.txt

在该文件中,您会发现以下内容:

[STREAM]
index=0
codec_name=mp3
codec_long_name=MP3 (MPEG audio layer 3)
codec_type=audio
codec_time_base=0/1
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_fmt=s16
sample_rate=44100
channels=2
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=1225/32
time_base=1/14112000
start_time=0.000
duration=210.688
nb_frames=N/A
[/STREAM]

然后你要做的就是使用你正在使用的任何脚本语言(PHP?)将其拆分为键/值对(读取行并在它们上运行explode())。我还应该注意,在大多数语言中,有一种方法可以从你正在执行的内容中读取标准输出而无需编写文件,这样会更有效。

答案 1 :(得分:0)

试试这个代码

$var = shell_exec("mpg321 -t my_file.mp3 2>&1 | grep Hz | awk '{print $7}'