1

私はFFMPEGを初めて使用し、サンプルレートのためにすべてのファイルをスキャンすることを想定しています。私はこれが初めてで、FFMPEG のスキャンを開始する方法さえ知らないため、これが何であるかはわかりません。これらのライブ ストリームは mp3 ストリーム、音楽トラックです。それが違いを生むなら、私はPHPに精通しています。

4

2 に答える 2

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()します)。また、ほとんどの言語には、ファイルを書き込まずに実行中のものから標準出力を読み取る方法があることにも注意してください。これははるかに効率的です。

于 2011-11-23T14:47:35.757 に答える
0

このコードを試してください

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

于 2011-11-22T16:15:42.260 に答える