2016-02-03 8 views
1

Привет, у меня есть несколько mp3-файлов на моем сервере, которые постоянно меняются, и мне нужны mp3 id3-теги для людей, чтобы знать, какая песня играет в данный момент, предпочтительно через php. Я полный noob, поэтому любая помощь может быть полезной.Можно ли читать mp3 id3 теги в php, используя ffmpeg? если да, то как?

ответ

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 массив.

+1

Вопрос 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? или он должен быть адресом локальной директории? –

+0

$ 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?'"); похоже работа. –

+0

cool попробует это скоро :) Большое вам спасибо^_ ^ –

 Смежные вопросы

  • Нет связанных вопросов^_^