【问题标题】:how can I scan live mp3 streams for their sample rate?如何扫描实时 mp3 流的采样率?
【发布时间】:2011-11-22 15:54:57
【问题描述】:

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

【问题讨论】:

  • stackoverflow.com/questions/5140085/… 是一个好的开始。
  • “直播”到底是什么意思?我以为你有一堆文件?
  • 我通过电子邮件发送了您的电子邮件,其中包含直播的网址

标签: php ffmpeg icecast sample-rate


【解决方案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())。我还应该注意,在大多数语言中,有一种方法可以从您正在执行的内容中读取标准输出,而无需编写文件,这样效率会高得多。

【讨论】:

  • 布拉德我刚刚给你发了邮件,看看。
【解决方案2】:

试试这个代码

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

【讨论】:

  • 我认为你混淆了比特率和采样率,采样率就是采样频率。
猜你喜欢
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 2017-11-05
  • 2015-10-05
  • 2011-07-14
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多