Привет, у меня есть несколько mp3-файлов на моем сервере, которые постоянно меняются, и мне нужны mp3 id3-теги для людей, чтобы знать, какая песня играет в данный момент, предпочтительно через php. Я полный noob, поэтому любая помощь может быть полезной.Можно ли читать mp3 id3 теги в php, используя ffmpeg? если да, то как?
1
A
ответ
2
Хотя есть несколько возможностей, я всегда был поклонником использования труб. ffprobe должен быть включен в ffmpeg.
<?php
$output = shell_exec("ffprobe -print_format json -show_entries stream=codec_name:format -select_streams a:0 -v quiet test.mp3");
echo "<pre>$output</pre>";
?>
Выход:
{ "programs": [ ], "streams": [ { "codec_name": "mp3" } ], "format": { "filename": "test.mp3", "nb_streams": 1, "nb_programs": 0, "format_name": "mp3", "format_long_name": "MP2/3 (MPEG audio layer 2/3)", "start_time": "0.000000", "duration": "303.755813", "size": "9721021", "bit_rate": "256021", "probe_score": 51, "tags": { "title": "Pictures Of Home", "artist": "Deep Purple", "album": "Machine Head", "date": "1972", "track": "3", "genre": "Rock" } } }
Используйте json_decode, чтобы преобразовать его в assoicative массив.
Вопрос mate .. $ output = shell_exec ("ffprobe -print_format json -show_entries stream = codec_name: format -select_streams a: 0 -v quiet test.mp3"); здесь test.mp3 это может быть URL? или он должен быть адресом локальной директории? –
$ output = shell_exec ("ffprobe -print_format json -show_entries stream = codec_name: format -select_streams a: 0 -v quiet 'http://mp3.stream.tb-group.fm/tb.mp3?'"); похоже работа. –
cool попробует это скоро :) Большое вам спасибо^_ ^ –