Как я могу сканировать живые mp3-потоки на частоту дискретизации? - PullRequest
1 голос
/ 22 ноября 2011

Я новичок в FFMPEG, и я должен сканировать все мои файлы на частоту дискретизации.Я не уверен, что это такое, потому что я новичок в этом и не знаю, как вообще начать сканирование FFMPEG.Эти прямые трансляции - это mp3-потоки, музыкальные треки.Я знаком с PHP, если это имеет какое-либо значение.

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Когда вы вызываете 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()). Я также должен отметить, что в большинстве языков есть метод для чтения стандартного вывода из того, что вы выполняете, без записи файла, который будет гораздо более эффективным.

0 голосов
/ 22 ноября 2011

Попробуйте код

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

...